@@ -24,7 +24,7 @@ ESP8266WiFiMulti WiFiMulti;
2424//
2525// Settings which worked for my SteVe instance:
2626//
27- // #define OCPP_BACKEND_URL "ws://192.168.178.100:8180 /steve/websocket/CentralSystemService"
27+ // #define OCPP_BACKEND_URL "ws://192.168.178.100:8080 /steve/websocket/CentralSystemService"
2828// #define OCPP_CHARGE_BOX_ID "esp-charger"
2929
3030void setup () {
@@ -58,22 +58,32 @@ void setup() {
5858 /*
5959 * Initialize the OCPP library
6060 */
61- mocpp_initialize (OCPP_BACKEND_URL , OCPP_CHARGE_BOX_ID , " My Charging Station" , " My company name" );
61+ mo_initialize ();
62+
63+ mo_setWebsocketUrl (
64+ OCPP_BACKEND_URL , // OCPP backend URL
65+ OCPP_CHARGE_BOX_ID , // ChargeBoxId, assigned by OCPP backend
66+ nullptr , // Authorization key (`nullptr` disables Basic Auth)
67+ nullptr ); // OCPP backend TLS certificate (`nullptr` disables certificate check)
68+
69+ mo_setBootNotificationData (" My Charging Station" , " My company name" );
70+
71+ mo_setOcppVersion (MO_OCPP_V16 ); // Run OCPP 1.6. For v2.0.1, pass argument `MO_OCPP_V201`
6272
6373 /*
6474 * Integrate OCPP functionality. You can leave out the following part if your EVSE doesn't need it.
6575 */
66- setEnergyMeterInput ([]() {
76+ mo_setEnergyMeterInput ([]() {
6777 // take the energy register of the main electricity meter and return the value in watt-hours
68- return 0 . f ;
78+ return 0 ;
6979 });
7080
71- setSmartChargingCurrentOutput ([](float limit) {
81+ mo_setSmartChargingCurrentOutput ([](float limit) {
7282 // set the SAE J1772 Control Pilot value here
7383 Serial.printf (" [main] Smart Charging allows maximum charge rate: %.0f\n " , limit);
7484 });
7585
76- setConnectorPluggedInput ([]() {
86+ mo_setConnectorPluggedInput ([]() {
7787 // return true if an EV is plugged to this EVSE
7888 return false ;
7989 });
@@ -86,12 +96,12 @@ void loop() {
8696 /*
8797 * Do all OCPP stuff (process WebSocket input, send recorded meter values to Central System, etc.)
8898 */
89- mocpp_loop ();
99+ mo_loop ();
90100
91101 /*
92102 * Energize EV plug if OCPP transaction is up and running
93103 */
94- if (ocppPermitsCharge ()) {
104+ if (mo_ocppPermitsCharge ()) {
95105 // OCPP set up and transaction running. Energize the EV plug here
96106 } else {
97107 // No transaction running at the moment. De-energize EV plug
@@ -103,7 +113,7 @@ void loop() {
103113 if (/* RFID chip detected? */ false ) {
104114 String idTag = " 0123456789ABCD" ; // e.g. idTag = RFID.readIdTag();
105115
106- if (!getTransaction ()) {
116+ if (!mo_getTransactionIdTag ()) {
107117 // no transaction running or preparing. Begin a new transaction
108118 Serial.printf (" [main] Begin Transaction with idTag %s\n " , idTag.c_str ());
109119
@@ -112,7 +122,7 @@ void loop() {
112122 * and listen to the ConnectorPlugged Input. When the Authorization succeeds and an EV
113123 * is plugged, the OCPP lib will send the StartTransaction
114124 */
115- auto ret = beginTransaction (idTag.c_str ());
125+ auto ret = mo_beginTransaction (idTag.c_str ());
116126
117127 if (ret) {
118128 Serial.println (F (" [main] Transaction initiated. OCPP lib will send a StartTransaction when" \
@@ -122,15 +132,10 @@ void loop() {
122132 }
123133
124134 } else {
125- // Transaction already initiated. Check if to stop current Tx by RFID card
126- if (idTag.equals (getTransactionIdTag ())) {
127- // card matches -> user can stop Tx
128- Serial.println (F (" [main] End transaction by RFID card" ));
129-
130- endTransaction (idTag.c_str ());
131- } else {
132- Serial.println (F (" [main] Cannot end transaction by RFID card (different card?)" ));
133- }
135+ // Transaction already initiated. Attempt to stop current Tx by RFID card. If idTag is the same,
136+ // or in the same group, then MO will stop the transaction and `mo_ocppPermitsCharge()` becomes
137+ // false
138+ mo_endTransaction (idTag.c_str (), nullptr ); // `idTag` and `reason` can be nullptr
134139 }
135140 }
136141
0 commit comments