syntax = "proto3";
import "reboot_charger.proto";
import "stop_transaction.proto";
import "start_transaction.proto";
import "clear_charger_cache.proto";
import "change_ocpp_1_6_configuration_value.proto";
import "change_charger_availability.proto";
import "change_evse_availability.proto";
import "change_connector_availability.proto";
import "cancel_outlet_reservation.proto";
import "transaction.proto";
import "create_rfid_scan_session.proto";
package ocpp_csms_server;
service Api {
rpc CreateCharger(CreateChargerRequest) returns (CreateChargerResponse) {}
rpc GetCharger(GetChargerRequest) returns (GetChargerResponse) {}
rpc GetChargers(GetChargersRequest) returns (GetChargersResponse) {}
rpc RebootCharger(RebootChargerRequest) returns (RebootChargerResponse) {}
rpc CancelOutletReservation(CancelOutletReservationRequest) returns (CancelOutletReservationResponse) {}
rpc ChangeChargerAvailability(ChangeChargerAvailabilityRequest) returns (ChangeChargerAvailabilityResponse) {}
rpc ChangeEvseAvailability(ChangeEvseAvailabilityRequest) returns (ChangeEvseAvailabilityResponse) {}
rpc ChangeConnectorAvailability(ChangeConnectorAvailabilityRequest) returns (ChangeConnectorAvailabilityResponse) {}
rpc ChangeOcpp1_6ConfigurationValue(ChangeOcpp1_6ConfigurationValueRequest) returns (ChangeOcpp1_6ConfigurationValueResponse) {}
rpc ClearChargerCache(ClearChargerCacheRequest) returns (ClearChargerCacheResponse) {}
rpc StartTransaction(StartTransactionRequest) returns (StartTransactionResponse) {}
rpc StopTransaction(StopTransactionRequest) returns (StopTransactionResponse) {}
rpc GetOngoingTransaction(GetOngoingTransactionRequest) returns (GetOngoingTransactionResponse) {}
rpc CreateRfidScanSession(CreateRfidScanSessionRequest) returns (CreateRfidScanSessionResponse) {}
rpc GetRfidScanSession(GetRfidScanSessionRequest) returns (GetRfidScanSessionResponse) {}
}
message GetRfidScanSessionRequest {
string session_id = 1;
}
message GetRfidScanSessionResponse {
RfidScanSession session = 1;
}
message GetOngoingTransactionRequest {
string charger_id = 1;
string evse_id = 2;
}
message GetOngoingTransactionResponse {
Transaction transaction = 1;
}
message CreateChargerRequest {
string charger_id = 1;
}
message CreateChargerResponse{
Charger charger = 1;
}
message GetChargerRequest {
string charger_id = 1;
}
message GetChargerResponse {
Charger charger = 1;
}
message GetChargersRequest {
int64 page_size = 1;
int64 page = 2;
}
message GetChargersResponse {
repeated ChargerSummary chargers = 1;
int64 page = 2;
int64 total_count = 3;
bool has_next = 4;
bool has_prev = 5;
}
message Charger {
string id = 1;
optional string serial_number = 2;
optional string model = 3;
optional string vendor = 4;
optional string firmware_version = 5;
optional string iccid = 6;
optional string imsi = 7;
repeated Ocpp1_6Configuration ocpp1_6_configuration_values = 8;
repeated Evse evses = 9;
bool is_online = 10;
string last_seen = 11;
string node_address = 12;
}
message ChargerSummary {
string id = 1;
optional string serial_number = 2;
optional string model = 3;
optional string vendor = 4;
}
message Ocpp1_6Configuration {
string key = 1;
optional string value = 2;
bool readonly = 3;
}
message Evse {
string id = 1;
string charger_id = 2;
uint32 ocpp_id = 3;
repeated Connector connectors = 4;
}
message Connector {
string id = 1;
string charger_id = 2;
string evse_id = 3;
uint32 ocpp_id = 4;
ConnectorType type = 5;
ConnectorStatus status = 6;
}
enum ConnectorStatus {
CONNECTOR_STATUS_UNSPECIFIED = 0;
CONNECTOR_STATUS_AVAILABLE = 1;
CONNECTOR_STATUS_OCCUPIED = 2;
CONNECTOR_STATUS_RESERVED = 3;
CONNECTOR_STATUS_UNAVAILABLE = 4;
CONNECTOR_STATUS_FAULTED = 5;
}
enum ConnectorType {
CONNECTOR_UNSPECIFIED = 0;
CONNECTOR_CCS1 = 1; // Combined Charging System 1 (captive cabled) a.k.a. Combo 1
CONNECTOR_CCS2 = 2; // Combined Charging System 2 (captive cabled) a.k.a. Combo 2
CONNECTOR_G105 = 3; // JARI G105-1993 (captive cabled) a.k.a. CHAdeMO
CONNECTOR_TESLA = 4; // Tesla Connector (captive cabled)
CONNECTOR_TYPE_1 = 5; // IEC62196-2 Type 1 connector (captive cabled) a.k.a. J1772
CONNECTOR_TYPE_2 = 6; // IEC62196-2 Type 2 connector (captive cabled) a.k.a. Mennekes connector
SOCKET_309_1P_16A = 7; // 16A 1 phase IEC60309 socket
SOCKET_309_1P_32A = 8; // 32A 1 phase IEC60309 socket
SOCKET_309_3P_16A = 9; // 16A 3 phase IEC60309 socket
SOCKET_309_3P_32A = 10; // 32A 3 phase IEC60309 socket
SOCKET_BS1361 = 11; // UK domestic socket a.k.a. 13Amp
SOCKET_CEE_7_7 = 12; // CEE 7/7 16A socket. May represent 7/4 & 7/5 a.k.a Schuko
SOCKET_TYPE2 = 13; // IEC62196-2 Type 2 socket a.k.a. Mennekes connector
SOCKET_TYPE3 = 14; // IEC62196-2 Type 2 socket a.k.a. Scame
OTHER_1PH_MAX_16A = 15; // Other single phase (domestic) sockets not mentioned above, rated at no more than 16A. CEE7/17, AS3112, NEMA 5-15, NEMA 5-20, JISC8303, TIS166, SI 32, CPCS-CCC, SEV1011, etc.
OTHER_1PH_OVER_16A = 16; // Other single phase sockets not mentioned above (over 16A)
OTHER_3PH = 17; // Other 3 phase sockets not mentioned above. NEMA14-30, NEMA14-50.
PANTOGRAPH = 18; // Pantograph connector
WIRELESS_INDUCTIVE = 19; // Wireless inductively coupled connection (generic)
WIRELESS_RESONANT = 20; // Wireless resonant coupled connection (generic)
UNDETERMINED = 21; // Yet to be determined (e.g. before plugged in)
UNKNOWN = 22; // Unknown; not determinable
}