Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Kaco Blueplanet NX3 10.0 Wechselrichter auslesen (JSON)

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Kaco Blueplanet NX3 10.0 Wechselrichter auslesen (JSON)

    This topic has been deleted. Only users with topic management privileges can see it.
    • Jörg 5
      Jörg 5 @paul53 last edited by Jörg 5

      @paul53 said in Kaco Blueplanet NX3 10.0 Wechselrichter auslesen (JSON):

      @jörg-5 sagte: es ist etd nicht eto

      Ich habe vermutet, dass "etd" die Tagesproduktion in 0,1 kWh ist?
      to = total, td = today ?

      Richtig! Für mich ist etd interessant, dann kann ich die Tageswerte analysieren. Ich muss nur noch herausfinden wie ich aus der Systemvariable ein Diagram erzeugen kann. (Ist aber ein anderes Thema)

      Wichtig ist das dein Javascript super funktionmiert und alles macht, wie es soll! Tip Top! Ganz lieben Dank noch mal.

      1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @Jörg 5 last edited by paul53

        @jörg-5 sagte: Ich ahbe es bei mir jetzt entsprechend so:

        Stelle in der CCU auf Zahl um und lass im Skript die Maßeinheiten weg.

                    setState('hm-rega.0.35000', obj.pac); // AC Leistung in W
                    setState('hm-rega.0.35001', obj.etd / 10); // Energie Tag in kWh
        
        Jörg 5 1 Reply Last reply Reply Quote 0
        • Jörg 5
          Jörg 5 @paul53 last edited by Jörg 5

          @paul53 said in Kaco Blueplanet NX3 10.0 Wechselrichter auslesen (JSON):

                  setState('hm-rega.0.35000', obj.pac); // AC Leistung in W                                                                    
          

          Ahhhh Jetzt klappt es auch! Werte werden übergeben und die SV gefüllt.

          LÖSUNG SIEHT SO AUS:

          schedule('*/10 * * * * *', function() {
          
              request('http://192.168.10.214:8484/getdevdata.cgi?device=2&sn=10.0NX3*********', function(error, response, result) {
          
                  if(!error && result) {
          
                      const obj = JSON.parse(result);
          
                      setState('hm-rega.0.35000', obj.pac); // AC Leistung in W
                      setState('hm-rega.0.35001', obj.etd / 10); // Energie Tag in kWh
          
                  }
          
              });
          
          });
          

          Dafür bekomme ich jetzt in der Log folgende Warnhinweise:

          javascript.0
          	2024-02-10 15:05:50.140	info	State value to set for "hm-rega.0.35001" has to be type "string" but received type "number"
          javascript.0
          	2024-02-10 15:05:50.137	info	State value to set for "hm-rega.0.35000" has to be type "string" but received type "number"
          javascript.0
          	2024-02-10 15:05:50.111	warn	at processTicksAndRejections (node:internal/process/task_queues:82:21)
          javascript.0
          	2024-02-10 15:05:50.111	warn	at endReadableNT (node:internal/streams/readable:1400:12)
          javascript.0
          	2024-02-10 15:05:50.111	warn	at IncomingMessage.emit (node:domain:489:12)
          javascript.0
          	2024-02-10 15:05:50.110	warn	at IncomingMessage.emit (node:events:529:35)
          javascript.0
          	2024-02-10 15:05:50.110	warn	at Object.onceWrapper (node:events:631:28)
          javascript.0
          	2024-02-10 15:05:50.110	warn	at IncomingMessage.<anonymous> (/opt/iobroker/node_modules/request/request.js:1076:12)
          javascript.0
          	2024-02-10 15:05:50.110	warn	at Request.emit (node:domain:489:12)
          javascript.0
          	2024-02-10 15:05:50.109	warn	at Request.emit (node:events:517:28)
          javascript.0
          	2024-02-10 15:05:50.109	warn	at Request.<anonymous> (/opt/iobroker/node_modules/request/request.js:1154:10)
          javascript.0
          	2024-02-10 15:05:50.109	warn	at Request.emit (node:domain:489:12)
          javascript.0
          	2024-02-10 15:05:50.109	warn	at Request.emit (node:events:517:28)
          javascript.0
          	2024-02-10 15:05:50.108	warn	at Request.self.callback (/opt/iobroker/node_modules/request/request.js:185:22)
          javascript.0
          	2024-02-10 15:05:50.108	warn	at Request._callback (/opt/iobroker/node_modules/iobroker.javascript/lib/request.js:27:17)
          javascript.0
          	2024-02-10 15:05:50.108	warn	at script.js.PV.Erzeugung_JavaScript:10:13
          javascript.0
          	2024-02-10 15:05:50.107	warn	at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1740:20)
          javascript.0
          	2024-02-10 15:05:50.105	warn	You are assigning a number to the state "hm-rega.0.35001" which expects a string. Please fix your code to use a string or change the state type to number. This warning might become an error in future versions.
          javascript.0
          	2024-02-10 15:05:50.104	warn	at processTicksAndRejections (node:internal/process/task_queues:82:21)
          javascript.0
          	2024-02-10 15:05:50.104	warn	at endReadableNT (node:internal/streams/readable:1400:12)
          javascript.0
          	2024-02-10 15:05:50.103	warn	at IncomingMessage.emit (node:domain:489:12)
          javascript.0
          	2024-02-10 15:05:50.103	warn	at IncomingMessage.emit (node:events:529:35)
          javascript.0
          	2024-02-10 15:05:50.103	warn	at Object.onceWrapper (node:events:631:28)
          javascript.0
          	2024-02-10 15:05:50.103	warn	at IncomingMessage.<anonymous> (/opt/iobroker/node_modules/request/request.js:1076:12)
          javascript.0
          	2024-02-10 15:05:50.102	warn	at Request.emit (node:domain:489:12)
          javascript.0
          	2024-02-10 15:05:50.102	warn	at Request.emit (node:events:517:28)
          javascript.0
          	2024-02-10 15:05:50.102	warn	at Request.<anonymous> (/opt/iobroker/node_modules/request/request.js:1154:10)
          javascript.0
          	2024-02-10 15:05:50.102	warn	at Request.emit (node:domain:489:12)
          javascript.0
          	2024-02-10 15:05:50.102	warn	at Request.emit (node:events:517:28)
          javascript.0
          	2024-02-10 15:05:50.101	warn	at Request.self.callback (/opt/iobroker/node_modules/request/request.js:185:22)
          javascript.0
          	2024-02-10 15:05:50.101	warn	at Request._callback (/opt/iobroker/node_modules/iobroker.javascript/lib/request.js:27:17)
          javascript.0
          	2024-02-10 15:05:50.101	warn	at script.js.PV.Erzeugung_JavaScript:9:13
          javascript.0
          	2024-02-10 15:05:50.100	warn	at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1740:20)
          javascript.0
          	2024-02-10 15:05:50.096	warn	You are assigning a number to the state "hm-rega.0.35000" which expects a string. Please fix your code to use a string or change the state type to number. This warning might become an error in future versions.
          
          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @Jörg 5 last edited by paul53

            @jörg-5 sagte: Warnhinweise:

            Starte mal die Instanz "hm-rega.0" neu, damit ioBroker die Änderungen in der CCU mitbekommt.
            Schau hinterher die Objektdaten des DP "hm-rega.0.35000 an. Er muss vom Typ "number" sein.

            Jörg 5 1 Reply Last reply Reply Quote 0
            • Jörg 5
              Jörg 5 @paul53 last edited by

              @paul53 said in Kaco Blueplanet NX3 10.0 Wechselrichter auslesen (JSON):

              @jörg-5 sagte: Warnhinweise:

              Starte mal die Instanz "hm-rega.0" neu, damit ioBroker die Änderungen in der CCU mitbekommt.
              Schau hinterher die Objektdaten der SV an. Sie muss vom Typ "number" sein.

              Ich habe die Instanz komplett gestoppt und noch mal gestartet. Der Klick auf Restart hat zuvor keine verbesserung gebracht.
              Bekomme jetzt aktuell nur das zurück:

              hm-rega.0
              	2024-02-10 15:13:05.806	warn	Script "dom.GetObject(35001).State(9)" ignored, because still pending.
              

              und

              hm-rega.0
              	2024-02-10 15:11:40.116	warn	Got unexpected ID: hm-rega.0.35001
              hm-rega.0
              	2024-02-10 15:11:40.113	warn	Got unexpected ID: hm-rega.0.35000
              
              paul53 1 Reply Last reply Reply Quote 0
              • paul53
                paul53 @Jörg 5 last edited by

                @jörg-5 sagte: Bekomme jetzt aktuell nur das zurück:

                Hat sich die Datenpunkt-ID der beiden SV durch die Umstellung auf Zahl geändert?

                Jörg 5 1 Reply Last reply Reply Quote 0
                • Jörg 5
                  Jörg 5 @paul53 last edited by

                  @paul53 said in Kaco Blueplanet NX3 10.0 Wechselrichter auslesen (JSON):

                  @jörg-5 sagte: Bekomme jetzt aktuell nur das zurück:

                  Hat sich die Datenpunkt-ID der beiden SV durch die Umstellung auf Zahl geändert?

                  Nein. Alles beim alten.
                  Screenshot 2024-02-10 151941.png

                  Ich habe jetzt mal den Abfragewert von 10 auf 15 gesetzt im Script.

                  Jetzt ist der Fehler verschwunden. Vermutlich war das Abfrageinterval zu schnell.

                  paul53 1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 @Jörg 5 last edited by paul53

                    @jörg-5 sagte: Vermutlich war das Abfrageinterval zu schnell.

                    Ich vermute eher, dass die Instanz nach Neustart noch in der Initialisierungsphase war als die Meldung kam.
                    Meldet die CCU den Empfang nicht zurück? Dann müssten die Werte schwarz werden.

                    Zeige bitte die OBJEKTDATEN von "hm-rega.0.35000" in Code tags! (Expertenmodus und dann Bleistift rechts)

                    Jörg 5 Homoran 2 Replies Last reply Reply Quote 1
                    • Homoran
                      Homoran Global Moderator Administrators @Jörg 5 last edited by

                      @jörg-5 sagte in Kaco Blueplanet NX3 10.0 Wechselrichter auslesen (JSON):

                      Wenn ich auf "Zahl" umstelle, dann werden die Werte nicht mehr gefüllt und bleiben leer. Warum auch immer.
                      Siehe hier:

                      bitte den log dazu zeigen!

                      dIE sysVar muss Zahl sein, oder due Zahl muss als String übergeben werden.
                      ob du in der CCU sinnvol mit Strings rechnen kannst, weiß ich nicht mehr

                      Jörg 5 1 Reply Last reply Reply Quote 0
                      • Jörg 5
                        Jörg 5 @Homoran last edited by

                        @homoran said in Kaco Blueplanet NX3 10.0 Wechselrichter auslesen (JSON):

                        @jörg-5 sagte in Kaco Blueplanet NX3 10.0 Wechselrichter auslesen (JSON):

                        Wenn ich auf "Zahl" umstelle, dann werden die Werte nicht mehr gefüllt und bleiben leer. Warum auch immer.
                        Siehe hier:

                        bitte den log dazu zeigen!

                        dIE sysVar muss Zahl sein, oder due Zahl muss als String übergeben werden.
                        ob du in der CCU sinnvol mit Strings rechnen kannst, weiß ich nicht mehr

                        Hi again!

                        So, ich hab der Sache seine Zeit gelassen und mit 15 Sekunden (Was auch vollkommen ausreicht) funktioniert es jetzt komplett korrekt ohne Fehler! Da nun aber keine Sonne mehr ist, ist der Wechselrichter aus und ich kann Dir leider nichts mehr an Daten liefern. Ich werde das morgen noch mal beobachten. Soll ich dann noch mal die von Dir gewünschten Daten hier posten?

                        Viele Grüße
                        Jörg

                        1 Reply Last reply Reply Quote 0
                        • Jörg 5
                          Jörg 5 @paul53 last edited by Jörg 5

                          @paul53 said in Kaco Blueplanet NX3 10.0 Wechselrichter auslesen (JSON):

                          @jörg-5 sagte: Vermutlich war das Abfrageinterval zu schnell.

                          Ich vermute eher, dass die Instanz nach Neustart noch in der Initialisierungsphase war als die Meldung kam.
                          Meldet die CCU den Empfang nicht zurück? Dann müssten die Werte schwarz werden.

                          Zeige bitte die OBJEKTDATEN von "hm-rega.0.35000" in Code tags! (Expertenmodus und dann Bleistift rechts)

                          {
                            "_id": "hm-rega.0.35000",
                            "type": "state",
                            "common": {
                              "name": "PV Erzeugung - BP NX3",
                              "type": "number",
                              "read": true,
                              "write": true,
                              "role": "state",
                              "desc": "Erzeugung ",
                              "min": 0,
                              "max": 65000,
                              "unit": "W"
                            },
                            "native": {
                              "Name": "PV Erzeugung - BP NX3",
                              "TypeName": "VARDP",
                              "DPInfo": "Erzeugung ",
                              "ValueMin": 0,
                              "ValueMax": 65000,
                              "ValueUnit": "W",
                              "ValueType": 4,
                              "ValueSubType": 0,
                              "ValueList": ""
                            },
                            "from": "system.adapter.hm-rega.0",
                            "user": "system.user.admin",
                            "ts": 1707574316899,
                            "acl": {
                              "object": 1636,
                              "state": 1636,
                              "owner": "system.user.admin",
                              "ownerGroup": "system.group.administrator"
                            }
                          }
                          
                          {
                            "_id": "hm-rega.0.35001",
                            "type": "state",
                            "common": {
                              "name": "PV Erzeugung BP NX3 - Total",
                              "type": "number",
                              "read": true,
                              "write": true,
                              "role": "state",
                              "desc": "Tageserzeugung",
                              "min": 0,
                              "max": 65000,
                              "unit": "kWh"
                            },
                            "native": {
                              "Name": "PV Erzeugung BP NX3 - Total",
                              "TypeName": "VARDP",
                              "DPInfo": "Tageserzeugung",
                              "ValueMin": 0,
                              "ValueMax": 65000,
                              "ValueUnit": "kWh",
                              "ValueType": 4,
                              "ValueSubType": 0,
                              "ValueList": ""
                            },
                            "from": "system.adapter.hm-rega.0",
                            "user": "system.user.admin",
                            "ts": 1707574316905,
                            "acl": {
                              "object": 1636,
                              "state": 1636,
                              "owner": "system.user.admin",
                              "ownerGroup": "system.group.administrator"
                            }
                          }
                          

                          Aber wie gesagt, jetzt funktionierte es zum Schluss ja, auch ohne Warnungen, mit 15 Sekunden Abfragezeit.

                          paul53 1 Reply Last reply Reply Quote 0
                          • paul53
                            paul53 @Jörg 5 last edited by paul53

                            @jörg-5 sagte: jetzt funktionierte es zum Schluss ja, auch ohne Warnungen

                            So sehen die Objektdaten korrekt aus - bis auf die Namen.

                            • 35000: "PV Leistung - BP NX3"
                            • 35001: "PV Erzeugung BP NX3 - Tag"
                            1 Reply Last reply Reply Quote 1
                            • Homoran
                              Homoran Global Moderator Administrators @paul53 last edited by Homoran

                              @paul53 sagte in Kaco Blueplanet NX3 10.0 Wechselrichter auslesen (JSON):

                              Meldet die CCU den Empfang nicht zurück? Dann müssten die Werte schwarz werden.

                              @Jörg-5 wie sieht es damit aus?

                              dauert ggf. 30 Sekunden.
                              Vielleicht klemmt es deswegen. dann müsstest du das Rega polling Intervall runtersetzen

                              Jörg 5 1 Reply Last reply Reply Quote 1
                              • Jörg 5
                                Jörg 5 @Homoran last edited by

                                Moin @homoran

                                Habs jetzt ja schon ein paar Wochen laufen und es klappt hervorragend...
                                Bis die Sonne weg ist und der Wechselrichter aus geht.

                                Sag mal wie kann ich das Script erweitern, das es nur Werte schreibt, wenn die IP erreichbar ist?
                                Ich bekomme die Log mit folgenden Fehler über Nacht zu geschwemmt

                                javascript.0
                                	2024-03-29 20:01:33.060	error	Request error: Error: connect EHOSTUNREACH 192.168.10.214:8484
                                javascript.0
                                	2024-03-29 20:01:18.083	error	Request error: Error: connect EHOSTUNREACH 192.168.10.214:8484
                                javascript.0
                                	2024-03-29 20:01:03.075	error	Request error: Error: connect EHOSTUNREACH 192.168.10.214:8484
                                javascript.0
                                	2024-03-29 20:00:48.067	error	Request error: Error: connect EHOSTUNREACH 192.168.10.214:8484
                                javascript.0
                                	2024-03-29 20:00:33.059	error	Request error: Error: connect EHOSTUNREACH 192.168.10.214:8484
                                javascript.0
                                	2024-03-29 20:00:18.084	error	Request error: Error: connect EHOSTUNREACH 192.168.10.214:8484
                                javascript.0
                                	2024-03-29 20:00:03.079	error	Request error: Error: connect EHOSTUNREACH 192.168.10.214:8484
                                javascript.0
                                	2024-03-29 19:59:48.068	error	Request error: Error: connect EHOSTUNREACH 192.168.10.214:8484
                                javascript.0
                                	2024-03-29 19:59:33.059	error	Request error: Error: connect EHOSTUNREACH 192.168.10.214:8484
                                javascript.0
                                	2024-03-29 19:59:18.083	error	Request error: Error: connect EHOSTUNREACH 192.168.10.214:8484
                                

                                Ist ja logisch, der Wechselrichter arbeitet dann nicht mehr, da er nur bei Energie vom Dach funktioniert. Kommt nix, weil Nacht ist, ist er aus. Wie könnte man das machen?

                                Hatte an ein IF ELSE gedacht, aber das wüsste ich nicht umzusetzen, da es ja bereits eine ähnliche Funktion im Script gibt.
                                Evtl könnte man bei ERROR das Script stoppen bzw. die Abfrage überspringen. Nachteil dabei ist, man merkt nicht wenn der Wechselrichter mal eine neue IP bekommt oder ähnliches.

                                Jörg 5 1 Reply Last reply Reply Quote 0
                                • Jörg 5
                                  Jörg 5 @Jörg 5 last edited by

                                  Hallo @jörg-5 & @Homoran !

                                  Seit einem Update haut er mir diesen Fehler raus:

                                  javascript.0
                                  	2024-05-28 19:01:00.029	error	at processTimers (node:internal/timers:512:7)
                                  javascript.0
                                  	2024-05-28 19:01:00.029	error	at listOnTimeout (node:internal/timers:569:17)
                                  javascript.0
                                  	2024-05-28 19:01:00.028	error	at Timeout._onTimeout (/opt/iobroker/node_modules/node-schedule/lib/Invocation.js:228:7)
                                  javascript.0
                                  	2024-05-28 19:01:00.028	error	at /opt/iobroker/node_modules/node-schedule/lib/Invocation.js:268:28
                                  javascript.0
                                  	2024-05-28 19:01:00.028	error	at Job.invoke (/opt/iobroker/node_modules/node-schedule/lib/Job.js:171:15)
                                  javascript.0
                                  	2024-05-28 19:01:00.028	error	at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1769:34)
                                  javascript.0
                                  	2024-05-28 19:01:00.027	error	at Object.<anonymous> (script.js.PV.Erzeugung_JavaScript:4:5)
                                  javascript.0
                                  	2024-05-28 19:01:00.026	error	Error in callback: ReferenceError: Request is not defined
                                  

                                  Im Script steht folgendes:

                                   schedule('*/60 * * * * *', function() {
                                  
                                      Request('http://192.168.10.214:8484/getdevdata.cgi?device=2&sn=10.0NX312036540', function(error, response, result) {
                                  
                                          if(!error && result) {
                                  
                                              const obj = JSON.parse(result);
                                  
                                              setState('hm-rega.0.35000', obj.pac); // AC Leistung in W
                                              setState('hm-rega.0.35001', obj.etd / 10); // Energie Tag in kWh
                                  
                                          }
                                  
                                      });
                                  
                                  });
                                  

                                  Der Wechselrichter und die Daten dort, haben sich nicht verändert. Quelle und Ziel sind gleich geblieben.
                                  Die javascript.0 ist in v8.3.1 dort gab es glaube ich vor ein paar Tagen ein Update.

                                  Hat einer von euch eine Idee wie das Problem gelöst werden kann?

                                  Viele Grüße

                                  Jörg

                                  paul53 haus-automatisierung 2 Replies Last reply Reply Quote 0
                                  • paul53
                                    paul53 @Jörg 5 last edited by

                                    @jörg-5 sagte: Im Script steht folgendes:

                                    Mit Request (mit großem R) kann es noch nie funktioniert haben.
                                    Ergänze am Skriptanfang

                                    const Request = require('request');
                                    

                                    ... oder stelle auf httpGet() um, wozu es etliche Beiträge im Forum gibt.

                                    1 Reply Last reply Reply Quote 0
                                    • haus-automatisierung
                                      haus-automatisierung Developer Most Active @Jörg 5 last edited by

                                      @jörg-5 sagte in Kaco Blueplanet NX3 10.0 Wechselrichter auslesen (JSON):

                                      Hat einer von euch eine Idee wie das Problem gelöst werden kann?

                                      Auf httpGet migrieren: https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/upgrade-guide.md

                                      schedule('*/60 * * * * *', () => {
                                           httpGet('http://192.168.10.214:8484/getdevdata.cgi?device=2&sn=10.0NX312036540', (error, response) => {
                                               if (!error) {
                                                  const obj = JSON.parse(response.data);
                                       
                                                  setState('hm-rega.0.35000', obj.pac); // AC Leistung in W
                                                  setState('hm-rega.0.35001', obj.etd / 10); // Energie Tag in kWh
                                              }
                                          });
                                      });
                                      
                                      Jörg 5 1 Reply Last reply Reply Quote 1
                                      • Jörg 5
                                        Jörg 5 @haus-automatisierung last edited by

                                        @haus-automatisierung Vielen Dank für die schnelle Hilfe.
                                        Ich hatte das bei Blocky auch chon gesehen, als ich schauen wollte wie ich das mit Blocky notfalls machen könnte.
                                        Dein Link ist da auch sehr gut. Vielen Dank!!!

                                        Viele Grüße

                                        Jörg

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

                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        769
                                        Online

                                        31.8k
                                        Users

                                        80.0k
                                        Topics

                                        1.3m
                                        Posts

                                        4
                                        47
                                        1998
                                        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