NEWS
Enphase / Envoy / IQ-Gateway Solar Blockly Skript
-
@negalein
Ich habe mich für Ostrom entschieden. Kannst ja mal schauen.
Da habe ich auch einen Code, der Dir 70 € für den Shop oder 35 € Gutschrift bringt. Bei Interesse einfach melden, dann schick ich Dir ne PN...@kentrath sagte in Enphase / Envoy / IQ-Gateway Solar Blockly Skript:
Ostrom
gibt bei uns im Alpenland nur 2 Anbieter. Awatar und vom anderen weiß ich gerade nicht den Namen.
-
funktioniert denn Deine App? Werden überhaupt Daten angezeigt?
oh ha, ich habe auch ganz viele Meldungen und das auch ohne Stromausfall!
2024-09-15 19:56:00.801 - warn: javascript.0 (551) at IObSetState (script.js.Enphase.Enphase_Envoy_Datenabfrage:78:24) 2024-09-15 19:56:00.801 - warn: javascript.0 (551) at IObSetState (script.js.Enphase.Enphase_Envoy_Datenabfrage:70:13) 2024-09-15 19:56:00.801 - warn: javascript.0 (551) at Object. (script.js.Enphase.Enphase_Envoy_Datenabfrage:206:13) 2024-09-15 19:56:00.802 - warn: javascript.0 (551) at processTicksAndRejections (node:internal/process/task_queues:95:5) 2024-09-15 19:56:10.560 - warn: javascript.0 (551) State "0_userdata.0.enphase.livedata.tasks.task_id_str" not found 2024-09-15 19:56:10.562 - warn: javascript.0 (551) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2090:20) 2024-09-15 19:56:10.562 - warn: javascript.0 (551) at IObSetState (script.js.Enphase.Enphase_Envoy_Datenabfrage:78:24) 2024-09-15 19:56:10.562 - warn: javascript.0 (551) at IObSetState (script.js.Enphase.Enphase_Envoy_Datenabfrage:70:13) 2024-09-15 19:56:10.563 - warn: javascript.0 (551) at Object. (script.js.Enphase.Enphase_Envoy_Datenabfrage:206:13)Edit 10.33 Uhr:
ich habe den JAVA-Skript Adapter gestoppt , dann habe ich den kompletten "Task-Ordner" unter "0_userdata -> 0 -> enphase -> livedata " gelöscht und im Anschluss den JAVA-Skript Adapter neu gestartet. Seitdem keine Meldungen mehr.
bei mir sind neben dem neuen Task-Ordner die Datenpunkte: task_id , task_id_str , usw siehe Bild (4 Datenpunkte) dazugekommen,
Anmerkung: Die Daten des Envoy kamen aber auch mit der Fehlermeldung immer zuverlässig an.
-
@steffe-s
So funktioniert, auch nach 24h.Werde berichten ob es zwischenzeitlich wieder mal nicht funktioniert oder ob ich nur jedes Jahr einmal den Token erneuern muss.
Ich kann evcc jetzt auch endlich mit einem echten E-Auto in Verbindung mit einem go-e charger gemini nutzen.
Hast Du vielleicht schon eine Möglichkeit gefunden, wie man das Entladen der Batterie unterbinden kann, wenn das Auto geladen wird?
Zur Zeit "sage" ich meinem System (KI- Option), dass von 00:00 Uhr bis 05:00 Uhr der Strom nur 1 Cent kostet und somit wird die Batterie nicht genutzt. (zur Zeit ist das egal, da die Batterie ab spätestens 21:00Uhr leer ist)
-
Dieses Thema ist wirklich interessant.
Ich möchte auch ein Enphase-System installieren (mit oder ohne 1komma5-System).
Ich habe allerdings Schwierigkeiten zu verstehen, ob es wirklich notwendig ist, all diese Komponenten zu haben:
- https://enphase.com/de-de/store/storage/iq-system-controller-3-int
- https://enphase.com/de-de/store/energy-management/iq-energy-router-plus
- https://enphase.com/de-de/store/communication/iq-gateway-metered
Ist es zum Beispiel möglich, die neuen Batterien über einen Kontakt (z.B SG Ready) oder über ein Skript aufzuladen?
Ich habe eine Pelletheizung und eine SG ready Wärmepumpe für das Warmwasser. Ich dachte, ich schließe einfach den "SG" Kontakt der Wärmepumpe, wenn ich produziere oder sehe, dass der Strom billig ist.... ( ein Skript, das den Kontakt schließt, zum beispiel in Iobroker)
Aber, Ich habe das Prinzip nicht verstanden, wie ich die Ladung der Enphase-Batterie steuern kann...
Ebenso mit Enphase wallbox, kann ich selber über skrip das steuern ? -
Dieses Thema ist wirklich interessant.
Ich möchte auch ein Enphase-System installieren (mit oder ohne 1komma5-System).
Ich habe allerdings Schwierigkeiten zu verstehen, ob es wirklich notwendig ist, all diese Komponenten zu haben:
- https://enphase.com/de-de/store/storage/iq-system-controller-3-int
- https://enphase.com/de-de/store/energy-management/iq-energy-router-plus
- https://enphase.com/de-de/store/communication/iq-gateway-metered
Ist es zum Beispiel möglich, die neuen Batterien über einen Kontakt (z.B SG Ready) oder über ein Skript aufzuladen?
Ich habe eine Pelletheizung und eine SG ready Wärmepumpe für das Warmwasser. Ich dachte, ich schließe einfach den "SG" Kontakt der Wärmepumpe, wenn ich produziere oder sehe, dass der Strom billig ist.... ( ein Skript, das den Kontakt schließt, zum beispiel in Iobroker)
Aber, Ich habe das Prinzip nicht verstanden, wie ich die Ladung der Enphase-Batterie steuern kann...
Ebenso mit Enphase wallbox, kann ich selber über skrip das steuern ? -
Hallo,
für alle mit einer Photovoltaikanlage von der Firma Enphase habe ich ein ioBroker Blockly-Skript geschrieben, um aktuelle Daten der Anlage vom sogenannten Envoy/IQ-Gateway in ioBroker einzulesen.
Enphase ist sehr verbreitet in den USA, Frankreich und Benelux und ist seit kurzem auch in Deutschland gestartet. Der Hauptunterschied zu anderen PV-Systemen liegt im Microwechselrichter-Konzept, bei dem ein eigener Microwechselrichter für jedes PV-Modul vorhanden ist anstelle eines zentralen Wechselrichters. Gesteuert wird die Anlage über ein kleines IQ-Gateway auch "Envoy" genannt.
Enphase bietet leider nur die Möglichkeit die eigenen PV-Daten über eine Cloud API zu beziehen. Diese Lösung ist aber leider sehr limitiert im Umfang und Aktualität der Daten und wird richtig teuer, wenn man diese Einschränkungen etwas lockern möchte.
Zum Glück gibt es noch eine wenig dokumentierte Möglichkeit die Daten direkt via lokale API vom Envoy zu bekommen. Enphase hat allerdings die Authentifizierung von einem zuvor einfachen User/Passwort Login auf eine sichere und standardisierte sogenannte Bearer-Token-Authentication umgestellt, die etwas mehr Aufwand bereitet. Dabei wird zunächst nach Anmeldung mit User/Passwort an der Enphase-Cloud ein kryptographisch gesichertes Token erzeugt, welches zeitbeschränkt ist und die Rolle des Users beschreibt (z.B. "Owner" oder "Installer"). Ein normales "Besitzer/User"-Token ist derzeit 12 Monate gültig. Ein "Installer"-Token ist angeblich nur 1 Tag gültig. Mit diesem Token wird dann anschließend jeder API-Aufruf am lokalen Envoy authentifiziert.Genau um diese lokale Enphase Envoy API zum IQ-Gateway geht es hier (Envoy Version > v7.0.88).
Ich habe im Vorfeld verschiedene Lösungen im Netz gefunden und probiert, aber keine war einfach zu implementieren. Sie basieren auf eigenständigen Services wie z.B. Homebridge, die dann dauerhaft und nur für diesen speziellen Zweck betrieben werden müssen. Zudem ist die Integration mit ioBroker dann nur per MQTT möglich.
Mit diesem Skript haben Enphase Benutzer nun eine einfache native ioBroker Lösung.Das Skript löst die genannten Probleme in dem es
- mehrere hundert aktuelle und zeitnahe PV-Daten wie Produktions-, Verbrauchs-, und Einzelpanel Daten direkt in ioBroker bereitstellt
- minütliche Updates (kann bis in den Sekundenbereich beschleunigt werden)
- minimale Anforderungen an das ioBroker System stellt
- komplett in ioBroker integriert ist
- die ioBroker Datenstrukturen automatisch erzeugt und aktualisiert, wenn API-Änderungen von Enphase erfolgen
- Unix Timestamps in den Envoy Daten erkennt und automatisch als zusätzlicher Datenpunkt mit der Namenserweiterung "_str" als lesbarer Zeitstring erstellt
- Envoy Daten bietet, die es nicht in der App/Web für normale Benutzer gibt wie die "Aktuelle Modulleistung jedes einzelnen Panels" (Hinweis: Die Microinverter Daten werden abweichend nur alle 2-5 Minuten von Envoy aktualisiert)
- dem Anlagenbesitzer keine laufenden Kosten für Cloud API Zugriffe verursacht
- rein lokal ohne Internetzugriff läuft (für das automatische periodische Token Renewal ist aber eine Internetverbindung zur Enphase Cloud nötig)
Installationsanleitung:
- Das unten angefügte Skript "enphase.txt" in den ioBroker Skript Editor importieren
- Die eigenen Enphase Envoy Daten eingeben
Dazu im Skript die Kommentare mit "*** USER INPUT ***" suchen und anpassen.
Beispiele sind im Skript gegeben.
Wichtig sind:
a) Enphase Cloud Credentials (Enphase Cloud Username & Passwort)
b) Envoy Seriennummer (in der Enphase App oder Web zu finden unter SYSTEM…GERÄTE…GATEWAY…SN: [besteht aus 12 Ziffern])
c) Envoy lokale IP Adresse


