NEWS
Status vom Kostal Wechselrichter auslesen?
-
@glasfaser sagte in Status vom Kostal Wechselrichter auslesen?:
'&dxsEntries=' + ID_DC3Leistung+, //25
'&dxsEntries=' + ID_P3Leistung, //26ein komma zuviel
-
das fehlte
'&dxsEntries=' + ID_P3Leistung, setState('Solaranlage.Momentanwerte.P3Leistung', result[26].value || 0, true);
-
@glasfaser sagte in Status vom Kostal Wechselrichter auslesen?:
// Ausleseskript Wechselrichter Kostal Piko ab Firmware v05.31 (12.10.2015)
//Variable
var url = '192.168.178.123'; // 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 WcreateState('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_P3Leistung, //26function (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;Hallo @Glasfaser , das Script liefert keine aktuellen Werte für den String 3. Es werden die die Spannungswerte eingetragen. Die P3Leistung wird nicht aktualisiert.
Ich kann auf P3Leistung verzichten, wenn P3Strom kommt, die Leistung lässt sich über ein Blocky einfach berechnen. Der String 3 ist wichtig. -
@homoran sagte in Status vom Kostal Wechselrichter auslesen?:
@martybr sagte in Status vom Kostal Wechselrichter auslesen?:Nur P3Leistung fehlt. Ich versuche den DP zu aktivieren.
den habe ich deaktiviert, um String 3 zu bekommen.
Es scheint so, als ob der WR nur maximal 25 Elemente (0-24) ins Array packen kann.
Wenn du P3 wieder aktivierst aber auch die [24] des Strin3 in [25] zurück ändern!Eventuell so wie schon @Homoran geschrieben .
Das ist alles Trockenübung
-
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?
-
@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 Wtausche 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
-
@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 -
@tombox
Funktioniert der Adapter Piko_Ba mit einem Piko 20? nach meinem Sachstand nicht, der Piko_Ba ist der Vorläufer. -
@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.
-
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;
-
@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
-
@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.
-
@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
-
@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:
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.
-
@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.
-
@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.
-
@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
-
@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?
-
@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.
-
@schmattek
So, nun die Einstellungen im Modbus-Adapter: