Skip to content
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Visualisierung
  4. Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.1k

Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?

Geplant Angeheftet Gesperrt Verschoben Visualisierung
94 Beiträge 8 Kommentatoren 10.4k Aufrufe 7 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • bahnuhrB bahnuhr

    @homoran sagte in Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?:

    @bahnuhr Das müsste bei dir aber auch gehen, wenn auch nur mit 0-Werten

    ja, geht

    Ich würde es aber mit "logging" probieren

    HomoranH Nicht stören
    HomoranH Nicht stören
    Homoran
    Global Moderator Administrators
    schrieb am zuletzt editiert von
    #50

    @bahnuhr sagte in Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?:

    ja, geht

    wäre es dir möglich das umzusetzen, bitte?
    @discotosca schafft das nicht

    @discotosca sagte in Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?:

    obwohl ich von Javascript ehrlich NULL Plan habe...

    dann wäre es ja gemäß meiner damaligen Vorgehensweise vielleicht doch mit dem Parser für dich einfacher

    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

    bahnuhrB 1 Antwort Letzte Antwort
    0
    • HomoranH Homoran

      @bahnuhr sagte in Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?:

      ja, geht

      wäre es dir möglich das umzusetzen, bitte?
      @discotosca schafft das nicht

      @discotosca sagte in Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?:

      obwohl ich von Javascript ehrlich NULL Plan habe...

      dann wäre es ja gemäß meiner damaligen Vorgehensweise vielleicht doch mit dem Parser für dich einfacher

      bahnuhrB Online
      bahnuhrB Online
      bahnuhr
      Forum Testing Most Active
      schrieb am zuletzt editiert von
      #51

      @homoran sagte in Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?:

      wäre es dir möglich das umzusetzen, bitte?
      @discotosca schafft das nicht

      Na klar.
      @discotosca
      Schick mir das log nachdem du logging auf true gesetzt hast.
      Dann schau ich mal.


      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 Antwort Letzte Antwort
      1
      • bahnuhrB Online
        bahnuhrB Online
        bahnuhr
        Forum Testing Most Active
        schrieb am zuletzt editiert von bahnuhr
        #52

        So, ich habe mir mein log mal angeschaut und das Script angepasst.
        Bitte prüfen und Rückinfo.

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

        2 angepasstes Script:

        
        // Photovoltaik: Piko 5.5 Anlage (alte Firmware)
        // Danke an homoran für den regex
        // @bahnuhr; 03/2019 Dieter Müller
        // @bahnuhr; 10/2021 Dieter Müller - angepasst auf 3 String
        
        //Variaben
            var idaktuell = 'javascript.0.Geräte.Photovoltaik.Leistung_aktuell';
            var idTag = 'javascript.0.Geräte.Photovoltaik.Tagesleistung';
            var idall = 'javascript.0.Geräte.Photovoltaik.Leistung_gesamt';
            var idP1 = 'javascript.0.Geräte.Photovoltaik.Leistung_Strang1';
            var idP2 = 'javascript.0.Geräte.Photovoltaik.Leistung_Strang2';
            var idP3 = 'javascript.0.Geräte.Photovoltaik.Leistung_Strang3';
        
            var NameAnlage = 'xxx';        // 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);
                var v3 = results[11];            // PV Generator Nr. 3 - Spannung in V
                var i3 = results[13];            // PV Generator Nr. 3 - Strom in A
                var p3 = parseInt(v3 * i3);
        
                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");
            	if (logging) log("Leistung Strang 3= " + p3 + " W");
        
                setState(idaktuell, parseFloat(pwr));
                setState(idTag, parseFloat(day));
                setState(idall, parseFloat(all));
                setState(idP1, parseFloat(p1));
                setState(idP2, parseFloat(p2));
                setState(idP3, parseFloat(p3));
            });
        }
        
        
        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.Geräte.Photovoltaik.Tagesleistung', 0);
        });
        
        

        mfg
        Dieter

        Edit: zeile 13 berichtigt


        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

        W D I 3 Antworten Letzte Antwort
        3
        • bahnuhrB bahnuhr

          So, ich habe mir mein log mal angeschaut und das Script angepasst.
          Bitte prüfen und Rückinfo.

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

          2 angepasstes Script:

          
          // Photovoltaik: Piko 5.5 Anlage (alte Firmware)
          // Danke an homoran für den regex
          // @bahnuhr; 03/2019 Dieter Müller
          // @bahnuhr; 10/2021 Dieter Müller - angepasst auf 3 String
          
          //Variaben
              var idaktuell = 'javascript.0.Geräte.Photovoltaik.Leistung_aktuell';
              var idTag = 'javascript.0.Geräte.Photovoltaik.Tagesleistung';
              var idall = 'javascript.0.Geräte.Photovoltaik.Leistung_gesamt';
              var idP1 = 'javascript.0.Geräte.Photovoltaik.Leistung_Strang1';
              var idP2 = 'javascript.0.Geräte.Photovoltaik.Leistung_Strang2';
              var idP3 = 'javascript.0.Geräte.Photovoltaik.Leistung_Strang3';
          
              var NameAnlage = 'xxx';        // 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);
                  var v3 = results[11];            // PV Generator Nr. 3 - Spannung in V
                  var i3 = results[13];            // PV Generator Nr. 3 - Strom in A
                  var p3 = parseInt(v3 * i3);
          
                  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");
              	if (logging) log("Leistung Strang 3= " + p3 + " W");
          
                  setState(idaktuell, parseFloat(pwr));
                  setState(idTag, parseFloat(day));
                  setState(idall, parseFloat(all));
                  setState(idP1, parseFloat(p1));
                  setState(idP2, parseFloat(p2));
                  setState(idP3, parseFloat(p3));
              });
          }
          
          
          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.Geräte.Photovoltaik.Tagesleistung', 0);
          });
          
          

          mfg
          Dieter

          Edit: zeile 13 berichtigt

          W Offline
          W Offline
          w00dy
          schrieb am zuletzt editiert von w00dy
          #53

          @bahnuhr
          Hab's mal getestet:

          29.10.2021, 18:04:25.626	[error]: javascript.0 (708) script.js.Photovoltaik.Kostal-Piko-auslesen compile failed:
          at script.js.Photovoltaik.Kostal-Piko-auslesen:13
          

          LG,
          w00dy

          M 1 Antwort Letzte Antwort
          0
          • W w00dy

            @bahnuhr
            Hab's mal getestet:

            29.10.2021, 18:04:25.626	[error]: javascript.0 (708) script.js.Photovoltaik.Kostal-Piko-auslesen compile failed:
            at script.js.Photovoltaik.Kostal-Piko-auslesen:13
            
            M Offline
            M Offline
            MartyBr
            schrieb am zuletzt editiert von
            #54

            @w00dy
            In Zeile 13

            var idP3 = 'javascript.0.Geräte.Photovoltaik.Leistung_Strang3;

            fehlt das Hochkomma '

            Gruß
            Martin


            Intel NUCs mit Proxmox / Iobroker als VM unter Debian
            Raspeberry mit USB Leseköpfen für Smartmeter
            Homematic und Homematic IP

            W 1 Antwort Letzte Antwort
            1
            • M MartyBr

              @w00dy
              In Zeile 13

              var idP3 = 'javascript.0.Geräte.Photovoltaik.Leistung_Strang3;

              fehlt das Hochkomma '

              W Offline
              W Offline
              w00dy
              schrieb am zuletzt editiert von
              #55

              @martybr
              ...stimmt, - läuft 👍

              LG,
              w00dy

              1 Antwort Letzte Antwort
              0
              • bahnuhrB bahnuhr

                So, ich habe mir mein log mal angeschaut und das Script angepasst.
                Bitte prüfen und Rückinfo.

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

                2 angepasstes Script:

                
                // Photovoltaik: Piko 5.5 Anlage (alte Firmware)
                // Danke an homoran für den regex
                // @bahnuhr; 03/2019 Dieter Müller
                // @bahnuhr; 10/2021 Dieter Müller - angepasst auf 3 String
                
                //Variaben
                    var idaktuell = 'javascript.0.Geräte.Photovoltaik.Leistung_aktuell';
                    var idTag = 'javascript.0.Geräte.Photovoltaik.Tagesleistung';
                    var idall = 'javascript.0.Geräte.Photovoltaik.Leistung_gesamt';
                    var idP1 = 'javascript.0.Geräte.Photovoltaik.Leistung_Strang1';
                    var idP2 = 'javascript.0.Geräte.Photovoltaik.Leistung_Strang2';
                    var idP3 = 'javascript.0.Geräte.Photovoltaik.Leistung_Strang3';
                
                    var NameAnlage = 'xxx';        // 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);
                        var v3 = results[11];            // PV Generator Nr. 3 - Spannung in V
                        var i3 = results[13];            // PV Generator Nr. 3 - Strom in A
                        var p3 = parseInt(v3 * i3);
                
                        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");
                    	if (logging) log("Leistung Strang 3= " + p3 + " W");
                
                        setState(idaktuell, parseFloat(pwr));
                        setState(idTag, parseFloat(day));
                        setState(idall, parseFloat(all));
                        setState(idP1, parseFloat(p1));
                        setState(idP2, parseFloat(p2));
                        setState(idP3, parseFloat(p3));
                    });
                }
                
                
                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.Geräte.Photovoltaik.Tagesleistung', 0);
                });
                
                

                mfg
                Dieter

                Edit: zeile 13 berichtigt

                D Offline
                D Offline
                discotosca
                schrieb am zuletzt editiert von
                #56

                @bahnuhr Habe gerade erst gesehen, dass du mir das Script angepasst hast.
                Hervorragend, vielen Dank.
                Habe gerade das Script gegen dein 3-String-Script getauscht, läuft...

                Vielen lieben Dank...

                Wenn noch eine Frage in mir aufkommen sollte, darf ich mich dann melden...?

                DANKE & einen schönen Abend noch...

                1 Antwort Letzte Antwort
                0
                • H Offline
                  H Offline
                  HotMaggi
                  schrieb am zuletzt editiert von
                  #57

                  @bahnuhr

                  Das angepasste Script mit angepassten Variablen erzeugt bei mir WarnMeldungen und es werden keine Variablen aktualisiert, ich habe den schedule Teil ausgenommen um es erstmal manuell zu starten...

                  Name und Kennwort habe ich nachträglich unkenntlich gemacht.

                  error.jpg

                  Geräte.jpg

                  // Photovoltaik: Piko 5.5 Anlage (alte Firmware)
                  // Danke an homoran für den regex
                  // @bahnuhr; 03/2019 Dieter Müller
                  // @bahnuhr; 10/2021 Dieter Müller - angepasst auf 3 String
                   
                  //Variaben
                      var idaktuell = '0_userdata.0.Geraete.PV.Photovoltaik.Leistung_aktuell';
                      var idTag = '0_userdata.0.Geraete.PV.Photovoltaik.Tagesleistung';
                      var idall = '0_userdata.0.Geraete.PV.Photovoltaik.Leistung_gesamt';
                      var idP1 = '0_userdata.0.Geraete.PV.Photovoltaik.Leistung_Strang1';
                      var idP2 = '0_userdata.0.Geraete.PV.Photovoltaik.Leistung_Strang2';
                      var idP3 = '0_userdata.0.Geraete.PV.Photovoltaik.Leistung_Strang3';
                   
                      var NameAnlage = 'pvXXXX';        // Nutzername der Photovoltaik-Anlage
                      var PassAnlage = 'pXXXXX';         // Password der Photovoltaik-Anlage
                      var IPAnlage = '192.168.1.8';    // 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);
                          var v3 = results[11];            // PV Generator Nr. 3 - Spannung in V
                          var i3 = results[13];            // PV Generator Nr. 3 - Strom in A
                          var p3 = parseInt(v3 * i3);
                   
                          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");
                      	if (logging) log("Leistung Strang 3= " + p3 + " W");
                   
                          setState(idaktuell, parseFloat(pwr));
                          setState(idTag, parseFloat(day));
                          setState(idall, parseFloat(all));
                          setState(idP1, parseFloat(p1));
                          setState(idP2, parseFloat(p2));
                          setState(idP3, parseFloat(p3));
                      });
                  }
                   
                  Piko();
                  
                   return;
                   
                  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.Geräte.Photovoltaik.Tagesleistung', 0);
                  });
                  
                  
                  HomoranH 1 Antwort Letzte Antwort
                  0
                  • H HotMaggi

                    @bahnuhr

                    Das angepasste Script mit angepassten Variablen erzeugt bei mir WarnMeldungen und es werden keine Variablen aktualisiert, ich habe den schedule Teil ausgenommen um es erstmal manuell zu starten...

                    Name und Kennwort habe ich nachträglich unkenntlich gemacht.

                    error.jpg

                    Geräte.jpg

                    // Photovoltaik: Piko 5.5 Anlage (alte Firmware)
                    // Danke an homoran für den regex
                    // @bahnuhr; 03/2019 Dieter Müller
                    // @bahnuhr; 10/2021 Dieter Müller - angepasst auf 3 String
                     
                    //Variaben
                        var idaktuell = '0_userdata.0.Geraete.PV.Photovoltaik.Leistung_aktuell';
                        var idTag = '0_userdata.0.Geraete.PV.Photovoltaik.Tagesleistung';
                        var idall = '0_userdata.0.Geraete.PV.Photovoltaik.Leistung_gesamt';
                        var idP1 = '0_userdata.0.Geraete.PV.Photovoltaik.Leistung_Strang1';
                        var idP2 = '0_userdata.0.Geraete.PV.Photovoltaik.Leistung_Strang2';
                        var idP3 = '0_userdata.0.Geraete.PV.Photovoltaik.Leistung_Strang3';
                     
                        var NameAnlage = 'pvXXXX';        // Nutzername der Photovoltaik-Anlage
                        var PassAnlage = 'pXXXXX';         // Password der Photovoltaik-Anlage
                        var IPAnlage = '192.168.1.8';    // 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);
                            var v3 = results[11];            // PV Generator Nr. 3 - Spannung in V
                            var i3 = results[13];            // PV Generator Nr. 3 - Strom in A
                            var p3 = parseInt(v3 * i3);
                     
                            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");
                        	if (logging) log("Leistung Strang 3= " + p3 + " W");
                     
                            setState(idaktuell, parseFloat(pwr));
                            setState(idTag, parseFloat(day));
                            setState(idall, parseFloat(all));
                            setState(idP1, parseFloat(p1));
                            setState(idP2, parseFloat(p2));
                            setState(idP3, parseFloat(p3));
                        });
                    }
                     
                    Piko();
                    
                     return;
                     
                    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.Geräte.Photovoltaik.Tagesleistung', 0);
                    });
                    
                    
                    HomoranH Nicht stören
                    HomoranH Nicht stören
                    Homoran
                    Global Moderator Administrators
                    schrieb am zuletzt editiert von Homoran
                    #58

                    @hotmaggi
                    nähere Informationen stehen im log! (Protokolle)

                    in den Zeilen 65-70 werden die Datenpunkte beschrieben.

                    Hast du diese angelegt?

                    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                    H 2 Antworten Letzte Antwort
                    0
                    • HomoranH Homoran

                      @hotmaggi
                      nähere Informationen stehen im log! (Protokolle)

                      in den Zeilen 65-70 werden die Datenpunkte beschrieben.

                      Hast du diese angelegt?

                      H Offline
                      H Offline
                      HotMaggi
                      schrieb am zuletzt editiert von
                      #59

                      @homoran

                      Ich habe mit dem Create Script aus dem Thread die Variablen angelegt, was mit auffällt, dass die Variablen Deklaration mit den pysischen Datenpunkten nicht übereinstimmt... bei mir heißen die Variablen anders... das scheint der Fehler zu sein...
                      Werde ich gleich ändern.

                      create2.jpg

                      datenpunkte2.jpg

                      HomoranH 1 Antwort Letzte Antwort
                      0
                      • HomoranH Homoran

                        @hotmaggi
                        nähere Informationen stehen im log! (Protokolle)

                        in den Zeilen 65-70 werden die Datenpunkte beschrieben.

                        Hast du diese angelegt?

                        H Offline
                        H Offline
                        HotMaggi
                        schrieb am zuletzt editiert von
                        #60

                        @homoran

                        wieder nur eine Kleinigkeit und wenn man es richtig macht geht es.... durch das anpassen der Datenpunkte an meine
                        Struktur habe ich das in dem langen String übersehen...

                        Alles gut es geht nun.

                        Auch an Dich vielen Dank für die Unterstützung!!

                        1 Antwort Letzte Antwort
                        0
                        • H HotMaggi

                          @homoran

                          Ich habe mit dem Create Script aus dem Thread die Variablen angelegt, was mit auffällt, dass die Variablen Deklaration mit den pysischen Datenpunkten nicht übereinstimmt... bei mir heißen die Variablen anders... das scheint der Fehler zu sein...
                          Werde ich gleich ändern.

                          create2.jpg

                          datenpunkte2.jpg

                          HomoranH Nicht stören
                          HomoranH Nicht stören
                          Homoran
                          Global Moderator Administrators
                          schrieb am zuletzt editiert von
                          #61

                          @hotmaggi sagte in Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?:

                          bei mir heißen die Variablen anders... das scheint der Fehler zu sein...

                          Natürlich

                          kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                          1 Antwort Letzte Antwort
                          0
                          • bahnuhrB bahnuhr

                            So, ich habe mir mein log mal angeschaut und das Script angepasst.
                            Bitte prüfen und Rückinfo.

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

                            2 angepasstes Script:

                            
                            // Photovoltaik: Piko 5.5 Anlage (alte Firmware)
                            // Danke an homoran für den regex
                            // @bahnuhr; 03/2019 Dieter Müller
                            // @bahnuhr; 10/2021 Dieter Müller - angepasst auf 3 String
                            
                            //Variaben
                                var idaktuell = 'javascript.0.Geräte.Photovoltaik.Leistung_aktuell';
                                var idTag = 'javascript.0.Geräte.Photovoltaik.Tagesleistung';
                                var idall = 'javascript.0.Geräte.Photovoltaik.Leistung_gesamt';
                                var idP1 = 'javascript.0.Geräte.Photovoltaik.Leistung_Strang1';
                                var idP2 = 'javascript.0.Geräte.Photovoltaik.Leistung_Strang2';
                                var idP3 = 'javascript.0.Geräte.Photovoltaik.Leistung_Strang3';
                            
                                var NameAnlage = 'xxx';        // 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);
                                    var v3 = results[11];            // PV Generator Nr. 3 - Spannung in V
                                    var i3 = results[13];            // PV Generator Nr. 3 - Strom in A
                                    var p3 = parseInt(v3 * i3);
                            
                                    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");
                                	if (logging) log("Leistung Strang 3= " + p3 + " W");
                            
                                    setState(idaktuell, parseFloat(pwr));
                                    setState(idTag, parseFloat(day));
                                    setState(idall, parseFloat(all));
                                    setState(idP1, parseFloat(p1));
                                    setState(idP2, parseFloat(p2));
                                    setState(idP3, parseFloat(p3));
                                });
                            }
                            
                            
                            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.Geräte.Photovoltaik.Tagesleistung', 0);
                            });
                            
                            

                            mfg
                            Dieter

                            Edit: zeile 13 berichtigt

                            I Offline
                            I Offline
                            io2345
                            schrieb am zuletzt editiert von io2345
                            #62

                            Funktioniert einwandfrei. Vielen Dank!
                            Habe einen alten Piko 5.5 mit FW 3.70 (nicht aktualisierbar). Datenpunkte per Script angelegt, einmalig laufen lassen. Abfragescript erstellt, dabei User/PW und IP eingetragen. Klappt alles auf Anhieb.

                            Was ich mich frage: Läuft das Script von alleine immer wieder durch, oder muss ich das selbst irgendwie dazu bewegen? So wie ich es interpretiere, läuft das Script von alleine alle 5 Minuten los, richtig?
                            Wie könnte ich es z.B. jede Minute laufen lassen (ohne alle Zahlen von 0-59 in schedule einzutragen)

                            I 1 Antwort Letzte Antwort
                            0
                            • I io2345

                              Funktioniert einwandfrei. Vielen Dank!
                              Habe einen alten Piko 5.5 mit FW 3.70 (nicht aktualisierbar). Datenpunkte per Script angelegt, einmalig laufen lassen. Abfragescript erstellt, dabei User/PW und IP eingetragen. Klappt alles auf Anhieb.

                              Was ich mich frage: Läuft das Script von alleine immer wieder durch, oder muss ich das selbst irgendwie dazu bewegen? So wie ich es interpretiere, läuft das Script von alleine alle 5 Minuten los, richtig?
                              Wie könnte ich es z.B. jede Minute laufen lassen (ohne alle Zahlen von 0-59 in schedule einzutragen)

                              I Offline
                              I Offline
                              io2345
                              schrieb am zuletzt editiert von io2345
                              #63

                              @bahnuhr : Lässt es sich eigentlich irgendwie vermeiden, dass für jede Abfrage ein Eintrag ins iobroker-Log geschrieben wird? Ich lasse die Abfrage minütlich laufen, da kommt ganz schön was zusammen...

                              Falls du mir auch noch sagen könnte, wie das hinbekomme, dass das Script alle Minute läuft, ohne alle Zahlen von 0 bis 59 in "schedule" eintragen zu müssen, wäre cool.

                              HomoranH 1 Antwort Letzte Antwort
                              0
                              • I io2345

                                @bahnuhr : Lässt es sich eigentlich irgendwie vermeiden, dass für jede Abfrage ein Eintrag ins iobroker-Log geschrieben wird? Ich lasse die Abfrage minütlich laufen, da kommt ganz schön was zusammen...

                                Falls du mir auch noch sagen könnte, wie das hinbekomme, dass das Script alle Minute läuft, ohne alle Zahlen von 0 bis 59 in "schedule" eintragen zu müssen, wäre cool.

                                HomoranH Nicht stören
                                HomoranH Nicht stören
                                Homoran
                                Global Moderator Administrators
                                schrieb am zuletzt editiert von
                                #64

                                @io2345 sagte in Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?:

                                dass das Script alle Minute

                                * * * * * im ersten Cron!

                                @io2345 sagte in Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?:

                                ie vermeiden, dass für jede Abfrage ein Eintrag ins iobroker-Log geschrieben wird?

                                im ersten Cron die Zeile log.... entfernen

                                kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                I 2 Antworten Letzte Antwort
                                0
                                • HomoranH Homoran

                                  @io2345 sagte in Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?:

                                  dass das Script alle Minute

                                  * * * * * im ersten Cron!

                                  @io2345 sagte in Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?:

                                  ie vermeiden, dass für jede Abfrage ein Eintrag ins iobroker-Log geschrieben wird?

                                  im ersten Cron die Zeile log.... entfernen

                                  I Offline
                                  I Offline
                                  io2345
                                  schrieb am zuletzt editiert von io2345
                                  #65

                                  Klasse, funzt. Vielen Dank für die spontane Hilfe!
                                  Für alle, die sich - wie ich - erst mal am Kopf kratzen, bevor sie verstehen, was zu ändern ist. Das Ende des obigen Scripts sieht dann so aus:

                                  ...
                                  schedule("* * * * *", function () {
                                  // log ("Auslöser: Schedule");
                                  Piko();
                                  });

                                  schedule("3 0 * * *", function () { // Variablen löschen um 00:03 Uhr
                                  setState('javascript.0.Geräte.Photovoltaik.Tagesleistung', 0);
                                  });

                                  1 Antwort Letzte Antwort
                                  0
                                  • HomoranH Homoran

                                    @io2345 sagte in Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?:

                                    dass das Script alle Minute

                                    * * * * * im ersten Cron!

                                    @io2345 sagte in Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?:

                                    ie vermeiden, dass für jede Abfrage ein Eintrag ins iobroker-Log geschrieben wird?

                                    im ersten Cron die Zeile log.... entfernen

                                    I Offline
                                    I Offline
                                    io2345
                                    schrieb am zuletzt editiert von io2345
                                    #66

                                    @homoran Seit kurzem kommt regelmäßig folgende Meldung bei diesem Script:
                                    "request package is deprecated - please use httpGet (or a stable lib like axios) instead"
                                    Weiß einer der Nutzer, wie das anzupassen wäre? Ich vermute mal schwer, es geht um den Abschnitt, der mit

                                    request('http://' + NameAnlage + ':' + PassAnla...

                                    beginnt. Aber was man da jetzt genau ändern müsste ???

                                    HomoranH 1 Antwort Letzte Antwort
                                    0
                                    • I io2345

                                      @homoran Seit kurzem kommt regelmäßig folgende Meldung bei diesem Script:
                                      "request package is deprecated - please use httpGet (or a stable lib like axios) instead"
                                      Weiß einer der Nutzer, wie das anzupassen wäre? Ich vermute mal schwer, es geht um den Abschnitt, der mit

                                      request('http://' + NameAnlage + ':' + PassAnla...

                                      beginnt. Aber was man da jetzt genau ändern müsste ???

                                      HomoranH Nicht stören
                                      HomoranH Nicht stören
                                      Homoran
                                      Global Moderator Administrators
                                      schrieb am zuletzt editiert von
                                      #67

                                      @io2345 sagte in Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?:

                                      @homoran Seit kurzem kommt regelmäßig folgende Meldung bei diesem Script:
                                      "request package is deprecated - please use httpGet (or a stable lib like axios) instead"
                                      Weiß einer der Nutzer, wie das anzupassen wäre? Ich vermute mal schwer, es geht um den Abschnitt, der mit

                                      request('http://' + NameAnlage + ':' + PassAnla...

                                      beginnt. Aber was man da jetzt genau ändern müsste ???

                                      Vielleicht ist @bahnuhr so nett und passt das Skript nochmal an.

                                      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                      bahnuhrB 1 Antwort Letzte Antwort
                                      0
                                      • HomoranH Homoran

                                        @io2345 sagte in Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?:

                                        @homoran Seit kurzem kommt regelmäßig folgende Meldung bei diesem Script:
                                        "request package is deprecated - please use httpGet (or a stable lib like axios) instead"
                                        Weiß einer der Nutzer, wie das anzupassen wäre? Ich vermute mal schwer, es geht um den Abschnitt, der mit

                                        request('http://' + NameAnlage + ':' + PassAnla...

                                        beginnt. Aber was man da jetzt genau ändern müsste ???

                                        Vielleicht ist @bahnuhr so nett und passt das Skript nochmal an.

                                        bahnuhrB Online
                                        bahnuhrB Online
                                        bahnuhr
                                        Forum Testing Most Active
                                        schrieb am zuletzt editiert von
                                        #68

                                        @homoran
                                        Für Rainer mach ich alles.
                                        Obwohl es 100.. Beispiele mittlerweile gibt, wie man dies anpasst.

                                        Dieses läuft bei mir derzeit:

                                        
                                        // 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.Geräte.Photovoltaik.2012_Leistung_alt_aktuell';
                                            var idTag = 'javascript.0.Geräte.Photovoltaik.2012_Tagesleistung';
                                            var idall = 'javascript.0.Geräte.Photovoltaik.2012_Leistung_alt_gesamt';
                                            var idP1 = 'javascript.0.Geräte.Photovoltaik.2012_Leistung_Strang1';
                                            var idP2 = 'javascript.0.Geräte.Photovoltaik.2012_Leistung_Strang2';
                                        
                                            var NameAnlage = 'SN-Login';        // Nutzername der Photovoltaik-Anlage
                                            var PassAnlage = 'abc';         // Password der Photovoltaik-Anlage
                                            var IPAnlage = '192.168.xxx.xxx';    // IP der Photovoltaik-Anlage
                                        
                                            var logging = false;
                                        
                                        
                                         function Piko() {
                                            log("Piko 5.5 auslesen");
                                            var results = [];
                                            httpGet('http://' + NameAnlage + ':' + PassAnlage +'@' + IPAnlage, { timeout: 10000, responseType: 'document' }, (err, response) => { 
                                            if (err) { 
                                                if (err.indexOf("size of -1") != -1) {
                                                    log (err,"info");
                                                } else {
                                                    console.error(err); 
                                                }
                                            } else { 
                                                var d = (response.data).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);
                                                // Tagesenergie auf 0 setzen wenn es Nacht ist
                                                    var Zeit1 = isTimeInRange('00:01:00', '09:00:00');
                                                    if (Zeit1 && pwr == 0 && p1 == 0 && p2 == 0) { day = 0; }
                                                // geändert: in pwr wird die aktuelle Energie angezeigt; dies passt aber nicht mit p1 + p2 überein.
                                                // vermutlich wird die W des Wechselrichters abgezogen. neu habe ich nun pwr = p1 + p2
                                                    pwr = p1 + p2;
                                        
                                                if (logging) log("aktuell -> Leistung aktuell= " + pwr + " W // Tagesleistung= " + day + " kWh // Leistung alt gesamt= " + all + " kWh // Leistung Strang 1= " + p1 + " W // 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('5 * * * * *', function () {
                                            //log ("Auslöser: Schedule");
                                        	Piko();
                                        });
                                        
                                        /*
                                        schedule("3 0 * * *", function () {     // Variablen löschen um 00:03 Uhr   
                                            setState('javascript.0.Geräte.Photovoltaik.2012_Tagesleistung', 0);
                                        });
                                        */
                                        
                                        //Piko();
                                        
                                        
                                        

                                        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

                                        HomoranH I 2 Antworten Letzte Antwort
                                        2
                                        • bahnuhrB bahnuhr

                                          @homoran
                                          Für Rainer mach ich alles.
                                          Obwohl es 100.. Beispiele mittlerweile gibt, wie man dies anpasst.

                                          Dieses läuft bei mir derzeit:

                                          
                                          // 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.Geräte.Photovoltaik.2012_Leistung_alt_aktuell';
                                              var idTag = 'javascript.0.Geräte.Photovoltaik.2012_Tagesleistung';
                                              var idall = 'javascript.0.Geräte.Photovoltaik.2012_Leistung_alt_gesamt';
                                              var idP1 = 'javascript.0.Geräte.Photovoltaik.2012_Leistung_Strang1';
                                              var idP2 = 'javascript.0.Geräte.Photovoltaik.2012_Leistung_Strang2';
                                          
                                              var NameAnlage = 'SN-Login';        // Nutzername der Photovoltaik-Anlage
                                              var PassAnlage = 'abc';         // Password der Photovoltaik-Anlage
                                              var IPAnlage = '192.168.xxx.xxx';    // IP der Photovoltaik-Anlage
                                          
                                              var logging = false;
                                          
                                          
                                           function Piko() {
                                              log("Piko 5.5 auslesen");
                                              var results = [];
                                              httpGet('http://' + NameAnlage + ':' + PassAnlage +'@' + IPAnlage, { timeout: 10000, responseType: 'document' }, (err, response) => { 
                                              if (err) { 
                                                  if (err.indexOf("size of -1") != -1) {
                                                      log (err,"info");
                                                  } else {
                                                      console.error(err); 
                                                  }
                                              } else { 
                                                  var d = (response.data).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);
                                                  // Tagesenergie auf 0 setzen wenn es Nacht ist
                                                      var Zeit1 = isTimeInRange('00:01:00', '09:00:00');
                                                      if (Zeit1 && pwr == 0 && p1 == 0 && p2 == 0) { day = 0; }
                                                  // geändert: in pwr wird die aktuelle Energie angezeigt; dies passt aber nicht mit p1 + p2 überein.
                                                  // vermutlich wird die W des Wechselrichters abgezogen. neu habe ich nun pwr = p1 + p2
                                                      pwr = p1 + p2;
                                          
                                                  if (logging) log("aktuell -> Leistung aktuell= " + pwr + " W // Tagesleistung= " + day + " kWh // Leistung alt gesamt= " + all + " kWh // Leistung Strang 1= " + p1 + " W // 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('5 * * * * *', function () {
                                              //log ("Auslöser: Schedule");
                                          	Piko();
                                          });
                                          
                                          /*
                                          schedule("3 0 * * *", function () {     // Variablen löschen um 00:03 Uhr   
                                              setState('javascript.0.Geräte.Photovoltaik.2012_Tagesleistung', 0);
                                          });
                                          */
                                          
                                          //Piko();
                                          
                                          
                                          
                                          HomoranH Nicht stören
                                          HomoranH Nicht stören
                                          Homoran
                                          Global Moderator Administrators
                                          schrieb am zuletzt editiert von
                                          #69

                                          @bahnuhr sagte in Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?:

                                          Für Rainer mach ich alles.

                                          DANKE!
                                          Dann ist das wenigstens hier mit im Thread!

                                          Schade dass du nicht in Solingen warst.

                                          kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                          bahnuhrB 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          742

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe