-
Notifications
You must be signed in to change notification settings - Fork 25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Growatt SPH3000-RS485-ESP32-MQTT #96
Comments
PS This makes the file easier to read. I have now tested it with a HW-0519 board. Unfortunately with the same result as already described. It only works for a certain time. |
Aus den Logs kann ich leider keinen Fehler herauslesen, sieht alles normal aus. Ich finde auch kein Hinweis auf einen MQTT dis- oder reconnect. |
Hallo Tobias,
wenn die MQTT-Verbindung stirbt läuft ja die RS485-Verbindung weiter, das sieht man im HTerm. Um MQTT wieder zum Laufen zu bringen trennen ich kurz die RS485 und nach kurzer Zeit sind alle Werte für unbestimmte Zeit wieder da.
Nach einem Neustart des ESP32 läuft er nicht an, erst wenn ich die RS485 wieder kurz trenne.
Ich hab jetzt mal einen anderen Wandler benutzt, leider ohne Verbesserung.
Könnte es sein das der ESP32 mit der Live Datatransmission von 5sec überfordert ist?
Ich hatte sie jetzt mal auf 30sec gestellt. Hat aber auch nix gebracht.
Gruß Eckhard
Update 12:00Uhr
anderen Wandler und anderes ESP32 verwendet - gleiches Verhalten wie beschrieben.
Am 28.11.2024 07:08 schrieb tobiasfaust
Aus den Logs kann ich leider keinen Fehler herauslesen, sieht alles normal aus. Ich finde auch kein Hinweis auf einen MQTT dis- oder reconnect.
Wie sieht es aus wenn RS485 steckt und der ESP neu startet? Es gibt eigentlich keine Abhängigkeit zwischen WLAN/MQTT und der RS485 Verbindung
|
nein, der ESP ist nicht überfordert, bei mir läuft es im 3sec Intervall sauber seit Monaten durch.
Ich habe keine Ahnung was bei dir herum zickt :( |
die nenne sich ESP32-WROOM-32. ich habe zwei verschiedene davon. Das werde ich mal probieren, leider will gerade mein HTerm nicht mehr connecten auf dem Laptop. Einmal abgestürzt und nun spinnt das HTerm. Ich weis auch nicht was da zickt |
hängen bei dir "Wlan Repeater" zwischen Router und Modbus Modul? Ich benutze ebenalls den ESP32-WROOM-32 (ESP32) seit über 1,5 Jahren ohne Probleme. |
ja es ist ein Repeater dazwischen. |
Probier mal testweise den Test.mosquitto.org zu benutzen |
Hm, das mit Test.mosquitto.org haut bei mir nicht hin, hab ich noch nie benutzt. hier noch mal die LOGs |
Der esp stürzt ein paar mal ab bevor er läuft. Häng mal ein stärkeres Netzteil dran. |
Die Netzteile haben alle mindestens 3A bei 5V. Es will einfach nicht durchlaufen. |
Ich habe ein Vermutung, kannst du den esp mal ohne Repeater direkt in die Nähe deines AP bringen? Ggf. Die RS-485 Verbindung über ein Netzwerkkabel verlängern. Es kann sein das der Webserver starten will, die Wifi Verbindung aber noch nicht steht. |
Hallo Tobias, Gruß Eckhard |
Hier findest du eine Anleitung: https://github.com/tobiasfaust/SolaxModbusGateway/wiki/adding-new-inverters-or-items#find-out-live-data-get-new-items Probier mal bitte die neueste Development version über den web-installer: https://tobiasfaust.github.io/SolaxModbusGateway/ Anscheinend liefert sein WR irgendetwas zurück was den ESP zum Absturz bringt, deshalb brauche ich ein Log mit Loglevel 4 zum Zeitpunkt des Absturzes um die Antworten des WR zu sehen. |
Deine Anleitung hab ich schon gelesen. Für mich noch etwas verwirrend. Das Release: 3.3.0 läuft jetzt auf einem ESP32. schauen wir mal obs das ist. Welchen Log meinst Du? Den über ESP32-USB mit HTerm? |
Ja, mit hterm. |
Dazu muss ich erstmal erfolgreich zusätzliche Werte hinzu gefügt haben, dann ist ein anpassen der Anleitung möglich. Es geht schon los, dass ich fünf verschiedene Datenbankschemen und Register habe. Welches passt zu meinem neuen WR. Bis jetzt sieht es aber schon mal besser aus, Wie bekomme ich die Datei "Growatt-SPH-neu.json" und Andere zum Test in den ESP32? Im ESP32 lässt sich keine Datei ändern. |
Hallo Tobias, ich habe deinen neuen Installer benutzt, funktioniert super. Meine ESP32ger laufen inzwischen mit der neuen Version bis jetzt ohne Ausfälle. Gruß |
Hmmm, jetzt hab ich dich zu getextet, tut mit leid. Eine Frage habe ich noch.
Ich hab die Inverter SerialNumber im Status nur einmal gesehen und weis aber nicht wie so. Eckhard |
In der files section kannst du natürlich auch anpassen . dein letzter Post kann man mit den examples machen |
Wo mache ich das examples? |
Zur Info: |
Hast du nicht noch eine Idee zum den nicht vorhandenen Raw Data of ID-Data? |
Moin ! Das Schlüsselwort für mich fiel letzte Woche: „fhem“. Diese Heimautomatisierung nutze ich auch (und gern), Probleme wie die hier beschriebenen hatte ich auch. Grüße, |
Hallo Stefan, Gruß |
Hallo Eckhard! Das hatte ich vergessen, zu schreiben… tatsächlich auch einen Growatt, hier den SPH10000TL. Ich hab mich reichlich lang mit dessen Modbus-Schnittstelle auseinandergesetzt. Laut mehrerer Quellen soll die Spezifikation V1.24 am vollständigsten sein, bei mir passt die auf mein 2024er Gerät, ich verwende 40 Datenpunkte von den ca.70, die ich definiert habe - läuft super. Gruß, |
Ich habe beide Growatt .json(MOD und SPH) benutzt und daraus meinen Datensatz erstellt. Mein WR hatte von beiden was und ich weiß noch nicht welche Spezifikation passt. Ich habe auch eine V1.24 und bin da noch am durchfitzen. Ist alles noch neu für mich. Woher hast du deine Growatt Modbus Doku? |
Dazu muss man mit seinem eigenen Github-Account angemeldet sein, von meinem Development Branch einen Fork ziehen. Ein Fork ist praktisch nur eine Repository Kopie im eigenen account. Danach in seinem eigenen Account in dem Fork die Anpassungen machen. Anschließend über die eigene Github Website einen PullRequest erstellen. |
Damit die ID-Daten wieder ausgelesen werden können, muss man die abzufragenden Register in ein Array packen. @tobiasfaust wenn du möchtest kann ich das gerne anpassen und pushen |
Ich habe mal 2 Buttons eingefügt. Der erste schaltet entweder alle ON oder OFF, der zweite ist ein echter "Toggle" In der ModbusConfig war der Schalter zur (De-)Aktivierung der Set commands schon immer enthalten. Nur hat das Setzen des Buttons jetzt eine größere Auswirkung bekommen. @Lazgar hat die Set Commands in die ItemConfigSeite integriert und je nach globaler Einstellung in der ModbusConfig Seite werden diese nun angezeigt, oder eben nicht. Unterbrechungen in der MQTT Übertragung sind bisher keine bekannt. I.d.R. sind diese auf eine schwierige WLAN Verbindung zurückzuführen, oder der MQTT Server beendet die Verbindung |
Ich habe die Updates noch mal gemacht und seit dem läuft auch MQTT Übertragung wieder. Wo sind die zwei Buttons die du gemacht hast? |
habe gerade festgestellt das die Änderungen mit den beiden ToggleButtons nicht ins Repo eingecheckt wurde. Habe ich jetzt mit Build 118 nachgeholt. Das "Stottern" kann ich leider nicht nachvollziehen |
stell ich mich zu doof an? |
Die Buttons sind eigentlich in der Überschrift, da wo „Active“ steht. |
Den Browser Cache hast du vorher geleert? |
Ja, hab ich gemacht. |
Also jetzt sind die Buttons da. |
nein, nix gemacht. Bei mir läuft es auch absolut stabil, keine Aussetzer seit einer Woche. |
Ist ja komisch , ich weiß auch nicht warum die Buttons nun da sind. Mit dem Bedienen aus Fhem heraus hab ich noch Probleeme. |
* update ElegantOTA, fix custom firmware upload * Update modbus.cpp * ID Daten per MQTT * Create Solax-X3-PRO.json * Update Solax-X3.json * fix null-termination of string handling (#96) * some additional infos per mqtt with debuglevel > 4 some additional infos per mqtt with debuglevel > 4 - memory in kB - uptime in sec - wifi ssid * Update mqtt.cpp * Update mqtt.cpp * Update modbus.cpp * support for OpenWB 2.0 Api (#100) * update * remove unused buffer and improve clarity * Update modbus.cpp * minor fixes * add optional WIFISSID/WIFIPASSWORD * change ESP32-S2 board * adjust openWB topics * fix * priorize requesting ID Data higher than LiveData (#76) * update WiFi credentials in platformio.ini to use fixed values * some fixes * Update modbus.cpp * Update modbus.cpp * delete unnecessary newlines, fix serial-pins * Update modbus.cpp * Update modbus.cpp * Update modbus.cpp * use checkbox for selection instead of radiobuttons * Revert "use checkbox for selection instead of radiobuttons" This reverts commit 04f39f9. * prevent watchdog timer event * update * Update modbus.cpp * add TotalEnergyPV for GroWatt (#100) * bugfix: fix esp crash for /getitems if using an huge register table (#76) * use internal logging method * fix register id definition (#113) * remove unnecessary webserver in mqtt class * remove unnecessary webserver in mqtt class * handle out-of-range crash (#96 #113) * correct unit from kVarh to kWh in Deye_SUN_SG04LP3.json * add bitwise mappings * datatype "binary" now available for json register definitions (PR #115) * fix openwb topic (#114) * fix array access direction for datatype binary (PR #115) * fix: 1 item less than map size, because last item is default value * fix: resolve CORS issue when downloading a stable release * fix: update button elements for actions and add confirmation dialogs (Sicherheitsabfrage beim Reset #120) * add confirmation dialog for ESP reset or Wifi-Reset (#120) * feature: add confirmation dialog for file deletion * Enhance WebSocket and JSON handling with new features (#126) * Visualisierung der Settopics (#127) * Visualisierung der Settopics (#124) * Update modbusitemconfig.html * Update modbus.cpp * Update modbus.cpp * Update modbus.h * Update modbus.h * Update modbus.cpp * Update modbus.cpp * Update modbus.h * Update modbus.h * Update modbus.h * Update modbus.cpp * Update modbus.cpp * Update MyWebServer.cpp * Update MyWebServer.h * Update modbus.cpp * Update modbus.h * Update modbus.h * Update MyWebServer.cpp * Update MyWebServer.cpp * Update MyWebServer.cpp * Update MyWebServer.cpp * Update MyWebServer.cpp * Update modbusitemconfig.js * Update modbusitemconfig.js * Update MyWebServer.cpp * Update modbus.cpp * Update modbus.h * Update modbus.h * Update modbusitemconfig.html * Update modbus.cpp * Update modbus.cpp * Update modbus.cpp * Update modbus.cpp * Update modbus.cpp * Update modbus.cpp * Update modbus.cpp * Update modbus.cpp * Update modbus.cpp * Update modbus.cpp * Update modbusitemconfig.html * Update modbus.cpp * Update modbus.cpp * Update modbus.cpp * Update modbus.cpp * Update modbus.cpp * Update modbus.cpp * Update modbus.cpp * Update modbus.cpp * Update modbus.cpp * Update modbus.cpp * Update modbus.h * Update modbus.cpp * Update modbus.h * Update modbusitemconfig.html * update * refactor: initialize subscription fields with default values and clean up comments * refactor: remove unnecessary headers from handleGetSetterJson response * fix per cpplint * fix: update WebSocket connection to use dynamic origin * change setter handling to regfile * refactor: update setter handling and improve JSON response structure * fix: debugmode with Solax-X1 data, fix SetActiveStatus handling * refactor: change Setters type to setter_t and tidy up code * add setter info-box, remove /getregister, add setter mapping info to WebUI * refactor: update info descriptions in Solax-X1 JSON and clean up unused server routes --------- Co-authored-by: Lazgar <[email protected]> * add "newUpdate available" info in WebUI header (#129) * Update Solax-X3.json (#128) * fix: correct update availability message in WebUI * refactor: update subscription field to MQTT topic and enhance tooltip handling * fix: normalize case for mapped values in modbus mapping function * Correct bootloader offsets as not all ESP32 variants use 0x1000 (#130) * add toggle buttons at ModbusItems WebUI to change all items at once (#96) * add Growatt-SPH-V124 register file (thanks to @StefanNouza) (#109) * add support for additional file types in BuildAndDeploy workflow * add toggle functionality for Modbus items * add titles to toggle icons for better accessibility in Modbus item configuration --------- Co-authored-by: Lazgar <[email protected]> Co-authored-by: Naomi Rennie-Waldock <[email protected]>
Moin @eckhard58 , hallo @tobiasfaust ! Heute habe ich meine vorbereitete Growatt-V12x.json mal testen können - bei mir klappt alles. Verbesserungen sind:
@eckhard58 : magst Du bitte damit mal einen Test bei Dir machen, ob die Werte bei Dir passen? @tobiasfaust : kann ich Set-Befehle ohne Parameter nutzen, d.h. einen Set-Befehl „RemoteOn“ und einen Set-Befehl „RemoteOff“ definieren, die im Hexstring identisch sind bis auf die letzten 2 Byte, die im Befehl fest mit 0x0000 bzw 0x0001 definiert sind? Oder hängt das Set-Kommando immer einen 2Byte-Parameter an? Getrennte Kommandos fände ich syntaktisch schöner („RemoteOn“, „RemoteOff“) als ein Kommando mit Schaltparameter („RemoteOn 1“ für ein, „RemoteOn 0“ für aus). Wenn der Parameter zwangsweise ist, muß ich nochmal an meine Setter ran… Hier erstmal die JSON: |
Hi Stefan, |
Hallo Eckhard, hallo Tobias! Die Growatt-JSON habe ich nochmal ergänzt:
Ob mit dieser JSON auch andere Energiemonitor-Typen abfragbar sind (weil der WR evtl. "übersetzt"), weiß ich nicht. Die Version heißt nun "Growatt-SPH-V12x-SDR", also Wechselrichter Growatt SPH, Version 1.20 oder 1.24, mit (oder ohne) Energiemonitor SDR. Mir fällt nun wirklich nichts mehr ein - wenn nicht noch Probleme / Wünsche auftauchen, betrachte ich diese Version als final. @eckhard58 : gerne einmal testen und zurückmelden, ob sie auch bei Dir arbeitet. |
Hallo Stefan, |
Könntest du das JSON auch einmal ohne SDR bereitstellen? Für die User die kein SDR haben ;) |
Guten Morgen in die Runde Seit heute morgen läuft die Json von Stefan bei mit und ich kann fast keine Fehler entdecken. |
schau mal bitte ob du auf der esp seriellen Konsole Fehler entdeckst. Erstmal bei LogLevel 3, falls nichts ungewöhnliches gezeigt wird, stell auf loglevel 4. Parallel dazu beobachte mal die Browser Konsole ob auf JavaScript Ebene auch Fehler geloggt werden. Eventuell ist auch das Intervall für diese Menge an Items zu klein, stell mal auf 10min |
Den Intervall lasse ich schon immer mit 15s laufen. Was ich allerdings vorher noch einmal gemacht habe, ist ein wiederhohltes Update der Firmware. |
Zu Steffan mal gesagt, |
Wenn du das Browserfenster nicht mehr im Vordergrund hast, oder das Fenster wechselt, stoppt die Aktualisierung im Browser. Via MQTT werden natürlich weiter aktuellen Daten gesendet und auch sauber in FHEM ankommen. Ich kann mir nicht erklären warum es bei dir am Anfang holpert. Bzgl. L2/L3: einfach die Items nicht aktivieren. Dafür gibt es extra den Active Schalter. @StefanNouza |
Ja das meine und mache ich auch so. Wollte nur sagen dass mein Growatt nicht, aber der Smartmeter die Daten her gibt. |
Moin! Schön, daß andere EnergyMeter auch klappen - und Dir, @eckhard58 auch Dank, daß Du so schnell testen konntest. Deinen Anwendungsfall - 3phasiges Netz bei 1phasigem WR - hatte ich garnicht gesehen, ist aber sicherlich interessant für Dich. Da der Wechselrichter die EnergyMeter-Werte in seinem Registersatz bereitstellt, sollte die „große“ JSON auch ohne EM arbeiten, die Register bleiben dann vermutlich auf 0. Da @tobiasfaust gerne wenige, umfassende JSONs hätte, habe ich alle Fälle zusammengefasst. Gerne stelle ich die nocheinmal mit und ohne EM getrennt zur Verfügung - möchtest Du beide, Tobias? Zum „binary“: hatte ich gesehen, ist auch der elegantere und bessere Weg. Dazu zwei Fragen
Mit der nächsten Version warte ich noch auf Deine Antwort, zu viele Stände machen es auch nicht schöner und die aktuelle ist ja soweit fehlerfrei… |
@StefanNouza , bis zu 32 Stellen sind aktuell benutzbar. SolaxModbusGateway/src/modbus.cpp Line 955 in 90e0f69
Ein zweites json ohne EM macht auch nur Sinn wenn man mindestens ein Request sparen kann. |
Hallo Stefan, WwSollT:44,46,48,50,52,54,56,58,60 ems-esp/boiler {"cmd":"dhw/seltemp", "data":$EVTPART1} |
Moin @eckhard58 ! Die Setter habe ich selbst noch nicht getestet, Du findest sie unten in der JSON:
im Prinzip sieht das schon ganz gut aus, Cmd ist „setUPS“, Data ist aber „Disable“ bzw. „Enable“. |
Moin Stefan, das habe ich nun alles durchprobiert, UPS3:uzsuSelect,‘Disable’,‘Enable’ home/Growatt_0/set/setUPS $EVTPART1 leider funktioniert keines der SET-Befehle. Mal noch eine andere Frage zum Growatt WR. Ich hab letzte Woche schon mal eine Anfrage an Growatt gesendet ... Antwort kann dauern. Schönes Wochenende |
Good morning Tobias,
i managed to register here on GitHub. I'm not very good at English.
I use the ESP32 on a Growatt SPH3000. (Year of manufacture 10/24, ShineWiFi is now on the USB port)
The connection is only established if I disconnect the RS485 connection and reconnect it after the MQTT connection has been established.
Here is the desired HTerm output from the ESP32
mit WR.txt
ohne WR.txt
If I see it correctly, there are a few ERRORs
Regards, Eckhard
The text was updated successfully, but these errors were encountered: