Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Status vom Kostal Wechselrichter auslesen?

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Status vom Kostal Wechselrichter auslesen?

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

      @erwin890 bitte ganze Fehlermeldung in code tags posten.

      da Fehlen noch Infos

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

        @homoran Hallo - eigentlich ist das alles, was der IO Broker im LOG anzeigt.... was soll ich machen ?

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

          @erwin890 sagte in Status vom Kostal Wechselrichter auslesen?:

          @homoran Hallo - eigentlich ist das alles, was der IO Broker im LOG anzeigt.... was soll ich machen ?

          da müsste noch ein Hinweis auf die codestelle sein.

          bist du sicher dass das Script für den alten piko ist?
          da war doch der Parser besser geeignet.

          ist schon soooo lange her

          die Variablen hast du aber angepasst?

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

            @erwin890 sagte in Status vom Kostal Wechselrichter auslesen?:

            @bahnuhr Hallo! Gibt es eventuell ein neues Skript für die Piko mit älterem Bios? Ich bekommen hier die Fehlermeldung "javascript.0 2021-07-04 19:52:00.090 error (863) Error in request callback: TypeError: d.eq is not a function"

            Über eine Hilfe würde ich mich wirklich sehr freuen.

            Das ist das Script was momentan bei mir läuft.

            
            // 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.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 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);
            
                    if (logging) log("Leistung aktuell= " + pwr + " W");
                    if (logging) log("Tagesleistung= " + day + " kWh");
                    if (logging) log("Leistung gesamt= " + all + " kWh");
            	    if (logging) log("Leistung Strang 1= " + p1 + " W");
                	if (logging) log("Leistung Strang 2= " + p2 + " W");
            
                    setState(idaktuell, parseFloat(pwr));
                    setState(idTag, parseFloat(day));
                    setState(idall, parseFloat(all));
                    setState(idP1, parseFloat(p1));
                    setState(idP2, parseFloat(p2));
                });
            }
            
            
            schedule("2,7,12,17,22,27,32,37,42,47,52,57 * * * *", function () {
                log ("Auslöser: Schedule");
            	Piko();
            });
            
            schedule("3 0 * * *", function () {     // Variablen löschen um 00:03 Uhr   
                setState('javascript.0.Geräte.Photovoltaik.Tagesleistung', 0);
            });
            
            

            Variablen manuell anlegen.

            mfg
            Dieter

            E 1 Reply Last reply Reply Quote 1
            • E
              erwin890 @bahnuhr last edited by

              @bahnuhr @Homoran
              Erstmal ein Riesendankeschön - es läuft sauber mit Ausnahme der Tagesleistung. Die müsste auch "Result[2]" sein, wird aber nicht in die Variable geschrieben. Fall ihr eine Idee habt immer gern! Ich bin aber schon sehr glücklich, dass der Rest läuft.

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

                @erwin890 sagte in Status vom Kostal Wechselrichter auslesen?:

                Die müsste auch "Result[2]" sein,

                @bahnuhr sagte in Status vom Kostal Wechselrichter auslesen?:

                var day = results[2]; // Tagesenergie in kWh

                hast du den dp auch genau so angelegt?

                @bahnuhr sagte in Status vom Kostal Wechselrichter auslesen?:

                var idTag = 'javascript.0.Geräte.Photovoltaik.Tagesleistung';

                wenn ja, was steht im log?

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

                  @homoran COOOL! Die Datenpunkte waren es! DANKE

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

                    @homoran
                    Hallo, ich habe einen Piko 20 mit dem KSEM in Einsatz. Die Firmware vom Piko ist die 6.11. Dein Script läuft einwandfrei. Leider fehlt dort der String 3. Kannst du diese Datenpunkte noch Nachpflegen? Ich verzweifele so langsam an dem Kostal. Die Kombination KSEM und Piko verhindert das saubere Auslesen vom Piko. Alleine dein Script liest die Daten aus.

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

                      @martybr sagte in Status vom Kostal Wechselrichter auslesen?:

                      ich habe einen Piko 20 mit dem KSEM in Einsatz

                      ich leider nicht 😉

                      @martybr sagte in Status vom Kostal Wechselrichter auslesen?:

                      Leider fehlt dort der String 3. Kannst du diese Datenpunkte noch Nachpflegen?

                      dann bräuchte ich aber die Daten, die dein Piko liefert

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

                        @homoran
                        Wie kann ich dir die Daten liefern?

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

                          @martybr hier in code tags posten

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

                            @homoran
                            Sorry, die Webseite? Ich habe mal die Webseite gespeichert, vermute aber dass das nicht gemeint war. Kannst du mir noch einen Tipp geben?

                            [PIKO 20 __ Piko_20.html](/assets/uploads/files/1633352539531-piko-20-__-piko_20.html) 
                            
                            [kbApp-1.1.6.js](/assets/uploads/files/1633352574322-kbapp-1.1.6.js) 
                            
                            [kbApp-1.1.6.css](/assets/uploads/files/1633352587592-kbapp-1.1.6.css)
                            
                            <!DOCTYPE html>
                            <html ng-app="kbApp" ng-controller="kbAppCtrl">
                            <head>
                               <link rel="icon" href="/assets/favicon.ico">
                               <title ng-bind="inverterTypeName + ' <> ' + inverterName"></title>
                               <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
                               <meta http-equiv="X-UA-Compatible" content="IE=Edge"/>
                               <!--Deaktivate Chaching to avoid problems-->
                               <meta http-equiv="cache-control: private, max-age=0, no-cache" content="no-store" />
                               <meta http-equiv="expires" content="0" />
                               <meta http-equiv="pragma" content="no-cache" />
                            
                               <!-- compiled CSS -->
                               <link rel="stylesheet" type="text/css" href="assets/kbApp-1.1.6.css"/>
                               
                            </head>
                            <body>
                            <!-- Loading -->
                            <div kb-Hide-After-Init class = "loader" style="z-index: 3000">
                               <div class="loader-inner-big">
                                  <i class="icon-spinner animate-spin"></i>
                                  <div id="errorMsg"></div>
                               </div>
                            </div>
                            <!-- Page -->
                            <div class="kbContainer">
                               <div class="kbBanner">
                                  <div class="kbLogoPrim"></div>
                                  <div class="kbLogoSec"></div>
                                  <div class="kbLanguageSelectBar" ng-controller="languageSelCtrl">
                                     <div ng-repeat="language in languages">
                                        <div kb-language-select-item></div>
                                     </div>
                                  </div>
                               </div>
                               <div class="kbPage">
                                  <div class="kbDivider"></div>
                                  <div class="kbNav" ng-controller="navigationCtrl">
                                     <kb-navigation nodes="menu"></kb-navigation>
                                     <div class="kbLogoSlogan"></div>
                                  </div>
                                  <div class="kbContent">
                                     <div class="kbContentHeading">
                                        <div class="kbInfo">
                                           <div class="kbInverter">
                                              <span class="inverterType"> {{inverterTypeName}}</span>
                                              <span class="inverterName"> ({{inverterName}})</span>
                                           </div>
                                           <div class="kbUserAndDate">
                                              <div><i class="icon-calendar"><span>{{appDate | date:'short'}}</span></i></div>
                                              <div><i class="icon-user"><span>{{appUserTranslationId | translate}}</span></i></div>
                                           </div>
                                        </div>
                                        <div class="kbNavTitle" ng-controller="navigationCtrl">
                                           <kb-navigation-breadcrumb breadcrumbs="breadcrumbs"></kb-navigation-breadcrumb>
                                        </div>
                                     </div>
                                     <div class="kbContentView">
                                        <div ng-show="appPageInfo.loadingInProgress" ng-cloak class = "loader" style="z-index: 2000">
                                           <div class="loader-inner">
                                              <i class="icon-spinner animate-spin"></i>
                                           </div>
                                        </div>
                                        <div ng-show="appPageInfo.loadingFailed" ng-cloak class = "loader" style="z-index: 2000">
                                           <div class="loader-inner">
                                              <i class="icon-error"></i>
                                           </div>
                                        </div>
                                        <div ng-show="appPageInfo.submitInProgress" ng-cloak class = "loader-transparent" style="z-index: 2000">
                                           <div class="loader-inner">
                                              <i class="icon-spinner animate-spin"></i>
                                           </div>
                                        </div>
                                        <div class="kbView" ng-view></div>
                                        <div class="kbViewInfo" ng-show="appPageInfo.submitSuccessful || appPageInfo.submitFailed">
                                           <div ng-show="appPageInfo.submitSuccessful">
                                              <i class="icon-ok info-ok">{{appPageInfo.displayMsgId | translate}}</i>
                                           </div>
                                           <div ng-show="appPageInfo.submitFailed">
                                              <i class="icon-error info-error">{{appPageInfo.displayMsgId | translate}}</i>
                                           </div>
                                        </div>
                                     </div>
                                  </div>
                               </div>
                               <div class="kbFooter">
                                  <div class="kbWebversion">v1.1.6</div>
                               </div>
                            </div>
                            
                            <!-- compiled JavaScript -->
                            <script type="text/javascript" src="assets/kbApp-1.1.6.js"></script>
                            
                            </body>
                            </html>
                            
                            M 1 Reply Last reply Reply Quote 0
                            • M
                              MartyBr @MartyBr last edited by

                              @Homoran
                              Hier mal die Seite mit den Strings:

                              
                              <!DOCTYPE html>
                              <html ng-app="kbApp" ng-controller="kbAppCtrl">
                              <head>
                                 <link rel="icon" href="/assets/favicon.ico">
                                 <title ng-bind="inverterTypeName + ' <> ' + inverterName"></title>
                                 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
                                 <meta http-equiv="X-UA-Compatible" content="IE=Edge"/>
                                 <!--Deaktivate Chaching to avoid problems-->
                                 <meta http-equiv="cache-control: private, max-age=0, no-cache" content="no-store" />
                                 <meta http-equiv="expires" content="0" />
                                 <meta http-equiv="pragma" content="no-cache" />
                              
                                 <!-- compiled CSS -->
                                 <link rel="stylesheet" type="text/css" href="assets/kbApp-1.1.6.css"/>
                                 
                              </head>
                              <body>
                              <!-- Loading -->
                              <div kb-Hide-After-Init class = "loader" style="z-index: 3000">
                                 <div class="loader-inner-big">
                                    <i class="icon-spinner animate-spin"></i>
                                    <div id="errorMsg"></div>
                                 </div>
                              </div>
                              <!-- Page -->
                              <div class="kbContainer">
                                 <div class="kbBanner">
                                    <div class="kbLogoPrim"></div>
                                    <div class="kbLogoSec"></div>
                                    <div class="kbLanguageSelectBar" ng-controller="languageSelCtrl">
                                       <div ng-repeat="language in languages">
                                          <div kb-language-select-item></div>
                                       </div>
                                    </div>
                                 </div>
                                 <div class="kbPage">
                                    <div class="kbDivider"></div>
                                    <div class="kbNav" ng-controller="navigationCtrl">
                                       <kb-navigation nodes="menu"></kb-navigation>
                                       <div class="kbLogoSlogan"></div>
                                    </div>
                                    <div class="kbContent">
                                       <div class="kbContentHeading">
                                          <div class="kbInfo">
                                             <div class="kbInverter">
                                                <span class="inverterType"> {{inverterTypeName}}</span>
                                                <span class="inverterName"> ({{inverterName}})</span>
                                             </div>
                                             <div class="kbUserAndDate">
                                                <div><i class="icon-calendar"><span>{{appDate | date:'short'}}</span></i></div>
                                                <div><i class="icon-user"><span>{{appUserTranslationId | translate}}</span></i></div>
                                             </div>
                                          </div>
                                          <div class="kbNavTitle" ng-controller="navigationCtrl">
                                             <kb-navigation-breadcrumb breadcrumbs="breadcrumbs"></kb-navigation-breadcrumb>
                                          </div>
                                       </div>
                                       <div class="kbContentView">
                                          <div ng-show="appPageInfo.loadingInProgress" ng-cloak class = "loader" style="z-index: 2000">
                                             <div class="loader-inner">
                                                <i class="icon-spinner animate-spin"></i>
                                             </div>
                                          </div>
                                          <div ng-show="appPageInfo.loadingFailed" ng-cloak class = "loader" style="z-index: 2000">
                                             <div class="loader-inner">
                                                <i class="icon-error"></i>
                                             </div>
                                          </div>
                                          <div ng-show="appPageInfo.submitInProgress" ng-cloak class = "loader-transparent" style="z-index: 2000">
                                             <div class="loader-inner">
                                                <i class="icon-spinner animate-spin"></i>
                                             </div>
                                          </div>
                                          <div class="kbView" ng-view></div>
                                          <div class="kbViewInfo" ng-show="appPageInfo.submitSuccessful || appPageInfo.submitFailed">
                                             <div ng-show="appPageInfo.submitSuccessful">
                                                <i class="icon-ok info-ok">{{appPageInfo.displayMsgId | translate}}</i>
                                             </div>
                                             <div ng-show="appPageInfo.submitFailed">
                                                <i class="icon-error info-error">{{appPageInfo.displayMsgId | translate}}</i>
                                             </div>
                                          </div>
                                       </div>
                                    </div>
                                 </div>
                                 <div class="kbFooter">
                                    <div class="kbWebversion">v1.1.6</div>
                                 </div>
                              </div>
                              
                              <!-- compiled JavaScript -->
                              <script type="text/javascript" src="assets/kbApp-1.1.6.js"></script>
                              
                              </body>
                              </html>
                              
                              
                              
                              
                              Homoran 1 Reply Last reply Reply Quote 0
                              • Homoran
                                Homoran Global Moderator Administrators @MartyBr last edited by

                                @martybr nee, taugt alles nichts.

                                ich galube das ist hier auch der falsche Thread.
                                bin aber auch nicht mehr sicher, weil es immer drüber und drunter geht.

                                Zumindest anfangs ging es um die FW <5.3

                                @martybr sagte in Status vom Kostal Wechselrichter auslesen?:

                                Die Firmware vom Piko ist die 6.11.

                                sollte damit nicht funktionieren.

                                welches Script nutzst du denn genau?

                                M 2 Replies Last reply Reply Quote 0
                                • M
                                  MartyBr @Homoran last edited by

                                  @homoran
                                  das hier:

                                  Alle Werte kommen bis auf die Werte vom String 3:

                                  
                                  // Ausleseskript Wechselrichter Kostal Piko ab Firmware v05.31 (12.10.2015)
                                  
                                  //Variable
                                  
                                  var url = '192.168.178.77'; // IP der Photovoltaik-Anlage eintragen
                                  var IPAnlage = url + '/api/dxs.json'; 
                                  
                                  //Leistungswerte
                                     ID_DCEingangGesamt = 33556736;         // in W
                                     ID_Ausgangsleistung = 67109120;        // in W
                                     ID_Eigenverbrauch = 83888128;          // in W
                                     
                                     //Status
                                     ID_Status = 16780032;                  // 0:Off
                                     
                                     //Statistik - Tag
                                     ID_Ertrag_d = 251658754;               // in Wh
                                     ID_Hausverbrauch_d = 251659010;        // in Wh
                                     ID_Eigenverbrauch_d = 251659266;       // in Wh
                                     ID_Eigenverbrauchsquote_d = 251659278; // in %
                                     ID_Autarkiegrad_d = 251659279;         // in %
                                     
                                     //Statistik - Gesamt
                                     ID_Ertrag_G = 251658753;               // in kWh
                                     ID_Hausverbrauch_G = 251659009;        // in kWh
                                     ID_Eigenverbrauch_G = 251659265;       // in kWh
                                     ID_Eigenverbrauchsquote_G = 251659280; // in %
                                     ID_Autarkiegrad_G = 251659281;         // in %
                                     ID_Betriebszeit = 251658496;           // in h
                                     
                                     //Momentanwerte - PV Generator
                                     ID_DC1Spannung = 33555202;             // in V
                                     ID_DC1Strom = 33555201;                // in A
                                     ID_DC1Leistung = 33555203;             // in W
                                     ID_DC2Spannung = 33555458;             // in V
                                     ID_DC2Strom = 33555457;                // in A
                                     ID_DC2Leistung = 33555459;             // in W
                                     
                                     //Momentanwerte Haus
                                     ID_HausverbrauchSolar = 83886336;      // in W
                                     ID_HausverbrauchBatterie = 83886592;   // in W
                                     ID_HausverbrauchNetz = 83886848;       // in W
                                     ID_HausverbrauchPhase1 = 83887106;     // in W
                                     ID_HausverbrauchPhase2 = 83887362;     // in W
                                     ID_HausverbrauchPhase3 = 83887618;     // in W
                                     
                                     //Netz Netzparameter
                                     ID_NetzAusgangLeistung = 67109120;     // in W
                                     ID_NetzFrequenz = 67110400;            // in Hz
                                     ID_NetzCosPhi = 67110656;
                                     
                                     //Netz Phase 1
                                     ID_P1Spannung = 67109378;              // in V
                                     ID_P1Strom = 67109377;                 // in A
                                     ID_P1Leistung = 67109379;              // in W
                                     
                                     //Netz Phase 2
                                     ID_P2Spannung = 67109634;              // in V
                                     ID_P2Strom = 67109633;                 // in A
                                     ID_P2Leistung = 67109635;              // in W
                                     
                                     //Netz Phase 3
                                     ID_P3Spannung = 67109890;              // in V
                                     ID_P3Strom = 67109889;                 // in A
                                     ID_P3Leistung = 67109891;              // in W
                                  
                                  
                                  
                                  
                                  
                                  
                                  
                                  createState('Solaranlage.Momentanwerte.Leistung_AC_aktuell', 0);
                                  createState('Solaranlage.Summenwerte.Autarkiegrad_d',0);
                                  createState('Solaranlage.Summenwerte.Autarkiegrad_G',0);
                                  createState('Solaranlage.Summenwerte.Betriebszeit',0);
                                  createState('Solaranlage.Momentanwerte.Status','aus');
                                  createState('Solaranlage.Momentanwerte.Leistung_DC_aktuell',0);
                                  createState('Solaranlage.Momentanwerte.Eigenverbrauch',0);
                                  createState('Solaranlage.Summenwerte.Eigenverbrauch_d');
                                  createState('Solaranlage.Summenwerte.Eigenverbrauch_G', 0);
                                  createState('Solaranlage.Summenwerte.Eigenverbrauchsquote_d', 0);
                                  createState('Solaranlage.Summenwerte.Eigenverbrauchsquote_G', 0);
                                  createState('Solaranlage.Summenwerte.Tagesertrag', 0);
                                  createState('Solaranlage.Summenwerte.Gesamtertrag', 0);
                                  createState('Solaranlage.Summenwerte.Hausverbrauch_d', 0);
                                  createState('Solaranlage.Summenwerte.Hausverbrauch_G', 0);
                                  createState('Solaranlage.Momentanwerte.P1Spannung');
                                  createState('Solaranlage.Momentanwerte.P2Spannung');
                                  createState('Solaranlage.Momentanwerte.P1Strom');
                                  createState('Solaranlage.Momentanwerte.P2Strom');
                                  createState('Solaranlage.Momentanwerte.P1Leistung');
                                  createState('Solaranlage.Momentanwerte.P2Leistung');
                                  createState('Solaranlage.Momentanwerte.Leistung_String1');
                                  createState('Solaranlage.Momentanwerte.Leistung_String2');
                                  
                                  
                                  var logging = false;
                                  var request = require('request');
                                  
                                  function Piko() {
                                     if (logging) log("Piko 5.5 auslesen");
                                     request('http://' + IPAnlage + 
                                     '?dxsEntries=' + ID_DCEingangGesamt +
                                     '&dxsEntries=' + ID_Ausgangsleistung +
                                     '&dxsEntries=' + ID_Eigenverbrauch +
                                     '&dxsEntries=' + ID_Eigenverbrauch_d +
                                     '&dxsEntries=' + ID_Eigenverbrauch_G +
                                     '&dxsEntries=' + ID_Eigenverbrauchsquote_d +
                                     '&dxsEntries=' + ID_Eigenverbrauchsquote_G +
                                     '&dxsEntries=' + ID_Ertrag_d +
                                     '&dxsEntries=' + ID_Ertrag_G +
                                     '&dxsEntries=' + ID_Hausverbrauch_d +
                                     '&dxsEntries=' + ID_Hausverbrauch_G +
                                     '&dxsEntries=' + ID_Autarkiegrad_G +
                                     '&dxsEntries=' + ID_Autarkiegrad_d +
                                     '&dxsEntries=' + ID_Betriebszeit +
                                     '&dxsEntries=' + ID_P1Spannung +
                                     '&dxsEntries=' + ID_P2Spannung +
                                     '&dxsEntries=' + ID_P1Strom +
                                     '&dxsEntries=' + ID_P2Strom +
                                     '&dxsEntries=' + ID_P1Leistung +
                                     '&dxsEntries=' + ID_P2Leistung +
                                     '&dxsEntries=' + ID_Status +
                                     '&dxsEntries=' + ID_DC1Leistung +
                                     '&dxsEntries=' + ID_DC2Leistung,
                                     
                                     function (error, response, body) {
                                         if(!error && response.statusCode ==200) {
                                             if(logging) log(body);
                                             var result = JSON.parse(body).dxsEntries;
                                     		
                                     		var Zustand = 'aus';
                                  
                                     		if (result[20].val == 0) {
                                             Zustand = 'aus';
                                             } else if (result[20].value== 1) {
                                             Zustand = 'Leerlauf';
                                             } else if (result[20].value == 2) {
                                             Zustand = 'Anfahren';
                                             } else if (result[20].value == 3) {
                                             Zustand = 'Einspeisen MPP';
                                             } else if (result[20].value == 4) {
                                             Zustand = 'Einspeisen abgeregelt';
                                             } else if (result[20].value == 7) {
                                             Zustand = 'Isolationsmessung';
                                             } else {
                                             Zustand = (String('Code ') + String('' + result[20].value));
                                             }
                                         
                                     		
                                     		
                                             setState('Solaranlage.Momentanwerte.Leistung_DC_aktuell', result[0].value || 0, true);
                                             setState('Solaranlage.Momentanwerte.Leistung_AC_aktuell', result[1].value || 0, true);
                                             setState('Solaranlage.Momentanwerte.Eigenverbrauch', result[2].value || 0, true);
                                             setState('Solaranlage.Summenwerte.Eigenverbrauch_d', result[3].value || 0, true);
                                             setState('Solaranlage.Summenwerte.Eigenverbrauch_G', result[4].value || 0, true);
                                             setState('Solaranlage.Summenwerte.Eigenverbrauchsquote_d', result[5].value || 0, true);
                                             setState('Solaranlage.Summenwerte.Eigenverbrauchsquote_G', result[6].value || 0, true);
                                             setState('Solaranlage.Summenwerte.Tagesertrag', result[7].value || 0, true);
                                             setState('Solaranlage.Summenwerte.Gesamtertrag', result[8].value || 0, true);
                                             setState('Solaranlage.Summenwerte.Hausverbrauch_d', result[9].value || 0, true);
                                             setState('Solaranlage.Summenwerte.Hausverbrauch_G', result[10].value || 0, true);
                                             setState('Solaranlage.Summenwerte.Autarkiegrad_G', result[11].value || 0, true);
                                             setState('Solaranlage.Summenwerte.Autarkiegrad_d', result[12].value || 0, true);
                                             setState('Solaranlage.Summenwerte.Betriebszeit', result[13].value || 0, true);
                                             setState('Solaranlage.Momentanwerte.P1Spannung', result[14].value || 0, true);
                                             setState('Solaranlage.Momentanwerte.P2Spannung', result[15].value || 0, true);
                                             setState('Solaranlage.Momentanwerte.P1Strom', result[16].value || 0, true);
                                             setState('Solaranlage.Momentanwerte.P2Strom', result[17].value || 0, true);
                                             setState('Solaranlage.Momentanwerte.P1Leistung', result[18].value || 0, true);
                                             setState('Solaranlage.Momentanwerte.P2Leistung', result[19].value || 0, true);
                                             setState('Solaranlage.Momentanwerte.Status', Zustand || 0, true);
                                             setState('Solaranlage.Momentanwerte.Leistung_String1', result[21].value || 0, true);
                                             setState('Solaranlage.Momentanwerte.Leistung_String2', result[22].value || 0, true);
                                         } else {
                                             log("Fehler: " + error + " bei Abfrage von: " + url, "warn");
                                         }
                                     });
                                  }
                                  
                                  schedule("*/11 * 5-23 * * *", Piko);
                                  //on('smartmeter.0.1-0:16_7_0__255.value', Piko); // triggert bei Wertänderung;
                                  
                                  
                                  Homoran 1 Reply Last reply Reply Quote 0
                                  • Homoran
                                    Homoran Global Moderator Administrators @MartyBr last edited by

                                    @martybr sagte in Status vom Kostal Wechselrichter auslesen?:

                                    das hier:

                                    das gehört aber hier "eigentlich" nicht rein

                                    @martybr sagte in Status vom Kostal Wechselrichter auslesen?:

                                    Alle Werte kommen bis auf die Werte vom String 3:

                                    den hat mein WR ja auch nicht geliefert.

                                    dazu brauche ich, was das Skript aus deinem WR abruft

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

                                      @homoran

                                      Ich habe in diesem "Test-Script" die Werte für den String 3 ergänzt. Es kommen da leider Errors, meine angepasste Version läuft nicht:

                                      
                                      // Ausleseskript Wechselrichter Kostal Piko ab Firmware v05.31 (12.10.2015)
                                      
                                      //Variable
                                      
                                      var url = '192.168.178.77'; // IP der Photovoltaik-Anlage eintragen
                                      var IPAnlage = url + '/api/dxs.json'; 
                                      
                                      //Leistungswerte
                                         ID_DCEingangGesamt = 33556736;         // in W
                                         ID_Ausgangsleistung = 67109120;        // in W
                                         ID_Eigenverbrauch = 83888128;          // in W
                                         
                                         //Status
                                         ID_Status = 16780032;                  // 0:Off
                                         
                                         //Statistik - Tag
                                         ID_Ertrag_d = 251658754;               // in Wh
                                         ID_Hausverbrauch_d = 251659010;        // in Wh
                                         ID_Eigenverbrauch_d = 251659266;       // in Wh
                                         ID_Eigenverbrauchsquote_d = 251659278; // in %
                                         ID_Autarkiegrad_d = 251659279;         // in %
                                         
                                         //Statistik - Gesamt
                                         ID_Ertrag_G = 251658753;               // in kWh
                                         ID_Hausverbrauch_G = 251659009;        // in kWh
                                         ID_Eigenverbrauch_G = 251659265;       // in kWh
                                         ID_Eigenverbrauchsquote_G = 251659280; // in %
                                         ID_Autarkiegrad_G = 251659281;         // in %
                                         ID_Betriebszeit = 251658496;           // in h
                                         
                                         //Momentanwerte - PV Generator
                                         ID_DC1Spannung = 33555202;             // in V
                                         ID_DC1Strom = 33555201;                // in A
                                         ID_DC1Leistung = 33555203;             // in W
                                         ID_DC2Spannung = 33555458;             // in V
                                         ID_DC2Strom = 33555457;                // in A
                                         ID_DC2Leistung = 33555459;             // in W
                                         
                                         //Momentanwerte Haus
                                         ID_HausverbrauchSolar = 83886336;      // in W
                                         ID_HausverbrauchBatterie = 83886592;   // in W
                                         ID_HausverbrauchNetz = 83886848;       // in W
                                         ID_HausverbrauchPhase1 = 83887106;     // in W
                                         ID_HausverbrauchPhase2 = 83887362;     // in W
                                         ID_HausverbrauchPhase3 = 83887618;     // in W
                                         
                                         //Netz Netzparameter
                                         ID_NetzAusgangLeistung = 67109120;     // in W
                                         ID_NetzFrequenz = 67110400;            // in Hz
                                         ID_NetzCosPhi = 67110656;
                                         
                                         //Netz Phase 1
                                         ID_P1Spannung = 67109378;              // in V
                                         ID_P1Strom = 67109377;                 // in A
                                         ID_P1Leistung = 67109379;              // in W
                                         
                                         //Netz Phase 2
                                         ID_P2Spannung = 67109634;              // in V
                                         ID_P2Strom = 67109633;                 // in A
                                         ID_P2Leistung = 67109635;              // in W
                                         
                                         //Netz Phase 3
                                         ID_P3Spannung = 67109890;              // in V
                                         ID_P3Strom = 67109889;                 // in A
                                         ID_P3Leistung = 67109891;              // in W
                                      
                                      
                                      
                                      
                                      
                                      
                                      
                                      createState('Solaranlage.Momentanwerte.Leistung_AC_aktuell', 0);
                                      createState('Solaranlage.Summenwerte.Autarkiegrad_d',0);
                                      createState('Solaranlage.Summenwerte.Autarkiegrad_G',0);
                                      createState('Solaranlage.Summenwerte.Betriebszeit',0);
                                      createState('Solaranlage.Momentanwerte.Status','aus');
                                      createState('Solaranlage.Momentanwerte.Leistung_DC_aktuell',0);
                                      createState('Solaranlage.Momentanwerte.Eigenverbrauch',0);
                                      createState('Solaranlage.Summenwerte.Eigenverbrauch_d');
                                      createState('Solaranlage.Summenwerte.Eigenverbrauch_G', 0);
                                      createState('Solaranlage.Summenwerte.Eigenverbrauchsquote_d', 0);
                                      createState('Solaranlage.Summenwerte.Eigenverbrauchsquote_G', 0);
                                      createState('Solaranlage.Summenwerte.Tagesertrag', 0);
                                      createState('Solaranlage.Summenwerte.Gesamtertrag', 0);
                                      createState('Solaranlage.Summenwerte.Hausverbrauch_d', 0);
                                      createState('Solaranlage.Summenwerte.Hausverbrauch_G', 0);
                                      createState('Solaranlage.Momentanwerte.P1Spannung');
                                      createState('Solaranlage.Momentanwerte.P2Spannung');
                                      createState('Solaranlage.Momentanwerte.P3Spannung');
                                      createState('Solaranlage.Momentanwerte.P1Strom');
                                      createState('Solaranlage.Momentanwerte.P2Strom');
                                      createState('Solaranlage.Momentanwerte.P3Strom');
                                      createState('Solaranlage.Momentanwerte.P1Leistung');
                                      createState('Solaranlage.Momentanwerte.P2Leistung');
                                      createState('Solaranlage.Momentanwerte.P3Leistung');
                                      createState('Solaranlage.Momentanwerte.Leistung_String1');
                                      createState('Solaranlage.Momentanwerte.Leistung_String2');
                                      createState('Solaranlage.Momentanwerte.Leistung_String3');
                                      
                                      
                                      var logging = false;
                                      var request = require('request');
                                      
                                      function Piko() {
                                         if (logging) log("Piko 5.5 auslesen");
                                         request('http://' + IPAnlage + 
                                         '?dxsEntries=' + ID_DCEingangGesamt +
                                         '&dxsEntries=' + ID_Ausgangsleistung +
                                         '&dxsEntries=' + ID_Eigenverbrauch +
                                         '&dxsEntries=' + ID_Eigenverbrauch_d +
                                         '&dxsEntries=' + ID_Eigenverbrauch_G +
                                         '&dxsEntries=' + ID_Eigenverbrauchsquote_d +
                                         '&dxsEntries=' + ID_Eigenverbrauchsquote_G +
                                         '&dxsEntries=' + ID_Ertrag_d +
                                         '&dxsEntries=' + ID_Ertrag_G +
                                         '&dxsEntries=' + ID_Hausverbrauch_d +
                                         '&dxsEntries=' + ID_Hausverbrauch_G +
                                         '&dxsEntries=' + ID_Autarkiegrad_G +
                                         '&dxsEntries=' + ID_Autarkiegrad_d +
                                         '&dxsEntries=' + ID_Betriebszeit +
                                         '&dxsEntries=' + ID_P1Spannung +
                                         '&dxsEntries=' + ID_P2Spannung +
                                         '&dxsEntries=' + ID_P1Strom +
                                         '&dxsEntries=' + ID_P2Strom +
                                         '&dxsEntries=' + ID_P1Leistung +
                                         '&dxsEntries=' + ID_P2Leistung +
                                         '&dxsEntries=' + ID_Status +
                                         '&dxsEntries=' + ID_DC1Leistung +
                                         '&dxsEntries=' + ID_DC2Leistung +
                                         '&dxsEntries=' + ID_P3Spannung +    // 23
                                         '&dxsEntries=' + ID_P3Strom +       // 24
                                         '&dxsEntries=' + ID_DC3Leistung,    //25
                                         
                                         function (error, response, body) {
                                             if(!error && response.statusCode ==200) {
                                                 if(logging) log(body);
                                                 var result = JSON.parse(body).dxsEntries;
                                         		
                                         		var Zustand = 'aus';
                                      
                                         		if (result[20].val == 0) {
                                                 Zustand = 'aus';
                                                 } else if (result[20].value== 1) {
                                                 Zustand = 'Leerlauf';
                                                 } else if (result[20].value == 2) {
                                                 Zustand = 'Anfahren';
                                                 } else if (result[20].value == 3) {
                                                 Zustand = 'Einspeisen MPP';
                                                 } else if (result[20].value == 4) {
                                                 Zustand = 'Einspeisen abgeregelt';
                                                 } else if (result[20].value == 7) {
                                                 Zustand = 'Isolationsmessung';
                                                 } else {
                                                 Zustand = (String('Code ') + String('' + result[20].value));
                                                 }
                                             
                                         		
                                         		
                                                 setState('Solaranlage.Momentanwerte.Leistung_DC_aktuell', result[0].value || 0, true);
                                                 setState('Solaranlage.Momentanwerte.Leistung_AC_aktuell', result[1].value || 0, true);
                                                 setState('Solaranlage.Momentanwerte.Eigenverbrauch', result[2].value || 0, true);
                                                 setState('Solaranlage.Summenwerte.Eigenverbrauch_d', result[3].value || 0, true);
                                                 setState('Solaranlage.Summenwerte.Eigenverbrauch_G', result[4].value || 0, true);
                                                 setState('Solaranlage.Summenwerte.Eigenverbrauchsquote_d', result[5].value || 0, true);
                                                 setState('Solaranlage.Summenwerte.Eigenverbrauchsquote_G', result[6].value || 0, true);
                                                 setState('Solaranlage.Summenwerte.Tagesertrag', result[7].value || 0, true);
                                                 setState('Solaranlage.Summenwerte.Gesamtertrag', result[8].value || 0, true);
                                                 setState('Solaranlage.Summenwerte.Hausverbrauch_d', result[9].value || 0, true);
                                                 setState('Solaranlage.Summenwerte.Hausverbrauch_G', result[10].value || 0, true);
                                                 setState('Solaranlage.Summenwerte.Autarkiegrad_G', result[11].value || 0, true);
                                                 setState('Solaranlage.Summenwerte.Autarkiegrad_d', result[12].value || 0, true);
                                                 setState('Solaranlage.Summenwerte.Betriebszeit', result[13].value || 0, true);
                                                 setState('Solaranlage.Momentanwerte.P1Spannung', result[14].value || 0, true);
                                                 setState('Solaranlage.Momentanwerte.P2Spannung', result[15].value || 0, true);
                                                 setState('Solaranlage.Momentanwerte.P1Strom', result[16].value || 0, true);
                                                 setState('Solaranlage.Momentanwerte.P2Strom', result[17].value || 0, true);
                                                 setState('Solaranlage.Momentanwerte.P1Leistung', result[18].value || 0, true);
                                                 setState('Solaranlage.Momentanwerte.P2Leistung', result[19].value || 0, true);
                                                 setState('Solaranlage.Momentanwerte.Status', Zustand || 0, true);
                                                 setState('Solaranlage.Momentanwerte.Leistung_String1', result[21].value || 0, true);
                                                 setState('Solaranlage.Momentanwerte.Leistung_String2', result[22].value || 0, true);
                                                 setState('Solaranlage.Momentanwerte.P3Spannung', result[23].value || 0, true);
                                                 setState('Solaranlage.Momentanwerte.P3Strom', result[24].value || 0, true);
                                                 setState('Solaranlage.Momentanwerte.Leistung_String3', result[25].value || 0, true);
                                             } else {
                                                 log("Fehler: " + error + " bei Abfrage von: " + url, "warn");
                                             }
                                         });
                                      }
                                      
                                      schedule("*/11 * 5-23 * * *", Piko);
                                      //on('smartmeter.0.1-0:16_7_0__255.value', Piko); // triggert bei Wertänderung;
                                      
                                      

                                      Liefert Fehler:

                                      15:59:11.002 error javascript.0 (1899) at Object.Piko (script.js.Photovoltaik.Kostal-Piko-Test:133:21)
                                      15:59:22.001 error javascript.0 (1899) at Object.Piko (script.js.Photovoltaik.Kostal-Piko-Test:133:21)
                                      15:59:33.002 error javascript.0 (1899) at Object.Piko (script.js.Photovoltaik.Kostal-Piko-Test:133:21)

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

                                        @homoran

                                        Meinst du die Datenpunkte?

                                        Bildschirmfoto 2021-10-04 um 16.02.32.png

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

                                          @martybr sagte in Status vom Kostal Wechselrichter auslesen?:

                                          die Werte für den String 3 ergänzt

                                          wo?
                                          ich sehe die ID für den String 3 nicht.
                                          Woher hast du denn diese Zaahl

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

                                            @Homoran

                                            Hier noch Log-Meldungen:

                                            
                                            javascript.0
                                            2021-10-04 16:08:22.003	error	at processTimers (internal/timers.js:500:7)
                                            
                                            javascript.0
                                            2021-10-04 16:08:22.002	error	at listOnTimeout (internal/timers.js:557:17)
                                            
                                            javascript.0
                                            2021-10-04 16:08:22.002	error	at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:228:7)
                                            
                                            javascript.0
                                            2021-10-04 16:08:22.002	error	at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:268:28
                                            
                                            javascript.0
                                            2021-10-04 16:08:22.002	error	at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Job.js:168:15)
                                            
                                            javascript.0
                                            2021-10-04 16:08:22.002	error	at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1313:34)
                                            
                                            javascript.0
                                            2021-10-04 16:08:22.002	error	at Object.Piko (script.js.Photovoltaik.Kostal-Piko-Test:133:21)
                                            
                                            javascript.0
                                            2021-10-04 16:08:22.002	error	Error in callback: ReferenceError: ID_DC3Leistung is not defined
                                            
                                            javascript.0
                                            2021-10-04 16:08:11.003	error	at processTimers (internal/timers.js:500:7)
                                            
                                            javascript.0
                                            2021-10-04 16:08:11.003	error	at listOnTimeout (internal/timers.js:557:17)
                                            
                                            javascript.0
                                            2021-10-04 16:08:11.003	error	at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:228:7)
                                            
                                            javascript.0
                                            2021-10-04 16:08:11.003	error	at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:268:28
                                            
                                            javascript.0
                                            2021-10-04 16:08:11.003	error	at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Job.js:168:15)
                                            
                                            javascript.0
                                            2021-10-04 16:08:11.003	error	at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1313:34)
                                            
                                            javascript.0
                                            2021-10-04 16:08:11.003	error	at Object.Piko (script.js.Photovoltaik.Kostal-Piko-Test:133:21)
                                            
                                            javascript.0
                                            2021-10-04 16:08:11.002	error	Error in callback: ReferenceError: ID_DC3Leistung is not defined
                                            
                                            javascript.0
                                            2021-10-04 16:08:11.003	error	at processTimers (internal/timers.js:500:7)
                                            
                                            javascript.0
                                            2021-10-04 16:08:11.003	error	at listOnTimeout (internal/timers.js:557:17)
                                            
                                            javascript.0
                                            2021-10-04 16:08:11.003	error	at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:228:7)
                                            
                                            javascript.0
                                            2021-10-04 16:08:11.003	error	at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:268:28
                                            
                                            javascript.0
                                            2021-10-04 16:08:11.003	error	at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Job.js:168:15)
                                            
                                            javascript.0
                                            2021-10-04 16:08:11.003	error	at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1313:34)
                                            
                                            javascript.0
                                            2021-10-04 16:08:11.003	error	at Object.Piko (script.js.Photovoltaik.Kostal-Piko-Test:133:21)
                                            
                                            javascript.0
                                            2021-10-04 16:08:11.002	error	Error in callback: ReferenceError: ID_DC3Leistung is not defined
                                            
                                            
                                            Homoran 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

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

                                            569
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

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