Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Status vom Kostal Wechselrichter 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

    Status vom Kostal Wechselrichter auslesen?

    This topic has been deleted. Only users with topic management privileges can see it.
    • P
      PRozAC @bahnuhr last edited by

      @bahnuhr

      Das ist das aktuellste, welches ich von dir finden konnte

      
      // Photovoltaik: Piko 5.5 Anlage (alte Firmware)
      // Danke an homoran für den regex
      // @bahnuhr; 03/2019 Dieter Müller
       
      //Variaben
          var idaktuell = 'javascript.0.Status.Photovoltaik.Leistung_aktuell';
          var idTag = 'javascript.0.Status.Photovoltaik.Tagesleistung';
          var idall = 'javascript.0.Status.Photovoltaik.Leistung_gesamt';
          var idP1 = 'javascript.0.Status.Photovoltaik.Leistung_Strang1';
          var idP2 = 'javascript.0.Status.Photovoltaik.Leistung_Strang2';
       
          var NameAnlage = 'pvserver';        // Nutzername der Photovoltaik-Anlage
          var PassAnlage = 'mocken';         // Password der Photovoltaik-Anlage
          var IPAnlage = '192.168.0.40';    // IP der Photovoltaik-Anlage
       
          var logging = false;
          var request = require('request');
       
       
       function Piko() {
          log("Piko 5.5 auslesen");
          var results = [];
          request('http://' + NameAnlage + ':' + PassAnlage +'@' + IPAnlage, function (error, response, body) {
              var d = body.toString();
              if (logging) log (d);
              var reg = /#FFFFFF">[^\d]+([^<]+)/g
              var z = reg.exec(d);
       
              while(z != null) {
                  if (isNaN(z[1])) {
                      if (logging) log("keine Zahl= "+ z[1]);
                      z[1] = 0;
                  } else {
                      if (logging) log("Zahl= "+ z[1]);
                      parseFloat(z[1]);
                  }
                  results[results.length] = z[1];
                  z = reg.exec(d);
              }
              if (logging) log("results= "+ results);
       
          // Werte zuordnen
              var pwr = results[0];           // Energie aktuell in W
              var day = results[2];           // Tagesenergie in kWh
              var all = results[1];           // Gesamtenergie in kWh
              var v1 = results[3];            // PV Generator Nr. 1 - Spannung in V
              var i1 = results[5];            // PV Generator Nr. 1 - Strom in A
              var p1 = parseInt(v1 * i1);
              var v2 = results[7];            // PV Generator Nr. 2 - Spannung in V
              var i2 = results[9];            // PV Generator Nr. 2 - Strom in A
              var p2 = parseInt(v2 * i2);
       
              if (logging) log("Leistung aktuell= " + pwr + " W");
              if (logging) log("Tagesleistung= " + day + " kWh");
              if (logging) log("Leistung gesamt= " + all + " kWh");
      	    if (logging) log("Leistung Strang 1= " + p1 + " W");
          	if (logging) log("Leistung Strang 2= " + p2 + " W");
       
              setState(idaktuell, parseFloat(pwr));
              setState(idTag, parseFloat(day));
              setState(idall, parseFloat(all));
              setState(idP1, parseFloat(p1));
              setState(idP2, parseFloat(p2));
          });
      }
       
       
      schedule("2,7,12,17,22,27,32,37,42,47,52,57 * * * *", function () {
          log ("Auslöser: Schedule");
      	Piko();
      });
       
      schedule("*/10 * * * * *", function () {     // Variablen löschen um 00:03 Uhr   
          setState('javascript.0.Status.Photovoltaik.Tagesleistung', 0);
      });
      
      

      Bislang kommen Werte in den Datenpunkten an. Soweit so gut 👍

      1 Reply Last reply Reply Quote 0
      • bahnuhr
        bahnuhr Forum Testing Most Active last edited by

        Ja, das nehme ich auch.
        Bei mir läuft es.

        1 Reply Last reply Reply Quote 1
        • keramax1
          keramax1 @blackplanet333 last edited by

          @blackplanet333
          Danke sehr für diesen Beitrag, ich spiele schon seit Tagen mit der Regex und bekomm es nicht hin.
          Heute beim suchen bin ich über Deinen Beitrag gestolpert und sieheda, alles funktioniert beim ersten mal.
          SUPER DANKE

          1 Reply Last reply Reply Quote 0
          • L
            Los_Fritzos last edited by

            Hallo zusammen,
            das Ganze müsste doch auch bei einem Piko 7.0 funktionieren, oder?!
            auf meinem läuft die FW 5.5, für welche das Skript ja gedacht ist.
            Bei mir kommen hinten aber keine Werte raus, hat hier jemand eine Idee woran es liegen kann?
            Bei den Objekten bleiben Nullen stehen 😞
            Beste Grüße
            Los_Fritzos

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

              @Los_Fritzos sagte in Status vom Kostal Wechselrichter auslesen?:

              hat hier jemand eine Idee woran es liegen kann?

              hier nicht, aber vielleicht das log

              1 Reply Last reply Reply Quote 0
              • L
                Los_Fritzos last edited by

                @Homoran im log steht folgendes:

                Unbenannt.JPG

                1 Reply Last reply Reply Quote 0
                • S
                  scout1978 @bahnuhr last edited by

                  @bahnuhr
                  Hallo ich habe eine Piko 3.0 mit der Firmware 6.02
                  Ich habe nun die beiden Skripte und den Parser versucht und komme nicht weiter.
                  Beim aktuellsten Skript bekomme ich nur 0 angzeigt.
                  Versuche mich nun seit 4 wochen in Iokroker einzuarbeiten aber das übersteigt meine Fähigkeiten.
                  Grüße Gernot

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

                    @scout1978 sagte in Status vom Kostal Wechselrichter auslesen?:

                    Hallo ich habe eine Piko 3.0 mit der Firmware 6.02

                    also größer 5.31 und damit nicht mehr die alte "DOS-Oberfläche"

                    @scout1978 sagte in Status vom Kostal Wechselrichter auslesen?:

                    Ich habe nun ... den Parser versucht und komme nicht weiter.

                    Der kann dann auch nicht mehr funktionieren

                    @scout1978 sagte in Status vom Kostal Wechselrichter auslesen?:

                    Ich habe nun die beiden Skripte

                    welche beiden?

                    @scout1978 sagte in Status vom Kostal Wechselrichter auslesen?:

                    Beim aktuellsten Skript bekomme ich nur 0 angzeigt.

                    wo kommt die 0?

                    welches "aktuelle" Skript?

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

                      @Homoran
                      Ich hab mal bilder gemacht
                      Ich bekomme keine Werte bei den Objektenskript 2019.pngskript2019_2.png

                      Homoran 2 Replies Last reply Reply Quote 0
                      • Homoran
                        Homoran Global Moderator Administrators @scout1978 last edited by Homoran

                        @scout1978 Das ist für die alte Firmware - genau wie die regex
                        steht ja oben auch im Skript drin

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

                          @scout1978 Versuch es mal hier mit:

                          // Ausleseskript Wechselrichter Kostal Piko ab Firmware v05.31 (12.10.2015)
                          
                          //Variable
                          
                          //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.xxx.yyy/api/dxs.json';   // IP der Photovoltaik-Anlage
                          
                          
                          
                          createState('Messwerte.0.Solaranlage.Momentanwerte.Leistung_AC_aktuell', 0);
                          createState('Messwerte.0.Solaranlage.Summenwerte.Autarkiegrad_d',0);
                          createState('Messwerte.0.Solaranlage.Summenwerte.Autarkiegrad_G',0);
                          createState('Messwerte.0.Solaranlage.Summenwerte.Betriebszeit',0);
                          createState('Messwerte.0.Solaranlage.Momentanwerte.Leistung_DC_aktuell',0);
                          createState('Messwerte.0.Solaranlage.Momentanwerte.Eigenverbrauch',0);
                          createState('Messwerte.0.Solaranlage.Summenwerte.Eigenverbrauch_d');
                          createState('Messwerte.0.Solaranlage.Summenwerte.Eigenverbrauch_G', 0);
                          createState('Messwerte.0.Solaranlage.Summenwerte.Eigenverbrauchsquote_d', 0);
                          createState('Messwerte.0.Solaranlage.Summenwerte.Eigenverbrauchsquote_G', 0);
                          createState('Messwerte.0.Solaranlage.Summenwerte.Tagesertrag', 0);
                          createState('Messwerte.0.Solaranlage.Summenwerte.Gesamtertrag', 0);
                          createState('Messwerte.0.Solaranlage.Summenwerte.Hausverbrauch_d', 0);
                          createState('Messwerte.0.Solaranlage.Summenwerte.Hausverbrauch_G', 0);
                          createState('Messwerte.0.Solaranlage.Momentanwerte.P1Spannung');
                          createState('Messwerte.0.Solaranlage.Momentanwerte.P2Spannung');
                          createState('Messwerte.0.Solaranlage.Momentanwerte.P1Strom');
                          createState('Messwerte.0.Solaranlage.Momentanwerte.P2Strom');
                          createState('Messwerte.0.Solaranlage.Momentanwerte.P1Leistung');
                          createState('Messwerte.0.Solaranlage.Momentanwerte.P2Leistung');
                          
                          
                          var logging = false;
                          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 +
                             '&dxsEntries=' + ID_Status +
                             '&dxsEntries=' + ID_DC1Leistung +
                             '&dxsEntries=' + ID_DC2Leistung,
                             
                             function (error, response, body) {
                                 if(!error && response.statusCode ==200) {
                                     if(logging) log(body);
                                     var result = JSON.parse(body).dxsEntries;
                                     setState('Messwerte.0.Solaranlage.Momentanwerte.Leistung_DC_aktuell', result[0].value || 0, true);
                                     setState('Messwerte.0.Solaranlage.Momentanwerte.Leistung_AC_aktuell', result[1].value || 0, true);
                                     setState('Messwerte.0.Solaranlage.Momentanwerte.Eigenverbrauch', result[2].value || 0, true);
                                     setState('Messwerte.0.Solaranlage.Summenwerte.Eigenverbrauch_d', result[3].value || 0, true);
                                     setState('Messwerte.0.Solaranlage.Summenwerte.Eigenverbrauch_G', result[4].value || 0, true);
                                     setState('Messwerte.0.Solaranlage.Summenwerte.Eigenverbrauchsquote_d', result[5].value || 0, true);
                                     setState('Messwerte.0.Solaranlage.Summenwerte.Eigenverbrauchsquote_G', result[6].value || 0, true);
                                     setState('Messwerte.0.Solaranlage.Summenwerte.Tagesertrag', result[7].value || 0, true);
                                     setState('Messwerte.0.Solaranlage.Summenwerte.Gesamtertrag', result[8].value || 0, true);
                                     setState('Messwerte.0.Solaranlage.Summenwerte.Hausverbrauch_d', result[9].value || 0, true);
                                     setState('Messwerte.0.Solaranlage.Summenwerte.Hausverbrauch_G', result[10].value || 0, true);
                                     setState('Messwerte.0.Solaranlage.Summenwerte.Autarkiegrad_G', result[11].value || 0, true);
                                     setState('Messwerte.0.Solaranlage.Summenwerte.Autarkiegrad_d', result[12].value || 0, true);
                                     setState('Messwerte.0.Solaranlage.Summenwerte.Betriebszeit', result[13].value || 0, true);
                                     setState('Messwerte.0.Solaranlage.Momentanwerte.P1Spannung', result[14].value || 0, true);
                                     setState('Messwerte.0.Solaranlage.Momentanwerte.P2Spannung', result[15].value || 0, true);
                                     setState('Messwerte.0.Solaranlage.Momentanwerte.P1Strom', result[16].value || 0, true);
                                     setState('Messwerte.0.Solaranlage.Momentanwerte.P2Strom', result[17].value || 0, true);
                                     setState('Messwerte.0.Solaranlage.Momentanwerte.P1Leistung', result[18].value || 0, true);
                                     setState('Messwerte.0.Solaranlage.Momentanwerte.P2Leistung', result[19].value || 0, true);
                                     setState('Messwerte.0.Solaranlage.Momentanwerte.Status', result[20].value || 0, true);
                                     setState('Messwerte.0.Solaranlage.Momentanwerte.Leistung_String1', result[21].value || 0, true);
                                     setState('Messwerte.0.Solaranlage.Momentanwerte.Leistung_String2', result[22].value || 0, true);
                                 } else {
                                     log("Fehler: " + error + " bei Abfrage von: " + url, "warn");
                                 }
                             });
                          }
                          
                          //schedule("*/11 * 5-23 * * *", Piko);
                          on('smartmeter.0.1-0:16_7_0__255.value', Piko); // triggert bei Wertänderung;
                          
                          

                          IP noch eingeben statt xxx.yyy

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

                            @Homoran
                            Ip und Benutzer habe ich eingefügt...
                            Gibt es denn eine möglichkeit für die neue Firmware?
                            Ich finde weit und breit nichts.... Aber das schwächste Glied sitz ja bekanntlich an der Tastatur....;)Piko.png

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

                              @scout1978 sagte in Status vom Kostal Wechselrichter auslesen?:

                              Ip und Benutzer habe ich eingefügt...

                              Wo?

                              @scout1978 sagte in Status vom Kostal Wechselrichter auslesen?:

                              Gibt es denn eine möglichkeit für die neue Firmware?

                              habe ich dir doch gerade gepostet!

                              @scout1978 sagte in Status vom Kostal Wechselrichter auslesen?:

                              das schwächste Glied sitz ja bekanntlich an der Tastatur

                              sieht so aus!
                              mach doch mal den Spoiler auf

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

                                @Homoran
                                Also klappt gerade nicht...objekte.png Log Neu.png

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

                                  @scout1978 sagte in Status vom Kostal Wechselrichter auslesen?:

                                  Also klappt gerade nicht...

                                  Was machst du da?
                                  Wieso steht der Text des Posts im log?

                                  Diginix 1 Reply Last reply Reply Quote 0
                                  • Diginix
                                    Diginix @Homoran last edited by

                                    @Homoran Das ist mal geil. Forenposts im ioBroker Log. 😂
                                    Vllt hat @scout1978 sein Skript mit der Zeug aus der Zwischenablage zerschossen. Aber warum war dein Text in seiner Zwischenablage? 🤔

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

                                      @Diginix sagte in Status vom Kostal Wechselrichter auslesen?:

                                      Aber warum war dein Text in seiner Zwischenablage?

                                      wenn er den ganzen post kopiert und nicht nur den code

                                      S 2 Replies Last reply Reply Quote 0
                                      • S
                                        scout1978 @Homoran last edited by

                                        @Homoran
                                        Keine Ahnung wie des da rein gerutscht ist .....
                                        Ich versuche es nochmal....

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

                                          @Homoran
                                          Komme nicht weiterLog.png objekte.png

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

                                            @scout1978 sagte in Status vom Kostal Wechselrichter auslesen?:

                                            Komme nicht weiter

                                            nochmals:

                                            @Homoran sagte in Status vom Kostal Wechselrichter auslesen?:

                                            Was machst du da?

                                            Bitte das log vollständig (der wichtige Teil kam vorher) und als txt in Code-Tags posten

                                            OK - das createstate funktioniert nicht mehr mit Messwerte.0 und schreibt es jetzt unter javascript.0.
                                            Da könnte man jetzt das entweder austauschen gegen 0_userdata.0 oder den Pfad ganz anders machen.

                                            die Datenpunkte sind ja geschrieben und müssten bald befüllt werden

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            658
                                            Online

                                            31.7k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

                                            35
                                            331
                                            57542
                                            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