rtrbt Geschrieben September 14, 2022 at 15:06 Geschrieben September 14, 2022 at 15:06 ACHTUNG: Dieser Thread über die OCPP Unterstüzung ist veraltet, biete diesem Thread folgen: Moin, Die vergangenen Monate habe ich an einer OCPP-Implementierung für den WARP Charger gearbeitet. Als erste Vorschau hier eine Beta-Version. Was funktioniert bereits? Aktuell unterstützt wird das Core Profile von OCPP1.6J, folgende Funktionen sind mit einem OCPP-Server möglich: Starten/Stoppen von Ladevorgängen Autorisierung von Ladevorgängen über NFC-Tags Steuerung der Verfügbarkeit Anzeige des aktuellen Status der Wallbox Einstellen diverser Konfigurationen Übertragung von Zählerwerten an den Server Neustart der Wallbox Es gibt noch ein paar Einschränkungen bezüglich der Zählerwert-Historie: Laut Spezifikation können Zählerwerte über einen Ladevorgang auf der Wallbox gesammelt werden und beim Ende des Ladevorgangs auf einmal übertragen werden. Das unterstützen wir derzeit nicht. Diese Einschränkung ist aber nach OCPP-Spezifikation erlaubt, sollte also hoffentlich bei keinem Server zu Problemem führen. Bisher ist die OCPP-Implementierung mit SteVe 3.4.9: (https://github.com/steve-community/steve) sowie https://web.ecarup.com/ erfolgreich getestet worden. Weitere OCPP-Server werden wir im Zuge der Weiterentwicklung testen. Was fehlt? Neben den genannten Einschänkungen bzgl. der Zähler-Historie fehlen noch folgende (geplante) Features bzw. bestehen folgende Probleme: Bessere Einbindung ins Webinterface: Aktuell kann OCPP aktiviert, sowie die Server-URL eingetragen werden. Außer im Ereignis-Log gibt es kein Feedback über den OCPP-Betrieb. Entkopplung in eine eigene Ladestromgrenze: Aktuell benutzt OCPP die "externe Steuerung"-Ladegrenze, blockiert damit also andere Steuerungen wie z.B. EVCC oder eigene Scripte. Wir werden deshalb OCPP eine eigene Ladestromgrenze zuweisen. Bessere Verzahnung mit anderen Features der Wallbox: Im Moment läuft OCPP komplett parallel neben anderen Features wie der NFC-Tag/Benutzerverwaltung. Künftig werden diese Funktionen stärker gekoppelt, sodass z.B. nur entweder die Ladefreigabe per OCPP, oder die lokale Freigabe per NFC-Tag aktiv ist, um Verwirrung zu vermeiden. Um weitere OCPP-Server (z.B. EVCC) zu unterstützen, werden wir möglicherweise weitere Profile, insbesondere das Smart Charging Profile, mit dem Ladeströme gesteuert werden können, implementieren. Wie kann ich die OCPP-Implementierung testen? Zum Testen wird ein OCPP-Server benötigt. Lokal kann SteVe (siehe oben) ausgeführt werden. Alternativ bietet https://web.ecarup.com kostenlose Accounts an. Nach dem Flashen der Beta-Firmware steht im Webinterface der neue Menüpunkt OCPP zur Verfügung. Hier kann die URL des Endpoints eingetragen werden. Es werden sowohl ws (WebSocket), als auch wss (WebSocketSecure)-URLS unterstützt. Wir empfehlen zweiteres, damit die Kommunikation verschlüsselt stattfindet. Die Firmware beinhaltet ein Zertifikats-Bundle mit den üblichen Root-Zertifikaten (siehe hier für Details). In einer späteren Version werden wir hinzufügen, dass ein eigenes TLS-Zertifikat auf die Wallbox hochgeladen werden kann. Neben dem Aktivieren von OCPP und dem Eintragen der Endpoint-URL muss im Moment außerdem unter Ladecontroller die externe Steuerung aktiviert werden. Bei einem erfolgreichen Verbindungsaufbau sollten Nachrichten ähnlich zu den folgenden im Ereignis-Log auftauchen: 5,790 Sending boot notification. 5790 0 60000 60000 5,801 Sending status Available for connector 1 5,933 Received message [3, "0", {"status":"Accepted","currentTi 2022-09-14 15:45:33,000 Sending status Available for charge point 2022-09-14 15:45:33,011 Sending status Available for connector 1 2022-09-14 15:45:33,183 Received message [3, "2", {}] 2022-09-14 15:45:33,298 Received message [3, "3", {}] und der OCPP-Server die Wallbox registrieren. Warum nur für WARP2? Der ESP32 Brick, der in der WARP1 verbaut ist, verfügt über 320kB RAM. Der ESP32 Ethernet Brick der in der WARP2 verbaut ist hat zusätzliche 4MB PSRAM. In aktuellen WARP1-Firmwares ist der verfügbare RAM zu knapp für die OCPP-Implementierung. Im Moment ist unklar, ob OCPP auf der WARP1 möglich sein wird. warp2_firmware_2_0_90_6321dac1_merged.bin 3 Zitieren
schnuppepampe Geschrieben October 11, 2022 at 15:20 Geschrieben October 11, 2022 at 15:20 (bearbeitet) Habs mal in Home Assistant mit der via community-store erhältlichen OCPP Integration probiert (https://github.com/lbbrhzn/ocpp). Verbindung klappt, und kommt auch gleich eine ganze Menge Zeug raus: Auffällig für mich ist: - charger.Maximum_Current steht konstant auf 16, obwohl im Web interface ein geringerer Ladestrom konfiguriert ist - Die Energy-Sensoren stehen alle auf Unbekannt. Könnte aber daran liegen dass das zu ladende Auto erst irgendwann die nächsten Monate kommt und daher hier noch nichts sinnvolles stehen kann ausser die 2-3 Watt die die Wallbox selbst schluckt. Bei der Einrichtung konnte ich aus einer ganzen Latte an Sensoren auswählen - möglicherweise habe ich hier auch einfach das falsche gewählt... EDIT: Wer lesen kann ist im Vorteil.. falsche Ladegrenze angeguckt. Leider bekomme ich es aber auch via "Externe Steuerung" nicht korrekt hin glaube ich. Habe Externe Steuerung aktiviert, unter Status steht nur bei Erlaubter Ladestrom: "0,000 A durch externe Steuerung", egal was ich in Home Assistant auswähle. IOm Ereignis-Log sehe ich allerdings auch einen haufen JSON Fehler: 2022-10-11 18:41:30,539 deserialized JSON is not an array at top level 2022-10-11 18:41:30,551 Received message 2022-10-11 18:41:30,551 deserialized JSON is not an array at top level 2022-10-11 18:41:30,564 Received message 'L1-L2',\n 2022-10-11 18:41:30,565 deserialized JSON is not an array at top level 2022-10-11 18:41:30,577 Received message 'Celcius' 2022-10-11 18:41:30,578 deserialized JSON is not an array at top level 2022-10-11 18:41:39,785 Received message ��v 2022-10-11 18:41:39,785 deserializeJson() failed: InvalidInput 2022-10-11 18:41:40,474 Received message [4,"4","FormatViolation","Payload for Ac 2022-10-11 18:41:40,476 deserializeJson() failed: IncompleteInput 2022-10-11 18:41:40,478 Received message 'Other'],\n 2022-10-11 18:41:40,489 deserialized JSON is not an array at top level 2022-10-11 18:41:40,502 Received message 'Energy.Reactive.Ex 2022-10-11 18:41:40,503 deserialized JSON is not an array at top level 2022-10-11 18:41:40,515 Received message 2022-10-11 18:41:40,515 deserialized JSON is not an array at top level 2022-10-11 18:41:40,528 Received message 'L1-L2',\n 2022-10-11 18:41:40,529 deserialized JSON is not an array at top level 2022-10-11 18:41:40,542 Received message 'Celcius' 2022-10-11 18:41:40,542 deserialized JSON is not an array at top level 2022-10-11 18:41:41,216 Received message [2,"8c9f8ad8-f030-4a6d-85bb-f4b23629f462 2022-10-11 18:41:41,279 Received message [2,"f9ed4009-cfe3-4257-b112-d5a148251f90 2022-10-11 18:41:41,287 IDLE -> NO_PLUG 2022-10-11 18:41:41,365 Sending status Preparing for connector 1 2022-10-11 18:41:50,545 Received message [4,"4","FormatViolation","Payload for Ac 2022-10-11 18:41:50,547 deserializeJson() failed: IncompleteInput 2022-10-11 18:41:50,550 Received message 'Other'],\n 2022-10-11 18:41:50,561 deserialized JSON is not an array at top level 2022-10-11 18:41:50,564 Received message 'Energy.Reactive.Ex 2022-10-11 18:41:50,575 deserialized JSON is not an array at top level 2022-10-11 18:41:50,578 Received message 2022-10-11 18:41:50,589 deserialized JSON is not an array at top level 2022-10-11 18:41:50,593 Received message 'L1-L2',\n 2022-10-11 18:41:50,603 deserialized JSON is not an array at top level 2022-10-11 18:41:50,605 Received message 'Celcius' 2022-10-11 18:41:50,616 deserialized JSON is not an array at top level 2022-10-11 18:41:52,811 Received message [2,"b1267f13-c9e2-4d95-b654-cd14348e8bb6 2022-10-11 18:41:59,844 Received message ބ 2022-10-11 18:41:59,844 deserializeJson() failed: InvalidInput 2022-10-11 18:42:00,628 Received message [4,"4","FormatViolation","Payload for Ac 2022-10-11 18:42:00,630 deserializeJson() failed: IncompleteInput 2022-10-11 18:42:00,632 Received message 'Other'],\n 2022-10-11 18:42:00,643 deserialized JSON is not an array at top level 2022-10-11 18:42:00,658 Received message 'Energy.Reactive.Ex 2022-10-11 18:42:00,659 deserialized JSON is not an array at top level 2022-10-11 18:42:00,670 Received message 2022-10-11 18:42:00,671 deserialized JSON is not an array at top level 2022-10-11 18:42:00,684 Received message 'L1-L2',\n 2022-10-11 18:42:00,685 deserialized JSON is not an array at top level 2022-10-11 18:42:00,697 Received message 'Celcius' 2022-10-11 18:42:00,697 deserialized JSON is not an array at top level 2022-10-11 18:42:10,762 Received message [4,"4","FormatViolation","Payload for Ac 2022-10-11 18:42:10,763 deserializeJson() failed: IncompleteInput 2022-10-11 18:42:10,775 Received message 'Other'],\n 2022-10-11 18:42:10,776 deserialized JSON is not an array at top level 2022-10-11 18:42:10,789 Received message 'Energy.Reactive.Ex 2022-10-11 18:42:10,790 deserialized JSON is not an array at top level 2022-10-11 18:42:10,803 Received message 2022-10-11 18:42:10,803 deserialized JSON is not an array at top level 2022-10-11 18:42:10,816 Received message 'L1-L2',\n 2022-10-11 18:42:10,817 deserialized JSON is not an array at top level 2022-10-11 18:42:10,829 Received message 'Celcius' 2022-10-11 18:42:10,829 deserialized JSON is not an array at top level 2022-10-11 18:42:19,858 Received message `N- 2022-10-11 18:42:19,858 deserializeJson() failed: InvalidInput 2022-10-11 18:42:20,811 Received message [4,"4","FormatViolation","Payload for Ac 2022-10-11 18:42:20,812 deserializeJson() failed: IncompleteInput 2022-10-11 18:42:20,825 Received message 'Other'],\n 2022-10-11 18:42:20,825 deserialized JSON is not an array at top level 2022-10-11 18:42:20,839 Received message 'Energy.Reactive.Ex 2022-10-11 18:42:20,840 deserialized JSON is not an array at top level 2022-10-11 18:42:20,851 Received message 2022-10-11 18:42:20,852 deserialized JSON is not an array at top level 2022-10-11 18:42:20,865 Received message 'L1-L2',\n 2022-10-11 18:42:20,866 deserialized JSON is not an array at top level 2022-10-11 18:42:20,877 Received message 'Celcius' 2022-10-11 18:42:20,878 deserialized JSON is not an array at top level 2022-10-11 18:42:30,889 Received message [4,"4","FormatViolation","Payload for Ac 2022-10-11 18:42:30,891 deserializeJson() failed: IncompleteInput 2022-10-11 18:42:30,903 Received message 'Other'],\n 2022-10-11 18:42:30,903 deserialized JSON is not an array at top level 2022-10-11 18:42:30,917 Received message 'Energy.Reactive.Ex 2022-10-11 18:42:30,918 deserialized JSON is not an array at top level 2022-10-11 18:42:30,930 Received message 2022-10-11 18:42:30,931 deserialized JSON is not an array at top level 2022-10-11 18:42:30,944 Received message 'L1-L2',\n 2022-10-11 18:42:30,945 deserialized JSON is not an array at top level 2022-10-11 18:42:30,956 Received message 'Celcius' 2022-10-11 18:42:30,957 deserialized JSON is not an array at top level 2022-10-11 18:42:39,915 Received message `� 2022-10-11 18:42:39,916 deserializeJson() failed: InvalidInput 2022-10-11 18:42:40,873 Received message [4,"4","FormatViolation","Payload for Ac 2022-10-11 18:42:40,874 deserializeJson() failed: IncompleteInput 2022-10-11 18:42:40,887 Received message 'Other'],\n 2022-10-11 18:42:40,887 deserialized JSON is not an array at top level 2022-10-11 18:42:40,901 Received message 'Energy.Reactive.Ex 2022-10-11 18:42:40,902 deserialized JSON is not an array at top level 2022-10-11 18:42:40,913 Received message 2022-10-11 18:42:40,914 deserialized JSON is not an array at top level 2022-10-11 18:42:40,927 Received message 'L1-L2',\n 2022-10-11 18:42:40,928 deserialized JSON is not an array at top level 2022-10-11 18:42:40,939 Received message 'Celcius' 2022-10-11 18:42:40,940 deserialized JSON is not an array at top level 2022-10-11 18:42:41,453 Cable timeout! 2022-10-11 18:42:41,454 NO_PLUG -> IDLE 2022-10-11 18:42:41,454 Sending status Available for connector 1 2022-10-11 18:42:50,975 Received message [4,"4","FormatViolation","Payload for Ac 2022-10-11 18:42:50,977 deserializeJson() failed: IncompleteInput 2022-10-11 18:42:50,989 Received message 'Other'],\n 2022-10-11 18:42:50,989 deserialized JSON is not an array at top level 2022-10-11 18:42:51,003 Received message 'Energy.Reactive.Ex 2022-10-11 18:42:51,004 deserialized JSON is not an array at top level 2022-10-11 18:42:51,016 Received message 2022-10-11 18:42:51,016 deserialized JSON is not an array at top level 2022-10-11 18:42:51,030 Received message 'L1-L2',\n 2022-10-11 18:42:51,030 deserialized JSON is not an array at top level 2022-10-11 18:42:51,042 Received message 'Celcius' 2022-10-11 18:42:51,042 deserialized JSON is not an array at top level 2022-10-11 18:42:59,969 Received message ��= 2022-10-11 18:42:59,970 deserializeJson() failed: InvalidInput 2022-10-11 18:43:01,021 Received message [4,"4","FormatViolation","Payload for Ac 2022-10-11 18:43:01,023 deserializeJson() failed: IncompleteInput 2022-10-11 18:43:01,035 Received message 'Other'],\n 2022-10-11 18:43:01,035 deserialized JSON is not an array at top level 2022-10-11 18:43:01,049 Received message 'Energy.Reactive.Ex 2022-10-11 18:43:01,050 deserialized JSON is not an array at top level 2022-10-11 18:43:01,062 Received message 2022-10-11 18:43:01,062 deserialized JSON is not an array at top level 2022-10-11 18:43:01,075 Received message 'L1-L2',\n 2022-10-11 18:43:01,076 deserialized JSON is not an array at top level 2022-10-11 18:43:01,088 Received message 'Celcius' 2022-10-11 18:43:01,088 deserialized JSON is not an array at top level bearbeitet October 11, 2022 at 16:43 von schnuppepampe Zitieren
rtrbt Geschrieben October 13, 2022 at 12:09 Autor Geschrieben October 13, 2022 at 12:09 Das sieht interessant aus, danke! Gerade die JSON-Fehler muss ich mir mal genauer ansehen. Ich verwende da einen sehr minimalistischen Serializer, den ich eventuell an einer Stelle falsch benutze. Zitieren
rtrbt Geschrieben October 14, 2022 at 08:32 Autor Geschrieben October 14, 2022 at 08:32 Okay ich habe raus, was da schief gelaufen ist. Die Firmware hält sich an einer Stelle nicht an die Spezifikation (Nachrichten mit einer Liste von Stromzählerwerten müssen mindestens einen Wert enthalten), das versucht die OCPP-Integration von Home Assistant als Fehler zu melden, hält sich aber dabei selbst nicht an die Spezifikation und das wiederum versteht die Firmware dann nicht. Daraus entsteht dann die deserialize-Katastrophe. Ich habe das Problem in der OCPP-Integration bzw. in der Bibliothek die diese verwendet, mal gemeldet: https://github.com/mobilityhouse/ocpp/issues/381 Den Rest fixe ich gerade auf unserer Seite. Zitieren
poohnet Geschrieben October 18, 2022 at 19:36 Geschrieben October 18, 2022 at 19:36 'n Abend @rtrbt, nachdem ich meine WARP1 nun auf den ESP32-Ethernet-Brick umgebaut und die (auf den alten EVSE angepasste) WARP2-Firmware geflashed habe, finde ich leider keinen Menüpunkt "OCPP". Kann es sein, dass der Code noch gar nicht im master-Branch drin ist? Bis auf ein define in EVSE(_v2) finde ich nämlich auch kein passendes Modul... Danke & Gruß Thomas Zitieren
rtrbt Geschrieben October 20, 2022 at 13:15 Autor Geschrieben October 20, 2022 at 13:15 Stimmt, das fehlt im Repo. Kommt morgen. 1 Zitieren
rtrbt Geschrieben October 24, 2022 at 14:34 Autor Geschrieben October 24, 2022 at 14:34 Das OCPP-Modul ist jetzt im esp32-firmware-Git. (Sorry hatte es heute erst geschafft. Da hing mehr dran als ich in Erinnerung hatte.) Edit: Bau am besten gegen den Stand von 8aef2cd4, das sollte funktionieren. 1 Zitieren
poohnet Geschrieben October 25, 2022 at 05:22 Geschrieben October 25, 2022 at 05:22 Moin @rtrbt, kein Problem, besten Dank. Die reguläre WARP2-Konfiguration lässt sich erfolgreich bauen, aber wenn ich das Modul "EVSE_V2" durch "EVSE" austausche, dann erhalte ich leider eine ganze Menge Compilefehler. Einige lassen sich durch kleine Codeanpassungen beheben, aber spätestens bei "get_ocpp_current()" bzw. "set_ocpp_current()" hört's dann doch auf, da diese Methoden bislang nur in "EVSE_V2" implementiert sind. Zieht ihr das noch in das Modul "EVSE" nach oder muss/soll ich mich da selbst drum kümmern? Vielen Dank & Gruß Thomas Zitieren
rtrbt Geschrieben October 25, 2022 at 07:27 Autor Geschrieben October 25, 2022 at 07:27 Und ich dachte beim Einfügen der Funktionen noch "Das brauchen wir erstmal nur im EVSE_V2" :D Zieh mal bis 887f0e95 nach, dann sollte es gehen. Zitieren
poohnet Geschrieben October 25, 2022 at 11:42 Geschrieben October 25, 2022 at 11:42 Yeah, das hat funktioniert 🙂 Jetzt werde ich das mal testen... Vielen Dank @rtrbt! Zitieren
poohnet Geschrieben October 25, 2022 at 14:02 Geschrieben October 25, 2022 at 14:02 (bearbeitet) So, die ersten Tests waren so halbwegs erfolgreich. Ich habe einen eCarUp-Account angelegt und zunächst die wss-URL (wss://www.ecarup.com/api/Ocpp16/xxxx) verwendet. Leider erhalte ich damit nur die Fehlermeldung "OCPP WEBSOCKET DISCONNECTED". Die Umstellung von wss auf ws hat das Problem dann aber erstmal (temporär) gelöst, WARP verbindet sich und erscheint sowohl im eCarUp-Portal als auch in der App - und zwar direkt mit dem richtigen Status (frei bzw. verbunden) 🙂 Leider lässt sich aber die Ladung nicht starten. EVCC ist freigegeben und die OCPP-Startanforderung kommt auch an - nur es passiert nix. Interessant ist auch der Zeitstempel der OCPP-Meldungen, diese scheinen etliche Jahre aus der Zukunft zu kommen: 8,343 Network connected. Stopping soft AP 8,381 MQTT: Connected to broker. 16,188 OCPP WEBSOCKET CONNECTED 16,201 Sending BootNotification.req. 16201 0 60000 60000 16,351 Received message [3, "1", {"status":"Accepted","currentTi (len 86) 16,352 Received BootNotification.conf for connector 0. Interval 60 2028-02-29 09:29:49,000 Sending StatusNotification.req: Status Available for charge point 2028-02-29 09:29:49,001 Sending StatusNotification.req: Status Preparing for connector 1 2028-02-29 09:29:49,138 Received message [3, "2", {}] (len 12) 2028-02-29 09:29:49,139 Received StatusNotification.conf for connector 0 2028-02-29 09:29:49,344 Received message [3, "3", {}] (len 12) 2028-02-29 09:29:49,344 Received StatusNotification.conf for connector 1 2022-10-25 15:54:13,808 NTP synchronized at 24,778! 2022-10-25 15:54:55,650 This is warp2-XSS (warp2-XSS), a WARP2 Charger Pro 11kW 2022-10-25 15:54:55,730 Tag timeout! 2022-10-25 15:54:55,730 NO_TAG -> FINISHING_UNLOCKED 2022-10-25 15:54:55,731 Sending StatusNotification.req: Status Finishing for connector 1 2022-10-25 15:54:55,838 Received message [3, "4", {}] (len 12) 2022-10-25 15:54:55,839 Received StatusNotification.conf for connector 1 2022-10-25 15:55:05,287 Sending Heartbeat.req. 76258 76258 136258 60000 2022-10-25 15:55:05,381 Received message [3, "5", {"currentTime":"2022-10-25T13:5 (len 52) 2022-10-25 15:55:05,382 Received Heartbeat.conf for connector 0 2028-02-29 09:31:48,907 Sending Heartbeat.req. 136271 136271 196271 60000 2028-02-29 09:31:49,009 Received message [3, "6", {"currentTime":"2022-10-25T13:5 (len 52) 2028-02-29 09:31:49,010 Received Heartbeat.conf for connector 0 2028-02-29 09:31:56,360 Received message [2, "15ed0004-bf5d-47d0-5242-b4e5ec3cc10 (len 119) 2028-02-29 09:31:56,361 Received RemoteStartTransaction.req for connector 1 and tag 5PXVQ7NNERYRYRJKGDBQ 2028-02-29 09:31:56,372 Sending RemoteStartTransaction.conf Accepted 2028-02-29 09:31:56,386 FINISHING_UNLOCKED -> TRANSACTION 2028-02-29 09:31:56,421 Sending StatusNotification.req: Status SuspendedEVSE for connector 1 2028-02-29 09:31:56,495 Received message [3, "7", {}] (len 12) 2028-02-29 09:31:56,495 Received StatusNotification.conf for connector 1 2028-02-29 09:32:39,023 Received message [2, "5df50004-4331-3795-c346-bdee912be3c (len 119) 2028-02-29 09:32:39,024 Received RemoteStartTransaction.req for connector 1 and tag 6PE6E4DYL7RCZGAYDFXQ 2028-02-29 09:32:39,035 Sending RemoteStartTransaction.conf Accepted 2028-02-29 09:32:39,050 Ignoring remote start transaction in state TRANSACTION 2028-02-29 09:32:48,898 Sending Heartbeat.req. 196282 196282 256282 60000 2028-02-29 09:32:49,011 Received message [3, "8", {"currentTime":"2022-10-25T13:5 (len 52) 2028-02-29 09:32:49,012 Received Heartbeat.conf for connector 0 So sieht der EVSE aktuell aus: @rtrbt, hast du vielleicht noch eine spontane Idee? EDIT: Was mir noch aufgefallen ist: Die Heartbeats kommen für Connector 0, die Steuerungsbefehle für Connector 1. Gibt's da vielleicht noch irgendwo ein "+/-1 Problem"? Oder muss der Ladepunkt bei eCarUp noch weiter konfiguriert werden? Vielen Dank & Gruß Thomas bearbeitet October 25, 2022 at 14:41 von poohnet Zitieren
rtrbt Geschrieben October 26, 2022 at 06:28 Autor Geschrieben October 26, 2022 at 06:28 wss sollte eigentlich gehen, probiere ich gleich nochmal aus. Ich gehe davon aus, dass die Ladeprobleme von den kaputten Zeiten kommen. Das ist ein Problem mit dem iso8601-Zeitstempel-Parser, das ich eigentlich behoben hatte, aber scheinbar habe ich den Fix beim Einbinden von TFOCPP als Abhängigkeit wieder verloren. Das muss ich nochmal kurz nachvollziehen. 16 hours ago, poohnet said: Die Heartbeats kommen für Connector 0, die Steuerungsbefehle für Connector 1. Gibt's da vielleicht noch irgendwo ein "+/-1 Problem"? Oder muss der Ladepunkt bei eCarUp noch weiter konfiguriert werden? Das muss so sein: OCPP ist darauf ausgelegt, dass du pro Charge Point mehrere Connectoren haben kannst (wie bei so einer großen DC-Ladesäule an der Autobahn z.B.). Connector 0 addressiert den ganzen Charge Point und die eigentliche Verbindung zum Auto geht dann bei uns immer über Connector 1. Zitieren
rtrbt Geschrieben October 26, 2022 at 14:18 Autor Geschrieben October 26, 2022 at 14:18 @poohnet Nach einem kurzen Kampf mit Build-Systemen sollte es jetzt klappen und bei dir auch gleich die aktuelle arduino-esp32- und tfocpp-Version runterladen. Geh mal auf Commit 54236351. Zitieren
poohnet Geschrieben October 26, 2022 at 15:08 Geschrieben October 26, 2022 at 15:08 Danke Erik (auch für die Erklärung zu OCPP) 🙂 Ich ziehe eure letzten Anpassungen heute Abend mal nach und teste dann voraussichtlich morgen... Zitieren
poohnet Geschrieben October 26, 2022 at 17:04 Geschrieben October 26, 2022 at 17:04 Hi @rtrbt, ich hab's natürlich jetzt doch gerade schon ausprobiert - und es funktioniert! 😍 Die Verbindung wird nun auch über wss hergestellt, die Ladung kann über die eCarUp gestartet und beendet werden und die Ladung erscheint anschließend auch mit korrektem Verbrauch in der App. Selbst die Leistungsvorgabe durch WARP und EVCC wird korrekt berücksichtigt. Der Vollständigkeit halber hier noch das Log (diesmal mit korrektem Zeitstempel). Vielleicht könnt ihr da mal drüberschauen und die (vereinzelten) Fehler prüfen... 7,739 Network connected. Stopping soft AP 7,771 MQTT: Connected to broker. 16,460 OCPP WEBSOCKET CONNECTED 16,538 Sending BootNotification.req. 16538 0 60000 60000 16,686 Received message [3, "1", {"status":"Accepted","currentTi (len 86) 16,687 Received BootNotification.conf for connector 0. Interval 60 2022-10-26 18:31:25,000 Sending StatusNotification.req: Status Available for charge point 2022-10-26 18:31:25,011 Sending StatusNotification.req: Status Available for connector 1 2022-10-26 18:31:25,141 Received message [3, "2", {}] (len 12) 2022-10-26 18:31:25,142 Received StatusNotification.conf for connector 0 2022-10-26 18:31:25,341 Received message [3, "3", {}] (len 12) 2022-10-26 18:31:25,342 Received StatusNotification.conf for connector 1 2022-10-26 18:31:31,450 NTP synchronized at 22,647! 2022-10-26 18:32:15,062 This is warp2-XSS (warp2-XSS), a WARP2 Charger Pro 11kW 2022-10-26 18:32:25,345 Sending Heartbeat.req. 76542 76542 136542 60000 2022-10-26 18:32:25,438 Received message [3, "4", {"currentTime":"2022-10-26T16:3 (len 52) 2022-10-26 18:32:25,440 Received Heartbeat.conf for connector 0 2022-10-26 18:33:24,993 Sending Heartbeat.req. 136641 136641 196641 60000 2022-10-26 18:33:25,081 Received message [3, "5", {"currentTime":"2022-10-26T16:3 (len 52) 2022-10-26 18:33:25,082 Received Heartbeat.conf for connector 0 2022-10-26 18:34:16,602 IDLE -> NO_TAG 2022-10-26 18:34:16,602 Sending StatusNotification.req: Status Preparing for connector 1 2022-10-26 18:34:16,694 Received message [3, "6", {}] (len 12) 2022-10-26 18:34:16,695 Received StatusNotification.conf for connector 1 2022-10-26 18:34:17,022 Charger state changed from 0 to 1 2022-10-26 18:34:24,946 Sending Heartbeat.req. 196687 196687 256687 60000 2022-10-26 18:34:25,050 Received message [3, "7", {"currentTime":"2022-10-26T16:3 (len 52) 2022-10-26 18:34:25,051 Received Heartbeat.conf for connector 0 2022-10-26 18:34:51,173 Received message [2, "3c420004-530b-0035-3a45-8acd9a3e1bd (len 119) 2022-10-26 18:34:51,174 Received RemoteStartTransaction.req for connector 1 and tag Q9H5ZXVP2NL54FNRVGYQ 2022-10-26 18:34:51,184 Sending RemoteStartTransaction.conf Accepted 2022-10-26 18:34:51,200 NO_TAG -> TRANSACTION 2022-10-26 18:34:51,271 Sending StartTransaction.req at connector 1 for tag Q9H5ZXVP2NL54FNRVGYQ at 722.847 kWh. 2022-10-26 18:34:51,275 Sending StatusNotification.req: Status SuspendedEVSE for connector 1 2022-10-26 18:34:51,389 Received message [3, "8", {"idTagInfo":{"status":"Accepte (len 112) 2022-10-26 18:34:51,403 Sending StatusNotification.req: Status SuspendedEV for connector 1 2022-10-26 18:34:51,405 Received StartTransaction.conf for connector 1 2022-10-26 18:34:51,597 Received message [3, "9", {}] (len 12) 2022-10-26 18:34:51,597 Received StatusNotification.conf for connector 1 2022-10-26 18:34:51,707 Received message [3, "10", {}] (len 13) 2022-10-26 18:34:51,708 Received StatusNotification.conf for connector 1 2022-10-26 18:34:51,964 Charger state changed from 1 to 2 2022-10-26 18:34:52,017 Tracked start of charge. 2022-10-26 18:35:24,929 Sending Heartbeat.req. 256732 256732 316732 60000 2022-10-26 18:35:25,018 Received message [3, "11", {"currentTime":"2022-10-26T16: (len 53) 2022-10-26 18:35:25,019 Received Heartbeat.conf for connector 0 2022-10-26 18:36:09,356 Wrote last uptime to flash 2022-10-26 18:36:19,837 Sending StatusNotification.req: Status Charging for connector 1 2022-10-26 18:36:19,925 Received message [3, "12", {}] (len 13) 2022-10-26 18:36:19,926 Received StatusNotification.conf for connector 1 2022-10-26 18:36:20,008 Charger state changed from 2 to 3 2022-10-26 18:36:24,983 Sending Heartbeat.req. 316816 316816 376816 60000 2022-10-26 18:36:25,096 Received message [3, "13", {"currentTime":"2022-10-26T16: (len 53) 2022-10-26 18:36:25,097 Received Heartbeat.conf for connector 0 2022-10-26 18:36:29,198 httpd_ws_recv_frame failed to get frame len with -1 2022-10-26 18:37:24,919 Sending Heartbeat.req. 376860 376860 436860 60000 2022-10-26 18:37:25,011 Received message [3, "14", {"currentTime":"2022-10-26T16: (len 53) 2022-10-26 18:37:25,012 Received Heartbeat.conf for connector 0 2022-10-26 18:37:39,477 httpd_ws_recv_frame failed to get frame len with -1 2022-10-26 18:38:24,975 Sending Heartbeat.req. 436938 436938 496938 60000 2022-10-26 18:38:25,071 Received message [3, "15", {"currentTime":"2022-10-26T16: (len 53) 2022-10-26 18:38:25,072 Received Heartbeat.conf for connector 0 2022-10-26 18:39:00,707 httpd_ws_recv_frame failed to get frame len with -1 2022-10-26 18:39:24,954 Sending Heartbeat.req. 497001 497001 557001 60000 2022-10-26 18:39:25,056 Received message [3, "16", {"currentTime":"2022-10-26T16: (len 53) 2022-10-26 18:39:25,057 Received Heartbeat.conf for connector 0 2022-10-26 18:39:49,809 httpd_ws_recv_frame failed to get frame len with -1 2022-10-26 18:40:24,979 Sending Heartbeat.req. 557094 557094 617094 60000 2022-10-26 18:40:25,962 Received message [3, "17", {"currentTime":"2022-10-26T16: (len 53) 2022-10-26 18:40:25,963 Received Heartbeat.conf for connector 0 2022-10-26 18:41:06,471 httpd_ws_recv_frame failed to get frame len with -1 2022-10-26 18:41:25,010 Sending Heartbeat.req. 617099 617099 677099 60000 2022-10-26 18:41:25,109 Received message [3, "18", {"currentTime":"2022-10-26T16: (len 53) 2022-10-26 18:41:25,110 Received Heartbeat.conf for connector 0 2022-10-26 18:42:25,890 Sending Heartbeat.req. 677099 677099 737099 60000 2022-10-26 18:42:25,991 Received message [3, "19", {"currentTime":"2022-10-26T16: (len 53) 2022-10-26 18:42:25,992 Received Heartbeat.conf for connector 0 2022-10-26 18:43:13,782 httpd_ws_recv_frame failed to get frame len with -1 2022-10-26 18:43:25,973 Sending Heartbeat.req. 737185 737185 797185 60000 2022-10-26 18:43:26,076 Received message [3, "20", {"currentTime":"2022-10-26T16: (len 53) 2022-10-26 18:43:26,077 Received Heartbeat.conf for connector 0 2022-10-26 18:44:25,919 Sending Heartbeat.req. 797219 797219 857219 60000 2022-10-26 18:44:26,022 Received message [3, "21", {"currentTime":"2022-10-26T16: (len 53) 2022-10-26 18:44:26,023 Received Heartbeat.conf for connector 0 2022-10-26 18:44:58,764 httpd_ws_recv_frame failed to get frame len with -1 2022-10-26 18:45:25,940 Sending Heartbeat.req. 857273 857273 917273 60000 2022-10-26 18:45:26,032 Received message [3, "22", {"currentTime":"2022-10-26T16: (len 53) 2022-10-26 18:45:26,033 Received Heartbeat.conf for connector 0 2022-10-26 18:45:31,579 httpd_ws_recv_frame failed to get frame len with -1 2022-10-26 18:45:32,247 Received message [2, "0e890005-5be3-88d4-6a47-b4475a35fa3 (len 98) 2022-10-26 18:45:32,248 Received RemoteStopTransaction.req 2022-10-26 18:45:32,258 TRANSACTION -> FINISHING_UNLOCKED 2022-10-26 18:45:32,259 Attempting to send stop transaction but next stop reason is none! 2022-10-26 18:45:32,312 Sending StopTransaction.req at connector 1 for tag Q9H5ZXVP2NL54FNRVGYQ at 723.112 kWh. StopReason 11 2022-10-26 18:45:32,313 Sending RemoteStopTransaction.conf Accepted 2022-10-26 18:45:32,325 Unexpected EVSEState 4 while Connector is in state 10 2022-10-26 18:45:32,327 Sending StatusNotification.req: Status Finishing for connector 1 2022-10-26 18:45:32,430 Received message [3, "23", {"idTagInfo":{"status":"Accept (len 86) 2022-10-26 18:45:32,447 Unexpected EVSEState 4 while Connector is in state 10 2022-10-26 18:45:32,449 Received StopTransaction.conf for connector 1 2022-10-26 18:45:32,646 Received message [3, "24", {}] (len 13) 2022-10-26 18:45:32,647 Received StatusNotification.conf for connector 1 2022-10-26 18:45:32,694 Charger state changed from 3 to 1 2022-10-26 18:45:45,104 FINISHING_UNLOCKED -> IDLE 2022-10-26 18:45:45,104 Sending StatusNotification.req: Status Available for connector 1 2022-10-26 18:45:45,208 Received message [3, "25", {}] (len 13) 2022-10-26 18:45:45,208 Received StatusNotification.conf for connector 1 2022-10-26 18:45:45,695 Charger state changed from 1 to 0 2022-10-26 18:45:45,740 Tracked end of charge. 2022-10-26 18:46:25,903 Sending Heartbeat.req. 917281 917281 977281 60000 2022-10-26 18:46:26,004 Received message [3, "26", {"currentTime":"2022-10-26T16: (len 53) 2022-10-26 18:46:26,005 Received Heartbeat.conf for connector 0 2022-10-26 18:47:25,954 Sending Heartbeat.req. 977348 977348 1037348 60000 2022-10-26 18:47:26,045 Received message [3, "27", {"currentTime":"2022-10-26T16: (len 53) 2022-10-26 18:47:26,046 Received Heartbeat.conf for connector 0 Vielen Dank nochmals für eure immer tolle und zeitnahe Unterstützung! Gruß Thomas Zitieren
schnuppepampe Geschrieben October 27, 2022 at 13:10 Geschrieben October 27, 2022 at 13:10 @rtrbt Wäre es ggf. möglich nochmal eine aktualisierte Beta Firmware binary bereit zu stellen? Dann könnte ich deinen Fix gegen Home Assistant testen. Zitieren
rtrbt Geschrieben October 27, 2022 at 14:07 Autor Geschrieben October 27, 2022 at 14:07 Kommt in den nächsten Tagen. Dann hoffentlich gleich mit einem Prototypen des Smart-Charging-Profils. Damit kannst du dann per Home Assistant auch den Ladestrom setzen. Zitieren
poohnet Geschrieben October 27, 2022 at 18:21 Geschrieben October 27, 2022 at 18:21 'n Abend @rtrbt, heute Abend habe ich mal einen größeren Test gemacht und irgendwie scheint die OCPP-Integration jetzt kaputt zu sein 🙁 Zunächst hat eCarUp zwar den Status (frei, verbunden) korrekt erkannt, die Ladung konnte aber nicht gestartet werden. Auf der Statusseite stand bei "Fahrzeugstatus" nur "Ladebereit" und bei "Erlaubter Ladestrom" "6.000 A durch externe Steuerung" (das ist die Vorgabe von EVCC). Nach einem Neustart von WARP stand da dann "6.000 A durch externe Steuerung, OCPP", d. h. in den letzten 24 Stunden ist da anscheinend irgendein Status durcheinander gekommen. Leider habe ich versäumt, das Log vor dem Reboot zu sichern, die Ladung konnte aber korrekt gestartet werden. Während des Ladevorgangs hat eCarUp allerdings keine Verbrauchsdaten erhalten und nach knapp einer Stunde habe ich versucht, die Ladung über die App zu beenden. WARP hat die Ladung zwar beendet, aber trotz Trennen des Fahrzeugs zeigten sowohl die App als auch die Statusseite von eCarUp weiterhin einen aktiven Ladevorgang an. Hier die zugehörigen Logs: 2022-10-27 18:50:47,907 Sending Heartbeat.req. 5121096 5121096 5181096 60000 2022-10-27 18:50:48,004 Received message [3, "104", {"currentTime":"2022-10-27T16 (len 54) 2022-10-27 18:50:48,005 Received Heartbeat.conf for connector 0 2022-10-27 18:51:47,979 Sending Heartbeat.req. 5181184 5181184 5241184 60000 2022-10-27 18:51:48,073 Received message [3, "105", {"currentTime":"2022-10-27T16 (len 54) 2022-10-27 18:51:48,074 Received Heartbeat.conf for connector 0 2022-10-27 18:52:47,991 Sending Heartbeat.req. 5241281 5241281 5301281 60000 2022-10-27 18:52:48,083 Received message [3, "106", {"currentTime":"2022-10-27T16 (len 54) 2022-10-27 18:52:48,084 Received Heartbeat.conf for connector 0 2022-10-27 18:52:56,085 httpd_ws_recv_frame failed to get frame len with -1 2022-10-27 18:53:02,946 Received message [2, "01ed0005-08a5-6f36-fd40-bc08ac60a2a (len 98) 2022-10-27 18:53:02,947 Received RemoteStopTransaction.req 2022-10-27 18:53:02,957 TRANSACTION -> FINISHING_UNLOCKED 2022-10-27 18:53:02,958 Attempting to send stop transaction but next stop reason is none! 2022-10-27 18:53:03,020 Unexpected EVSEState 4 while Connector is in state 10 2022-10-27 18:53:03,021 Sending StatusNotification.req: Status Finishing for connector 1 2022-10-27 18:53:03,045 Sending StopTransaction.req at connector 1 for tag at 724.372 kWh. StopReason 11 2022-10-27 18:53:03,046 Sending RemoteStopTransaction.conf Accepted 2022-10-27 18:53:03,173 Received message [3, "107", {}] (len 14) 2022-10-27 18:53:03,174 Received StatusNotification.conf for connector 1 2022-10-27 18:53:03,228 Charger state changed from 3 to 1 2022-10-27 18:53:34,433 httpd_ws_recv_frame failed to get frame len with -1 2022-10-27 18:53:48,926 Sending Heartbeat.req. 5301312 5301312 5361312 60000 2022-10-27 18:54:08,939 Received message [2, "ffa70005-7c3e-0c8b-4646-afbadeb3bd6 (len 98) 2022-10-27 18:54:08,940 Received RemoteStopTransaction.req 2022-10-27 18:54:08,950 Sending RemoteStopTransaction.conf Rejected (unknown connector id) 2022-10-27 18:54:48,938 Sending Heartbeat.req. 5361323 5361323 5421323 60000 2022-10-27 18:54:58,065 httpd_ws_recv_frame failed to get frame len with -1 2022-10-27 18:55:10,252 FINISHING_UNLOCKED -> IDLE 2022-10-27 18:55:10,252 Sending StatusNotification.req: Status Available for connector 1 2022-10-27 18:55:10,271 Charger state changed from 1 to 0 2022-10-27 18:55:10,399 Tracked end of charge. 2022-10-27 18:55:47,799 Received message [2, "25f80005-7ecf-5792-d849-9de1773d94f (len 98) 2022-10-27 18:55:47,799 Received RemoteStopTransaction.req 2022-10-27 18:55:47,810 Sending RemoteStopTransaction.conf Rejected (unknown connector id) 2022-10-27 18:55:48,999 Sending Heartbeat.req. 5421384 5421384 5481384 60000 2022-10-27 18:56:49,082 Sending Heartbeat.req. 5481468 5481468 5541468 60000 2022-10-27 18:57:11,585 httpd_ws_recv_frame failed to get frame len with -1 2022-10-27 18:57:22,769 Received message [2, "35ec0005-870f-c876-8048-873033ee44f (len 98) 2022-10-27 18:57:22,770 Received RemoteStopTransaction.req 2022-10-27 18:57:22,780 Sending RemoteStopTransaction.conf Rejected (unknown connector id) 2022-10-27 18:57:49,127 Sending Heartbeat.req. 5541512 5541512 5601512 60000 2022-10-27 18:58:49,135 Sending Heartbeat.req. 5601520 5601520 5661520 60000 2022-10-27 18:59:49,199 Sending Heartbeat.req. 5661584 5661584 5721584 60000 2022-10-27 19:00:49,280 Sending Heartbeat.req. 5721665 5721665 5781665 60000 2022-10-27 19:01:21,991 httpd_ws_recv_frame failed to get frame len with -1 2022-10-27 19:01:49,312 Sending Heartbeat.req. 5781698 5781698 5841698 60000 2022-10-27 19:02:27,943 httpd_ws_recv_frame failed to get frame len with -1 2022-10-27 19:02:49,393 Sending Heartbeat.req. 5841778 5841778 5901778 60000 2022-10-27 19:03:49,422 Sending Heartbeat.req. 5901808 5901808 5961808 60000 2022-10-27 19:04:17,867 Received message [2, "84f20005-2483-7b6c-ed4f-ac31ec0372e (len 98) 2022-10-27 19:04:17,868 Received RemoteStopTransaction.req 2022-10-27 19:04:17,878 Sending RemoteStopTransaction.conf Rejected (unknown connector id) Auch ein Reboot hat zunächst keine Verbesserung gebracht: 7,457 Network connected. Stopping soft AP 7,492 MQTT: Connected to broker. 16,503 OCPP WEBSOCKET CONNECTED 16,599 Sending BootNotification.req. 16599 0 60000 60000 16,769 Received message [3, "1", {"status":"Accepted","currentTi (len 86) 16,770 Received BootNotification.conf for connector 0. Interval 60 2022-10-27 19:05:45,000 Sending StatusNotification.req: Status Available for charge point 2022-10-27 19:05:45,011 Sending StatusNotification.req: Status Available for connector 1 2022-10-27 19:05:45,053 Sending RESTORED StopTransaction.req for tag at 724.372 kWh. Reason 11 2022-10-27 19:05:50,724 NTP synchronized at 21,611! 2022-10-27 19:06:19,241 Received message [2, "05730005-c292-ed6c-3b41-ab8466e0405 (len 98) 2022-10-27 19:06:19,242 Received RemoteStopTransaction.req 2022-10-27 19:06:19,253 Sending RemoteStopTransaction.conf Rejected (unknown connector id) 2022-10-27 19:06:35,427 This is warp2-XSS (warp2-XSS), a WARP2 Charger Pro 11kW 2022-10-27 19:07:21,046 Received message [2, "0a6e0005-2535-627c-294f-be7c7cf77d5 (len 98) 2022-10-27 19:07:21,046 Received RemoteStopTransaction.req 2022-10-27 19:07:21,057 Sending RemoteStopTransaction.conf Rejected (unknown connector id) 2022-10-27 19:08:23,309 Received message [2, "efda0005-a43f-907a-734f-aafbbf68c7a (len 98) 2022-10-27 19:08:23,310 Received RemoteStopTransaction.req 2022-10-27 19:08:23,321 Sending RemoteStopTransaction.conf Rejected (unknown connector id) Nach etwa 15 Minuten hat eCarUp die Ladung dann als abgebrochen erkannt (ohne endgültige Verbrauchswerte). Seitdem baut WARP aber (auch trotz weiterem Reboot) keine korrekte OCPP-Kommunikation mehr auf - die ersten Boot- und Statusmeldungen werden zwar noch geschickt, es kommen aber keine Heartbeats mehr: 7,328 Network connected. Stopping soft AP 7,357 MQTT: Connected to broker. 16,525 OCPP WEBSOCKET CONNECTED 16,603 Sending BootNotification.req. 16603 0 60000 60000 16,732 Received message [3, "1", {"status":"Accepted","currentTi (len 86) 16,733 Received BootNotification.conf for connector 0. Interval 60 2022-10-27 19:24:16,000 Sending StatusNotification.req: Status Available for charge point 2022-10-27 19:24:16,011 Sending StatusNotification.req: Status Available for connector 1 2022-10-27 19:24:16,083 Sending RESTORED StopTransaction.req for tag at 724.372 kWh. Reason 11 2022-10-27 19:24:21,635 NTP synchronized at 22,277! 2022-10-27 19:25:05,687 This is warp2-XSS (warp2-XSS), a WARP2 Charger Pro 11kW 2022-10-27 19:29:00,664 Wrote last uptime to flash Kann man dieses "RESTORED StopTransaction.req"-Paket irgendwie löschen? Vielen Dank & Gruß Thomas Zitieren
rtrbt Geschrieben October 28, 2022 at 08:28 Autor Geschrieben October 28, 2022 at 08:28 Der Teil ist interessant: 2022-10-27 18:53:02,947 Received RemoteStopTransaction.req 2022-10-27 18:53:02,957 TRANSACTION -> FINISHING_UNLOCKED 2022-10-27 18:53:02,958 Attempting to send stop transaction but next stop reason is none! 2022-10-27 18:53:03,020 Unexpected EVSEState 4 while Connector is in state 10 2022-10-27 18:53:03,021 Sending StatusNotification.req: Status Finishing for connector 1 2022-10-27 18:53:03,045 Sending StopTransaction.req at connector 1 for tag at 724.372 kWh. StopReason 11 2022-10-27 18:53:03,046 Sending RemoteStopTransaction.conf Accepted 2022-10-27 18:53:03,173 Received message [3, "107", {}] (len 14) 2022-10-27 18:53:03,174 Received StatusNotification.conf for connector 1 Es sieht so aus als ob der Server das StopTransaction nicht akzeptiert. Deshalb wird die Nachricht nach Neustarts der Wallbox auch immer wieder geschickt. StopTransaction ist eine "transaction-related message" laut Spezifikation und solche Nachrichten 1. muss ich immer wieder schicken, bis der Server sie akzeptiert und 2. müssen die in der korrekten Reihenfolge übertragen werden, d.h. ich kann erst wieder ein StartTransaction schicken, wenn das Stop durchgegangen ist. Es gibt da eine Chance wieder in den "normalen" Zustand zu kommen, und zwar wenn der Server mehrfach meldet, dass er die Nachricht nicht parsen konnte. Dann darf ich sie nach X Versuchen wegwerfen. Ich muss das hier mal reproduzieren, in der Hoffnung, dass ich sehe warum der Server das StopTransaction ablehnt. Damit sollten wir rausbekommen was das Problem ist. Abgesehen davon baue ich mal einen Button ins Webinterface, damit du die persistierten Nachrichten löschen kannst. Zitieren
poohnet Geschrieben October 28, 2022 at 10:32 Geschrieben October 28, 2022 at 10:32 1 hour ago, rtrbt said: Abgesehen davon baue ich mal einen Button ins Webinterface, damit du die persistierten Nachrichten löschen kannst. Das ist sicherlich keine schlechte Idee (gerade jetzt in der Betaphase), denn selbst das Trennen der Stromversorgung hat nicht geholfen und die WARP wird bei eCarUp nun als "inaktiv" angezeigt. Baut ihr auch eine regelmäßige Übertragung des Zählerstands mit ein, z. B. alle fünf Minuten? Gruß Thomas Zitieren
rtrbt Geschrieben October 28, 2022 at 14:00 Autor Geschrieben October 28, 2022 at 14:00 3 hours ago, poohnet said: Das ist sicherlich keine schlechte Idee (gerade jetzt in der Betaphase), denn selbst das Trennen der Stromversorgung hat nicht geholfen und die WARP wird bei eCarUp nun als "inaktiv" angezeigt. Habe ich gepusht. Der große rote Knopf tritt einmal den kompletten OCPP-Zustand weg. Danach sollte es wieder funktionieren. Mich wundert es trotzdem, dass die Wallbox und der eCarUp server sich aus dem Zustand nicht befreien können: Nach dem Neustart wird der StopTransaction.req ja neu geschickt, danach müsste laut Spec der Server mit einer StopTransaction.conf antworten: Quote It is likely that The Central System applies sanity checks to the data contained in a StopTransaction.req it received. The outcome of such sanity checks SHOULD NOT ever cause the Central System to not respond with a StopTransaction.conf. Failing to respond with a StopTransaction.conf will only cause the Charge Point to try the same message again as specified in Error responses to transaction-related messages. (D.h. selbst wenn der Server damit nichts anfangen kann soll er das tun, damit eben nicht die Wallbox hängen bleibt) Die Situation kann auch auftreten, wenn die Wallbox ewig lang offline war und währenddessen mehrere komplette Transaktionen durchgeführt hat (was erlaubt ist, man kann z.B. einen Auth. Cache für die Tags haben). Das das RemoteStopTransaction rejected wird, ergibt Sinn, nur die Fehlermeldung ist falsch, da passte nicht die Connector-ID nicht, sondern die Transaktions-ID. Der Server sagt der Wallbox im Endeffekt "stoppe bitte Transaktion ABC123" und wenn es die nicht gibt muss die Wallbox mit rejected antworten. Lange Rede kurzer Sinn: gib Bescheid, falls du das nochmal auslösen kannst. Ich habe das Problem hier spontan nicht erzeugen können. 3 hours ago, poohnet said: Baut ihr auch eine regelmäßige Übertragung des Zählerstands mit ein, z. B. alle fünf Minuten? Gibt es rein technisch gesehen schon, habe aber noch nicht rausgefunden wie eCarUp das konfigurieren will. Zitieren
poohnet Geschrieben October 28, 2022 at 17:13 Geschrieben October 28, 2022 at 17:13 ARGH - irgendwie ist dieses OCPP-Paket sehr hartnäckig. Ich habe mehrfach den "großen roten Knopf" gedrückt, POSTs auf die URL /ocpp/reset abgesetzt (die auch mit 200 bestätigt werden) und selbstverständlich anschließend auch neugestartet... ... aber keine Chance, WARP schickt das Paket nach der Boot-Notification immer wieder 😡 7,966 Network connected. Stopping soft AP 7,996 MQTT: Connected to broker. 16,699 OCPP WEBSOCKET CONNECTED 16,786 Sending BootNotification.req. 16786 0 60000 60000 16,978 Received message [3, "1", {"status":"Accepted","currentTi (len 86) 16,979 Received BootNotification.conf for connector 0. Interval 60 2022-10-28 18:42:07,000 Sending StatusNotification.req: Status Available for charge point 2022-10-28 18:42:07,011 Sending StatusNotification.req: Status Available for connector 1 2022-10-28 18:42:07,028 Sending StatusNotification.req: Status Available for charge point 2022-10-28 18:42:07,133 Received message [3, "2", {}] (len 12) 2022-10-28 18:42:07,134 Received StatusNotification.conf for connector 0 2022-10-28 18:42:07,250 Sending RESTORED StopTransaction.req for tag at 724.372 kWh. Reason 11 2022-10-28 18:42:12,354 NTP synchronized at 21,601! 2022-10-28 18:42:57,249 This is warp2-XSS (warp2-XSS), a WARP2 Charger Pro 11kW Interessanterweise wird die Box dann für ein paar Minuten bei eCarUp als "Verfügbar" angezeigt und in dieser Zeit kann ich auch einen Ladevorgang starten. Leider ist mein Wagen erst morgen wieder da, daher konnte ich nicht prüfen, ob er tatsächlich auch lädt: 2022-10-28 18:48:55,243 Received message [2, "801e0004-57ba-a602-aa4a-a9f19683782 (len 119) 2022-10-28 18:48:55,244 Received RemoteStartTransaction.req for connector 1 and tag 6EFSK4CX9MUJPGN35Q9Q 2022-10-28 18:48:55,255 Sending RemoteStartTransaction.conf Accepted 2022-10-28 18:48:55,270 IDLE -> NO_PLUG 2022-10-28 18:48:55,339 Sending StatusNotification.req: Status Preparing for connector 1 2022-10-28 18:49:55,364 Cable timeout! 2022-10-28 18:49:55,364 NO_PLUG -> IDLE 2022-10-28 18:49:55,364 Sending StatusNotification.req: Status Available for connector 1 Allerdings hilft auch dieser neue Startversuch nicht, das OCPP-Paket loszuwerden, d. h. auch nach einem weiteren Reboot wird es wieder geschickt, sodass die Heartbeats weiterhin ausbleiben. Evtl. machen ich morgen mal einen Factory Reset... Gruß und ein schönes Wochenende Thomas Zitieren
poohnet Geschrieben October 28, 2022 at 19:12 Geschrieben October 28, 2022 at 19:12 So, ich bin nun einen Schritt weiter (am Abgrund). Ich habe den CommandHandler wie folgt umgebaut und festgestellt, dass die Datei "txn_msg" im Directory /ocpp nicht gelöscht werden kann: api.addCommand("ocpp/reset", &reset, {}, [](){ logger.printfln("Reset OCPP..."); int i = 0; File root = LittleFS.open("/ocpp"); File file; while (file = root.openNextFile()) { i++; String filename = file.path(); file.close(); logger.printfln("Found file '%s' ...", filename.c_str()); bool result = LittleFS.remove(filename); logger.printfln("File %s removed.", result ? "successfully" : "NOT"); } logger.printfln("No of files: %d", i); } Und das ist das Ergebnis: 20,128 Reset OCPP... 20,140 Found file '/ocpp/txn_msg' ... 20,144 File NOT removed. 20,155 No of files: 1 2022-10-28 20:41:34,310 NTP synchronized at 25,137! 2022-10-28 20:41:56,679 Reset OCPP... 2022-10-28 20:41:56,691 Found file '/ocpp/txn_msg' ... 2022-10-28 20:41:56,695 File NOT removed. 2022-10-28 20:41:56,706 No of files: 1 Hast du irgendeine Idee, warum die Datei nicht gelöscht werden kann? Ist sie vielleicht noch durch irgendetwas im Hintergrund geöffnet? Danke & Gruß Thomas Zitieren
poohnet Geschrieben October 29, 2022 at 12:11 Geschrieben October 29, 2022 at 12:11 (bearbeitet) So, habe gerade einen Factory Reset durchgeführt und nun funktioniert's (erstmal) wieder: 7,292 MQTT: Connected to broker. 16,601 OCPP WEBSOCKET CONNECTED 16,654 Sending BootNotification.req. 16654 0 60000 60000 16,812 Received message [3, "1", {"status":"Accepted","currentTi (len 86) 16,814 Received BootNotification.conf for connector 0. Interval 60 2022-10-29 14:06:44,000 Sending StatusNotification.req: Status Available for charge point 2022-10-29 14:06:44,011 Sending StatusNotification.req: Status Available for connector 1 2022-10-29 14:06:44,143 Received message [3, "2", {}] (len 12) 2022-10-29 14:06:44,144 Received StatusNotification.conf for connector 0 2022-10-29 14:06:44,341 Received message [3, "3", {}] (len 12) 2022-10-29 14:06:44,342 Received StatusNotification.conf for connector 1 2022-10-29 14:06:49,514 NTP synchronized at 22,316! 2022-10-29 14:07:33,579 This is warp2-XSS (warp2-XSS), a WARP2 Charger Pro 11kW 2022-10-29 14:07:43,927 Sending Heartbeat.req. 76729 76729 136729 60000 2022-10-29 14:07:44,022 Received message [3, "4", {"currentTime":"2022-10-29T12:0 (len 52) 2022-10-29 14:07:44,023 Received Heartbeat.conf for connector 0 Mal schau'n, ob ich das ursprüngliche Problem in den nächsten Tagen reproduziert bekomme. Bliebe nur die Frage offen, warum die Datei "/ocpp/txn_msg" nicht gelöscht werden konnte. 22 hours ago, rtrbt said: On 10/28/2022 at 12:32 PM, poohnet said: Baut ihr auch eine regelmäßige Übertragung des Zählerstands mit ein, z. B. alle fünf Minuten? Gibt es rein technisch gesehen schon, habe aber noch nicht rausgefunden wie eCarUp das konfigurieren will. Wie funktioniert die Übertragung des Zählerstands denn grundsätzlich? Wenn ich meinen Wagen unterwegs über die eCharge-App lade, dann erhalte ich auch regelmäßige Updates des Zählerstands... Gruß Thomas bearbeitet October 29, 2022 at 12:14 von poohnet Zitieren
rtrbt Geschrieben November 2, 2022 at 10:15 Autor Geschrieben November 2, 2022 at 10:15 On 10/28/2022 at 9:12 PM, poohnet said: Hast du irgendeine Idee, warum die Datei nicht gelöscht werden kann? Ist sie vielleicht noch durch irgendetwas im Hintergrund geöffnet? Nein ich habe nur Freitag Nachmittag Dinge programmiert und nicht richtig getestet. ocpp/txn_msg ist ein Ordner und die remove_directory-Funktion löscht nicht rekursiv Unterordner. Habe das gerade gefixt:https://github.com/Tinkerforge/esp32-firmware/commit/8d50f811239842b5a9df0dac577efca8a7027177 Zitieren
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.