NEWS
Status vom Kostal Wechselrichter auslesen?
-
das nutzt nicht viel.
bitte Adapter auf logstufe debug stellen und/oder im logfenster unter dem Skript im Editor nachsehenund die Frage nach dem Trigger bitte endlich beantworten
-
@homoran
Der Javascript Adapter läuft auf debug. Das Script triggert im Sekundenrythmus, die Werte werden geliefert.
Im Log ändert sich trotz Debug nichts.ipt.0 2021-10-04 17:17:55.048 error Error in request callback: TypeError: Cannot read property 'value' of undefined javascript.0 2021-10-04 17:17:44.050 error Error in request callback: TypeError: Cannot read property 'value' of undefined javascript.0 2021-10-04 17:17:33.124 error Error in request callback: TypeError: Cannot read property 'value' of undefined javascript.0 2021-10-04 17:17:22.050 error Error in request callback: TypeError: Cannot read property 'value' of undefined javascript.0 2021-10-04 17:17:11.050 error Error in request callback: TypeError: Cannot read property 'value' of undefined javascript.0 2021-10-04 17:17:00.138 error Error in request callback: TypeError: Cannot read property 'value' of undefined javascript.0 2021-10-04 17:16:55.051 error Error in request callback: TypeError: Cannot read property 'value' of undefined javascript.0 2021-10-04 17:16:44.052 error Error in request callback: TypeError: Cannot read property 'value' of undefined javascript.0 2021-10-04 17:16:33.050 error Error in request callback: TypeError: Cannot read property 'value' of undefined javascript.0 2021-10-04 17:16:22.053 error Error in request callback: TypeError: Cannot read property 'value' of undefined javascript.0 2021-10-04 17:16:11.049 error Error in request callback: TypeError: Cannot read property 'value' of undefined javascript.0 2021-10-04 17:16:00.116 error Error in request callback: TypeError: Cannot read property 'value' of undefined javascript.0 2021-10-04 17:15:55.051 error Error in request callback: TypeError: Cannot read property 'value' of undefined
Im Script-Editor kommt kein Fehler:
-
@martybr sagte in Status vom Kostal Wechselrichter auslesen?:
Im Script-Editor kommt kein Fehler:
und was ist das für eine rote Welle am oberen Rand des Screenshots?
-
Markierungen im Script-Editor:
-
@martybr lass dir doch nicht alles aus der Nase ziehen!
was steht dann im mouse over, wenn du mit der Maus über die Welle gehst
-
@martybr sagte in Status vom Kostal Wechselrichter auslesen?:
@homoran sagte in Status vom Kostal Wechselrichter auslesen?:
<IP>/api/dxs.json?dxsEntries=33555715
nein !! Das ist String 3. Ihr so so verdammt schnell, da komme ich nicht mit
Bei 33555715
Ist eigentlich dort ein Ergebniss gekommen !?
-
Cannot find name "ID_Eigenverbrauch_d"
Das steht bei jeder Variable.
Auch in dem Original-Script, dass einwandfrei funktioniert.
Sorry, ich bin in Scripting nicht so versiert. Habe dein Script genommen, es funktioniert, es fehlen nur die Werte für den String 3.
-
@glasfaser sagte in Status vom Kostal Wechselrichter auslesen?:
Bei 33555715
steht zumindest im code, den er gepostet hat
-
@glasfaser
Ja, der Aufruf liefert genau den fehlenden Wert für den String 3.{"dxsEntries":[{"dxsId":33555715,"value":137.251205}],"session":{"sessionId":0,"roleId":0},"status":{"code":0}}
-
@martybr
Hier der Piko (zeitlich versetzt): -
@martybr sagte in Status vom Kostal Wechselrichter auslesen?:
Habe dein Script genommen, es funktioniert,
wirklich?
ich sehe nur rot@Glasfaser
kannst du damit was anfangen?muss da etwa jedesmal ein
var
oderconst
davor? -
ich importier es mal bei mir .. warte mal .
@martybr sagte in Status vom Kostal Wechselrichter auslesen?:
Leider fehlen immer noch die Werte für den String 3:
Ich hatte die Tage auch einen blöden Fehler mit (null) , erst beim erneuten Admin Anmelden waren dort Werte enthalten .
-
@glasfaser sagte in Status vom Kostal Wechselrichter auslesen?:
ich importier es mal bei mir .. warte mal .
Danke!
das fehlende value kann ich nicht finden@MartyBr
vielleicht ist jede Sekunde auch einfach zu schnell -
Toll , hänge in der schleife ..
-
@glasfaser sagte in Status vom Kostal Wechselrichter auslesen?:
Toll , hänge in der schleife ..
dann geh ich da auch mal rein
-
Das von mir genutzte Original Script stammt hier aus dem Thread:
// Ausleseskript Wechselrichter Kostal Piko ab Firmware v05.31 (12.10.2015) //Variable var url = '192.168.178.77'; // IP der Photovoltaik-Anlage eintragen var IPAnlage = url + '/api/dxs.json'; //Leistungswerte ID_DCEingangGesamt = 33556736; // in W ID_Ausgangsleistung = 67109120; // in W ID_Eigenverbrauch = 83888128; // in W //Status ID_Status = 16780032; // 0:Off //Statistik - Tag ID_Ertrag_d = 251658754; // in Wh ID_Hausverbrauch_d = 251659010; // in Wh ID_Eigenverbrauch_d = 251659266; // in Wh ID_Eigenverbrauchsquote_d = 251659278; // in % ID_Autarkiegrad_d = 251659279; // in % //Statistik - Gesamt ID_Ertrag_G = 251658753; // in kWh ID_Hausverbrauch_G = 251659009; // in kWh ID_Eigenverbrauch_G = 251659265; // in kWh ID_Eigenverbrauchsquote_G = 251659280; // in % ID_Autarkiegrad_G = 251659281; // in % ID_Betriebszeit = 251658496; // in h //Momentanwerte - PV Generator ID_DC1Spannung = 33555202; // in V ID_DC1Strom = 33555201; // in A ID_DC1Leistung = 33555203; // in W ID_DC2Spannung = 33555458; // in V ID_DC2Strom = 33555457; // in A ID_DC2Leistung = 33555459; // in W //Momentanwerte Haus ID_HausverbrauchSolar = 83886336; // in W ID_HausverbrauchBatterie = 83886592; // in W ID_HausverbrauchNetz = 83886848; // in W ID_HausverbrauchPhase1 = 83887106; // in W ID_HausverbrauchPhase2 = 83887362; // in W ID_HausverbrauchPhase3 = 83887618; // in W //Netz Netzparameter ID_NetzAusgangLeistung = 67109120; // in W ID_NetzFrequenz = 67110400; // in Hz ID_NetzCosPhi = 67110656; //Netz Phase 1 ID_P1Spannung = 67109378; // in V ID_P1Strom = 67109377; // in A ID_P1Leistung = 67109379; // in W //Netz Phase 2 ID_P2Spannung = 67109634; // in V ID_P2Strom = 67109633; // in A ID_P2Leistung = 67109635; // in W //Netz Phase 3 ID_P3Spannung = 67109890; // in V ID_P3Strom = 67109889; // in A ID_P3Leistung = 67109891; // in W createState('Solaranlage.Momentanwerte.Leistung_AC_aktuell', 0); createState('Solaranlage.Summenwerte.Autarkiegrad_d',0); createState('Solaranlage.Summenwerte.Autarkiegrad_G',0); createState('Solaranlage.Summenwerte.Betriebszeit',0); createState('Solaranlage.Momentanwerte.Status','aus'); createState('Solaranlage.Momentanwerte.Leistung_DC_aktuell',0); createState('Solaranlage.Momentanwerte.Eigenverbrauch',0); createState('Solaranlage.Summenwerte.Eigenverbrauch_d'); createState('Solaranlage.Summenwerte.Eigenverbrauch_G', 0); createState('Solaranlage.Summenwerte.Eigenverbrauchsquote_d', 0); createState('Solaranlage.Summenwerte.Eigenverbrauchsquote_G', 0); createState('Solaranlage.Summenwerte.Tagesertrag', 0); createState('Solaranlage.Summenwerte.Gesamtertrag', 0); createState('Solaranlage.Summenwerte.Hausverbrauch_d', 0); createState('Solaranlage.Summenwerte.Hausverbrauch_G', 0); createState('Solaranlage.Momentanwerte.P1Spannung'); createState('Solaranlage.Momentanwerte.P2Spannung'); createState('Solaranlage.Momentanwerte.P1Strom'); createState('Solaranlage.Momentanwerte.P2Strom'); createState('Solaranlage.Momentanwerte.P1Leistung'); createState('Solaranlage.Momentanwerte.P2Leistung'); createState('Solaranlage.Momentanwerte.Leistung_String1'); createState('Solaranlage.Momentanwerte.Leistung_String2'); var logging = false; var request = require('request'); function Piko() { if (logging) log("Piko 5.5 auslesen"); request('http://' + IPAnlage + '?dxsEntries=' + ID_DCEingangGesamt + '&dxsEntries=' + ID_Ausgangsleistung + '&dxsEntries=' + ID_Eigenverbrauch + '&dxsEntries=' + ID_Eigenverbrauch_d + '&dxsEntries=' + ID_Eigenverbrauch_G + '&dxsEntries=' + ID_Eigenverbrauchsquote_d + '&dxsEntries=' + ID_Eigenverbrauchsquote_G + '&dxsEntries=' + ID_Ertrag_d + '&dxsEntries=' + ID_Ertrag_G + '&dxsEntries=' + ID_Hausverbrauch_d + '&dxsEntries=' + ID_Hausverbrauch_G + '&dxsEntries=' + ID_Autarkiegrad_G + '&dxsEntries=' + ID_Autarkiegrad_d + '&dxsEntries=' + ID_Betriebszeit + '&dxsEntries=' + ID_P1Spannung + '&dxsEntries=' + ID_P2Spannung + '&dxsEntries=' + ID_P1Strom + '&dxsEntries=' + ID_P2Strom + '&dxsEntries=' + ID_P1Leistung + '&dxsEntries=' + ID_P2Leistung + '&dxsEntries=' + ID_Status + '&dxsEntries=' + ID_DC1Leistung + '&dxsEntries=' + ID_DC2Leistung, function (error, response, body) { if(!error && response.statusCode ==200) { if(logging) log(body); var result = JSON.parse(body).dxsEntries; var Zustand = 'aus'; if (result[20].val == 0) { Zustand = 'aus'; } else if (result[20].value== 1) { Zustand = 'Leerlauf'; } else if (result[20].value == 2) { Zustand = 'Anfahren'; } else if (result[20].value == 3) { Zustand = 'Einspeisen MPP'; } else if (result[20].value == 4) { Zustand = 'Einspeisen abgeregelt'; } else if (result[20].value == 7) { Zustand = 'Isolationsmessung'; } else { Zustand = (String('Code ') + String('' + result[20].value)); } setState('Solaranlage.Momentanwerte.Leistung_DC_aktuell', result[0].value || 0, true); setState('Solaranlage.Momentanwerte.Leistung_AC_aktuell', result[1].value || 0, true); setState('Solaranlage.Momentanwerte.Eigenverbrauch', result[2].value || 0, true); setState('Solaranlage.Summenwerte.Eigenverbrauch_d', result[3].value || 0, true); setState('Solaranlage.Summenwerte.Eigenverbrauch_G', result[4].value || 0, true); setState('Solaranlage.Summenwerte.Eigenverbrauchsquote_d', result[5].value || 0, true); setState('Solaranlage.Summenwerte.Eigenverbrauchsquote_G', result[6].value || 0, true); setState('Solaranlage.Summenwerte.Tagesertrag', result[7].value || 0, true); setState('Solaranlage.Summenwerte.Gesamtertrag', result[8].value || 0, true); setState('Solaranlage.Summenwerte.Hausverbrauch_d', result[9].value || 0, true); setState('Solaranlage.Summenwerte.Hausverbrauch_G', result[10].value || 0, true); setState('Solaranlage.Summenwerte.Autarkiegrad_G', result[11].value || 0, true); setState('Solaranlage.Summenwerte.Autarkiegrad_d', result[12].value || 0, true); setState('Solaranlage.Summenwerte.Betriebszeit', result[13].value || 0, true); setState('Solaranlage.Momentanwerte.P1Spannung', result[14].value || 0, true); setState('Solaranlage.Momentanwerte.P2Spannung', result[15].value || 0, true); setState('Solaranlage.Momentanwerte.P1Strom', result[16].value || 0, true); setState('Solaranlage.Momentanwerte.P2Strom', result[17].value || 0, true); setState('Solaranlage.Momentanwerte.P1Leistung', result[18].value || 0, true); setState('Solaranlage.Momentanwerte.P2Leistung', result[19].value || 0, true); setState('Solaranlage.Momentanwerte.Status', Zustand || 0, true); setState('Solaranlage.Momentanwerte.Leistung_String1', result[21].value || 0, true); setState('Solaranlage.Momentanwerte.Leistung_String2', result[22].value || 0, true); } else { log("Fehler: " + error + " bei Abfrage von: " + url, "warn"); } }); } schedule("*/11 * 5-23 * * *", Piko); //on('smartmeter.0.1-0:16_7_0__255.value', Piko); // triggert bei Wertänderung;
Es liefert alle Werte, obwohl die Datenpunkte rot unterkriegest sind.
Ich habe nun in deinem letzten Script ein "var" vor den Variablen gesetzt:
// 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'); createState('Solaranlage.Summenwerte.Eigenverbrauch_G', 0); createState('Solaranlage.Summenwerte.Eigenverbrauchsquote_d', 0); createState('Solaranlage.Summenwerte.Eigenverbrauchsquote_G', 0); createState('Solaranlage.Summenwerte.Tagesertrag', 0); createState('Solaranlage.Summenwerte.Gesamtertrag', 0); createState('Solaranlage.Summenwerte.Hausverbrauch_d', 0); createState('Solaranlage.Summenwerte.Hausverbrauch_G', 0); createState('Solaranlage.Momentanwerte.P1Spannung'); createState('Solaranlage.Momentanwerte.P2Spannung'); createState('Solaranlage.Momentanwerte.P3Spannung'); createState('Solaranlage.Momentanwerte.P1Strom'); createState('Solaranlage.Momentanwerte.P2Strom'); createState('Solaranlage.Momentanwerte.P3Strom'); createState('Solaranlage.Momentanwerte.P1Leistung'); createState('Solaranlage.Momentanwerte.P2Leistung'); createState('Solaranlage.Momentanwerte.P3Leistung'); createState('Solaranlage.Momentanwerte.Leistung_String1'); createState('Solaranlage.Momentanwerte.Leistung_String2'); createState('Solaranlage.Momentanwerte.Leistung_String3'); var logging = false; var request = require('request'); function Piko() { if (logging) log("Piko 5.5 auslesen"); request('http://' + IPAnlage + '?dxsEntries=' + ID_DCEingangGesamt + '&dxsEntries=' + ID_Ausgangsleistung + '&dxsEntries=' + ID_Eigenverbrauch + '&dxsEntries=' + ID_Eigenverbrauch_d + '&dxsEntries=' + ID_Eigenverbrauch_G + '&dxsEntries=' + ID_Eigenverbrauchsquote_d + '&dxsEntries=' + ID_Eigenverbrauchsquote_G + '&dxsEntries=' + ID_Ertrag_d + '&dxsEntries=' + ID_Ertrag_G + '&dxsEntries=' + ID_Hausverbrauch_d + '&dxsEntries=' + ID_Hausverbrauch_G + '&dxsEntries=' + ID_Autarkiegrad_G + '&dxsEntries=' + ID_Autarkiegrad_d + '&dxsEntries=' + ID_Betriebszeit + '&dxsEntries=' + ID_P1Spannung + '&dxsEntries=' + ID_P2Spannung + '&dxsEntries=' + ID_P1Strom + '&dxsEntries=' + ID_P2Strom + '&dxsEntries=' + ID_P1Leistung + '&dxsEntries=' + ID_P2Leistung + '&dxsEntries=' + ID_Status + '&dxsEntries=' + ID_DC1Leistung + '&dxsEntries=' + ID_DC2Leistung + '&dxsEntries=' + ID_P3Spannung + // 23 '&dxsEntries=' + ID_P3Strom + // 24 '&dxsEntries=' + ID_DC3Leistung, //25 function (error, response, body) { if(!error && response.statusCode ==200) { if(logging) log(body); var result = JSON.parse(body).dxsEntries; var Zustand = 'aus'; if (result[20].val == 0) { Zustand = 'aus'; } else if (result[20].value== 1) { Zustand = 'Leerlauf'; } else if (result[20].value == 2) { Zustand = 'Anfahren'; } else if (result[20].value == 3) { Zustand = 'Einspeisen MPP'; } else if (result[20].value == 4) { Zustand = 'Einspeisen abgeregelt'; } else if (result[20].value == 7) { Zustand = 'Isolationsmessung'; } else { Zustand = (String('Code ') + String('' + result[20].value)); } setState('Solaranlage.Momentanwerte.Leistung_DC_aktuell', result[0].value || 0, true); setState('Solaranlage.Momentanwerte.Leistung_AC_aktuell', result[1].value || 0, true); setState('Solaranlage.Momentanwerte.Eigenverbrauch', result[2].value || 0, true); setState('Solaranlage.Summenwerte.Eigenverbrauch_d', result[3].value || 0, true); setState('Solaranlage.Summenwerte.Eigenverbrauch_G', result[4].value || 0, true); setState('Solaranlage.Summenwerte.Eigenverbrauchsquote_d', result[5].value || 0, true); setState('Solaranlage.Summenwerte.Eigenverbrauchsquote_G', result[6].value || 0, true); setState('Solaranlage.Summenwerte.Tagesertrag', result[7].value || 0, true); setState('Solaranlage.Summenwerte.Gesamtertrag', result[8].value || 0, true); setState('Solaranlage.Summenwerte.Hausverbrauch_d', result[9].value || 0, true); setState('Solaranlage.Summenwerte.Hausverbrauch_G', result[10].value || 0, true); setState('Solaranlage.Summenwerte.Autarkiegrad_G', result[11].value || 0, true); setState('Solaranlage.Summenwerte.Autarkiegrad_d', result[12].value || 0, true); setState('Solaranlage.Summenwerte.Betriebszeit', result[13].value || 0, true); setState('Solaranlage.Momentanwerte.P1Spannung', result[14].value || 0, true); setState('Solaranlage.Momentanwerte.P2Spannung', result[15].value || 0, true); setState('Solaranlage.Momentanwerte.P1Strom', result[16].value || 0, true); setState('Solaranlage.Momentanwerte.P2Strom', result[17].value || 0, true); setState('Solaranlage.Momentanwerte.P1Leistung', result[18].value || 0, true); setState('Solaranlage.Momentanwerte.P2Leistung', result[19].value || 0, true); setState('Solaranlage.Momentanwerte.Status', Zustand || 0, true); setState('Solaranlage.Momentanwerte.Leistung_String1', result[21].value || 0, true); setState('Solaranlage.Momentanwerte.Leistung_String2', result[22].value || 0, true); setState('Solaranlage.Momentanwerte.P3Spannung', result[23].value || 0, true); setState('Solaranlage.Momentanwerte.P3Strom', result[24].value || 0, true); setState('Solaranlage.Momentanwerte.Leistung_String3', result[25].value || 0, true); } else { log("Fehler: " + error + " bei Abfrage von: " + url, "warn"); } }); } schedule("*/11 * 5-23 * * *", Piko); //on('smartmeter.0.1-0:16_7_0__255.value', Piko); // triggert bei Wertänderung;
Nun sind die Kringel weg.
Es fehlen die Werte für "Leistung_String3" und "P3Leistung".
-
@martybr sagte in Status vom Kostal Wechselrichter auslesen?:
//Leistungswerte
var ID_DCEingangGesamt = 33556736; // in WIch hänge noch ....
das var fehlt
-
muss da tatsächlich jedesmal ein
var
davor???? -
@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: