Da ich gerade den Raspberry Pi mit Venus OS für meinen Kumpel neu aufgesetzt habe, musste ich seinen SENEC-Speicher auch wieder frisch einbinden. Hierfür habe ich einen NodeRED-Flow gebaut, den man super einfach in maximal fünf Minuten selbst nutzen kann, um alle relevanten Messwerte seiner SENEC-Anlage auslesen zu können.
Wie das im Detail klappt – inkl. Download des im Video gezeigten NodeRED-Flows – ist Inhalt des nachfolgenden Blogpost.
Downloads
NodeRED Flow Senec Integration (417 Downloads)UPDATE VOM 10.09.2023:
SENEC hat die letzten Tage mit der neuen Firmware Revision MCU 3825 nach und nach die Abfragemöglichkeit von http auf https umgestellt. Der im Video gezeigte Befehl muss deshalb angepasst werden, damit die Daten weiterhin korrekt abgerufen werden können:
Vorher mit http:
curl http://192.168.2.101/lala.cgi...
Jetzt mit https:
curl -k https://192.168.2.101/lala.cgi...
Und hier nochmal der komplette Befehl, der bei meinem Kumpel nach der Umstellung sofort funktioniert hat, um die wichtigsten Daten abzurufen:
curl -k https://192.168.2.101/lala.cgi -H 'Content-Type: application/json' -d '{"ENERGY":{"GUI_HOUSE_POW":"","GUI_GRID_POW":"","GUI_INVERTER_POWER":"","GUI_BAT_DATA_POWER":"","GUI_BAT_DATA_FUEL_CHARGE":"","STAT_STATE":""},"STATISTIC":{"LIVE_GRID_IMPORT":""},"PM1OBJ1":{"P_AC":""}}'
UPDATE ENDE
Du willst in die Direktvermarktung? Kein Problem! Schau dir Lumenaza an... (Affiliate-Link)
25 Kommentare
War zwar schon auf YT, aber hier noch mal etwas mehr.
Habe mir den Flow unter Home Assistant mal angeschaut. Die integration dort aktalisiert standardmäßig nur alle 60 sec und wenn man den Zyklus verkürzt kommt es schon deutlich über deiner Frequenz von 1 Hz zu Abbrüchen.
Also für einige Dinge sehr interessant.
Ich würde gerne bei meinem Senec (Li2.1) den Lüfterbetrieb tracken und ggf. auch den Einsatz verstärken. Im (passwortgeschützten) Installateurmodus ist der Lüfter als Tick-Box vorhanden und kann manuell eingeschaltet werden.
Hast du ne Idee wie man mit den Zugangsdaten unter NR da ran käme?
Hi Klaus,
danke auch für deinen Input.
Ich habe mich mit der SENEC-Thematik nur paar Minuten auseinandergesetzt, bis es eben so lief, wie im Video gezeigt. So läuft es jetzt schon mehr als ein halbes Jahr ohne jeden Ausfall. Mal sehen, ob ich das bei meinem Kumpel überhaupt noch erweitere, denn aktuell kommen alle Daten im Sekundentakt an, die er braucht zwecks Steuerung seines Victron-Systems.
Aber vielleicht wissen ja andere mehr, die hier mitlesen…
Viele Grüße
Jörg
Danke für ein mal wieder interessantes Video. Ich weiß nicht genau, wie die Rohdaten in JSON da aussehen, aber es gibt hier sehr viele Variablen, die man abfragen kann. Etwas Doku gibt es hier:
https://documenter.getpostman.com/view/10329335/UVCB9ihW#intro
https://documenter.getpostman.com/view/10329335/UVCB9ihZ
Man kann eigentlich Senec auch direkt abfragen, aber das ändert sich offensichtlich immer mal:
http://senec-ip/Vars.html
Letztlich eine der umfangreichsten Varianten steckt in www.solaranzeige.de.
Läuft auch auf einem Raspi (allerdings Vorsicht mit der SD-Karte, da wird viel geschrieben), Visualisierung in Grafana und Historie in InfluxDB. Das ist nicht nur für Senec, sondern auch viele andere Systeme möglich.
Geil, danke für den ganzen Input Nino!
Viele Grüße
Jörg
Hallo Jörg
ich hole mir z.B. die Senec-Daten aus dem ioBroker Adapter “Senec”
https://github.com/nobl/ioBroker.senec
Da bei mir im ioBroker auch ein Node Red Adapter läuft, ist es in meinen Fall recht einfach: Ich hol mir nen ioBroker InputNode und wähl mir ein Objekt von den Hunderten “Senecs” aus und verwerte es in Node Red weiter.
Grundsätzlich ist bei mir der ioBroker die “Hauptzentrale”, alles Weitere läuft im ioBroker als Adapter, sofern vorhanden. Der Rest der angepassten Steuerung in Node Red.
Der ioBroker wiederum läuft auf einer Ubuntu Linux VM auf meinen (bereits vorhandenen) ESXI-Host, Raspi´s sind als ioBroker-Slaves angebunden. So hab ich alles schön kompakt beieinander.
…Alex
Danke für das tolle Video!
Jetzt wäre es natürlich spannend, ob man damit ein “friedliches” Zusammenspiel zwischen Victron-System und Senec bauen könnte.
Ich mache das derzeit recht umständlich unter ioBroker indem ich permanent den Netzbezug bzw. die -einspeisung überwache und den Victron dann gegensteuere. Alles via ESS Mode 2, also vollkommen manuelle Laderegelung.
Das klappt auch prinzipiell gut, jedoch habe ich natürlich immer wieder ein gewisses Überschwingen (Victron lädt Senec und umgekehrt) und außerdem fände ich es technisch sauberer, wenn dies direkt unter VenusOS mittels NodeRED gelöst werden könnte.
Hat da jemand vielleicht schonmal mit “rumgespielt”? 😉
Die Lade-/Entladelogik des Victron-Systems wird in diesem Fall in Loxone realisiert. Die Senec-Anlage ist quasi das führende System und die Victron-Installation ordnet sich dem unter. Mit passenen Regeln ist so ein “harmonisches” Zusammenspiel möglich… Werde ich evtl. auch mal “live” in einem Video vorstellen.
Viele Grüße
Jörg
Hallo Jörg,
das hört sich gut an! Welchen Weg gehst Du denn in Loxone?
Regelst Du direkt den SetPoint (also Ladung/Entladung des Victron-Systems) oder modifizierst Du den GridSetPoint im Bereich von z. B. -100W bis +100W und VenusOS steuert selber?
Bin gespannt auf ein Video 😉
Gruß,
Christoph
Direkt den “Grid Power Setpoint” per ESS Mode 3 abhängig von verschiedenen Faktoren, wie Überschuss und SoC des Senec-Systems, um die gewünschte Regelungslogik zu erreichen…
Hallo,
Senec hat vor paar Tagen ein Update gestartet und den internen Webserver auf HTTPS umgestellt. Leider funktioniert seitdem Node Red nicht mehr. Habe es auf HTTPS geändert, aber leider geht es nicht.
Wäre super, wenn du eine Lösung hättest. Vielen Dank
VG
Du kannst eine HTTPS-Seite mit selbstsigniertem Zertifikat heutzutage nicht mehr einfach so abrufen. Dein Webbrowser warnt und alles Automatische streikt. Was das soll, wissen die wahrscheinlich nichtmal selber.
Du musst dem Node-Red-Prozess beim Start die Environmentvariable NODE_TLS_REJECT_UNAUTHORIZED=0 verpassen, dann geht’s wieder. Theoretisch. Praktisch finden sich im Netz haufenweise Berichte, dass Senec bei der Gelegenheit auch anderen Unfug gebaut hat. Viel Glück.
Danke, werde es mal versuchen.
Gibt es auch noch eine andere Lösung?
Vielen Dank
Naja, du kannst möglicherweise für das Ding ein lets-encrypt-Zertifikat generieren und da aufspielen. Oder den öffentlichen Teil des Zertifikats von dem Ding runterladen und deinem Node-Prozess beipulen. Oder den Deppen verklickern dass sie HTTP-ohne-S gefälligst wieder einschalten sollen, weil das Abschalten des Ports (ohne Möglichkeit, ihn wieder zu aktivieren?!?) echt der allerletzte Schwachsinn ist.
All das ist ungleich mehr Aufwand und/oder dauert länger. Falls es überhaupt geht.
Okay, wäre schön, wenn die Firma überhaupt mal antworten würde. Ich bezweifle, dass sie HTTP wieder aktivieren.
Wo finde ich denn den Eintrag
,,NODE_TLS_REJECT_UNAUTHORIZED=0„
Bzw den Prozess um es hinzuzufügen?
Bin verzweifelt am suchen.
VG
Irgendwo wird der node-red-Prozess gestartet. Wahrscheinlich via /opt/victronenergy/service/nodered/run oder so. Ersetze darin “exec /wo/immer/node-red/ist” durch “exec env NODE_TLS_REJECT_UNAUTHORIZED=0 /wo/immer/node-red/ist”. Starte neu. Fertig (jedenfalls bis zum nächsten venus-Update).
bzw. (vorsichtshalber) /usr/bin/env statt env
Habe es gelöst! Eine ganz schnelle und einfache Lösung.
Einfach nach dem curl ein (-k) setzen. Das bedeutet er ignoriert das Zertifikat.
curl -k https://192.168.178.50/lala.cgi…..
Alle Werte funktionieren dann wieder!
Haha wie geil… Danke Frodo für deinen Tipp!
Bei meinem Kumpel läuft alles aktuell noch wie “eh und je” ohne jegliche Anpassung. Aber vermutlich wurde bei seiner Anlage noch kein Remote-Update eingespielt…
Hi Frodo,
ober geiler Tipp!
Habe ich gerade bei meinem Kumpel entsprechend angepasst, da es seit drei Tagen auch nicht mehr lief. Was soll ich sagen: Läuft wieder ohne Probleme mit dem zusätzlichen Attribut -k und https -> Habe dem Blogpost oben ein Update verpasst…
Tausend Dank nochmal und viele Grüße
Jörg
Hallo,
Senec hat außer der Umstellung auf https auch Änderungen am übermittelten JSON-Objekt vorgenommen. U.a. sind die LIVE_*-Werte aus dem STATISTIC-Bereich verschwunden. Weiß jemand, ob wo diese jetzt zu finden sind, bzw. wie die neue Struktur aussieht?
@Holger, wie oben von Frodo schon geschrieben, einfach ein -k einsetzen und an das http ein s ran.
So hat es bei mir auch funktioniert ✌🏻
Danke Frodo und auch an dich Jörg 👍🏻
Danke für dein Feeback!!! Bei meinem Kumpel läuft es bisher immer noch nach “alter” http-Variante…
Bei mir wurde zwar eine neue Firmware eingespielt, aber es ist auch noch http. Eine schöne Zusammenfassung gibt es übrigens hier:
https://solectrus.de/blog/2023-09-06-erfahrungen-mit-dem-senec-update
@DanSe85, ja, danke, https funktioniert unter Node Red, wenn man in der TLS-Konfiguration für den http-request-Node den Haken bei “Serverzertifikat überprüfen” entfernt. curl benutze ich nicht.
Aber mein Problem sind die fehlenden Langzeitdaten (LIVE_*) unter STATISTIC. Kann man die irgendwo anders in dem JSON-Objekt finden oder werden die gar nicht mehrt übertragen?
Hallo,
ich habe den Flow in den Node Red eingebunden und die IP adressen geändert, bekomme aber leider keine werte und dafür eine Fehlermeldung:
Unexpected end of JSON input
Kann mir jemand helfen?