NEWS
Enphase / Envoy / IQ-Gateway Solar Blockly Skript
-
@homoran said in Enphase / Envoy / IQ-Gateway Solar Blockly Skript:
@syntetic Bitte logs nie als Screenshot, immer als Text in code-tags posten.
welche js Adapter Version?
Sorry, hier nochmal das log
2025-06-16 13:48:27.758 - error: javascript.0 (1512) script.js.Überwachung.PV_Anlage_Datenabfrage: Error: Cannot find module '@iobroker-javascript.0/node-fetch' 2025-06-16 13:48:27.759 - error: javascript.0 (1512) at Module.require (node:internal/modules/cjs/loader:1225:19) 2025-06-16 13:48:27.760 - error: javascript.0 (1512) at require (node:internal/modules/helpers:177:18) 2025-06-16 13:48:27.760 - error: javascript.0 (1512) at require (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:552:28) 2025-06-16 13:48:27.761 - error: javascript.0 (1512) at renew_EnvoyToken (script.js.Überwachung.PV_Anlage_Datenabfrage:8:19) 2025-06-16 13:48:27.761 - error: javascript.0 (1512) at script.js.Überwachung.PV_Anlage_Datenabfrage:195:18 2025-06-16 13:48:27.761 - error: javascript.0 (1512) at script.js.Überwachung.PV_Anlage_Datenabfrage:253:3 2025-06-16 13:48:27.761 - error: javascript.0 (1512) at Script.runInContext (node:vm:134:12) 2025-06-16 13:48:27.763 - info: javascript.0 (1512) script.js.Überwachung.PV_Anlage_Datenabfrage: Renew token. 1. Login to enlighten.enphaseenergy.com to get session_id... 2025-06-16 13:48:27.771 - error: javascript.0 (1512) script.js.Überwachung.PV_Anlage_Datenabfrage: TypeError: fetch is not a function 2025-06-16 13:48:27.772 - error: javascript.0 (1512) at renew_EnvoyToken (script.js.Überwachung.PV_Anlage_Datenabfrage:19:5) 2025-06-16 13:48:27.772 - error: javascript.0 (1512) at script.js.Überwachung.PV_Anlage_Datenabfrage:195:18 2025-06-16 13:48:27.772 - error: javascript.0 (1512) at script.js.Überwachung.PV_Anlage_Datenabfrage:253:3 2025-06-16 13:48:27.772 - error: javascript.0 (1512) at Script.runInContext (node:vm:134:12) 2025-06-16 13:48:35.881 - info: javascript.0 (1512) Start JavaScript script.js.Überwachung.PV_Script_refresh (Blockly) 2025-06-16 13:48:35.896 - error: javascript.0 (1512) script.js.Überwachung.PV_Script_refresh: Error: Cannot find module '@iobroker-javascript.0/node-fetch' 2025-06-16 13:48:35.897 - error: javascript.0 (1512) at Module.require (node:internal/modules/cjs/loader:1225:19) 2025-06-16 13:48:35.898 - error: javascript.0 (1512) at require (node:internal/modules/helpers:177:18) 2025-06-16 13:48:35.899 - error: javascript.0 (1512) at require (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:552:28) 2025-06-16 13:48:35.901 - error: javascript.0 (1512) at renew_EnvoyToken (script.js.Überwachung.PV_Script_refresh:64:19) 2025-06-16 13:48:35.902 - error: javascript.0 (1512) at script.js.Überwachung.PV_Script_refresh:197:18 2025-06-16 13:48:35.902 - error: javascript.0 (1512) at script.js.Überwachung.PV_Script_refresh:231:3 2025-06-16 13:48:35.905 - error: javascript.0 (1512) at Script.runInContext (node:vm:134:12) 2025-06-16 13:48:35.906 - info: javascript.0 (1512) script.js.Überwachung.PV_Script_refresh: Renew token. 1. Login to enlighten.enphaseenergy.com to get session_id... 2025-06-16 13:48:35.909 - error: javascript.0 (1512) script.js.Überwachung.PV_Script_refresh: TypeError: fetch is not a function 2025-06-16 13:48:35.910 - error: javascript.0 (1512) at renew_EnvoyToken (script.js.Überwachung.PV_Script_refresh:75:5) 2025-06-16 13:48:35.910 - error: javascript.0 (1512) at script.js.Überwachung.PV_Script_refresh:197:18 2025-06-16 13:48:35.911 - error: javascript.0 (1512) at script.js.Überwachung.PV_Script_refresh:231:3 2025-06-16 13:48:35.911 - error: javascript.0 (1512) at Script.runInContext (node:vm:134:12) 2025-06-16 13:48:38.454 - info: javascript.0 (1512) Start JavaScript script.js.Überwachung.PV_Werte_durch_1000 (Blockly) 2025-06-16 13:48:38.462 - info: javascript.0 (1512) script.js.Überwachung.PV_Werte_durch_1000: registered 12 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
JS Version 8.8.3
Auch bei den Skripten von @Steffe-S ist der Fehler der gleiche. Ich mach mal Updates und versuchs dann nochmal.
-
@syntetic sagte in Enphase / Envoy / IQ-Gateway Solar Blockly Skript:
Cannot find module '@iobroker-javascript.0/node-fetch'
braucht das Skript dieses Modul?
Wenn ja, hast du das in der Konfiguration der Instanz? -
Ich habe von ca 2 Wochen bei einem Bekannten iobroker komplett neu aufgesetzt und dann auch die Skripte eingefügt. Alles hat auf Anhieb funktioniert. Ich vermute auch, dass Dein System nicht up to date ist.
Ich werde aber die Skripte gleich noch einmal auf einem frischen System testen.
-
@steffe-s sagte in Enphase / Envoy / IQ-Gateway Solar Blockly Skript:
dass Dein System nicht up to date ist.
ist es nicht!
@syntetic sagte in Enphase / Envoy / IQ-Gateway Solar Blockly Skript:
JS Version 8.8.3
aktuell im stable ist 8.9.2
Den Fehler
@syntetic sagte in Enphase / Envoy / IQ-Gateway Solar Blockly Skript:
TypeError: irgendwas is not a function
hat es mal gegeben.
Möglicherweise ist aber noch mehr krumm
EDIT:
Nachfolgende Posts mit Informationen zum veralteten System abgetrennt! -
@steffe-s sagte in Enphase / Envoy / IQ-Gateway Solar Blockly Skript:
Ich habe von ca 2 Wochen bei einem Bekannten iobroker komplett neu aufgesetzt und dann auch die Skripte eingefügt. Alles hat auf Anhieb funktioniert. Ich vermute auch, dass Dein System nicht up to date ist.
Ich werde aber die Skripte gleich noch einmal auf einem frischen System testen.
Alle Skripte laufen ohne Fehler (getestet auf einer neuen iobroker-Dockerinstanz und JavaSkriptAdapter)
-
-
Danke für Deine Hilfe
-
@steffe-s sagte in Enphase / Envoy / IQ-Gateway Solar Blockly Skript:
Danke für Deine Hilfe
immer wieder gerne!
Hat ja mit diesem Thread und deinem Skript nichts zu tun. -
@steffe-s Vielen Dank für eure Hilfe. Mit der jetzt aktuellen Installation funktioniert es super!
-
@steffe-s sagte in Enphase / Envoy / IQ-Gateway Solar Blockly Skript:
ich denke diese Einstellung würde den Fehler bei der 10 Sekundenabfrage beseitigen...
-
@steffe-s: vielen Dank für dein Schaffen! Skripte importiert und läuft einwandfrei auf meiner neuen Anlage. Danke dafür
.
Und ach Dank an @gregoj für die Basisarbeit!Hast du schonmal überlegt das als Adapter für den iobroker umzusetzen?
(versuche mich gerade in die Adapterprogrammierung reinzufuchsen - stehe bei 1%...Tendent steigend)
-
prinzipiell wäre ein "Enphase-Adapter" eine coole Sache, aber ich habe 0% (Tendenz gleichbleibend) Plan von einer Adapterprogrammierung.
Ich bin gerne Dein Alphatester
-
@steffe-s ok, ich setzte das ganze mal in javascript um - ist damit die Vorstufe. sobald ich soweit bin melde ich mich mit nem Upload
Von den Datenpunkten lasse ich alles 1:1 und mache da nur ggf. benötigte Checks (try-catch) rein.
Ich passe auch gleich die Debug-Ausgaben an, um besser lesbare Meldungen zu erhalten - im Verlauf dieses Verlaufs kommt das ja immer wieder vor.
Danach würde nur noch TypeScript als Update fehlen - das Buch liegt schon neben meiner Tastatur.
Soweit zum Start...wenns soweit ist, dann bin ich auch soweit firm im vsCode, damit das mit dem Adapter klappen müsste - we will see
-
Bin fertig mit dem Javascript. ich lege es auf github ab. der Verlauf hier ist 3km lang und auf GitHub können die Issues besser gehandhabt werden.
hier der Link: https://github.com/DieWaldfee/Enphase-IQ-Gateway-access...aber bevor ich das da ablege eine wichtige Frage:
Das Script ist public - wie hier auch und unter der GNU 3.0 Lizenz - free to use. Passt das für dich?(Dein Einverständnis ist wichtig, da ich ja auf deiner Basis das Skript erstellt habe - gregoj kann ich nicht mehr fragen ...scheinbar)
Zum Script:
- ergänzt sind ein Haufen Fehlermeldungen und Fehlerbehandlungen.
- ein paar Bugs habe ich noch gefunden
- ich habe dein "/1000-Skript" nicht integriert, sonder als separates Blockly daneben gestellt. Dieses Blockly habe ich ergänzt, das automatisch die Datenpunkte erzeugt werden.
=> das JS-Script mach das API-handling und stellt die nativen Datenpunkte zur Verfügung.
=> das Blockly macht deine /1000 Berechnung - dafür ist JS zu sperrig, um das mal eben anzupassen für die Masse
-
@steffe-s ...reply auf mich selbst gemacht... s.o. bin fertig
-
@steffe-s
Hier schonmal dein angepasstes Blockly-Skript:
envoy_blockly.Envoy_Auswertung.txtDen SC_Stream_Status habe ich von der 0&10-Lösung auf einen state umgebaut.
0 und 10 kommen in meinem Javascript nicht mehr raus - den Status lässt sich viel einfacher
in diesem Blocky transferieren. Damit ist jetzt das Blockly soweit unabhängig vom API-Skript.
(API-Skript kümmert sich um die API und das Blockly nimmt daraus Werte heraus und stellt diese
[in Watt statt milliWatt] tranformiert dar. Ne runde Sache jetzt. -
von mir aus kannst Du gerne das erweiterte Skript benutzen, nur habe ich (zusammen mit meinem Schwager) die Erweiterung sc_stream ergänzt.
Der Ursprung ist von @greoj , schreib ihn mal privat an, da hat er mir schnell geantwortet.
-
Ich versuche es die Tage mal in einer eigenen Dockerinstanz zu testen, vielen Dank für Deine Mühe
-
@steffe-s top!
Ich habe die javascript-Umsetzung mit Einverständnis von @Steffe-S und @greoj online auf GitHub gestellt unter:
https://github.com/DieWaldfee/Enphase-IQ-Gateway-access
Dort ist es einfacher den Code zu verwalten - ggf. Bugs per Issue zu melden und zu fixen.feel free to use
-
@diewaldfee sagte in Enphase / Envoy / IQ-Gateway Solar Blockly Skript:
=> das Blockly macht deine /1000 Berechnung - dafür ist JS zu sperrig, um das mal eben anzupassen für die Masse
ich finde das Blockly auf Git nicht