- Das Skript speichern und starten
- Beim ersten Aufruf wird das Token erzeugt und ins ioBroker Log geschrieben
- Danach werden die Envoy Daten basierend aus 5 einzelnen API-Aufrufen als ioBroker Datenpunkte unter dem Pfad "0_userdata.0.enphase" erstellt. Darunter wird dann rekursiv die Datenstruktur des Envoys API Calls erstellt.
- Bei allen folgenden Aufrufen wird geprüft, ob der einzelne Datenpunkt existiert oder nicht. Entsprechend wird der Datenpunkt neu erzeugt oder aktualisiert. Man kann also gefahrlos den ganzen Enphase Baum, Zweige oder einzelne Datenpunkte löschen. Beim nächsten Aufruf wird die Struktur wieder erstellt. Hinweis: Falls Enphase die Datenstrukturen der lokalen API ändert, wird dies automatisch abgebildet. Datenpunkte, die Enphase im API Aufruf zukünftig nicht mehr schicken sollte, bleiben im ioBroker vorhanden und müssen ggf. von Hand gelöscht werden.
Hinweis:
Die 5 API-Aufrufe liefern teils gleiche Dateninhalte. Im Prinzip enthalten die API "3. Get PV METER READINGS" und "5. Get PV MICRO INVERTER" alle notwendigen Daten. Die anderen APIs bieten aber teilweise zusätzliche fertig berechnete Daten, so dass man sie schneller weiterverarbeiten kann. Ein Sonderfall ist der Tagesenergiezähler "whToday" [Wh], der nur in API "4. Get PV PRODUCTION.JSON" vorkommt. (Der Wochenzähler "whLastSevenDays" bietet leider keine brauchbaren Daten).Viel Spaß damit!
JörgEnphase-Skript:
enphase.txt@greoj Hallo Jörg , ich habe probiert meinen 12 monatsgültigen enphase Token zu verwenden, leider ohne Erfolg. Auch bei der Herausnahme des Tokens erhalte ich für jede Abfrage dann die folgende Meldung
avascript.0 17:26:00.125 info script.js.common.Energiedaten.enphaseGateway: Get Cons. data: : Error local Envoy IP: 192.168.178.41. Error: Unexpected token '<', "<html> <h"... is not valid JSON | Error cnt: 2MOD-EDIT: Code in code-tags gesetzt!
Auch im Protokollfenster erscheint kein 1 Tages Installations Token. Benutzername in Form meine e-mail Adresse für den Cloud Zugang sowie das Passwort stimmen. Ebenso die 12-stellige Seriennummer. Hast du noch eine Idee ?
-
@greoj Hallo Jörg , ich habe probiert meinen 12 monatsgültigen enphase Token zu verwenden, leider ohne Erfolg. Auch bei der Herausnahme des Tokens erhalte ich für jede Abfrage dann die folgende Meldung
avascript.0 17:26:00.125 info script.js.common.Energiedaten.enphaseGateway: Get Cons. data: : Error local Envoy IP: 192.168.178.41. Error: Unexpected token '<', "<html> <h"... is not valid JSON | Error cnt: 2MOD-EDIT: Code in code-tags gesetzt!
Auch im Protokollfenster erscheint kein 1 Tages Installations Token. Benutzername in Form meine e-mail Adresse für den Cloud Zugang sowie das Passwort stimmen. Ebenso die 12-stellige Seriennummer. Hast du noch eine Idee ?
@running-henne-0 der von dir referenzierte User war zuletzt im August 2023 om Forum aktiv.
-
@greoj Hallo Jörg , ich habe probiert meinen 12 monatsgültigen enphase Token zu verwenden, leider ohne Erfolg. Auch bei der Herausnahme des Tokens erhalte ich für jede Abfrage dann die folgende Meldung
avascript.0 17:26:00.125 info script.js.common.Energiedaten.enphaseGateway: Get Cons. data: : Error local Envoy IP: 192.168.178.41. Error: Unexpected token '<', "<html> <h"... is not valid JSON | Error cnt: 2MOD-EDIT: Code in code-tags gesetzt!
Auch im Protokollfenster erscheint kein 1 Tages Installations Token. Benutzername in Form meine e-mail Adresse für den Cloud Zugang sowie das Passwort stimmen. Ebenso die 12-stellige Seriennummer. Hast du noch eine Idee ?
ich habe, auf meinem System, das Skript gerade 2 mal neu gestartet und es bezieht ganz normal einen neuen Token und liefert auch fleißig Daten.

