Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Status vom Kostal Wechselrichter auslesen?

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    420

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    5.0k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.4k

Status vom Kostal Wechselrichter auslesen?

Scheduled Pinned Locked Moved ioBroker Allgemein
331 Posts 35 Posters 95.6k Views 25 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • bahnuhrB Online
    bahnuhrB Online
    bahnuhr
    Forum Testing Most Active
    wrote on last edited by
    #34

    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


    Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
    Danke.
    gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
    ScreenToGif :https://www.screentogif.com/downloads.html

    S E 2 Replies Last reply
    0
    • Y Offline
      Y Offline
      Yoschi147
      wrote on last edited by
      #35

      Hi,

      ich habe einen Piko 7.0 mit der UI Version 6.20 und FW 5.42 welchen ich gerne mit iobroker auslesen möchte.

      Ich habe hier schon einige Beiträge gelesen und verschiedene Scripte probiert. Allerdings funktionieren diese bei mir nicht da diese wohl alle für 5.36 und älter sind.

      Hat jemand von euch schon ein Script das mit einer neueren Version funktioniert?

      Viele Grüße

      Yoschi

      1 Reply Last reply
      0
      • HomoranH Do not disturb
        HomoranH Do not disturb
        Homoran
        Global Moderator Administrators
        wrote on last edited by
        #36

        Probier das mal:

        // 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.123.456/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);
        

        IP anpassen und ggf. Schedule. im Moment wird zwischen 5:00 und 23:59 alle 10 Sekunden geparst

        Gruß

        rainer

        kein Support per PN! - Fragen im Forum stellen -
        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
        Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton im Header. Danke!
        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

        1 Reply Last reply
        0
        • Y Offline
          Y Offline
          Yoschi147
          wrote on last edited by
          #37

          Hi,

          vielen Dank funktioniert auf anhieb. Weist du bis zu welcher Version vom Piko das Script laufen sollte? Also FW und UI Version? Würde nämlich auch gerne updaten wenn das Script danach noch geht :-)

          Viele Grüße

          Yoschi

          1 Reply Last reply
          0
          • HomoranH Do not disturb
            HomoranH Do not disturb
            Homoran
            Global Moderator Administrators
            wrote on last edited by
            #38

            @Yoschi147:

            Weist du bis zu welcher Version vom Piko das Script laufen sollte? `
            Nö!

            ich denke aber, dass es da kein Problem gibt.

            Der große unterschied vor und nach der 5.31 liegt darin, dass vorher HTML-Seiten existierten, die geparst werden konnten, und danach alles mit java läuft.

            Gruß

            Rainer

            kein Support per PN! - Fragen im Forum stellen -
            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
            Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton im Header. Danke!
            der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

            1 Reply Last reply
            0
            • Y Offline
              Y Offline
              Yoschi147
              wrote on last edited by
              #39

              Danke für dein Feedback.

              Mir ist gerade noch aufgefallen das im Script selbst die Variablen für P3 (dritte Phase) angelegt ist. Aber das Script diese nicht ausliest.

              Ich hatte mein Script um die jeweiligen P3 Zeilen erweitert, aber leider kommen dann für den Part nicht die richtigen werte raus. Ein Wert wird auch gar nicht erst ausgelesen.

              
               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
              

              8567_bildschirmfoto_2018-08-29_um_14.00.30.png

              1 Reply Last reply
              0
              • hg6806H Offline
                hg6806H Offline
                hg6806
                Most Active
                wrote on last edited by
                #40

                Guten Morgen,

                funktioniert das eigentlich auch bei einem Kostal PLENTICORE plus?

                Ich würde das gerne mit Batteriespeicher kaufen, ein System sollte aber unbedingt an ioBroker angebunden werden :-)

                1 Reply Last reply
                0
                • H Offline
                  H Offline
                  Hideloop
                  wrote on last edited by
                  #41

                  Plenticore Plus kannst Du ganz einfach über den Modbus Adapter auslesen.

                  Grüße,

                  Loop

                  1 Reply Last reply
                  0
                  • S Offline
                    S Offline
                    stoepselinho
                    wrote on last edited by
                    #42

                    Hallo zusammen,

                    trotz Code

                    (?:\s+([a-zA-Z äöüÄÖÜ]+))
                    

                    wird mir bei Störung immer nur St angezeigt.

                    Rolle -> Wert

                    Typ -> String

                    Alles ander Finktioniert ohne Probleme

                    hat jemand eine Idee?

                    1 Reply Last reply
                    0
                    • DiginixD Offline
                      DiginixD Offline
                      Diginix
                      wrote on last edited by
                      #43

                      Kann mir hier jemand die modbus Adapter Einstellungen für ein Plenticore Plus 5.5 mit Firmware 1.30 erklären oder als Screenshot zeigen.
                      Habe die IP, Port und GeräteID eingetragen, sonst noch nichts weiter. Die Instanz bleibt aber gelb. Im Log steht "Serial is not available", habe aber TCP gewählt.

                      ..:: So long! Tom ::..

                      NUC7i3 (Ubuntu Proxmox VM) | Echo Dots 2+3. Gen | Xiaomi Sensoren | Mi Robot 1S | Yeelight | Sonoff | Shelly | H801 RGB | Gosund SP1 | NodeMCU+ESP32 | Kostal Plenticore PV+BYD | openWB

                      J 1 Reply Last reply
                      0
                      • bahnuhrB bahnuhr

                        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 Offline
                        S Offline
                        Spooky99
                        wrote on last edited by
                        #44

                        @bahnuhr
                        Hallo Dieter,
                        ich versuche mich grad an dem skript, bin aber noch seeeeeeeeehr neu in dem ganzen Thema.
                        Was meinst du mit Cheerio unter JS eintragen?
                        Und die Variablen kann ich in einen Ordner anlegen den ich z.B. Wechselrichter nenne?

                        bahnuhrB 1 Reply Last reply
                        0
                        • S Spooky99

                          @bahnuhr
                          Hallo Dieter,
                          ich versuche mich grad an dem skript, bin aber noch seeeeeeeeehr neu in dem ganzen Thema.
                          Was meinst du mit Cheerio unter JS eintragen?
                          Und die Variablen kann ich in einen Ordner anlegen den ich z.B. Wechselrichter nenne?

                          bahnuhrB Online
                          bahnuhrB Online
                          bahnuhr
                          Forum Testing Most Active
                          wrote on last edited by
                          #45

                          @Spooky99 sagte in Status vom Kostal Wechselrichter auslesen?:

                          @bahnuhr
                          Hallo Dieter,
                          ich versuche mich grad an dem skript, bin aber noch seeeeeeeeehr neu in dem ganzen Thema.
                          Was meinst du mit Cheerio unter JS eintragen?
                          Und die Variablen kann ich in einen Ordner anlegen den ich z.B. Wechselrichter nenne?

                          cheerio klappt nicht mehr.

                          Musste das Script wie folgt ändern:

                          // 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 = 'SN-Login';        // Nutzername der Photovoltaik-Anlage
                              var PassAnlage = 'xxx';         // Password der Photovoltaik-Anlage
                              var IPAnlage = '192.168.xxx.xxx';    // 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("3 0 * * *", function () {     // Variablen löschen um 00:03 Uhr   
                              setState('javascript.0.Status.Photovoltaik.Tagesleistung', 0);
                          });
                          
                          
                          

                          Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                          Danke.
                          gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                          ScreenToGif :https://www.screentogif.com/downloads.html

                          S E 2 Replies Last reply
                          1
                          • bahnuhrB bahnuhr

                            @Spooky99 sagte in Status vom Kostal Wechselrichter auslesen?:

                            @bahnuhr
                            Hallo Dieter,
                            ich versuche mich grad an dem skript, bin aber noch seeeeeeeeehr neu in dem ganzen Thema.
                            Was meinst du mit Cheerio unter JS eintragen?
                            Und die Variablen kann ich in einen Ordner anlegen den ich z.B. Wechselrichter nenne?

                            cheerio klappt nicht mehr.

                            Musste das Script wie folgt ändern:

                            // 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 = 'SN-Login';        // Nutzername der Photovoltaik-Anlage
                                var PassAnlage = 'xxx';         // Password der Photovoltaik-Anlage
                                var IPAnlage = '192.168.xxx.xxx';    // 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("3 0 * * *", function () {     // Variablen löschen um 00:03 Uhr   
                                setState('javascript.0.Status.Photovoltaik.Tagesleistung', 0);
                            });
                            
                            
                            
                            S Offline
                            S Offline
                            Spooky99
                            wrote on last edited by
                            #46

                            @bahnuhr ok werde ich gleich mal übernehmen...
                            ich tue mich noch schwer mit den Variablen anlegen, hättest du da vielleicht ein BIld wie das bei dir ausschaut? Ich bin echt unbeholfen ;-)

                            bahnuhrB 1 Reply Last reply
                            0
                            • S Spooky99

                              @bahnuhr ok werde ich gleich mal übernehmen...
                              ich tue mich noch schwer mit den Variablen anlegen, hättest du da vielleicht ein BIld wie das bei dir ausschaut? Ich bin echt unbeholfen ;-)

                              bahnuhrB Online
                              bahnuhrB Online
                              bahnuhr
                              Forum Testing Most Active
                              wrote on last edited by
                              #47

                              @Spooky99 sagte in Status vom Kostal Wechselrichter auslesen?:

                              Variablen anlegen,

                              mit folgendem Script:

                              // Photovoltaik -------------------------------------------------------------------------------------------------------------
                              createState('javascript.0.Status.Photovoltaik.Leistung_aktuell', 0, {type: 'number',name: 'Leistung aktuell',min: 0,role: 'per Script'});
                              createState('javascript.0.Status.Photovoltaik.Tagesleistung', 0, {type: 'number',name: 'Tagesleistung',min: 0,role: 'per Script'});
                              createState('javascript.0.Status.Photovoltaik.Leistung_gesamt', 0, {type: 'number',name: 'Leistung gesamt',min: 0,role: 'per Script'});
                              createState('javascript.0.Status.Photovoltaik.Leistung_Strang1', 0, {type: 'number',name: 'Leistung Strang 1',min: 0,role: 'per Script'});
                              createState('javascript.0.Status.Photovoltaik.Leistung_Strang2', 0, {type: 'number',name: 'Leistung Strang 2',min: 0,role: 'value'});
                              
                              

                              Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                              Danke.
                              gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                              ScreenToGif :https://www.screentogif.com/downloads.html

                              1 Reply Last reply
                              0
                              • bahnuhrB Online
                                bahnuhrB Online
                                bahnuhr
                                Forum Testing Most Active
                                wrote on last edited by
                                #48

                                und bei den Objekten siehts dann so aus:

                                75273d82-cc5d-41a4-a6e4-5a2a227c4e30-grafik.png


                                Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                                Danke.
                                gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                                ScreenToGif :https://www.screentogif.com/downloads.html

                                1 Reply Last reply
                                0
                                • bahnuhrB Online
                                  bahnuhrB Online
                                  bahnuhr
                                  Forum Testing Most Active
                                  wrote on last edited by
                                  #49

                                  und meine Darstellung in vis:
                                  531203d8-ecc5-4537-a0c4-8684e7de2118-grafik.png


                                  Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                                  Danke.
                                  gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                                  ScreenToGif :https://www.screentogif.com/downloads.html

                                  1 Reply Last reply
                                  0
                                  • bahnuhrB Online
                                    bahnuhrB Online
                                    bahnuhr
                                    Forum Testing Most Active
                                    wrote on last edited by
                                    #50

                                    und die Darstellung in flot:
                                    7e63ed26-5ab9-4b81-a454-f748ee144a1a-grafik.png

                                    Aber das kannst du ja machen wie du möchtest.


                                    Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                                    Danke.
                                    gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                                    ScreenToGif :https://www.screentogif.com/downloads.html

                                    1 Reply Last reply
                                    0
                                    • S Offline
                                      S Offline
                                      Spooky99
                                      wrote on last edited by
                                      #51

                                      ARGH WIE GEIL IST DAS DENN??????
                                      Vielen vielen Dank!!! WIe ich das aufbereite muss ich mal sehen aber das ist ja der Hammer!
                                      Da muss ich wohl doch noch nen Volkshochschulkurs belegen;-)

                                      bahnuhrB 1 Reply Last reply
                                      0
                                      • S Spooky99

                                        ARGH WIE GEIL IST DAS DENN??????
                                        Vielen vielen Dank!!! WIe ich das aufbereite muss ich mal sehen aber das ist ja der Hammer!
                                        Da muss ich wohl doch noch nen Volkshochschulkurs belegen;-)

                                        bahnuhrB Online
                                        bahnuhrB Online
                                        bahnuhr
                                        Forum Testing Most Active
                                        wrote on last edited by
                                        #52

                                        @Spooky99 sagte in Status vom Kostal Wechselrichter auslesen?:

                                        ARGH WIE GEIL IST DAS DENN??????
                                        Vielen vielen Dank!!! WIe ich das aufbereite muss ich mal sehen aber das ist ja der Hammer!
                                        Da muss ich wohl doch noch nen Volkshochschulkurs belegen;-)

                                        wenns gefällt dann positiv vooten.


                                        Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                                        Danke.
                                        gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                                        ScreenToGif :https://www.screentogif.com/downloads.html

                                        1 Reply Last reply
                                        1
                                        • S Offline
                                          S Offline
                                          Spooky99
                                          wrote on last edited by
                                          #53

                                          und irgendwann hab ich auch raus wie ich in das runde Anzeigending 1000 2000 3000 usw. stehen habe irgendwie unterteilt der das noch falsch...

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

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

                                          710

                                          Online

                                          32.7k

                                          Users

                                          82.5k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe