Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Praktische Anwendungen (Showcase)
    4. Enphase / Envoy / IQ-Gateway Solar Blockly Skript

    NEWS

    • Monatsrückblick – September 2025

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    Enphase / Envoy / IQ-Gateway Solar Blockly Skript

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      syntetic @Steffe.S. last edited by

      @steffe-s Leider auch wieder Fehler. Keine Ahnung, wo da der Fehler liegt.

      Bildschirmfoto 2025-06-16 um 09.08.38.png

      Homoran 1 Reply Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @syntetic last edited by Homoran

        @syntetic Bitte logs nie als Screenshot, immer als Text in code-tags posten.

        welche js Adapter Version?

        S 1 Reply Last reply Reply Quote 0
        • D
          dexic last edited by dexic

          Ich habe übrigens im Log auf Stufe "warn" folgende Fehlermeldung beim Datensammeln:

          Used invalid characters: 0_userdata.0.enphase.livedata.dry_contacts.h.dry_contact_status changed to 0_userdata.0.enphase.livedata.dry_contacts.h_.dry_contact_status
          

          Wie kann ich das beheben?

          Ähm - ich habe 8 ähnlichlautende Meldungen.

          1 Reply Last reply Reply Quote 0
          • Steffe.S.
            Steffe.S. @Steffe.S. last edited by

            @steffe-s sagte in Enphase / Envoy / IQ-Gateway Solar Blockly Skript:

            @dexic sagte in Enphase / Envoy / IQ-Gateway Solar Blockly Skript:

            @Steffe-S.

            Hast du eine Idee, wie ich mit dieser Fehlermeldung umgehen soll?

            Used invalid characters: 0_userdata.0.enphase.livedata.dry_contacts.h.dry_contact_load_name changed to 0_userdata.0.enphase.livedata.dry_contacts.h_.dry_contact_load_name
            

            3ac08daf-58db-41a0-9b39-890c923fc39f-grafik.png

            mit der Hilfe von @haus-automatisierung konnte die Fehlermeldung beseitigt werden. Hierzu muss das Skript "Enphase_Envoy_Datenabfrage" im Bereich (siehe Bild) bearbeitet werden. Hier auf die 3 Punkte klicken, den gesamten Inhalt herauslöschen und dann das geänderte Skript einfügen.

            Screenshot 2024-08-15 225012.png

            Skript:

            for (const i in obj) {
                const value = obj[i];
                const attr = i.replace(/[^a-zA-Z0-9._-]+/g, '');
             
                if (typeof value == 'object') {
                    IObSetState(id + '.' + attr, value);
                } else {
                    if (existsState(id + '.' + attr)) { // Existing object/ Update
                        if (typeof value === 'string' || value instanceof String) { // String
                            setState(id + '.' + attr, value, true);
                        } else { // It is a number or date
                            if ((new Date(value)).getTime() > 0 && Number(value) > 1685000000 && Number(value) < 4100000000) { // Date
                               setState(id + '.' + attr, value, true);
                               setState(id + '.' + attr + '_str', formatDate(value, 'TT.MM.JJJJ SS:mm:ss'), true);
                            } else { // Number
                               setState(id + '.' + attr, Number(value), true);
                            }
                        }
                    } else { // New object / Create
                        if (typeof value === 'string' || value instanceof String) { // String
                            createState(id + '.' + attr, value, false, { type: 'string', read: true, write: true });
                        } else { // It is a number or date
                            if ((new Date(value)).getTime() > 0 && Number(value) > 1685000000 && Number(value) < 4100000000) { // Date
                               createState(id + '.' + attr, value, false, { type: 'number', read: true, write: true });
                               createState(id + '.' + attr + '_str', formatDate(value, 'TT.MM.JJJJ SS:mm:ss'), false, { type: 'string', read: true, write: true }); 
                            } else { // Number
                               createState(id + '.' + attr, value, false, { type: 'number', read: true, write: true }); // or type: "mixed"?
                            }
                        }
                    }
                }
            }
            
            

            nachzulesen hier: https://forum.iobroker.net/topic/76381/gelöst-used-invalid-characters-über-blockly/22?_=1723791171518

            @dexic

            hier war doch die Lösung beschrieben

            D 1 Reply Last reply Reply Quote 0
            • D
              dexic @Steffe.S. last edited by dexic

              @steffe-s Damals war mir das als blutigem Anfänger zu kompliziert und ich habe die Lösung verdrängt. 😉 Ich hab's jetzt implementiert und warte zu, ob es hilft. Ggfs. frage ich noch einmal nach.

              EDIT: Es hat geholfen. Danke!

              1 Reply Last reply Reply Quote 1
              • S
                syntetic @Homoran last edited by

                @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.

                Homoran Steffe.S. 2 Replies Last reply Reply Quote 0
                • Homoran
                  Homoran Global Moderator Administrators @syntetic last edited by

                  @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?

                  1 Reply Last reply Reply Quote 1
                  • Steffe.S.
                    Steffe.S. @syntetic last edited by

                    @syntetic

                    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.

                    Homoran Steffe.S. 2 Replies Last reply Reply Quote 2
                    • Homoran
                      Homoran Global Moderator Administrators @Steffe.S. last edited by Homoran

                      @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!

                      S 1 Reply Last reply Reply Quote 1
                      • Steffe.S.
                        Steffe.S. @Steffe.S. last edited by

                        @steffe-s sagte in Enphase / Envoy / IQ-Gateway Solar Blockly Skript:

                        @syntetic

                        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)

                        Homoran S 2 Replies Last reply Reply Quote 1
                        • Homoran
                          Homoran Global Moderator Administrators @Steffe.S. last edited by Homoran

                          @steffe-s siehe
                          https://forum.iobroker.net/topic/81383/veraltetes-system-retten

                          Steffe.S. 1 Reply Last reply Reply Quote 1
                          • Steffe.S.
                            Steffe.S. @Homoran last edited by

                            @homoran

                            Danke für Deine Hilfe

                            Homoran 1 Reply Last reply Reply Quote 0
                            • Homoran
                              Homoran Global Moderator Administrators @Steffe.S. last edited by

                              @steffe-s sagte in Enphase / Envoy / IQ-Gateway Solar Blockly Skript:

                              @homoran

                              Danke für Deine Hilfe

                              immer wieder gerne!
                              Hat ja mit diesem Thread und deinem Skript nichts zu tun.

                              1 Reply Last reply Reply Quote 1
                              • S
                                syntetic @Steffe.S. last edited by

                                @steffe-s Vielen Dank für eure Hilfe. Mit der jetzt aktuellen Installation funktioniert es super!

                                1 Reply Last reply Reply Quote 1
                                • Steffe.S.
                                  Steffe.S. @Steffe.S. last edited by

                                  @steffe-s sagte in Enphase / Envoy / IQ-Gateway Solar Blockly Skript:

                                  ich habe eine Möglichkeit gefunden, mit der wir die LiveDaten alle 10sec bekommen.

                                  1. In den Instanzen JavaSkript auswählen und auf Einstellungen gehen:

                                  www.JPG

                                  1. Die Maximalen Anfragen von Standard auf 10000 stellen

                                  10000.JPG

                                  1. Die Zeit im Skript auf 10 Sekunden stellen:

                                  qqq.JPG

                                  Bei mir läuft es jetzt seit gestern 23:39Uhr ohne Ausfall, weniger Zeit habe ich nicht probiert.

                                  @syntetic

                                  ich denke diese Einstellung würde den Fehler bei der 10 Sekundenabfrage beseitigen...

                                  D 1 Reply Last reply Reply Quote 2
                                  • D
                                    DieWaldfee @Steffe.S. last edited by DieWaldfee

                                    @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)

                                    Steffe.S. 1 Reply Last reply Reply Quote 1
                                    • Steffe.S.
                                      Steffe.S. @DieWaldfee last edited by Steffe.S.

                                      @diewaldfee :

                                      prinzipiell wäre ein "Enphase-Adapter" eine coole Sache, aber ich habe 0% (Tendenz gleichbleibend) Plan von einer Adapterprogrammierung.

                                      Ich bin gerne Dein Alphatester 🤓

                                      D 3 Replies Last reply Reply Quote 0
                                      • D
                                        DieWaldfee @Steffe.S. last edited by

                                        @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 😁

                                        D 1 Reply Last reply Reply Quote 2
                                        • D
                                          DieWaldfee @DieWaldfee last edited by

                                          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. Negalein 2 Replies Last reply Reply Quote 2
                                          • D
                                            DieWaldfee @Steffe.S. last edited by

                                            @steffe-s ...reply auf mich selbst gemacht... s.o. bin fertig

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            865
                                            Online

                                            32.2k
                                            Users

                                            80.8k
                                            Topics

                                            1.3m
                                            Posts

                                            api enphase envoy iq-gateway pv anlage script solar
                                            16
                                            229
                                            45923
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo