Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Photovoltaik Script

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Photovoltaik Script

    This topic has been deleted. Only users with topic management privileges can see it.
    • Homoran
      Homoran Global Moderator Administrators last edited by

      Aber doch nur pass, oder?

      User sehe ich nicht.@bahnuhr:

      var IPAnlage = '192.168.abc.de';   // IP der Photovoltaik-Anlage

      var PassAnlage = 'xxxxx';   // Password der Photovoltaik-Anlage

      var logging = true; `

      @bahnuhr:

      if (logging) log("Piko 5.5 auslesen");

      request('http://SN-Login:' + PassAnlage +'@' + IPAnlage, function (error, response, body) { `

      Gruß

      Rainer

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

        Ich glaube User ist bei mir dieses

        Sn-Login

        Muss ich heute Abend mal nachschauen.

        Mit freundlichen Grüßen

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

          @paul53

          Habe als type nun number gesetzt (bei createState).

          Bei den Variablen wurde teilweise string eingelesen. Diese musste ich wandeln mit parseFloat.

          (hoffe das war richtig).

          Danach habe ich die mit NaN auf 0 geetzt.

          Läuft jetzt so.

          Wenn dir noch etwas auffällt, dann Rückinfo an mich, Danke.

          @homoran

          Nutzername bei den Variablen ergänzt.

          Achso, nun das Script:

          ! ````
          /* Photovoltaik: Piko 5.5 Anlage
          ! Diese Script stammt aus dem Homematic Forum. Von wem weiß ich nicht mehr.
          Lief bei mir als ccu.io.Script einwandfrei.
          ! Dieses Script habe ich nun auf iobroker umgeschrieben.
          ! @bahnuhr
          02.01.2017 Dieter Müller
          */
          ! //Variaben
          var idaktuell = 'javascript.0.Status.Photovoltaik.Leistung_aktuell';
          var idTag = 'javascript.0.Status.Photovoltaik.Tagesleistung';
          var idall = 'javascript.0.Status.Photovoltaik.Leistung_gesamt';
          var idP1 = 'javascript.0.Status.Photovoltaik.Leistung_Strang1';
          var idP2 = 'javascript.0.Status.Photovoltaik.Leistung_Strang2';
          ! var NameAnlage = 'abcdefgh'; // Nutzername der Photovoltaik-Anlage
          var PassAnlage = 'abcde'; // Password der Photovoltaik-Anlage
          var IPAnlage = '192.168.xxx.xx'; // 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("3,7,12,17,22,27,32,37,42,47,52,57 * * * *", function () {
          log ("Auslöser: Schedule");
          Piko();
          });

          
          Viel Spass damit.
          
          mfg
          
          Dieter
          1 Reply Last reply Reply Quote 0
          • paul53
            paul53 last edited by

            @bahnuhr:

            Bei den Variablen wurde teilweise string eingelesen. Diese musste ich wandeln mit parseFloat.

            (hoffe das war richtig). `
            Ja.
            @bahnuhr:

            Wenn dir noch etwas auffällt, dann Rückinfo an mich, `
            Skripte künftig bitte innerhalb von Code-Tags posten.

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

              @paul53:

              Skripte künftig bitte innerhalb von Code-Tags posten. `
              Ich hab es gerade korrigiert

              Gruß

              Rainer

              1 Reply Last reply Reply Quote 0
              • S
                Strizz last edited by

                Hallo,

                ich besitze auch den Wechselrichter Piko 5.5 und würde das Script gerne mal testen. Leider hakt es da bei mir. Im Logfile bekomme ich folgende Fehlermeldung
                ` > 11:17:00.496 [error] javascript.0 script.js.common.Piko_auslesen: Cannot find module '/opt/iobroker/node_modules/iobroker.javascript/node_modules/cheerio' at Piko (script.js.common.Piko_auslesen:66:27), at Object. (script.js.common.Piko_auslesen:103:4), at Job.job (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:1500:34), at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:175:10), at null._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:479:11), at Timer.listOnTimeout (timers.js:92:15)

                11:17:00.496 [info] javascript.0 script.js.common.Piko_auslesen: Piko 5.5 auslesen `

                Soweit ich das verstehe, fehlt mir das Javascript-Module cheerio. Wie komme ich denn da dran? Fehlt mir nur ein Update?

                Ich habe nodejs version 4.4.5. Das ganze läuft auf eine Raspi 2.

                Wäre schön, wenn mir jemand auf die Sprünge helfen könnte.

                Gruß

                Strizz

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

                  @Strizz:

                  Soweit ich das verstehe, fehlt mir das Javascript-Module cheerio. Wie komme ich denn da dran? `
                  üblicherweise in der Konfiguration des JS-Adapters eintragen - Adapter neu starten und gut ist.

                  @Strizz:

                  Fehlt mir nur ein Update? `
                  kann ich nicht beurteilen, da ich es nicht weiß. Sollte das Paket schon irgendwo in einer veralteten Version drin sein, bringt natürlich der Eintrag in der Konfiguration nichts.

                  Gruß

                  Rainer

                  1 Reply Last reply Reply Quote 0
                  • S
                    Strizz last edited by

                    Hallo Rainer,

                    Neustart hat nicht geholfen, Neuinstallation auch nicht. Kein Cheerio in dem besagten Verzeichnis.

                    Noch eine Idee?

                    Strizz

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

                      @Strizz:

                      Neustart hat nicht geholfen, Neuinstallation auch nicht. `
                      Hast du denn cheerio:
                      @Homoran:

                      in der Konfiguration des JS-Adapters eintragen `

                      Gruß

                      Rainer

                      1 Reply Last reply Reply Quote 0
                      • S
                        Strizz last edited by

                        Hallo Rainer,

                        wo steht denn so was? Aber genau das war es. Script läuft. Wenn jetzt nur noch die Sonne scheinen würde!

                        Herzlichen Dank

                        Ulrich

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

                          @Strizz:

                          wo steht denn so was? `
                          Bereits in meiner ersten Antwort 😉

                          Du hast anscheind das darauffolgende zwar durchgeführt, aber nicht die Grundlagen dafür gelegt 😉

                          Außerdem steht es hier:

                          http://www.iobroker.net/?page_id=5319&l … figuration

                          direkt der erste Satz unter dem Bild:
                          > Die eigentliche Konfiguration besteht aus der Eingabe von zusätzlichen zu ladenden npm-Module (durch Komma getrennt),…

                          Gruß

                          Rainer

                          1 Reply Last reply Reply Quote 0
                          • S
                            Strizz last edited by

                            Hallo Rainer,

                            danke für den Hinweis. Bei mir laufen etwa 10 Javascript-Programme. Da habe ich nie ein zusätzliches npm-Module gebraucht. Deshalb bin ich auch nicht auf die Idee gekommen. Bin halt etwas ahnungslos in diesen Dingen.

                            Was das Script angeht, habe ich mich zu früh gefreut. Es gibt zwar keine Fehlermeldungen mehr, aber auch noch keine Werte. Ich habe auf meiner Piko 5.5 die UI-Version 06.11. Ich weiß nicht, ob es daran liegt. Aber mit pvserver:passwort@ipadresse - wie es in dem Script vorgesehen ist - , kann ich mich nicht auf dem Webserver der Piko einloggen.Werde mal weiter probieren. Wenn du noch eine Idee hast, wäre ich natürlich dankbar.

                            Mfg

                            Strizz

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

                              @Strizz:

                              Aber mit pvserver:passwort@ipadresse - wie es in dem Script vorgesehen ist - , kann ich mich nicht auf dem Webserver der Piko einloggen `

                              ich schon!

                              Direkt in die Adresszeile eingegeben klappt das.

                              Hast du das richtige passwort?

                              Gruß

                              Rainer

                              1 Reply Last reply Reply Quote 0
                              • S
                                Strizz last edited by

                                Hallo Rainer,

                                habe es gerade noch mal mit anderen Browsern versucht. Es geht einfach nicht! Username und Passwort stimmen. Ich lande immer auf der Homepage von Piko und muss mich dann weiter per Hand einloggen. Hast du auch die UI-Version 06.11?

                                Mfg

                                Strizz

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

                                  Wenn das das ist was bei Einstellungen steht habe ich ver 3.75 😮

                                  Gruß

                                  Rainer

                                  1 Reply Last reply Reply Quote 0
                                  • S
                                    Strizz last edited by

                                    Hallo Rainer,

                                    bei mir gibt es einen Menüpunkt "Info -> Versionen". Das sieht dann so aus wie auf dem Bild.

                                    234_piko.png

                                    Ich fürchte, da hat Kostal etwas geändert.

                                    MfG

                                    Strizz

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

                                      @Strizz:

                                      bei mir gibt es einen Menüpunkt "Info -> Versionen". Das sieht dann so aus wie auf dem Bild. `
                                      Boa ey - wie schick :shock:

                                      ich hab wohl noch die MS-DOS Variante:
                                      144_iobroker_kostal.jpg

                                      Gruß

                                      Rainer

                                      1 Reply Last reply Reply Quote 0
                                      • S
                                        Strizz last edited by

                                        Ja, das war es dann wohl! Danke für deine Mühe.

                                        Mit freundlichen Grüßen

                                        Strizz

                                        Gesendet von iPad mit Tapatalk Pro

                                        1 Reply Last reply Reply Quote 0
                                        • M
                                          michi050 last edited by

                                          Hallo,

                                          ich habe das Skript für den Piko 5.5 installiert, es funktioniert wunderbar. Da sich der Router des PIKO nur dann einschaltet, wenn ich zu Hause bin, bringt mir das Skript logischerweise eine Fehlermeldung alle 5 Minuten. Nun zu meiner Frage: Kann ich das Skript per Datenpunkt aus der CCU nach Bedarf aktivieren / deaktivieren?

                                          Vielen Dank im Voraus

                                          Gruß Michael

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

                                            @michi050:

                                            Hallo,

                                            ich habe das Skript für den Piko 5.5 installiert, es funktioniert wunderbar. Da sich der Router des PIKO nur dann einschaltet, wenn ich zu Hause bin, bringt mir das Skript logischerweise eine Fehlermeldung alle 5 Minuten. Nun zu meiner Frage: Kann ich das Skript per Datenpunkt aus der CCU nach Bedarf aktivieren / deaktivieren?

                                            Vielen Dank im Voraus

                                            Gruß Michael `

                                            Was meinst du genau?

                                            Willst du das Script starten, wenn z.B. die Systemvariable auf der ccu2 auf anwesend geht ?

                                            So startet das Script alle 5 Min.

                                            schedule("2,7,12,17,22,27,32,37,42,47,52,57 * * * *", function () {
                                                log ("Auslöser: Schedule");
                                            	Piko();
                                            });
                                            
                                            

                                            Das nehm raus und starte auf die Veränderung der SV:

                                            on({id: "Systemvariable .....", change: "ne", val: true}, function() {   // SV wurde geändert auf true
                                                log("Auslöser SV .... true);
                                                Piko();
                                            }); 
                                            

                                            fertig.

                                            mfg

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            640
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            10
                                            41
                                            5196
                                            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