Jump to content

Sollstrom senden per MQTT, PV-Überschussladen


mhspecial

Recommended Posts

Hallo zusammen,

seit etwa einem Monat habe ich nun zwei Warp Charger Smart und versuche mich am PV-Überschussladen.
Mein Problem, Sollstrom setzen und Status abrufen geht über HTTP super. Das Webinterface scheint allerdings
das Setzten von Sollstromwerten nicht so zu mögen und zeigt sobald der erste Stromwert gesendet wurde
"Verbindung zum Charger verloren". Manchmal hängt sich die Oberfläche auch ganz auf. (Neustart behebt die Probleme)

Ich dachte erst, dass die Aktualisierung im Intervall von 10s zu häufig ist. Ich habe dann 1A Toleranz eingebaut und
nur noch von Node Red Werte senden lassen, wenn sich wirklich die Einstrahlung nennenswert ändert.
Doch selbst mit wenigen Stromänderung besteht das Problem weiterhin.

Eine nächsten Versuch habe ich dann mit MQTT gestartet. Die Status-Nachrichten treffen bei mir ein, von daher
scheint meine Einstellung schonmal zu funktionieren. Leider übernehmen die Charger die gesendeten Stromwerte nicht.

Topic ist bei mir "warp/WB1/".
Ich sende die Stromwerte in mA  an "warp/WB1/evse/max_charging_current" im json-Format. 
Die Botschaft taucht auf beim Mitschreiben auf und andere MQTT-Geräte in meinem Netz (sofern man sie auf das Topic
lauschen lässt) bekommen die Botschaft ebenso. Auszug der Debug-Nachrichten als Screenshot anbei.

Wo liegt der Fehler? Letzter Firmware-Stand war schon bei der Auslieferung drauf.

MQTT_WB1.PNG

Link zu diesem Kommentar
Share on other sites

Moin,

20 hours ago, mhspecial said:

Ich sende die Stromwerte in mA  an "warp/WB1/evse/max_charging_current" im json-Format. 

Du musst den Stromwert an warp/WB1/evse/current_limit schicken. evse/max_charging_current kann nur gelesen werden. Prinzipiell sind die Topics, auf die die Wallbox publisht und die, auf denen sie subscribt ist, immer getrennt. Ansonsten würde die Box permanent Nachrichten an sich selbst schicken.

Das erklärt aber noch nicht dein Problem mit der HTTP-API/dem Webinterface. Setzt du den Strom per API oder direkt über das Webinterface? und wenn ersteres: Welcher Payload mit welcher Methode (PUT/POST/...) an welche URL? Ich würde das hier gerne mal gegentesten, abschmieren sollte die Box nämlich auf keinen Fall. Funktionieren sollte es, wenn du den Payload

{"current":8000}

an [dein host]/evse/current_limit mit PUT oder POST schickst und den Content-Type-Header setzt:

"Content-Type: application/json"

 

Link zu diesem Kommentar
Share on other sites

Hallo,

vielen Dank, current_limit war der Fehler 😅. Muss ich wohl bei lesen der API-Doku durcheinander gebracht haben.

Was den Sollstrom setzen über http angeht habe ich die Einstellungen bei node-red mal angefügt.

Gefüttert wird der "http request" mit:

msg.headers = {};
msg.headers['content-type'] = 'application/json';
msg.payload = util.format("{\"current\":%s}",I_Charge_mA.toFixed(0));

Gesendet habe ich den Sollstrom im Intervall von 10s. Das hat ein paar Tage sehr gut funktioniert.
Ich habe das Webinterface kaum genutzt, daher ist mir es zunächst nicht aufgefallen. Wie gesagt, es
reichte bei mir ein paar Werte zu setzen und das Webinterface zeigt immer wieder Verbindung verloren. 

Als ich das Laden mal gezielt beenden wollte, reagierte die Weboberfläche nicht darauf.
Die Neustartfunktion über das Menü zur Firmware-Aktualisierung funktionierte und danach 
war Starten und Stoppen wieder möglich.

node-red_1.PNG

Link zu diesem Kommentar
Share on other sites

Hm das sieht soweit gut aus. Ich versuche gerade, das Problem hier zu reproduzieren, aber es funktioniert soweit alles. Kannst du mir einen Minimal-Flow für Node-RED bauen, der das Problem erzeugt? Der angehangene Flow reicht scheinbar nicht.

Außerdem helfen eventuell Debug-Report und Ereignis-Log.

Funktioniert es über MQTT sinnvoll? Welche Version von Node-RED hast du laufen?

flows.json

Link zu diesem Kommentar
Share on other sites

Morgen,

Minimalbeispiel:

der Flow

