Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Frage] Piko Wechslerichter 5.5 (Firmware 5.31) auslesen

    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

    [Frage] Piko Wechslerichter 5.5 (Firmware 5.31) auslesen

    This topic has been deleted. Only users with topic management privileges can see it.
    • paul53
      paul53 last edited by

      @Strizz:

      kann ich mir irgendwie ansehen, ob in 'body' überhaupt was drin steht? `
      Wenn````
      var logging = true;

      1 Reply Last reply Reply Quote 0
      • S
        Strizz last edited by

        Hallo paul53,

        gaaanz herzlichen Dank. Es funktioniert! Ich bin happy!

        Ich möchte deine Hilfe ja nicht überstrapazieren. Aber hast du noch einen Tip für mich? Jetzt läuft das Programm ja alle 5 Minuten Tag und Nacht. Wie kann ich das Programm morgens mit Sonnenaufgang starten, dann tagsüber alle 5 Minuten ausführen und mit Sonnenuntergang beenden? Geht das?

        Strizz

        1 Reply Last reply Reply Quote 0
        • paul53
          paul53 last edited by

          @Strizz:

          Er läuft zwar ohne Fehler durch, aber es werden keine Werte eingefügt. `
          @Strizz:

          Es funktioniert! Ich bin happy! `
          Wo lag der Fehler ?
          @Strizz:

          Wie kann ich das Programm morgens mit Sonnenaufgang starten, dann tagsüber alle 5 Minuten ausführen und mit Sonnenuntergang beenden? `
          Das sollte so funktionieren (nicht getestet):

          ...
          var timer = null;
          
          schedule({astro: "sunrise"}, function () {
              timer = schedule("3,7,12,17,22,27,32,37,42,47,52,57 * * * *", function () {
                  log ("Auslöser: Schedule");
                  Piko();
              });
          });
          
          schedule({astro: "sunset"}, function () {
              if(timer) clearSchedule(timer);
          });
          
          
          1 Reply Last reply Reply Quote 0
          • S
            Strizz last edited by

            Hallo paul53,

            danke für die schnelle Antwort. Allerdings scheint etwas nicht zu stimmen:

            Wenn ich den Code so reinkopiere , wie er ist, bekomme ich die Fehlermeldung:

            SyntaxError: Unexpected token )
            

            Wenn ich in der letzten Zeile dann noch eine geschweifte Klammer einfüge, verschwindet Syntax-Error Meldung. Statt dessen erfolgt jedoch die Meldung

            schedule callback missing
            

            Da stehe ich dann wieder auf dem Schlauch.

            Kannst du noch mal helfen?

            Strizz

            1 Reply Last reply Reply Quote 0
            • paul53
              paul53 last edited by

              Sorry, es fehlt die geschweifte Klammer (zu) hinter "sunset". Habe es korrigiert.

              1 Reply Last reply Reply Quote 0
              • S
                Strizz last edited by

                Super! Danke für die schnelle Hilfe.

                Strizz

                1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 last edited by

                  Damit die Erfassung nicht erst ab nächsten Morgen funktioniert, sollte das Skript ergänzt werden:

                  ...
                  // Script start
                  if(isAstroDay()) {
                      timer = schedule("3,7,12,17,22,27,32,37,42,47,52,57 * * * *", function () {
                          log ("Auslöser: Schedule");
                          Piko();
                      });
                  }
                  

                  oder Du vereinfachst das Skript:

                  ...
                  schedule("3,7,12,17,22,27,32,37,42,47,52,57 * * * *", function () {
                      if(isAstroday()) {
                          log ("Auslöser: Schedule");
                          Piko();
                      }
                  });
                  
                  
                  1 Reply Last reply Reply Quote 0
                  • S
                    Strizz last edited by

                    Hallo paul53,

                    die Sonne scheint bei uns zwar nicht mehr, so dass eh erst morgen weiter aufgezeichnet wird. Ich habe das Script aber geändert.

                    Werde das Script jetzt mal einige Zeit testen und dann hier insgesamt veröffentlichen. Vielleicht hat der eine oder andere ja denselben Wechselrichter.

                    Nochmal besten Dank.

                    Strizz

                    1 Reply Last reply Reply Quote 0
                    • S
                      Strizz last edited by

                      OH, war wohl zu schnell. Erhalte jetzt die Fehlermeldung

                      	javascript.0 ReferenceError: isAstroday is not defined at Object. (script.js.common.Piko_auslesen:131:8) at Job.job (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:1500:34) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:175:10) at null._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:479:11) at Timer.listOnTimeout (timers.js:92:15)
                      

                      Wo steckt denn da der Wurm?

                      1 Reply Last reply Reply Quote 0
                      • S
                        Strizz last edited by

                        Habe mal diese Zeile geändert

                         if(isAstroDay ()) {
                        

                        Großes 'D' und ein Leerzeichen eingefügt. Jetzt kommen keine Fehlermeldungen mehr.

                        1 Reply Last reply Reply Quote 0
                        • paul53
                          paul53 last edited by

                          Sorry, mein Fehler: Mit großem 'D' wie in dem Skript im gleichen Beitrag darüber.

                          1 Reply Last reply Reply Quote 0
                          • D
                            danielwester last edited by

                            Hallo, ich bin hier im Forum auf dieses Script für den Piko Wechselrichter gestoßen und wollte er gerne Ausprobieren.

                            Das Script läuft auch ohne fehler durch, nur stehen die werte alle auf 0. Weis jemand was ich falsch mache?? :?: :?:

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

                              Hallo und Willkommen im Forum!

                              Wie sieht denn dein Webinterface aus?

                              Es gibt da verschiedene Versionen.

                              Mehr nach Win10 oder nach DOS?

                              Gruß

                              Rainer

                              1 Reply Last reply Reply Quote 0
                              • D
                                danielwester last edited by

                                mehr nach Win 10

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

                                  Dann ist das hier das richtige Skript.

                                  Du hast aber schon die Änderungen, die im Laufe des Threads kamen eingepflegt?

                                  • und die IP angepasst?

                                  • und ggf. Password und User?

                                  Gruß

                                  Rainer

                                  1 Reply Last reply Reply Quote 0
                                  • D
                                    danielwester last edited by

                                    Ja, die IP adresse habe ich geändert. Passwort und User habe ich nicht gesehen das ich es eingeben muss.

                                    Die Änderungen habe ich nicht angepasst, da ich nicht weiß wo :?

                                    1 Reply Last reply Reply Quote 0
                                    • S
                                      Strizz last edited by

                                      Hallo danielwester,

                                      da ich nicht weiß, ob du dein Problem inzwischen lösen konntest, schicke ich dir mal das endgültige Script, so wie es bei mir seit einigen Monaten läuft. Anpassen musst du nur die IP-Nummer sonst nichts. Der erste Teil des Scripts enthält alle auslesbaren Werte. Mich interessiert derzeit allerdings nur ein Teil davon. Nur wenn du mehr willst, muss du das Script anpassen.

                                      // Ausleseskript Wechselrichter Kostal Piko ab Firmware v05.31 (12.10.2015)
                                      
                                      //Variaben
                                      
                                       //Leistungswerte
                                          ID_DCEingangGesamt = 33556736;         // in W
                                          ID_Ausgangsleistung = 67109120;        // in W
                                          ID_Eigenverbrauch = 83888128;          // in W
                                          //Status
                                          ID_Status = 16780032;                  // 0:Off
                                          //Statistik - Tag
                                          ID_Ertrag_d = 251658754;               // in Wh
                                          ID_Hausverbrauch_d = 251659010;        // in Wh
                                          ID_Eigenverbrauch_d = 251659266;       // in Wh
                                          ID_Eigenverbrauchsquote_d = 251659278; // in %
                                          ID_Autarkiegrad_d = 251659279;         // in %
                                          //Statistik - Gesamt
                                          ID_Ertrag_G = 251658753;               // in kWh
                                          ID_Hausverbrauch_G = 251659009;        // in kWh
                                          ID_Eigenverbrauch_G = 251659265;       // in kWh
                                          ID_Eigenverbrauchsquote_G = 251659280; // in %
                                          ID_Autarkiegrad_G = 251659281;         // in %
                                          ID_Betriebszeit = 251658496;           // in h
                                          //Momentanwerte - PV Genertor
                                          ID_DC1Spannung = 33555202;             // in V
                                          ID_DC1Strom = 33555201;                // in A
                                          ID_DC1Leistung = 33555203;             // in W
                                          ID_DC2Spannung = 33555458;             // in V
                                          ID_DC2Strom = 33555457;                // in A
                                          ID_DC2Leistung = 33555459;             // in W
                                          //Momentanwerte Haus
                                          ID_HausverbrauchSolar = 83886336;      // in W
                                          ID_HausverbrauchBatterie = 83886592;   // in W
                                          ID_HausverbrauchNetz = 83886848;       // in W
                                          ID_HausverbrauchPhase1 = 83887106;     // in W
                                          ID_HausverbrauchPhase2 = 83887362;     // in W
                                          ID_HausverbrauchPhase3 = 83887618;     // in W
                                          //Netz Netzparameter
                                          ID_NetzAusgangLeistung = 67109120;     // in W
                                          ID_NetzFrequenz = 67110400;            // in Hz
                                          ID_NetzCosPhi = 67110656;
                                          //Netz Phase 1
                                          ID_P1Spannung = 67109378;              // in V
                                          ID_P1Strom = 67109377;                 // in A
                                          ID_P1Leistung = 67109379;              // in W
                                          //Netz Phase 2
                                          ID_P2Spannung = 67109634;              // in V
                                          ID_P2Strom = 67109633;                 // in A
                                          ID_P2Leistung = 67109635;              // in W
                                          //Netz Phase 3
                                          ID_P3Spannung = 67109890;              // in V
                                          ID_P3Strom = 67109889;                 // in A
                                          ID_P3Leistung = 67109891;              // in W
                                      
                                      var IPAnlage = '192.168.178.50/api/dxs.json';   // IP der Photovoltaik-Anlage
                                      
                                      createState('Piko.Ausgangsleistung', 0);
                                      createState('Piko.Autarkiegrad_d',0);
                                      createState('Piko.Autarkiegrad_G',0);
                                      createState('Piko.Betriebszeit',0);
                                      createState('Piko.DCEingangGesamt',0);
                                      createState('Piko.Eigenverbrauch',0);
                                      createState('Piko.Eigenverbrauch_d');
                                      createState('Piko.Eigenverbrauch_G', 0);
                                      createState('Piko.Eigenverbrauchsquote_d', 0);
                                      createState('Piko.Eigenverbrauchsquote_G', 0);
                                      createState('Piko.Ertrag_d', 0);
                                      createState('Piko.Ertrag_G', 0);
                                      createState('Piko.Hausverbrauch_d', 0);
                                      createState('Piko.Hausverbrauch_G', 0);
                                      createState('Piko.P1Spannung');
                                      createState('Piko.P2Spannung');
                                      createState('Piko.P1Strom');
                                      createState('Piko.P2Strom');
                                      createState('Piko.P1Leistung');
                                      createState('Piko.P2Leistung');
                                      
                                      var logging = true;
                                      var request = require('request');
                                      
                                      function Piko() {
                                          if (logging) log("Piko 5.5 auslesen");
                                          request('http://' + IPAnlage + 
                                          '?dxsEntries=' + ID_DCEingangGesamt +
                                          '&dxsEntries=' + ID_Ausgangsleistung +
                                          '&dxsEntries=' + ID_Eigenverbrauch +
                                          '&dxsEntries=' + ID_Eigenverbrauch_d +
                                          '&dxsEntries=' + ID_Eigenverbrauch_G +
                                          '&dxsEntries=' + ID_Eigenverbrauchsquote_d +
                                          '&dxsEntries=' + ID_Eigenverbrauchsquote_G +
                                          '&dxsEntries=' + ID_Ertrag_d +
                                          '&dxsEntries=' + ID_Ertrag_G +
                                          '&dxsEntries=' + ID_Hausverbrauch_d +
                                          '&dxsEntries=' + ID_Hausverbrauch_G +
                                          '&dxsEntries=' + ID_Autarkiegrad_G +
                                          '&dxsEntries=' + ID_Autarkiegrad_d +
                                          '&dxsEntries=' + ID_Betriebszeit +
                                          '&dxsEntries=' + ID_P1Spannung +
                                          '&dxsEntries=' + ID_P2Spannung +
                                          '&dxsEntries=' + ID_P1Strom +
                                          '&dxsEntries=' + ID_P2Strom +
                                          '&dxsEntries=' + ID_P1Leistung +
                                          '&dxsEntries=' + ID_P2Leistung,
                                      
                                          function (error, response, body) {
                                              if(!error && response.statusCode ==200) {
                                                  if(logging) log(body);
                                                  var result = JSON.parse(body).dxsEntries;
                                                  setState('Piko.DCEingangGesamt', result[0].value);
                                                  setState('Piko.Ausgangsleistung', result[1].value);
                                                  setState('Piko.Eigenverbrauch', result[2].value);
                                                  setState('Piko.Eigenverbrauch_d', result[3].value); 
                                                  setState('Piko.Eigenverbrauch_G', result[4].value);
                                                  setState('Piko.Eigenverbrauchsquote_d', result[5].value);
                                                  setState('Piko.Eigenverbrauchsquote_G', result[6].value);
                                                  setState('Piko.Ertrag_d', result[7].value);
                                                  setState('Piko.Ertrag_G', result[8].value);
                                                  setState('Piko.Hausverbrauch_d', result[9].value);
                                                  setState('Piko.Hausverbrauch_G', result[10].value);
                                                  setState('Piko.Autarkiegrad_G', result[11].value);
                                                  setState('Piko.Autarkiegrad_d', result[12].value);
                                                  setState('Piko.Betriebszeit', result[13].value);
                                                  setState('Piko.P1Spannung', result[14].value);
                                                  setState('Piko.P2Spannung', result[15].value);
                                                  setState('Piko.P1Strom', result[16].value);
                                                  setState('Piko.P2Strom', result[17].value);
                                                  setState('Piko.P1Leistung', result[18].value);
                                                  setState('Piko.P2Leistung', result[19].value);
                                              } else {
                                                  log("Fehler: " + error + " bei Abfrage von: " + url, "warn");
                                              }
                                          });
                                      }
                                      
                                      schedule("3,12,22,32,42,52,59 * * * *", function () {
                                          if(isAstroDay ()) {
                                              log ("Auslöser: Schedule");
                                              Piko();
                                          }
                                      });
                                      
                                      

                                      Hoffe, das hilft dir weiter.

                                      Strizz

                                      1 Reply Last reply Reply Quote 0
                                      • O
                                        Obilarius last edited by

                                        Hallo zusammen.

                                        kann mir jemand von euch sagen wo ihr diese Nummern (ID_DCEingangGesamt = 33556736) herhabt?

                                        Habe einen Kostal Piko mit FW 6.3.

                                        Das Script an sich funktioniert bei mir schon wunderbar nur habe ich noch einen Batteriespeicher bei dem ich auch gerne noch die Daten haben würde.

                                        Das müssten ja auch nur weitere Felder sein die ich mit der URL(JSON) abfragen kann oder?

                                        Gruß Sascha

                                        1 Reply Last reply Reply Quote 0
                                        • S
                                          Strizz last edited by

                                          Hallo Sascha,

                                          ich habe die Werte damals im Photovoltaik-Forum in folgendem Thread gefunden

                                          „https://www.photovoltaikforum.com/kosta … 15856.html“

                                          Vielleicht kannst du dort mal nachfragen.

                                          Gruß

                                          Strizz

                                          Gesendet von iPad mit Tapatalk Pro

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

                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          446
                                          Online

                                          31.9k
                                          Users

                                          80.2k
                                          Topics

                                          1.3m
                                          Posts

                                          5
                                          24
                                          4601
                                          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