NEWS
Status vom Kostal Wechselrichter auslesen?
-
@martybr sagte in Status vom Kostal Wechselrichter auslesen?:
Es fehlen die Werte für "Leistung_String3" und "P3Leistung".
dann müsste ich jetzt wissen wie das ARRAY aufgebaut ist und welche Werte da an welcher Position sind.
vielleicht kann @Glasfaser da noch ein log einbauen -
Kann ich mit irgendwas noch helfen?
Die Datenpunkte lösche ich jedesmal, wenn ich Änderungen am Script mache. Aktuell sehen die so aus: -
Ich komme bei mir nicht weiter .Schleife .. muss ein timeout machen bzw. mein ioBroker
-
@glasfaser sagte in Status vom Kostal Wechselrichter auslesen?:
Ich komme bei mir nicht weiter .Schleife .. muss ein timeout machen bzw. mein ioBroker
wahrscheinlich, weil du die IP nicht belegt hast.
bei mir läuft es jetzt, der Typ der angelegten States war mixed
Habe allerdings auch den Fehler mit
javascript.0 2021-10-04 17:59:22.113 error Error in request callback: TypeError: Cannot read property 'value' of undefined
Habe jetzt eine Vorgabe von 0 gemacht, jetzt steht da auch 0, aber ich habe keinen 3. String.
-
@homoran sagte in Status vom Kostal Wechselrichter auslesen?:
wahrscheinlich, weil du die IP nicht belegt hast.
Nee , mein ioBroker hängt , hat mit dem Script nichts zu tun .
Ich wollte es erst einfügen ...... bin gerade im neustart -
@glasfaser habe mutig einfach ein log(result) eigefügt, dabei kommt
javascript.0 (30706) script.js.Skript_1: [{'dxsId':33556736,'value':136.500305},{'dxsId':67109120,'value':103.410645},{'dxsId':83888128,'value':-0.004734},{'dxsId':251659266,'value':0.413695},{'dxsId':251659265,'value':0.46385},{'dxsId':251659278,'value':0.003308},{'dxsId':251659280,'value':0.002075},{'dxsId':251658754,'value':12505.785156},{'dxsId':251658753,'value':22358.400391},{'dxsId':251659010,'value':0.42188},{'dxsId':251659009,'value':0.555004},{'dxsId':251659281,'value':83.575813},{'dxsId':251659279,'value':98.059898},{'dxsId':251658496,'value':16493},{'dxsId':67109378,'value':227.567886},{'dxsId':67109634,'value':225.872467},{'dxsId':67109377,'value':1.005249},{'dxsId':67109633,'value':1.010742},{'dxsId':67109379,'value':34.409111},{'dxsId':67109635,'value':34.984821},{'dxsId':16780032,'value':3},{'dxsId':33555203,'value':65.081833},{'dxsId':33555459,'value':71.418472},{'dxsId':67109890,'value':228.161285},{'dxsId':67109889,'value':1.036377}]
Muss jetzt mal die IDs vergleichen
-
@Glasfaser
aus irgendeinem Grund scheint er den String 3 nicht auslesen zu wollenda könnte auch der Fehler mit dem Value dann herkommen:
setState('Solaranlage.Momentanwerte.Leistung_String3', result[25].value || 0, true);
habe aber keine Ahnung warum er das Array zu kurz hat
-
Habe kein Piko nur Solaredge .
Aber hier habe ich weiteres dazu gefunden .
33555715
-
@glasfaser kann es sein, dass das Array nur 25 Mitglieder lang sein darf?
Habe zum Testen gerade mal die P3 rausgenommen, da ist die String 3 drin@glasfaser sagte in Status vom Kostal Wechselrichter auslesen?:
Aber hier habe ich weiteres dazu gefunden .
da habe ich die IDs her
-
-
@homoran
Klar, teste ich. -
@homoran 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, //25function (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[24].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;Alle Momentan-Werte stehen auf 0 (Es ist nun dunkel!).
Log:
javascript.0 (50237) script.js.Photovoltaik.Piko5: [{'dxsId':33556736,'value':0},{'dxsId':67109120,'value':0},{'dxsId':83888128,'value':0},{'dxsId':251659266,'value':0},{'dxsId':251659265,'value':0},{'dxsId':251659278,'value':0},{'dxsId':251659280,'value':0},{'dxsId':251658754,'value':9121.470703},{'dxsId':251658753,'value':345.619873},{'dxsId':251659010,'value':0},{'dxsId':251659009,'value':0},{'dxsId':251659281,'value':0},{'dxsId':251659279,'value':0},{'dxsId':251658496,'value':141},{'dxsId':67109378,'value':0},{'dxsId':67109634,'value':0},{'dxsId':67109377,'value':0},{'dxsId':67109633,'value':0},{'dxsId':67109379,'value':0},{'dxsId':67109635,'value':0},{'dxsId':16780032,'value':0},{'dxsId':33555203,'value':0},{'dxsId':33555459,'value':0},{'dxsId':67109890,'value':0},{'dxsId':33555715,'value':0}]
-
@martybr sagte in Status vom Kostal Wechselrichter auslesen?:
Es ist nun dunkel!
wo wohnst du??
ich hab noch ein paar Watt obwohl ich nach NO ausgerichtet binaber sieht vielversprechend aus:
'dxsId':33555715,'value':0}]
-
Hier die Datenpunkte (alle DPs vor dem Start des Skriptes gelöscht):
-
@homoran
In der Nähe Berlins. Ich glaube, du kommst aus meiner alten Heimat (Rheinland). Richtig? Da liegen ca. 25 Minuten Sonne dazwischen.Edit:
Ich gebe morgen früh Rückmeldung.Gruß und Dank an @Homoran und @Glasfaser
-
Guten Morgen, das Script läuft und liefert die Werte. Nur P3Leistung fehlt. Ich versuche den DP zu aktivieren.
-
-
@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! -
@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);