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.
    • bahnuhr
      bahnuhr Forum Testing Most Active @Spooky99 last edited by

      @Spooky99 sagte in Status vom Kostal Wechselrichter auslesen?:

      @bahnuhr
      du hattest mir weiter oben ein skript für den 5.5 gepostet ab Beitrag 45 mit der alten Oberfläche...
      und geändert hatte ich nix auf einmal gings nicht mehr, also es werden keine Werte mehr ausgelesen...

      Das ist aber seltsam.
      Insbesondere weil es ja schon lief.
      Komisch.

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

        @bahnuhr jo, hab ich auch gedacht...
        allerdings könnte es sein das da was mit der Schnittstelle vom piko ist... Die App hat auch keine Daten mehr bekommen...

        K 1 Reply Last reply Reply Quote 0
        • E
          ee last edited by

          Bei mir kommen auf einmal auch Fehler... Echt komisch hat alles super funktioniert.

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

            @Spooky99

            Habe das selbe Problem wie Du. Habe in PIKO 7.0... plötzlich bekomme ich keine Daten mehr. Ich übermittle diese auch noch auf das Suntrol Portal und das funktioniert weiterhin... Was wurde also bei ioBroker geändert...??!

            1 Reply Last reply Reply Quote 0
            • K
              kaybau @Spooky99 last edited by kaybau

              @ecki945 Hi Spooky, ich bin ganz neu mit iobroker unterwegs und hab mich durch einige tutorials gewälzt.
              Ich hab das als TS script angelegt, richtig?
              Danke.
              Ich hab nen Piko 8.0 , die dxsEntries und das UI sind aber analog zu Eurem.
              VG,

              1 Reply Last reply Reply Quote 0
              • E
                ecki945 last edited by

                @kaybau, Nicht als TS-Scipt, sondern als Javascipt anlegen.

                1 Reply Last reply Reply Quote 0
                • M
                  MatthiasUlrich @Guest last edited by

                  @Vazi

                  Kann mir noch mal jemand helfen?
                  Vielleicht kann mal jemand noch mal seine Konfig für die Werte des Kostal Piko alte Version
                  posten. Den Status habe ich hinbekommen aber die Werte krieg ich einfach nicht hin.

                  Gruß Matthias

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

                    @MatthiasUlrich sagte in Status vom Kostal Wechselrichter auslesen?:

                    Piko alte Version

                    Mein Script für die Piko 5.5 hab ich schon zahlreich eingestellt.
                    Bitte hier mal die Suche ausprobieren.

                    M P S 3 Replies Last reply Reply Quote 1
                    • Diginix
                      Diginix last edited by

                      Oder einfach mal den neuen Plenticore Adapter probieren:
                      https://forum.iobroker.net/post/343434
                      https://github.com/StrathCole/iobroker.plenticore

                      Der ist mittlerweile echt mächtig geworden.

                      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?:

                        Oder einfach mal den neuen Plenticore Adapter probieren:

                        ich denke nicht, dass der mit der alten Firmware funktionieren wird.
                        lasse mich aber gerne überraschen.

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

                          @Homoran Ich hab das nicht weiter recherchiert. Wollte ihn hier im Thread nur mal verlinkt wissen. War er bisher glaube nicht.

                          1 Reply Last reply Reply Quote 0
                          • M
                            MatthiasUlrich @bahnuhr last edited by

                            @bahnuhr
                            Ich hab das dann wohl falsch verstanden, ich dachte der Script ist für die neue Software.

                            Ich hab den Piko 10.1, ich hoffe das funktioniert trotzdem.
                            Werd es heute Abend mal testen.

                            Danke
                            Gruß Matthias

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

                              @MatthiasUlrich sagte in Status vom Kostal Wechselrichter auslesen?:

                              Ich hab das dann wohl falsch verstanden, ich dachte der Script ist für die neue Software.
                              Ich hab den Piko 10.1, ich hoffe das funktioniert trotzdem.

                              wenn du noch die gute alte "DOS-Oberfläche" hast, dann klappt das

                              1 Reply Last reply Reply Quote 1
                              • B
                                blackplanet333 @MatthiasUlrich last edited by blackplanet333

                                @MatthiasUlrich

                                Hallo,

                                du hattest mich um meine Einstellungen im Parser Adapter gefragt.
                                Ich sende es hier, da ich nicht weiß wie man ein Bild als Nachricht versendet. 😉

                                Denke kann auch für andere interessant sein.
                                Glaub das das RegEx nicht perfekt ist, ist mehr Try&Error von mir.
                                Funktioniert aber schon seit langem ohne Probleme bei mir.

                                Gruß

                                Gesamt: (\s\s\d\d\d\d\d)
                                Aktuell: aktuell\D*\d\d\D*\s\s(\d*)
                                Status: <td colspan="4">(?:\s+([a-zA-Z äöüÄÖÜ]+))

                                Hier mal Exemplarich einer meiner drei Wechselrichter:
                                Bildschirmfoto 2020-04-24 um 20.09.53.png

                                keramax1 1 Reply Last reply Reply Quote 1
                                • M
                                  MatthiasUlrich last edited by

                                  Hallo, Ich danke dir, Das hat gut funktioniert.

                                  geht also doch ohne Skript

                                  Mit dem Input hab ich auch die Tagesenergie noch rausbekommen:

                                  Tagesenergie\D*\d\d\D*\s\s(\d*\D\d*)

                                  Danke !!!

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

                                    @bahnuhr

                                    Dein Skript lief bei mir mit einem 5.5er Kostal auch immer einwandfrei bis irgendwann dieser Fehler auftrat:

                                    script.js.Energie.Kostal_auslesen: TypeError: d.eq is not a function

                                    Seitdem geht leider nix mehr.
                                    Kannst du mir da vielleicht bei weiterhelfen?

                                    VG
                                    Stefan

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

                                      @PRozAC sagte in Status vom Kostal Wechselrichter auslesen?:

                                      @bahnuhr

                                      Dein Skript lief bei mir mit einem 5.5er Kostal auch immer einwandfrei bis irgendwann dieser Fehler auftrat:

                                      script.js.Energie.Kostal_auslesen: TypeError: d.eq is not a function

                                      Seitdem geht leider nix mehr.
                                      Kannst du mir da vielleicht bei weiterhelfen?

                                      VG
                                      Stefan

                                      zeige mal dein Script

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

                                        @bahnuhr

                                        
                                        /* 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 = 'pvserver';   // Nutzername der Photovoltaik-Anlage
                                        var PassAnlage = 'mocken';   // Password der Photovoltaik-Anlage
                                        var IPAnlage = '192.168.0.40';   // IP der Photovoltaik-Anlage
                                        
                                        
                                        var logging = true;
                                        
                                        
                                        // Ab hier nix mehr ändern
                                        createState(idaktuell, {
                                            type: 'number',
                                            name: 'Leistung aktuell',
                                            min: 0,
                                            def: 0,
                                            role: 'value'
                                        });
                                        createState(idTag, {
                                            type: 'number',
                                            name: 'Tagesleistung',
                                            min: 0,
                                            def: 0,
                                            role: 'value'
                                        });
                                        createState(idall, {
                                            type: 'number',
                                            name: 'Leistung gesamt',
                                            min: 0,
                                            def: 0,
                                            role: 'value'
                                        });
                                        createState(idP1, {
                                            type: 'number',
                                            name: 'Leistung Strang 1',
                                            min: 0,
                                            def: 0,
                                            role: 'value'
                                        });
                                        createState(idP2, {
                                            type: 'number',
                                            name: 'Leistung Strang 2',
                                            min: 0,
                                            def: 0,
                                            role: 'value'
                                        });
                                        
                                         function Piko() {
                                                    var cheerio = require('cheerio');
                                                    var request = require('request');
                                        
                                                    if (logging) log("Piko 5.5 auslesen");
                                                    request('http://' + NameAnlage + ':' + PassAnlage +'@' + IPAnlage, function (error, response, body) {
                                                            $ = cheerio.load(body);
                                                            var d = $("td");
                                                            var pwr = parseFloat(d.eq(14).text().trim());
                                                            var day = parseFloat(d.eq(26).text().trim());
                                                            var all = parseFloat(d.eq(17).text().trim());
                                                            var v1 = d.eq(56).text().trim();
                                                            var i1 = d.eq(65).text().trim();
                                                            var p1 = v1 * i1;
                                                            var v2 = d.eq(82).text().trim();
                                                            var i2 = d.eq(91).text().trim();
                                                            var p2 = 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("* * * * *", function () {
                                            log ("Auslöser: Schedule");
                                        	Piko();
                                        });
                                        
                                        

                                        Vielen Dank für deine Hilfe!

                                        Hab gerade scheinbar dein aktuelles? Script von 03/2019 gefunden. Das alte ging wohl nicht mehr wegen cheerio.
                                        Teste gleich mal das „neue“ Skript.

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

                                          @PRozAC sagte in Status vom Kostal Wechselrichter auslesen?:

                                          @bahnuhr

                                          
                                          /* 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 = 'pvserver';   // Nutzername der Photovoltaik-Anlage
                                          var PassAnlage = 'mocken';   // Password der Photovoltaik-Anlage
                                          var IPAnlage = '192.168.0.40';   // IP der Photovoltaik-Anlage
                                          
                                          
                                          var logging = true;
                                          
                                          
                                          // Ab hier nix mehr ändern
                                          createState(idaktuell, {
                                              type: 'number',
                                              name: 'Leistung aktuell',
                                              min: 0,
                                              def: 0,
                                              role: 'value'
                                          });
                                          createState(idTag, {
                                              type: 'number',
                                              name: 'Tagesleistung',
                                              min: 0,
                                              def: 0,
                                              role: 'value'
                                          });
                                          createState(idall, {
                                              type: 'number',
                                              name: 'Leistung gesamt',
                                              min: 0,
                                              def: 0,
                                              role: 'value'
                                          });
                                          createState(idP1, {
                                              type: 'number',
                                              name: 'Leistung Strang 1',
                                              min: 0,
                                              def: 0,
                                              role: 'value'
                                          });
                                          createState(idP2, {
                                              type: 'number',
                                              name: 'Leistung Strang 2',
                                              min: 0,
                                              def: 0,
                                              role: 'value'
                                          });
                                          
                                           function Piko() {
                                                      var cheerio = require('cheerio');
                                                      var request = require('request');
                                          
                                                      if (logging) log("Piko 5.5 auslesen");
                                                      request('http://' + NameAnlage + ':' + PassAnlage +'@' + IPAnlage, function (error, response, body) {
                                                              $ = cheerio.load(body);
                                                              var d = $("td");
                                                              var pwr = parseFloat(d.eq(14).text().trim());
                                                              var day = parseFloat(d.eq(26).text().trim());
                                                              var all = parseFloat(d.eq(17).text().trim());
                                                              var v1 = d.eq(56).text().trim();
                                                              var i1 = d.eq(65).text().trim();
                                                              var p1 = v1 * i1;
                                                              var v2 = d.eq(82).text().trim();
                                                              var i2 = d.eq(91).text().trim();
                                                              var p2 = 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("* * * * *", function () {
                                              log ("Auslöser: Schedule");
                                          	Piko();
                                          });
                                          
                                          

                                          Vielen Dank für deine Hilfe!

                                          Hab gerade scheinbar dein aktuelles? Script von 03/2019 gefunden. Das alte ging wohl nicht mehr wegen cheerio.
                                          Teste gleich mal das „neue“ Skript.

                                          richtig, cheerio ging bei mir nicht mehr.
                                          Teste mal das neue.
                                          Auch hier, kannst du dieses mal reinhängen.
                                          Ich schaue es mir dann an.

                                          P 1 Reply Last reply Reply Quote 0
                                          • 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
                                            • First post
                                              Last post

                                            Support us

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

                                            437
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

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