[{"id":"8c86b9a0.2faf18","type":"tab","label":"Flow 3","disabled":false,"info":""},{"id":"22ab3c02.122044","type":"function","z":"8c86b9a0.2faf18","name":"","func":"var msg_out = {};\nvar I_Charge_mA = msg.payload;\n\n\nmsg_out.headers = {};\nmsg_out.headers['content-type'] = 'application/json';\nmsg_out.payload = util.format(\"{\\\"current\\\":%s}\",I_Charge_mA.toFixed(0));\n\nreturn msg_out;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":550,"y":160,"wires":[["3ee8c2fa.f435be","2b3d32a.79ccece"]]},{"id":"1b5685df.c6b98a","type":"inject","z":"8c86b9a0.2faf18","name":"","props":[{"p":"payload"}],"repeat":"10","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"10000","payloadType":"num","x":380,"y":160,"wires":[["22ab3c02.122044"]]},{"id":"3ee8c2fa.f435be","type":"http request","z":"8c86b9a0.2faf18","name":"Strom setzen WB Dach","method":"PUT","ret":"txt","paytoqs":"query","url":"http://192.168.2.172/evse/current_limit","tls":"","persist":false,"proxy":"","authType":"","x":770,"y":160,"wires":[[]]},{"id":"2b3d32a.79ccece","type":"debug","z":"8c86b9a0.2faf18","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":740,"y":240,"wires":[]}]

Node-Red Version 1.3.5.

Der Fehler scheint mal unmittelbar und mal erst nach einigen gesendeten Werten aufzutreten. Das Ergebnis ist von heute morgen und lief mit dem Minimalbeispiel von gestern 22 Uhr bis heute morgen 6 Uhr. Absturz kam bei mir erst einmal nach einigen Tagen vor...

Warp_Fehler.thumb.png.902b91e5b2b0a8398d4d9213b0b42c3b.png

 

bearbeitet von mhspecial
Link zu diesem Kommentar
Share on other sites

Nachtrag, gerade von der Arbeit gekommen und Auto angesteckt. Per Knopf laden gestartet, Fahrzeug lädt auch.
Nach Webinterface allerdings keine Änderung der Anzeige. Verbindung zur Wallbox verloren, laut Webinterface Anzeige
und über http-Abruf permanent nur Fahrzeug verbunden. Nach Neustart über Webinterface allerdings alles wieder ok.

MQTT bin ich gerade noch nicht zu gekommen. Probiere ich noch aus.

Link zu diesem Kommentar
Share on other sites

Hm ich bin mir unsicher, ob einfach die Detektion dass die Verbindung verloren gegangen ist nicht funktioniert, oder ob der ESP, der das Webinterface hostet, wirklich aus dem WLAN fliegt oder sogar neustartet. Was mich wundert ist, dass du es über den Neustart-Button wiederbeleben kannst, das spräche ja eher dafür, dass der ESP erreichbar ist, aber aus irgendeinem Grund das Javascript denkt, das er das nicht ist.

Schick mal bitte einen Debug-Report und ein Ereignis-Log (beides unter System->Ereignis-Log oder http://192.168.2.172/debug_report bzw. http://192.168.2.172/event_log falls das Webinterface hängt) wenn du das Problem gerade erzeugt hast und noch nicht den Neustart-Knopf gedrückt hast.

 

Link zu diesem Kommentar
Share on other sites

  • 3 weeks later...
  • 4 weeks later...

genau das gleiche Problem habe ich auch die box reagiert nicht mehr. ich habe dass Gefühl das wenn die box zu viele http request bekommt sich i wann aufhängt man kann das seht gut sehen im web interface bei letzten ladezustandswechsel. dort läuft die zeit nicht mehr weiter.

ich habe jetzt erstmal ein Firmware update gemacht.

gibt es eine Beschränkung wievielte anfragen man pro gewisse seit an die box senden kann?

Link zu diesem Kommentar
Share on other sites

Entschuldigt, ich hatte etwas viel um die Ohren und habe mich etwas abgeseilt.
Erst einmal konnte ich nicht erkennen, ob die Anzahl pro Zeit einen Einfluss hat. Es genügte in meinem Fall das Minimalbeispiel eine kurze Zeit laufen zu lassen.

Ich habe inzwischen auf MQTT umgestellt und lange Zeit gar keine Probleme gehabt. Die WB hat sich auch mal aufgehängt, aber eben erst nach zwei Monaten problemlosen Betriebs. Leider habe ich keine Logs dazu gespeichert.

Ansonsten kann ich wirklich nicht meckern...

Link zu diesem Kommentar
Share on other sites

22 hours ago, Dosepower said:

gibt es eine Beschränkung wievielte anfragen man pro gewisse seit an die box senden kann?

Nicht direkt. Der Webserver auf der Box hat aber einige Stabilitätsprobleme, deshalb hat die Entwicklung des Lastmanagements so lange gedauert. Ich habe dann die Implementierung komplett ausgetauscht gegen eine, die direkt die Espressif-APIs benutzt und deutlich stabiler läuft. Wenn du das Problem reproduzierbar erzeugen kannst, teste mal bitte, ob es mit der Lastmanagement-Beta verschwindet.

Link zu diesem Kommentar
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...