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

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Status vom Kostal Wechselrichter auslesen?

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      MartyBr @Glasfaser last edited by

      @glasfaser

      Hier das aktuelle Script:

      // 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
       var ID_DCEingangGesamt = 33556736;         // in W
       var ID_Ausgangsleistung = 67109120;        // in W
       var ID_Eigenverbrauch = 83888128;          // in W
       
       //Status
       var ID_Status = 16780032;                  // 0:Off
       
       //Statistik - Tag
       var ID_Ertrag_d = 251658754;               // in Wh
       var ID_Hausverbrauch_d = 251659010;        // in Wh
       var ID_Eigenverbrauch_d = 251659266;       // in Wh
       var ID_Eigenverbrauchsquote_d = 251659278; // in %
       var ID_Autarkiegrad_d = 251659279;         // in %
       
       //Statistik - Gesamt
       var ID_Ertrag_G = 251658753;               // in kWh
       var ID_Hausverbrauch_G = 251659009;        // in kWh
       var ID_Eigenverbrauch_G = 251659265;       // in kWh
       var ID_Eigenverbrauchsquote_G = 251659280; // in %
       var ID_Autarkiegrad_G = 251659281;         // in %
       var ID_Betriebszeit = 251658496;           // in h
       
       //Momentanwerte - PV Generator
       var ID_DC1Spannung = 33555202;             // in V
       var ID_DC1Strom = 33555201;                // in A
       var ID_DC1Leistung = 33555203;             // in W
       var ID_DC2Spannung = 33555458;             // in V
       var ID_DC2Strom = 33555457;                // in A
       var ID_DC2Leistung = 33555459;             // in W
       var ID_DC3Spannung = 33555714;             // in V
       var ID_DC3Strom = 33555713;                // in A
       var ID_DC3Leistung = 33555715;             // in W
       
       //Momentanwerte Haus
       var ID_HausverbrauchSolar = 83886336;      // in W
       var ID_HausverbrauchBatterie = 83886592;   // in W
       var ID_HausverbrauchNetz = 83886848;       // in W
       var ID_HausverbrauchPhase1 = 83887106;     // in W
       var ID_HausverbrauchPhase2 = 83887362;     // in W
       var ID_HausverbrauchPhase3 = 83887618;     // in W
       
       //Netz Netzparameter
       var ID_NetzAusgangLeistung = 67109120;     // in W
       var ID_NetzFrequenz = 67110400;            // in Hz
       var ID_NetzCosPhi = 67110656;
       
       //Netz Phase 1
       var ID_P1Spannung = 67109378;              // in V
       var ID_P1Strom = 67109377;                 // in A
       var ID_P1Leistung = 67109379;              // in W
       
       //Netz Phase 2
       var ID_P2Spannung = 67109634;              // in V
       var ID_P2Strom = 67109633;                 // in A
       var ID_P2Leistung = 67109635;              // in W
       
       //Netz Phase 3
       var ID_P3Spannung = 67109890;              // in V
       var ID_P3Strom = 67109889;                 // in A
       var 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',0);
      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',0);
      createState('Solaranlage.Momentanwerte.P2Spannung',0);
      createState('Solaranlage.Momentanwerte.P3Spannung',0);
      createState('Solaranlage.Momentanwerte.P1Strom',0);
      createState('Solaranlage.Momentanwerte.P2Strom',0);
      createState('Solaranlage.Momentanwerte.P3Strom',0);
      createState('Solaranlage.Momentanwerte.P1Leistung',0);
      createState('Solaranlage.Momentanwerte.P2Leistung',0);
      createState('Solaranlage.Momentanwerte.P3Leistung',0);
      createState('Solaranlage.Momentanwerte.Leistung_String1',0);
      createState('Solaranlage.Momentanwerte.Leistung_String2',0);
      createState('Solaranlage.Momentanwerte.Leistung_String3',0);
      
      
      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
        '&dxsEntries=' + ID_DC3Leistung,    //25
       // '&dxsEntries=' + ID_P3Leistung,    //26
      
       function (error, response, body) {
           if(!error && response.statusCode ==200) {
               if(logging) log(body);
               var result = JSON.parse(body).dxsEntries;
               log (result);
       		
       		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);
          //     setState('Solaranlage.Momentanwerte.P3Leistung', result[26].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;
      
      

      Ich brauche hier den Wert für Leistung_String3. Hast du noch eine Idee?

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

        @martybr sagte in Status vom Kostal Wechselrichter auslesen?:

        //Netz Phase 2
        var ID_P2Spannung = 67109634; // in V
        var ID_P2Strom = 67109633; // in A
        var ID_P2Leistung = 67109635; // in W

        //Netz Phase 3
        var ID_P3Spannung = 67109890; // in V
        var ID_P3Strom = 67109889; // in A
        var ID_P3Leistung = 67109891; // in W

        tausche mal zum Test , ich habe die Werte P2Leistung / P3Leistung mal gedreht , ober er überhaupt das Ergebniss holt

        //Netz Phase 2
         var ID_P2Spannung = 67109634;              // in V
         var ID_P2Strom = 67109633;                 // in A
         var ID_P2Leistung = 67109891;              // in W
         
         //Netz Phase 3
         var ID_P3Spannung = 67109890;              // in V
         var ID_P3Strom = 67109889;                 // in A
         var ID_P3Leistung = 67109635;              // in W
        
        T M 3 Replies Last reply Reply Quote 0
        • T
          tombox @Glasfaser last edited by

          @glasfaser Nur kurz zum verständnis. Es gibt ja dafür ein Adapter was ist der Unterschied zum Skript?
          https://github.com/hombach/ioBroker.kostal-piko-ba

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

            @tombox
            Funktioniert der Adapter Piko_Ba mit einem Piko 20? nach meinem Sachstand nicht, der Piko_Ba ist der Vorläufer.

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

              @glasfaser
              Das Script zeigt Errors:

              // 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
               var ID_DCEingangGesamt = 33556736;         // in W
               var ID_Ausgangsleistung = 67109120;        // in W
               var ID_Eigenverbrauch = 83888128;          // in W
               
               //Status
               var ID_Status = 16780032;                  // 0:Off
               
               //Statistik - Tag
               var ID_Ertrag_d = 251658754;               // in Wh
               var ID_Hausverbrauch_d = 251659010;        // in Wh
               var ID_Eigenverbrauch_d = 251659266;       // in Wh
               var ID_Eigenverbrauchsquote_d = 251659278; // in %
               var ID_Autarkiegrad_d = 251659279;         // in %
               
               //Statistik - Gesamt
               var ID_Ertrag_G = 251658753;               // in kWh
               var ID_Hausverbrauch_G = 251659009;        // in kWh
               var ID_Eigenverbrauch_G = 251659265;       // in kWh
               var ID_Eigenverbrauchsquote_G = 251659280; // in %
               var ID_Autarkiegrad_G = 251659281;         // in %
               var ID_Betriebszeit = 251658496;           // in h
               
               //Momentanwerte - PV Generator
               var ID_DC1Spannung = 33555202;             // in V
               var ID_DC1Strom = 33555201;                // in A
               var ID_DC1Leistung = 33555203;             // in W
               var ID_DC2Spannung = 33555458;             // in V
               var ID_DC2Strom = 33555457;                // in A
               var ID_DC2Leistung = 33555459;             // in W
               var ID_DC3Spannung = 33555714;             // in V
               var ID_DC3Strom = 33555713;                // in A
               var ID_DC3Leistung = 33555715;             // in W
               
               //Momentanwerte Haus
               var ID_HausverbrauchSolar = 83886336;      // in W
               var ID_HausverbrauchBatterie = 83886592;   // in W
               var ID_HausverbrauchNetz = 83886848;       // in W
               var ID_HausverbrauchPhase1 = 83887106;     // in W
               var ID_HausverbrauchPhase2 = 83887362;     // in W
               var ID_HausverbrauchPhase3 = 83887618;     // in W
               
               //Netz Netzparameter
               var ID_NetzAusgangLeistung = 67109120;     // in W
               var ID_NetzFrequenz = 67110400;            // in Hz
               var ID_NetzCosPhi = 67110656;
               
              //Netz Phase 2
                var ID_P2Spannung = 67109634;              // in V
                var ID_P2Strom = 67109633;                 // in A
                var ID_P2Leistung = 67109891;              // in W
                
                //Netz Phase 3
                var ID_P3Spannung = 67109890;              // in V
                var ID_P3Strom = 67109889;                 // in A
                var ID_P3Leistung = 67109635;              // in W
               
               //Netz Phase 3
               var ID_P3Spannung = 67109890;              // in V
               var ID_P3Strom = 67109889;                 // in A
               var 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',0);
              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',0);
              createState('Solaranlage.Momentanwerte.P2Spannung',0);
              createState('Solaranlage.Momentanwerte.P3Spannung',0);
              createState('Solaranlage.Momentanwerte.P1Strom',0);
              createState('Solaranlage.Momentanwerte.P2Strom',0);
              createState('Solaranlage.Momentanwerte.P3Strom',0);
              createState('Solaranlage.Momentanwerte.P1Leistung',0);
              createState('Solaranlage.Momentanwerte.P2Leistung',0);
              createState('Solaranlage.Momentanwerte.P3Leistung',0);
              createState('Solaranlage.Momentanwerte.Leistung_String1',0);
              createState('Solaranlage.Momentanwerte.Leistung_String2',0);
              createState('Solaranlage.Momentanwerte.Leistung_String3',0);
              
              
              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 +      // 18
               '&dxsEntries=' + ID_P2Leistung +   // 19
               '&dxsEntries=' + ID_Status +          // 20
               '&dxsEntries=' + ID_DC1Leistung +     // 21
               '&dxsEntries=' + ID_DC2Leistung +     // 22
               '&dxsEntries=' + ID_P3Spannung +    // 23
               '&dxsEntries=' + ID_P3Strom +       // 24
               '&dxsEntries=' + ID_DC3Leistung+    //25
              //  '&dxsEntries=' + ID_DC3Leistung,    //25
               '&dxsEntries=' + ID_P3Leistung,    //26
              
               function (error, response, body) {
                   if(!error && response.statusCode ==200) {
                       if(logging) log(body);
                       var result = JSON.parse(body).dxsEntries;
                       log (result);
               		
               		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[20].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);
                       setState('Solaranlage.Momentanwerte.P3Leistung', result[26].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;
              
              

              10:29:33.001 error javascript.0 (50237) at Object.Piko (script.js.Photovoltaik.Piko9:125:19)
              10:29:44.001 error javascript.0 (50237) at Object.Piko (script.js.Photovoltaik.Piko9:125:19)

              Ich finde den Fehler nicht.

              Edit:
              In Zeile 185 war der falsche Array-Wert.

              Habe es korrigiert.

              Hier das aktuelle Script:

              // 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
               var ID_DCEingangGesamt = 33556736;         // in W
               var ID_Ausgangsleistung = 67109120;        // in W
               var ID_Eigenverbrauch = 83888128;          // in W
               
               //Status
               var ID_Status = 16780032;                  // 0:Off
               
               //Statistik - Tag
               var ID_Ertrag_d = 251658754;               // in Wh
               var ID_Hausverbrauch_d = 251659010;        // in Wh
               var ID_Eigenverbrauch_d = 251659266;       // in Wh
               var ID_Eigenverbrauchsquote_d = 251659278; // in %
               var ID_Autarkiegrad_d = 251659279;         // in %
               
               //Statistik - Gesamt
               var ID_Ertrag_G = 251658753;               // in kWh
               var ID_Hausverbrauch_G = 251659009;        // in kWh
               var ID_Eigenverbrauch_G = 251659265;       // in kWh
               var ID_Eigenverbrauchsquote_G = 251659280; // in %
               var ID_Autarkiegrad_G = 251659281;         // in %
               var ID_Betriebszeit = 251658496;           // in h
               
               //Momentanwerte - PV Generator
               var ID_DC1Spannung = 33555202;             // in V
               var ID_DC1Strom = 33555201;                // in A
               var ID_DC1Leistung = 33555203;             // in W
               var ID_DC2Spannung = 33555458;             // in V
               var ID_DC2Strom = 33555457;                // in A
               var ID_DC2Leistung = 33555459;             // in W
               var ID_DC3Spannung = 33555714;             // in V
               var ID_DC3Strom = 33555713;                // in A
               var ID_DC3Leistung = 33555715;             // in W
               
               //Momentanwerte Haus
               var ID_HausverbrauchSolar = 83886336;      // in W
               var ID_HausverbrauchBatterie = 83886592;   // in W
               var ID_HausverbrauchNetz = 83886848;       // in W
               var ID_HausverbrauchPhase1 = 83887106;     // in W
               var ID_HausverbrauchPhase2 = 83887362;     // in W
               var ID_HausverbrauchPhase3 = 83887618;     // in W
               
               //Netz Netzparameter
               var ID_NetzAusgangLeistung = 67109120;     // in W
               var ID_NetzFrequenz = 67110400;            // in Hz
               var ID_NetzCosPhi = 67110656;
               
              //Netz Phase 2
                var ID_P2Spannung = 67109634;              // in V
                var ID_P2Strom = 67109633;                 // in A
                var ID_P2Leistung = 67109891;              // in W
                
                //Netz Phase 3
                var ID_P3Spannung = 67109890;              // in V
                var ID_P3Strom = 67109889;                 // in A
                var ID_P3Leistung = 67109635;              // in W
               
               //Netz Phase 3
               var ID_P3Spannung = 67109890;              // in V
               var ID_P3Strom = 67109889;                 // in A
               var 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',0);
              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',0);
              createState('Solaranlage.Momentanwerte.P2Spannung',0);
              createState('Solaranlage.Momentanwerte.P3Spannung',0);
              createState('Solaranlage.Momentanwerte.P1Strom',0);
              createState('Solaranlage.Momentanwerte.P2Strom',0);
              createState('Solaranlage.Momentanwerte.P3Strom',0);
              createState('Solaranlage.Momentanwerte.P1Leistung',0);
              createState('Solaranlage.Momentanwerte.P2Leistung',0);
              createState('Solaranlage.Momentanwerte.P3Leistung',0);
              createState('Solaranlage.Momentanwerte.Leistung_String1',0);
              createState('Solaranlage.Momentanwerte.Leistung_String2',0);
              createState('Solaranlage.Momentanwerte.Leistung_String3',0);
              
              
              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 +      // 18
               '&dxsEntries=' + ID_P2Leistung +   // 19
               '&dxsEntries=' + ID_Status +          // 20
               '&dxsEntries=' + ID_DC1Leistung +     // 21
               '&dxsEntries=' + ID_DC2Leistung +     // 22
               '&dxsEntries=' + ID_P3Spannung +    // 23
               '&dxsEntries=' + ID_P3Strom +       // 24
               '&dxsEntries=' + ID_DC3Leistung+    //25
              //  '&dxsEntries=' + ID_DC3Leistung,    //25
               '&dxsEntries=' + ID_P3Leistung,    //26
              
               function (error, response, body) {
                   if(!error && response.statusCode ==200) {
                       if(logging) log(body);
                       var result = JSON.parse(body).dxsEntries;
                       log (result);
               		
               		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);
                       setState('Solaranlage.Momentanwerte.P3Leistung', result[26].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 immer noch Fehler.

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

                @Glasfaser

                Hier das laufende Script ohne P2Leistung und P3Leistung.

                // 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
                 var ID_DCEingangGesamt = 33556736;         // in W
                 var ID_Ausgangsleistung = 67109120;        // in W
                 var ID_Eigenverbrauch = 83888128;          // in W
                 
                 //Status
                 var ID_Status = 16780032;                  // 0:Off
                 
                 //Statistik - Tag
                 var ID_Ertrag_d = 251658754;               // in Wh
                 var ID_Hausverbrauch_d = 251659010;        // in Wh
                 var ID_Eigenverbrauch_d = 251659266;       // in Wh
                 var ID_Eigenverbrauchsquote_d = 251659278; // in %
                 var ID_Autarkiegrad_d = 251659279;         // in %
                 
                 //Statistik - Gesamt
                 var ID_Ertrag_G = 251658753;               // in kWh
                 var ID_Hausverbrauch_G = 251659009;        // in kWh
                 var ID_Eigenverbrauch_G = 251659265;       // in kWh
                 var ID_Eigenverbrauchsquote_G = 251659280; // in %
                 var ID_Autarkiegrad_G = 251659281;         // in %
                 var ID_Betriebszeit = 251658496;           // in h
                 
                 //Momentanwerte - PV Generator
                 var ID_DC1Spannung = 33555202;             // in V
                 var ID_DC1Strom = 33555201;                // in A
                 var ID_DC1Leistung = 33555203;             // in W
                 var ID_DC2Spannung = 33555458;             // in V
                 var ID_DC2Strom = 33555457;                // in A
                 var ID_DC2Leistung = 33555459;             // in W
                 var ID_DC3Spannung = 33555714;             // in V
                 var ID_DC3Strom = 33555713;                // in A
                 var ID_DC3Leistung = 33555715;             // in W
                 
                 //Momentanwerte Haus
                 var ID_HausverbrauchSolar = 83886336;      // in W
                 var ID_HausverbrauchBatterie = 83886592;   // in W
                 var ID_HausverbrauchNetz = 83886848;       // in W
                 var ID_HausverbrauchPhase1 = 83887106;     // in W
                 var ID_HausverbrauchPhase2 = 83887362;     // in W
                 var ID_HausverbrauchPhase3 = 83887618;     // in W
                 
                 //Netz Netzparameter
                 var ID_NetzAusgangLeistung = 67109120;     // in W
                 var ID_NetzFrequenz = 67110400;            // in Hz
                 var ID_NetzCosPhi = 67110656;
                 
                 //Netz Phase 1
                 var ID_P1Spannung = 67109378;              // in V
                 var ID_P1Strom = 67109377;                 // in A
                 var ID_P1Leistung = 67109379;              // in W
                 
                 //Netz Phase 2
                 var ID_P2Spannung = 67109634;              // in V
                 var ID_P2Strom = 67109633;                 // in A
                 var ID_P2Leistung = 67109635;              // in W
                 
                 //Netz Phase 3
                 var ID_P3Spannung = 67109890;              // in V
                 var ID_P3Strom = 67109889;                 // in A
                 var 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',0);
                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',0);
                createState('Solaranlage.Momentanwerte.P2Spannung',0);
                createState('Solaranlage.Momentanwerte.P3Spannung',0);
                createState('Solaranlage.Momentanwerte.P1Strom',0);
                createState('Solaranlage.Momentanwerte.P2Strom',0);
                createState('Solaranlage.Momentanwerte.P3Strom',0);
                createState('Solaranlage.Momentanwerte.P1Leistung',0);
                createState('Solaranlage.Momentanwerte.P2Leistung',0);
                createState('Solaranlage.Momentanwerte.P3Leistung',0);
                createState('Solaranlage.Momentanwerte.Leistung_String1',0);
                createState('Solaranlage.Momentanwerte.Leistung_String2',0);
                createState('Solaranlage.Momentanwerte.Leistung_String3',0);
                
                
                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 +      // 18
                //  '&dxsEntries=' + ID_P2Leistung +   // 19
                 '&dxsEntries=' + ID_Status +          // 19
                 '&dxsEntries=' + ID_DC1Leistung +     // 20
                 '&dxsEntries=' + ID_DC2Leistung +     // 21
                 '&dxsEntries=' + ID_P3Spannung +    // 22
                 '&dxsEntries=' + ID_P3Strom +       // 23
                 // '&dxsEntries=' + ID_DC3Leistung+    //25
                  '&dxsEntries=' + ID_DC3Leistung,    //24
                 // '&dxsEntries=' + ID_P3Leistung,    //26
                
                 function (error, response, body) {
                     if(!error && response.statusCode ==200) {
                         if(logging) log(body);
                         var result = JSON.parse(body).dxsEntries;
                         log (result);
                 		
                 		var Zustand = 'aus';
                
                 		if (result[19].val == 0) {
                         Zustand = 'aus';
                         } else if (result[19].value== 1) {
                         Zustand = 'Leerlauf';
                         } else if (result[19].value == 2) {
                         Zustand = 'Anfahren';
                         } else if (result[19].value == 3) {
                         Zustand = 'Einspeisen MPP';
                         } else if (result[19].value == 4) {
                         Zustand = 'Einspeisen abgeregelt';
                         } else if (result[19].value == 7) {
                         Zustand = 'Isolationsmessung';
                         } else {
                         Zustand = (String('Code ') + String('' + result[19].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[20].value || 0, true);
                         setState('Solaranlage.Momentanwerte.Leistung_String2', result[21].value || 0, true);
                         setState('Solaranlage.Momentanwerte.P3Spannung', result[22].value || 0, true);
                         setState('Solaranlage.Momentanwerte.P3Strom', result[23].value || 0, true);
                         setState('Solaranlage.Momentanwerte.Leistung_String3', result[24].value || 0, true);
                    //     setState('Solaranlage.Momentanwerte.P3Leistung', result[26].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;
                
                
                1 Reply Last reply Reply Quote 0
                • M
                  MartyBr @tombox last edited by

                  @tombox
                  Ich nehme alles zurück und behaupte das Gegenteil!!!!

                  @tombox
                  Du hast mich gerettet, der Piko_Ba läuft mit meinem Piko 20 und ich bekomme alle Werte.

                  Einen Riesen Dank an euch Alle @Homoran @Glasfaser @tombox

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

                    @glasfaser
                    Das Script nimmt nur 24 Werte an. Das hast du mit dem Array Recht gehabt. Ich habe eine Weile mit den DPs experimentiert. Ich dachte, ich kann die Leistung über Strom * Spannung errechnen und damit auf P2Leistung verzichten. Das funktioniert aber nicht mit den echten Werten aus dem Piko.

                    Ich gebe damit den Versuch mit dem Script auf.

                    Danke nochmal für deine Unterstützung.

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

                      Funktioniert der Adapter Piko_Ba mit einem Piko 20?

                      @tombox
                      nein!

                      EDIT:

                      @martybr sagte in Status vom Kostal Wechselrichter auslesen?:

                      ich nehme alles zurück und behaupte das Gegenteil!!!!

                      wieso klappt der bei dir?
                      ich habe nur einen 5.5, da klappt der Adapter nicht

                      @martybr sagte in Status vom Kostal Wechselrichter auslesen?:

                      Das Script nimmt nur 24 Werte an

                      nein 25!

                      @homoran sagte in Status vom Kostal Wechselrichter auslesen?:

                      Es scheint so, als ob der WR nur maximal 25 Elemente (0-24) ins Array packen kann.

                      liegt aber nicht am Skript

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

                        @homoran
                        Der Adapter Kostal_Piko_BA liest meinen Piko 20 aus. FW: 6.11
                        Vielleicht liegt es an der Firmware.

                        Habt Ihr schon rausgefunden, warum der WR nur die 25 Werte liefert? Hängt es mit der API zusammen?

                        Hier die Werte vom Kostal_Piko_BA:

                        Bildschirmfoto 2021-10-05 um 17.21.48.png

                        Ich habe es auch mittlerweile geschafft, den Kostal Smart Energy Meter auszulesen. Das funktioniert mit Modus und den Sunspec-Registern.

                        Wenn Interesse besteht, dann kann ich die Holding-Register hier posten.

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

                          Habt Ihr schon rausgefunden, warum der WR nur die 25 Werte liefert?

                          nein!

                          @martybr sagte in Status vom Kostal Wechselrichter auslesen?:

                          Hängt es mit der API zusammen?

                          möglich!

                          Ich habe mir mal die Konfigurationen des Adapters angeshen (nicht den code) und der scheint genau das zu machen, was ich dir sonst auch empfohlen hätte:
                          Mehrere Abfragen mit jeweils weniger Elementen.

                          In der Konfig des Adapters kann man 3 Intervalle für die verschiedenen Elemente einstellen, also werden das auch 3 Abfragen sein, die du versuchst mit dem Skript auf einmal abzufragen

                          @martybr sagte in Status vom Kostal Wechselrichter auslesen?:

                          Hier die Werte vom Kostal_Piko_BA:

                          Den Adapter kann ich leider nicht (vollständig) nutzen, da ich das Skript über den Smartmeter-Adapter triggere um zeitgleiche Solar- und Verbrauchswerte zu erhalten um daraus den effektiven Verbrauch (z.B. aktuelle Einspeisung - Solarproduktion = Verbrauch) zu berechnen.

                          @martybr sagte in Status vom Kostal Wechselrichter auslesen?:

                          Ich habe es auch mittlerweile geschafft, den Kostal Smart Energy Meter auszulesen. Das funktioniert mit Modus und den Sunspec-Registern.

                          dazu hatte ich mal bei Kostal nachgefragt. Die ModBus Spezifikationen wollte man mir nur für private Nutzung gegen eine Verschwiegenheitserklärung herausrücken.

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

                            @homoran
                            Hier mal die Holding Register für den KSEM. Der WR Piko konnte ich nicht auslesen, da sich hier der KSEM blockierend auf die Modus-Leitung setzt (sorgt auch dafür, dass ein Update des Piko nur nach Trennung der Verbindung funktioniert (nach Handbuch Kostal).

                            _address	name	description	unit	type	len	factor	offset	formula	role	room	poll	wp	cw	isScale
                            40071	M_AC_Current	AC Current (sum of active phases)	A	int16be	1	1	0		value		true			
                            40072	M_AC_Current_A	Phase A AC current	A	int16be	1	1	0		value		true			
                            40073	M_AC_Current_B	Phase B AC current	A	int16be	1	1	0		value		true			
                            40074	M_AC_Current_C	Phase C AC current	A	int16be	1	1	0		value		true			
                            40075	M_AC_Current_SF	AC Current Scale Factor		int16be	1	1	0		value		true			
                            40076	M_AC_Voltage_LN	Line to Neutral AC Voltage (average of active phases)	V	int16be	1	1	0		value		true			
                            40077	M_AC_Voltage_LA	Phase A to Neutral AC Voltage	V	int16be	1	1	0		value		true			
                            40078	M_AC_Voltage_LB	Phase B to Neutral AC Voltage	V	int16be	1	1	0		value		true			
                            40079	M_AC_Voltage_CN	Phase C to Neutral AC Voltage	V	int16be	1	1	0		value		true			
                            40080	M_AC_Voltage_LL	Line to Line AC Voltage (average of active phases)	V	int16be	1	1	0		value		true			
                            40081	M_AC_Voltage_AB	Phase A to Phase B AC Voltage	V	int16be	1	1	0		value		true			
                            40082	M_AC_Voltage_BC	Phase B to Phase C AC Voltage	V	int16be	1	1	0		value		true			
                            40083	M_AC_Voltage_CA	Phase C to Phase A AC Voltage	V	int16be	1	1	0		value		true			
                            40084	M_AC_Voltage_SF	AC Voltage Scale Factor		int16be	1	1	0		value		true			
                            40085	M_AC_Freq	AC Frequency	Hz	int16be	1	1	0		value		true			
                            40086	M_AC_Freq_SF	AC Frequency Scale Factor		int16be	1	1	0		value		true			
                            40087	M_AC_Power	Total Real Power (sum of active phases)	W	int16be	1	1	0		value		true			
                            40088	M_AC_Power_A	Phase A AC Real Power	W	int16be	1	1	0		value		true			
                            40089	M_AC_Power_B	Phase B AC Real Power	W	int16be	1	1	0		value		true			
                            40090	M_AC_Power_C	Phase C AC Real Power	W	int16be	1	1	0		value		true			
                            40091	M_AC_Power_SF	AC Real Power Scale Factor		int16be	1	1	0		value		true			
                            40092	M_AC_VA	Total AC Apparent Power (sum of active phases)	VA	int16be	1	1	0		value		true			
                            40093	M_AC_VA_A	Phase A AC Apparent Power	VA	int16be	1	1	0		value		true			
                            40094	M_AC_VA_B	Phase B AC Apparent Power	VA	int16be	1	1	0		value		true			
                            40095	M_AC_VA_C	Phase C AC Apparent Power	VA	int16be	1	1	0		value		true			
                            40096	M_AC_VA_SF	AC Apparent Power Scale Factor		int16be	1	1	0		value		true			
                            40097	M_AC_VAR	Total AC Reactive Power (sum of ac- tive phases)	var	int16be	1	1	0		value		true			
                            40098	M_AC_VAR_A	Phase A AC Reactive Power	var	int16be	1	1	0		value		true			
                            40099	M_AC_VAR_B	Phase B AC Reactive Power	var	int16be	1	1	0		value		true			
                            40100	M_AC_VAR_C	Phase C AC Reactive Power	var	int16be	1	1	0		value		true			
                            40101	M_AC_VAR_ SF	AC Reactive Power Scale Factor		int16be	1	1	0		value		true			
                            40102	M_AC_PF	Average Power Factor (average of active phases)	%	int16be	1	1	0		value		true			
                            40103	M_AC_PF_A	Phase A Power Factor	%	int16be	1	1	0		value		true			
                            40104	M_AC_PF_B	Phase B Power Factor	%	int16be	1	1	0		value		true			
                            40105	M_AC_PF_C	Phase C Power Factor	%	int16be	1	1	0		value		true			
                            40106	M_AC_PF_SF	AC Power Factor Scale Factor		int16be	1	1	0		value		true			
                            40107	M_Exported	Total Exported Real Energy	Wh	uint32sw	2	1	0		value		true			
                            40109	M_Exported_A	Phase A Exported Real Energy	Wh	uint32sw	2	1	0		value		true			
                            40111	M_Exported_B	Phase B Exported Real Energy	Wh	uint32sw	2	1	0		value		true			
                            40113	M_Exported_C	Phase C Exported Real Energy	Wh	uint32sw	2	1	0		value		true			
                            40115	M_Imported	Total Imported Real Energy	Wh	uint32sw	2	1	0		value		true			
                            40117	M_Imported_A	Phase A Imported Real Energy	Wh	uint32sw	2	1	0		value		true			
                            40119	M_Imported_B	Phase B Imported Real Energy	Wh	uint32sw	2	1	0		value		true			
                            40121	M_Imported_C	Phase C Imported Real Energy	Wh	uint32sw	2	1	0		value		true			
                            40123	M_Energy_W_SF	Real Energy Scale Factor3		int16be	1	1	0		value		true			
                            40124	M_Exported_VA	Total Exported Apparent Energy	VAh	uint32sw	2	1	0		value		true			
                            40126	M_Exported_VA_A	Phase A Exported Apparent Energy	VAh	uint32sw	2	1	0		value		true			
                            40128	M_Exported_VA_B	Phase B Exported Apparent Energy	VAh	uint32sw	2	1	0		value		true			
                            40130	M_Exported_VA_C	Phase C Exported Apparent Energy	VAh	uint32sw	2	1	0		value		true			
                            40132	M_Imported_VA	Total Imported Apparent Energy	VAh	uint32sw	2	1	0		value		true			
                            40134	M_Imported_VA_A	Phase A Imported Apparent Energy	VAh	uint32sw	2	1	0		value		true			
                            40136	M_Imported_VA_B	Phase B Imported Apparent Energy	VAh	uint32sw	2	1	0		value		true			
                            40138	M_Imported_VA_C	Phase C Imported Apparent Energy	VAh	uint32sw	2	1	0		value		true			
                            40140	M_Energy_ VA_SF	Apparent Energy Scale Factor		int16be	1	1	0		value		true			
                            40141	M_Import_ VARh_Q1	Quadrant 1: Tota Imported Reactive Energy	VARh	uint32sw	2	1	0		value		true			
                            40143	M_Import_ VARh_Q1A	Phase A – Quadrant 1: Imported Reac- tive Energy	VARh	uint32sw	2	1	0		value		true			
                            40145	M_Import_ VARh_Q1B	Phase B – Quadrant 1: Imported Reac- tive Energy	VARh	uint32sw	2	1	0		value		true			
                            40147	M_Import_ VARh_Q1C	Phase C – Quadrant 1: Imported Reac- tive Energy	VARh	uint32sw	2	1	0		value		true			
                            40149	M_Import_ VARh_Q2	Quadrant 2: Total Imported Reactive Energy	VARh	uint32sw	2	1	0		value		true			
                            40151	M_Import_ VARh_Q2A	Phase A – Quadrant 2: Imported Reac- tive Energy	VARh	uint32sw	2	1	0		value		true			
                            40153	M_Import_ VARh_Q2B	Phase B – Quadrant 2: Imported Reac- tive Energy	VARh	uint32sw	2	1	0		value		true			
                            40155	M_Import_ VARh_Q2C	Phase C – Quadrant 2: Imported Reac- tive Energy	VARh	uint32sw	2	1	0		value		true			
                            40157	M_Export_ VARh_Q3	Quadrant 3: Total Imported Reactive Energy	VARh	uint32sw	2	1	0		value		true			
                            40159	M_Export_ VARh_Q3A	Phase A – Quadrant 3: Imported Reac- tive Energy	VARh	uint32sw	2	1	0		value		true			
                            40161	M_Export_ VARh_Q3B	Phase B – Quadrant 3: Imported Reac- tive Energy	VARh	uint32sw	2	1	0		value		true			
                            40163	M_Export_ VARh_Q3C	Phase C – Quadrant 3: Imported Reac- tive Energy	VARh	uint32sw	2	1	0		value		true			
                            40165	M_Export_ VARh_Q4	Quadrant 4: Tota Imported Reactive Energy	VARh	uint32sw	2	1	0		value		true			
                            40167	M_Export_ VARh_Q4A	Phase A – Quadrant 4: Imported Reac- tive Energy	VARh	uint32sw	2	1	0		value		true			
                            40169	M_Export_ VARh_Q4B	Phase B – Quadrant 4: Imported Reac- tive Energy	VARh	uint32sw	2	1	0		value		true			
                            40171	M_Export_ VARh_Q4C	Phase C – Quadrant 4: Imported Reac- tive Energy	VARh	uint32sw	2	1	0		value		true			
                            40173	M_Energy_ VAR_SF	Reactive Energy Scale Factor		int16be	1	1	0		value		true			
                            40174	M_Events	Event flags		uint32sw	2	1	0		value		true			
                            

                            Die habe die Werte mühselig in Modbus reingekloppt.

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

                              @martybr sagte in Status vom Kostal Wechselrichter auslesen?:

                              Hier mal die Holding Register für den KSEM

                              Danke - aber den habe ich ja gar nicht, sondern nur den PIKO

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

                                @martybr
                                Bekommst du zu jedem deiner eingestellten Adressen einen Wert? Ich habe auch ein KSEM und testweise deine Konfig mal importiert. Leider habe ich überall nur 0 oder irgendwelchen Zahlensalat stehen.

                                Hast du iobroker als Master oder Slave konfiguriert und im KSEM noch irgendwas eingestellt?

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

                                  @schmattek
                                  Ich schicke dir heute Abend mal die Konfig vom modbus und vom KSEM. Eigenverbrauch und Hausstrom ist leider 0. Ich versuche diese beiden Werte aus den anderen zu errechnen und bin möglicherweise auf der richtigen Spur.

                                  Aber ja, bis auf die beiden genannten Werte bekomme ich Ergebnisse vom Kostal.

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

                                    @schmattek
                                    So, nun die Einstellungen im Modbus-Adapter:

                                    Bildschirmfoto 2021-10-20 um 20.31.58.png

                                    Bildschirmfoto 2021-10-20 um 20.32.18.png

                                    Bildschirmfoto 2021-10-20 um 20.32.35.png

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

                                      @martybr
                                      Danke, habe meinen Fehler gefunden. In meinen modbus-Einstellungen war noch die Option mit den Aliases angehakt. Dementsprechend hat er, nachdem ich deine Konfig eingefügt habe, die Adressen umgewandelt.

                                      Den Haken rausgenommen und noch mal die Konfig eingefügt, funktioniert jetzt.

                                      Einige kuriose Werte bleiben allerdings:

                                      1. Bei fast allen Adressen mit Live-Daten scheint eine Stelle hinten dran zu fehlen. Es steht dort z.B. -110W, wenn ich laut App aber 1,1kW einspeise. Oder bei der Scheinleistung -44VA in iobroker und auf der Seite des Smartmeter -442VA

                                      2. Auch die Werte für die exportierte und importierte (Schein)Leistung etc. scheinen absolute Phantasiewerte zu sein. Ich kann jedenfalls nicht nachvollziehen wo ich 1022361547Wh exportiert haben soll. Selbst wenn man hier Stellen weg streicht oder die Einheit ändert, passt das hinten und vorne nicht.

                                      Unbenannt.JPG

                                      So jedenfalls sind die Werte absolut unbrauchbar und mir scheint es so als würde Kostal hier irgendwas falsch in die Register schreiben.

                                      Diginix M 2 Replies Last reply Reply Quote 0
                                      • Diginix
                                        Diginix @Schmattek last edited by

                                        @schmattek Wenn die Werte unplausibel sind, kann es auch am gewählten Datentyp liegen. Kannst ja mal alle durchiterieren um zu sehen ob ein anderer einen sinnvolleren Wert liefert.

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

                                          @schmattek
                                          Du musst du Werte mit dem in *.SF angegeben Wert multiplizieren. Das hat Kostal in seiner Doku beschrieben.

                                          Bsp:
                                          Bildschirmfoto 2021-10-21 um 12.42.06.png

                                          In diesem Feld steht eine "-2". Das heisst, dass du die korrespondieren Werte mit 10 hoch -2 multiplizieren musst.

                                          Das konform mit allen Werten, die eine Endung SF haben.

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

                                            @martybr said in Status vom Kostal Wechselrichter auslesen?:

                                            @schmattek
                                            Du musst du Werte mit dem in *.SF angegeben Wert multiplizieren. Das hat Kostal in seiner Doku beschrieben.

                                            Bsp:
                                            Bildschirmfoto 2021-10-21 um 12.42.06.png

                                            In diesem Feld steht eine "-2". Das heisst, dass du die korrespondieren Werte mit 10 hoch -2 multiplizieren musst.

                                            Das konform mit allen Werten, die eine Endung SF haben.

                                            Heißt, wenn ich in der Modbus Konfig beim Faktor z.B. bei "Total real Power" eine 10 hin schreibe, dann stimmen die Werte. Ist ja im Prinzip nur ne 0 drangeschummelt und irgendwie unbefriedigend. Nennt mich kleinkariert, aber ich bin ein Fan von möglichst stimmiger Datenlage.

                                            Schaut man sich die Doku des KSEM an, stellt man fest, dass es auch Register <147 gibt. Liest man die mit nem Tool auf dem PC aus, bekommt man z.B. für die Einspeiseenergie den exakten Wert bis vier Stellen nach dem Komma! geliefert. Leider hab ich den Modbus Adapter noch nicht dazu bewegen können diese Register auszulesen.

                                            Unbenannt3.JPG

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

                                            Support us

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

                                            1.0k
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

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