Hast Du vielleicht einen eigenen Token hier (roter Kreis) eingetragen? Das Feld muss leer sein. Wenn ich hier einen eigenen Wert (z.B. egvvfsjfvs) eintrage bekomme ich die selbe Fehlermeldung, wie Du beschrieben hast.
Ist das Feld leer, wird bei mir auch ein neuer Token bezogen.
Guss S.
-
ich habe, auf meinem System, das Skript gerade 2 mal neu gestartet und es bezieht ganz normal einen neuen Token und liefert auch fleißig Daten.

Hast Du vielleicht einen eigenen Token hier (roter Kreis) eingetragen? Das Feld muss leer sein. Wenn ich hier einen eigenen Wert (z.B. egvvfsjfvs) eintrage bekomme ich die selbe Fehlermeldung, wie Du beschrieben hast.
Ist das Feld leer, wird bei mir auch ein neuer Token bezogen.
Guss S.
@steffe-s sagte in Enphase / Envoy / IQ-Gateway Solar Blockly Skript:
ich habe, auf meinem System, das Skript gerade 2 mal neu gestartet und es bezieht ganz normal einen neuen Token und liefert auch fleißig Daten.

Hast Du vielleicht einen eigenen Token hier (roter Kreis) eingetragen? Das Feld muss leer sein. Wenn ich hier einen eigenen Wert (z.B. egvvfsjfvs) eintrage bekomme ich die selbe Fehlermeldung, wie Du beschrieben hast.
Ist das Feld leer, wird bei mir auch ein neuer Token bezogen.
Guss S.
kannst Du das hier vielleicht einmal testen, ob diese Lösung passt und eine kurze Rückmeldung geben.
Guss Steffen
-
Hallo zusammen,
meine Skripte scheinen schon eine Weile "defekt" zu sein in dem Sinne, dass die Batterieleistung nicht mehr ausgelesen wird. Da steht schon eine ganze Weile nur eine Null drin. Tatsächlich werden die wohl ausgelesen, aber die Batterie berichtet wohl die ganze Zeit nur eine Null. Wie kann das wohl sein?
Habe ich im Thread ein Update überlesen?
Viele Grüße
Dejan -
Hallo zusammen,
meine Skripte scheinen schon eine Weile "defekt" zu sein in dem Sinne, dass die Batterieleistung nicht mehr ausgelesen wird. Da steht schon eine ganze Weile nur eine Null drin. Tatsächlich werden die wohl ausgelesen, aber die Batterie berichtet wohl die ganze Zeit nur eine Null. Wie kann das wohl sein?
Habe ich im Thread ein Update überlesen?
Viele Grüße
Dejan -
was wird denn unter:
Objekte: 0_userdata -> enphase ->livedata -> meters-> storge -> agg_p_mw angezeigt?
Kommen die restlichen Werte zuverlässig an?
Bei Mir kommen alle Daten ohne Fehlermeldung an.
@steffe-s
Ich habe auch keine Fehlermeldungen. Dort kommt nur eine Null an und wird entsprechend vom Skript ausgelesen. Die Batterie meldet aber einen SoC, der sauber ausgelesen wird. Die anderen Werte sind plausibel. Zumindest kann ich mal am digitalen Stromzähler die Leistung am Hausanschluss ablesen. -
@steffe-s
Ich habe auch keine Fehlermeldungen. Dort kommt nur eine Null an und wird entsprechend vom Skript ausgelesen. Die Batterie meldet aber einen SoC, der sauber ausgelesen wird. Die anderen Werte sind plausibel. Zumindest kann ich mal am digitalen Stromzähler die Leistung am Hausanschluss ablesen. -
@steffe-s Die Daten werden regelmäßig im Minutentakt aktualisiert. Die Batterie hat aber zuletzt am 5.12.24 etwas anderes als Null gemeldet.
Mir scheint also der Fehler bei Enphase zu sein. Die Batterie war eine Zeit lang ausgeschaltet, weil sie mangels Leistung im Winter sowieso nichts zu speichern hatte. Dafür ist meine kleine Experimentier-Anlage mit 660Wp zu klein. Mit zwei guten Tagen füllt sie aber die 3,5 kWh voll auf. :-)
Wenn die Batterie den SoC sauber meldet, warum dann nicht auch die Leistung? Vielleicht ist ja der Funk gestört, so dass nur der vergleichsweise langsam wechselnde SoC sauber vom Envoy empfangen wird?
-
@steffe-s Die Daten werden regelmäßig im Minutentakt aktualisiert. Die Batterie hat aber zuletzt am 5.12.24 etwas anderes als Null gemeldet.
Mir scheint also der Fehler bei Enphase zu sein. Die Batterie war eine Zeit lang ausgeschaltet, weil sie mangels Leistung im Winter sowieso nichts zu speichern hatte. Dafür ist meine kleine Experimentier-Anlage mit 660Wp zu klein. Mit zwei guten Tagen füllt sie aber die 3,5 kWh voll auf. :-)
Wenn die Batterie den SoC sauber meldet, warum dann nicht auch die Leistung? Vielleicht ist ja der Funk gestört, so dass nur der vergleichsweise langsam wechselnde SoC sauber vom Envoy empfangen wird?
-
@steffe-s Die Daten werden regelmäßig im Minutentakt aktualisiert. Die Batterie hat aber zuletzt am 5.12.24 etwas anderes als Null gemeldet.
Mir scheint also der Fehler bei Enphase zu sein. Die Batterie war eine Zeit lang ausgeschaltet, weil sie mangels Leistung im Winter sowieso nichts zu speichern hatte. Dafür ist meine kleine Experimentier-Anlage mit 660Wp zu klein. Mit zwei guten Tagen füllt sie aber die 3,5 kWh voll auf. :-)
Wenn die Batterie den SoC sauber meldet, warum dann nicht auch die Leistung? Vielleicht ist ja der Funk gestört, so dass nur der vergleichsweise langsam wechselnde SoC sauber vom Envoy empfangen wird?
-
lösche einfach mal den "storage - Ordner" und schau, ob dieser neu angelegt wird ( habe ich gerade an meinem System getestet, wenn der Ordner nicht vorhanden ist wird dieser neu angelegt)
-
@steffe-s Erledigt! :-) Wurde auch bei mir erneuert. Jetzt sind die Werte eben frisch, inkl. SoC, der mir auch in der Enphase-App angezeigt wird.

