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.
    • Homoran
      Homoran Global Moderator Administrators last edited by

      Hallo NIls,

      zum Auslesen des aktuellen Kostal gibt es hier im Forum ein Skript.

      ich habe es noch ein wenig an meine Bedürfnisse angepasst (da ist aber noch viel Luft drin). Leider kommt man an die Fehlermelduungen nicht ran.

      Die müsste man über ModBus auslesen. Die dazu notwendigen Informationen würde Kostal auf Anfrage gegen Unterschrift unter ein NDA herausgeben.

      Hier "mein" Script:

      ! ````
      // Ausleseskript Wechselrichter Kostal Piko ab Firmware v05.31 (12.10.2015)
      ! //Variablen
      ! //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, true);
              setState('Messwerte.0.Solaranlage.Momentanwerte.Leistung_AC_aktuell', result[1].value, true);
              setState('Messwerte.0.Solaranlage.Momentanwerte.Eigenverbrauch', result[2].value);
              setState('Messwerte.0.Solaranlage.Summenwerte.Eigenverbrauch_d', result[3].value); 
              setState('Messwerte.0.Solaranlage.Summenwerte.Eigenverbrauch_G', result[4].value);
              setState('Messwerte.0.Solaranlage.Summenwerte.Eigenverbrauchsquote_d', result[5].value);
              setState('Messwerte.0.Solaranlage.Summenwerte.Eigenverbrauchsquote_G', result[6].value);
              setState('Messwerte.0.Solaranlage.Summenwerte.Tagesertrag', result[7].value, true);
              setState('Messwerte.0.Solaranlage.Summenwerte.Gesamtertrag', result[8].value, true);
              setState('Messwerte.0.Solaranlage.Summenwerte.Hausverbrauch_d', result[9].value);
              setState('Messwerte.0.Solaranlage.Summenwerte.Hausverbrauch_G', result[10].value);
              setState('Messwerte.0.Solaranlage.Summenwerte.Autarkiegrad_G', result[11].value);
              setState('Messwerte.0.Solaranlage.Summenwerte.Autarkiegrad_d', result[12].value);
              setState('Messwerte.0.Solaranlage.Summenwerte.Betriebszeit', result[13].value, true);
              setState('Messwerte.0.Solaranlage.Momentanwerte.P1Spannung', result[14].value, true);
              setState('Messwerte.0.Solaranlage.Momentanwerte.P2Spannung', result[15].value, true);
              setState('Messwerte.0.Solaranlage.Momentanwerte.P1Strom', result[16].value, true);
              setState('Messwerte.0.Solaranlage.Momentanwerte.P2Strom', result[17].value, true);
              setState('Messwerte.0.Solaranlage.Momentanwerte.P1Leistung', result[18].value, true);
              setState('Messwerte.0.Solaranlage.Momentanwerte.P2Leistung', result[19].value, true);
              setState('Messwerte.0.Solaranlage.Momentanwerte.Status', result[20].value, true);
              setState('Messwerte.0.Solaranlage.Momentanwerte.Leistung_String1', result[21].value, true);
              setState('Messwerte.0.Solaranlage.Momentanwerte.Leistung_String2', result[22].value, true);
          } else {
              log("Fehler: " + error + " bei Abfrage von: " + url, "warn");
          }
      });
      

      }

      ! schedule("*/10 * 5-23 * * *", Piko);

      
      Nur noch die IP deiner Anlage eingeben und ggf. den cron ändern. Der liest im Moment alle 10 Sekunden aus.
      
      Gruß
      
      Rainer
      1 Reply Last reply Reply Quote 0
      • S
        stoepselinho last edited by

        Der Isolationsfehler lässt darauf schließen das ein Stecker abgesoffen ist. Ist zwar übel aber lösbar.

        Ich bin mir sicher das ich es richtig eingegeben habe. Hatte es aber nochmal neu eingeben und muss jetzt abwarten.

        1 Reply Last reply Reply Quote 0
        • K
          Käpten Karacho last edited by

          Hallo zusammen.

          Ich habe auch einen Kostal Piko 4.2 mit der alten Oberfläche und einen Raspi 3 mit IO Broker.

          Kann ich den Parser Adapter auch nutzen um die aktuelle AC Ausgangsleistung des WR in der VIS zu visualisieren?

          Wie wäre dann die RegEx?

          Danke

          Gruß

          Käpten Karacho

          1 Reply Last reply Reply Quote 0
          • D
            darkiop Most Active last edited by

            Lässt sich die Firmware des Kostals (bei mir 10.1) eigentlich updaten auf die neue Oberfläche?

            Gesendet von meinem Nexus 5X mit Tapatalk

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

              Nur durch austausch des Kommunikationsboards

              Gruß

              Rainer

              1 Reply Last reply Reply Quote 0
              • A
                amnesia106 last edited by

                @homoran,

                Könntest du mir auf die Sprünge helfen die Werte vom PIKO mit Parser auszulesen?

                Ich komme mit den regex noch nicht wirklich klar. Ausgangsleistung zb? Den Status habe ich mit Hilfe von dem anderen Thread hinbekommen, leider hängt es an den Werten.

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

                  Gerne,

                  bin im Moment unterwegs, und zu Hause habe ich einen neuen kostal, so dass ich nicht weiß, ob ich die alten regex noch habe.

                  Kannst du bitte in der Zwischenzeit das webui öffnen und den Quelltext dazu hier in code und spoiler tags posten,?

                  Alternativ mal im Forum suchen , da könnten die regex auch irgendwo stehen.

                  Gruß

                  Rainer

                  1 Reply Last reply Reply Quote 0
                  • A
                    amnesia106 last edited by

                    Klar. Bitte

                    ! <title>PV Webserver</title>
                    ! <form method="post" action="">
                    ! | |
                    | |
                    ! PIKO 5.5
                    ! S_Power (220)
                    ! | |
                    ! | |
                    ! * * *

                    !
                    !
                    ! AC-Leistung
                    ! Energie
                    ! aktuell
                    ! 1392 W
                    ! Gesamtenergie
                    ! 33695 kWh
                    !
                    !
                    ! Tagesenergie
                    ! 2.06 kWh
                    ! Status
                    ! Einspeisen MPP
                    !

                    ! * * *

                    !
                    !
                    ! PV-Generator
                    ! Ausgangsleistung
                    ! <u>String 1</u>
                    ! <u>L1</u>
                    ! Spannung
                    ! 649 V
                    ! Spannung
                    ! 232 V
                    ! Strom
                    ! 1.17 A
                    ! Leistung
                    ! 467 W
                    ! <u>String 2</u>
                    ! <u>L2</u>
                    ! Spannung
                    ! 613 V
                    ! Spannung
                    ! 232 V
                    ! Strom
                    ! 1.14 A
                    ! Leistung
                    ! 461 W
                    ! <u>String 3</u>
                    ! <u>L3</u>
                    ! Spannung
                    ! 0
                    ! V
                    ! Spannung
                    ! 232 V
                    ! Strom
                    ! 0.00
                    ! A
                    ! Leistung
                    ! 464 W
                    !

                    ! * * *
                    ! |
                    | |
                    ! |
                    ! | | RS485 Kommunikation |
                    | |
                    | | Wechselrichter |
                    | |
                    ! * * *
                    ! | |
                    | |
                    ! Historie
                    !      
                    ! Infoseite |
                    ! Einstellungen | |
                    ! </form>

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

                      Welche Werte willst du denn haben?

                      Status:

                      Status.*\n.*\n(.+)<\/td>\n
                      

                      Leistung aktuell

                      aktuell.*\n.*\n(\d*)
                      

                      Gesamtenergie:

                      Gesamtenergie.*\n.*\n(\d*)
                      

                      Tagesenergie:

                      Tagesenergie.*\n.*\n(\d*\.\d*)
                      

                      Alles nur mit den Werten in aus dem Quelltext getestet!

                      Viele Werte erhältst du auch mit:

                      #FFFFFF">\n(\d*)<
                      

                      Du musst dann nur im Parser über die Änderung des Wertes bei "Num" das xte Ergebnis ausgeben lassen. (Achtung 0=1.Ergebnis)

                      Gruß

                      Rainer

                      1 Reply Last reply Reply Quote 0
                      • A
                        amnesia106 last edited by

                        Vielen Dank für deine schnelle Anwort, nur leider kommen dort keine Werte bei mir raus.

                        Die ip ist korrekt, da ich den Status korrekt angezeigt bekomme…

                        Status aber mit :

                        (?:\s+([a-zA-Z äöüÄÖÜ]+))
                        
                        1 Reply Last reply Reply Quote 0
                        • Homoran
                          Homoran Global Moderator Administrators last edited by

                          Ich kann es leider nicht mehr testen.

                          Gruß

                          Rainer

                          1 Reply Last reply Reply Quote 0
                          • A
                            amnesia106 last edited by

                            Kleines Update:

                            Die Werte werden nun ausgelesen- aber nicht in die dazugehörigen Objekte geschrieben. Im Parser Adapter werden die richtigen Werte angezeigt, wenn ich auf den „Schraubenschlüssel“ drücke. Also unten im Ergebnis steht alles korrekt. Die Objekte bleiben aber leer- sprich Parser schreibt das Ergebnis nicht in die dazugehörigen Objekte, die Parser selbst erstellt.

                            Woran liegt’s?

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

                              Bitte Screenshot von der Konfiguration der abfragen

                              im Parser adapter

                              Gruß

                              Rainer

                              1 Reply Last reply Reply Quote -1
                              • B
                                blackplanet333 last edited by

                                Ich klinke mich hier auch mal ein.

                                Bekomme mittlerweile auch die Werte im Schraubenschlüssel Symbol, aber leider nicht in den Objekten.

                                Auch unter regex101 wird das Ergebnis angezeigt.

                                Sollte eigendlich nur mit einer iOBroker Einstellung zu tun haben oder?

                                Rollen und Typ hab ich alle Kombinationen durchprobiert. Keine Anzeige.

                                Ich denke es liegt evtl. noch an den Leerzeichen vor dem jeweiligen Wert? (Bild)

                                Angezeigt wird's im Schraubenschlüssel Symbol und unter regex101 wenn ich das eingebe:

                                #FFFFFF">\n(..\d*)

                                Aber wie gesagt in den Objekten nicht. Kann mir hier jemand beim Code helfen so das es auch iOBroker kapiert?
                                6001_ohne_titel2.jpeg
                                6001_3.jpeg

                                1 Reply Last reply Reply Quote 0
                                • B
                                  blackplanet333 last edited by

                                  6001_2.jpeg

                                  1 Reply Last reply Reply Quote 0
                                  • B
                                    blackplanet333 last edited by

                                    habs nun selber geschafft…

                                    1 Reply Last reply Reply Quote 0
                                    • ?
                                      A Former User last edited by

                                      Hallo

                                      Ich habe es auch soweit hinbekommen, jedoch - wie schon bekannt - werden keine Werte im Objekt angezeigt bzw. abgefüllt!?

                                      Jemand eine Lösung hierzu? Denn wenn ich keine Werte im Objekt habe, kann ich diese auch nicht für die Visualisierung nutzen.

                                      Danke und Gruss

                                      Vazi

                                      1 Reply Last reply Reply Quote 0
                                      • ?
                                        A Former User last edited by

                                        @Vazi:

                                        Hallo

                                        Ich habe es auch soweit hinbekommen, jedoch - wie schon bekannt - werden keine Werte im Objekt angezeigt bzw. abgefüllt!?

                                        Jemand eine Lösung hierzu? Denn wenn ich keine Werte im Objekt habe, kann ich diese auch nicht für die Visualisierung nutzen.

                                        Danke und Gruss

                                        Vazi `

                                        Habe den "Fehler" gefunden…!! 😄

                                        Die Werte sind ja unter javascirpt.0 aufgeführt! Von dort kann ich die Werte nun ja für alles mögliche holen.

                                        M 1 Reply Last reply Reply Quote 0
                                        • P
                                          PRozAC last edited by

                                          Kann mir vielleicht nochmal jemand sagen bzw. helfen warum der Wert zwar in den Einstellungen angezeigt, aber nicht in das entsprechende Objekt übernommen wird?

                                          Ich bekomme leider als Quality device error 0x44 zurück. Die Fehlermeldung besagt wohl, dass die Nummer oder der String nicht gefunden werden konnte.

                                          Ich habe einen Piko 5.5 mit der "alten" Oberfläche ohne JSON API. Deshalb gehe ich davon aus, dass ich das Script nicht nutzen kann/muss und somit auch nicht unter der Javascript Instanz nach den Werten suchen muss 🙂

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

                                            Ich benutze folgendes Script:

                                            /* Photovoltaik: Piko 5.5 Anlage
                                            
                                            Diese Script stammt aus dem Homematic Forum. Von wem weiß ich nicht mehr.
                                            Lief bei mir als ccu.io.Script einwandfrei.
                                            
                                            Dieses Script habe ich nun auf iobroker umgeschrieben.
                                            
                                            @bahnuhr
                                            02.01.2017 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 = 'xxx';   // Nutzername der Photovoltaik-Anlage
                                            var PassAnlage = 'x';   // Password der Photovoltaik-Anlage
                                            var IPAnlage = '192.168.xxx.xx';   // IP der Photovoltaik-Anlage
                                            
                                            var logging = false;
                                            
                                             function Piko() {
                                                        var cheerio = require('cheerio');
                                                        var request = require('request');
                                            
                                                        if (logging) log("Piko 5.5 auslesen");
                                                        //http://SN-Login:WGrZMkb@192.168.243.75
                                                        request('http://' + NameAnlage + ':' + PassAnlage +'@' + IPAnlage, function (error, response, body) {
                                                                $ = cheerio.load(body);
                                                                var d = $("td");
                                            
                                                                var pwr = parseFloat(d.eq(14).text().trim());   // Energie aktuell in W
                                                                var day = parseFloat(d.eq(26).text().trim());   // Tagesenergie in kWh
                                                                var all = parseFloat(d.eq(17).text().trim());   // Gesamtenergie in kWh
                                                                var v1 = d.eq(56).text().trim();   // PV Generator Nr. 1 - Spannung in V
                                                                var i1 = d.eq(65).text().trim();   // PV Generator Nr. 1 - Strom in A
                                                                var p1 = parseInt(v1 * i1);
                                                                var v2 = d.eq(82).text().trim();   // PV Generator Nr. 1 - Spannung in V
                                                                var i2 = d.eq(91).text().trim();   // PV Generator Nr. 1 - Strom in A
                                                                var p2 = parseInt(v2 * i2);
                                                                if (isNaN(pwr)) pwr = 0;
                                                                if (isNaN(p1)) p1 = 0;
                                                                if (isNaN(p2)) p2 = 0;
                                            
                                                                if (logging) log("Leistung aktuell= " + pwr);
                                                                if (logging) log("Tagesleistung= " + day);
                                                                if (logging) log("Leistung gesamt= " + all);
                                            					if (logging) log("Leistung Strang 1= " + p1);
                                            					if (logging) log("Leistung Strang 2= " + p2);
                                            
                                                                setState(idaktuell, pwr);
                                                                setState(idTag, day);
                                                                setState(idall, all);
                                                                setState(idP1, p1);
                                                                setState(idP2, p2);
                                                        });
                                                }
                                            
                                            schedule("2,7,12,17,22,27,32,37,42,47,52,57 * * * *", function () {
                                                log ("Auslöser: Schedule");
                                            	Piko();
                                            });
                                            
                                            schedule("3 0 * * *", function () {     // Variablen löschen um 00:03 Uhr
                                                setState('javascript.0.Status.Photovoltaik.Tagesleistung', 0);
                                            });
                                            
                                            
                                            • Variablen manuell anlegen

                                            • benutzernamen, password, ip anpassen

                                            • cheerio unter js eintragen.

                                            dann klappts.

                                            mfg

                                            Dieter

                                            S E 2 Replies 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

                                            494
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

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