NEWS
Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?
-
@bahnuhr sagte in Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?:
geht beides.
klar doch!
nur dein Post tauchte erst vor meinem auf, als ich abgedrückt hatte -
Sonst bist du immer schneller
-
@bahnuhr Vielen lieben Dank. Ich habe es tatsächlich hinbekommen, obwohl ich von Javascript ehrlich NULL Plan habe...
Eine Frage nur noch, mein Wechselrichter hat 3 Strings... Kann man das irgendwie anpassen...?Gruß Jörg... (Und nochmals lieben Dank...)
-
@discotosca sagte in Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?:
Kann man das irgendwie anpassen...?
wenn man weiß wo die Werte kommen
ich rate mal [11] und [13]??
@bahnuhr ? -
@homoran ... Bitte nochmal für jemanden, der nicht bis zum Hals im JavaScript steckt...
-
@discotosca sagte in Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?:
@homoran ... Bitte nochmal für jemanden, der nicht bis zum Hals im JavaScript steckt...
also für mich!
irgendwo in der Abfrage steht das Ergebnis
ich tippe an Position 11 und 13.du kannst über den Browser das Ergebnis abrufen.
leider habe ich diese alte Version nicht mehr und müsste selber nach der Vorgehensweise suchen.
Das kannst du auch. @bahnuhr hat einen weiteren Thread verlinktEDIT:
Abruf über den Browser müsste so gehen
http://User:Passwort@IP
-
@homoran sagte in Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?:
Ja, das müsste gehen.
Du musst halt, wie @Homoran schon geschrieben hat rausfinden, an welcher Position deine Daten kommen.
Und dann das Script erweitern.Probier es aus. Funktioniert dann schon.
-
@homoran sagte in Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?:
Ne, funktioniert doch nicht.
Dann wird nur die normale UI angezeigt.Schalte aber doch mal logging auf true und schaue dann was im log steht.
Und dann durchzählen. -
@bahnuhr sagte in Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?:
Dann wird nur die normale UI angezeigt.
ok!
ist schon zu lange her.
Dann mit der rechren Maustaste auf die Website, "Quelltext anzeigen" anklicken und diesen hier in code-tags posten.@bahnuhr Das müsste bei dir aber auch gehen, wenn auch nur mit 0-Werten
-
@homoran sagte in Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?:
@bahnuhr Das müsste bei dir aber auch gehen, wenn auch nur mit 0-Werten
ja, geht
Ich würde es aber mit "logging" probieren
-
@bahnuhr sagte in Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?:
ja, geht
wäre es dir möglich das umzusetzen, bitte?
@discotosca schafft das nicht@discotosca sagte in Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?:
obwohl ich von Javascript ehrlich NULL Plan habe...
dann wäre es ja gemäß meiner damaligen Vorgehensweise vielleicht doch mit dem Parser für dich einfacher
-
@homoran sagte in Wie Kostal Piko 3.6 Wechselrichter Visualisieren ?:
wäre es dir möglich das umzusetzen, bitte?
@discotosca schafft das nichtNa klar.
@discotosca
Schick mir das log nachdem du logging auf true gesetzt hast.
Dann schau ich mal. -
So, ich habe mir mein log mal angeschaut und das Script angepasst.
Bitte prüfen und Rückinfo.- Variablen anlegen:
// Photovoltaik ------------------------------------------------------------------------------------------------------------- createState('javascript.0.Geräte.Photovoltaik.Leistung_aktuell', 0, {type: 'number',name: 'Leistung aktuell',min: 0,role: 'per Script'}); createState('javascript.0.Geräte.Photovoltaik.Tagesleistung', 0, {type: 'number',name: 'Tagesleistung',min: 0,role: 'per Script'}); createState('javascript.0.Geräte.Photovoltaik.Leistung_gesamt', 0, {type: 'number',name: 'Leistung gesamt',min: 0,role: 'per Script'}); createState('javascript.0.Geräte.Photovoltaik.Leistung_Strang1', 0, {type: 'number',name: 'Leistung Strang 1',min: 0,role: 'per Script'}); createState('javascript.0.Geräte.Photovoltaik.Leistung_Strang2', 0, {type: 'number',name: 'Leistung Strang 2',min: 0,role: 'value'}); createState('javascript.0.Geräte.Photovoltaik.Leistung_Strang3', 0, {type: 'number',name: 'Leistung Strang 3',min: 0,role: 'value'});
2 angepasstes Script:
// Photovoltaik: Piko 5.5 Anlage (alte Firmware) // Danke an homoran für den regex // @bahnuhr; 03/2019 Dieter Müller // @bahnuhr; 10/2021 Dieter Müller - angepasst auf 3 String //Variaben var idaktuell = 'javascript.0.Geräte.Photovoltaik.Leistung_aktuell'; var idTag = 'javascript.0.Geräte.Photovoltaik.Tagesleistung'; var idall = 'javascript.0.Geräte.Photovoltaik.Leistung_gesamt'; var idP1 = 'javascript.0.Geräte.Photovoltaik.Leistung_Strang1'; var idP2 = 'javascript.0.Geräte.Photovoltaik.Leistung_Strang2'; var idP3 = 'javascript.0.Geräte.Photovoltaik.Leistung_Strang3'; var NameAnlage = 'xxx'; // Nutzername der Photovoltaik-Anlage var PassAnlage = 'xxx'; // Password der Photovoltaik-Anlage var IPAnlage = '192.168.xxx.xxx'; // IP der Photovoltaik-Anlage var logging = false; var request = require('request'); function Piko() { log("Piko 5.5 auslesen"); var results = []; request('http://' + NameAnlage + ':' + PassAnlage +'@' + IPAnlage, function (error, response, body) { var d = body.toString(); if (logging) log (d); var reg = /#FFFFFF">[^\d]+([^<]+)/g var z = reg.exec(d); while(z != null) { if (isNaN(z[1])) { if (logging) log("keine Zahl= "+ z[1]); z[1] = 0; } else { if (logging) log("Zahl= "+ z[1]); parseFloat(z[1]); } results[results.length] = z[1]; z = reg.exec(d); } if (logging) log("results= "+ results); // Werte zuordnen var pwr = results[0]; // Energie aktuell in W var day = results[2]; // Tagesenergie in kWh var all = results[1]; // Gesamtenergie in kWh var v1 = results[3]; // PV Generator Nr. 1 - Spannung in V var i1 = results[5]; // PV Generator Nr. 1 - Strom in A var p1 = parseInt(v1 * i1); var v2 = results[7]; // PV Generator Nr. 2 - Spannung in V var i2 = results[9]; // PV Generator Nr. 2 - Strom in A var p2 = parseInt(v2 * i2); var v3 = results[11]; // PV Generator Nr. 3 - Spannung in V var i3 = results[13]; // PV Generator Nr. 3 - Strom in A var p3 = parseInt(v3 * i3); if (logging) log("Leistung aktuell= " + pwr + " W"); if (logging) log("Tagesleistung= " + day + " kWh"); if (logging) log("Leistung gesamt= " + all + " kWh"); if (logging) log("Leistung Strang 1= " + p1 + " W"); if (logging) log("Leistung Strang 2= " + p2 + " W"); if (logging) log("Leistung Strang 3= " + p3 + " W"); setState(idaktuell, parseFloat(pwr)); setState(idTag, parseFloat(day)); setState(idall, parseFloat(all)); setState(idP1, parseFloat(p1)); setState(idP2, parseFloat(p2)); setState(idP3, parseFloat(p3)); }); } schedule("2,7,12,17,22,27,32,37,42,47,52,57 * * * *", function () { log ("Auslöser: Schedule"); Piko(); }); schedule("3 0 * * *", function () { // Variablen löschen um 00:03 Uhr setState('javascript.0.Geräte.Photovoltaik.Tagesleistung', 0); });
mfg
DieterEdit: zeile 13 berichtigt
-
@bahnuhr
Hab's mal getestet:29.10.2021, 18:04:25.626 [error]: javascript.0 (708) script.js.Photovoltaik.Kostal-Piko-auslesen compile failed: at script.js.Photovoltaik.Kostal-Piko-auslesen:13
-
@w00dy
In Zeile 13var idP3 = 'javascript.0.Geräte.Photovoltaik.Leistung_Strang3;
fehlt das Hochkomma '
-
@martybr
...stimmt, - läuft -
@bahnuhr Habe gerade erst gesehen, dass du mir das Script angepasst hast.
Hervorragend, vielen Dank.
Habe gerade das Script gegen dein 3-String-Script getauscht, läuft...Vielen lieben Dank...
Wenn noch eine Frage in mir aufkommen sollte, darf ich mich dann melden...?
DANKE & einen schönen Abend noch...
-
Das angepasste Script mit angepassten Variablen erzeugt bei mir WarnMeldungen und es werden keine Variablen aktualisiert, ich habe den schedule Teil ausgenommen um es erstmal manuell zu starten...
Name und Kennwort habe ich nachträglich unkenntlich gemacht.
// Photovoltaik: Piko 5.5 Anlage (alte Firmware) // Danke an homoran für den regex // @bahnuhr; 03/2019 Dieter Müller // @bahnuhr; 10/2021 Dieter Müller - angepasst auf 3 String //Variaben var idaktuell = '0_userdata.0.Geraete.PV.Photovoltaik.Leistung_aktuell'; var idTag = '0_userdata.0.Geraete.PV.Photovoltaik.Tagesleistung'; var idall = '0_userdata.0.Geraete.PV.Photovoltaik.Leistung_gesamt'; var idP1 = '0_userdata.0.Geraete.PV.Photovoltaik.Leistung_Strang1'; var idP2 = '0_userdata.0.Geraete.PV.Photovoltaik.Leistung_Strang2'; var idP3 = '0_userdata.0.Geraete.PV.Photovoltaik.Leistung_Strang3'; var NameAnlage = 'pvXXXX'; // Nutzername der Photovoltaik-Anlage var PassAnlage = 'pXXXXX'; // Password der Photovoltaik-Anlage var IPAnlage = '192.168.1.8'; // IP der Photovoltaik-Anlage var logging = false; var request = require('request'); function Piko() { log("Piko 5.5 auslesen"); var results = []; request('http://' + NameAnlage + ':' + PassAnlage +'@' + IPAnlage, function (error, response, body) { var d = body.toString(); if (logging) log (d); var reg = /#FFFFFF">[^\d]+([^<]+)/g var z = reg.exec(d); while(z != null) { if (isNaN(z[1])) { if (logging) log("keine Zahl= "+ z[1]); z[1] = 0; } else { if (logging) log("Zahl= "+ z[1]); parseFloat(z[1]); } results[results.length] = z[1]; z = reg.exec(d); } if (logging) log("results= "+ results); // Werte zuordnen var pwr = results[0]; // Energie aktuell in W var day = results[2]; // Tagesenergie in kWh var all = results[1]; // Gesamtenergie in kWh var v1 = results[3]; // PV Generator Nr. 1 - Spannung in V var i1 = results[5]; // PV Generator Nr. 1 - Strom in A var p1 = parseInt(v1 * i1); var v2 = results[7]; // PV Generator Nr. 2 - Spannung in V var i2 = results[9]; // PV Generator Nr. 2 - Strom in A var p2 = parseInt(v2 * i2); var v3 = results[11]; // PV Generator Nr. 3 - Spannung in V var i3 = results[13]; // PV Generator Nr. 3 - Strom in A var p3 = parseInt(v3 * i3); if (logging) log("Leistung aktuell= " + pwr + " W"); if (logging) log("Tagesleistung= " + day + " kWh"); if (logging) log("Leistung gesamt= " + all + " kWh"); if (logging) log("Leistung Strang 1= " + p1 + " W"); if (logging) log("Leistung Strang 2= " + p2 + " W"); if (logging) log("Leistung Strang 3= " + p3 + " W"); setState(idaktuell, parseFloat(pwr)); setState(idTag, parseFloat(day)); setState(idall, parseFloat(all)); setState(idP1, parseFloat(p1)); setState(idP2, parseFloat(p2)); setState(idP3, parseFloat(p3)); }); } Piko(); return; schedule("2,7,12,17,22,27,32,37,42,47,52,57 * * * *", function () { log ("Auslöser: Schedule"); Piko(); }); schedule("3 0 * * *", function () { // Variablen löschen um 00:03 Uhr setState('javascript.0.Geräte.Photovoltaik.Tagesleistung', 0); });
-
@hotmaggi
nähere Informationen stehen im log! (Protokolle)in den Zeilen 65-70 werden die Datenpunkte beschrieben.
Hast du diese angelegt?
-
Ich habe mit dem Create Script aus dem Thread die Variablen angelegt, was mit auffällt, dass die Variablen Deklaration mit den pysischen Datenpunkten nicht übereinstimmt... bei mir heißen die Variablen anders... das scheint der Fehler zu sein...
Werde ich gleich ändern.