NEWS
Kostal Wechselrichter mit Firmware 3.71
-
@homoran sagte in Kostal Wechselrichter mit Firmware 3.71:
An die alten Kostal konnten noch 3 Strings angeschlossen werden.
die Daten müssten im Json/Array drin seinWenn das gemeint war, dann muss man das Script erweitern.
-
@bahnuhr said in Kostal Wechselrichter mit Firmware 3.71:
@bahnuhr sagte in Kostal Wechselrichter mit Firmware 3.71:
Wie sieht die Weboberfläche von Piko aus?
(alte oder neue Version)und das fehlt auch noch.
Und dein jetzt verlinktes Script läuft bei mir einwandfrei !
Jo.... Es läuft.... Lag am Passwort.
-
@sirtiger was kommt denn bei dir im Browser wenn du die Abfrage startest?
ID.PASS@IP
oder so ähnlich.
hab den alten seit 5 Jahren nicht mehr -
@bahnuhr said in Kostal Wechselrichter mit Firmware 3.71:
@homoran sagte in Kostal Wechselrichter mit Firmware 3.71:
An die alten Kostal konnten noch 3 Strings angeschlossen werden.
die Daten müssten im Json/Array drin seinWenn das gemeint war, dann muss man das Script erweitern.
Das versuche ich gerade...
-
Moin...
Ich nochmal.... Habe das Script jetzt komplett am laufen.
Es ist jetzt an einen Kostal Piko 10.1 mit alter Firmware ver. 5.44 angepaßt...
So ich dieses im Quelltext vermerken?SG
Timo -
Hallo allerseits.
Kann man das auf 3 Strings angepasste Script irgendwo downloaden, bzw kannst Du es hier noch posten?Ich bin neu bei ioBroker und versuche meinen 12Jahre alten Kostal Piko 10.1 mit 3 Strings
auszulesen.Vielen Dank schonmal.
-
@dbox83 sagte in Kostal Wechselrichter mit Firmware 3.71:
meinen 12Jahre alten Kostal Piko
welche Firmware?
@sirtiger sagte in Kostal Wechselrichter mit Firmware 3.71:
Firmware ver. 5.44
müstte schon die neue sein.
-
Nein, das ist noch die alte Firmware mit der "dos Oberfläche" wie im post von "bahnuhr"
am 14 Aug 2020, 09:02.Wo kann man das Script mit 3 Strings downloaden?
Bisher konnte ich es nur herauskopieren wenn es jemand direkt im post geschrieben hatte.
Danke schonmal.
-
@dbox83 was ergibt denn bei dir die Abfrage vom Kostal?
-
@homoran
Ich bekomme die Werte für 2 strings.Wo kann man das Script denn grundsätzlich downloaden???
-
@dbox83 sagte in Kostal Wechselrichter mit Firmware 3.71:
Wo kann man das Script denn grundsätzlich downloaden???
nirgends!
ich versuche es gerade für dich zu rekonstruieren.
Dazu brauche ichbaber deine Hilfe sonst wird das nichts. -
@dbox83 sagte in Kostal Wechselrichter mit Firmware 3.71:
Ich bekomme die Werte für 2 strings.
wie sieht das json/xml oder was direkt vom Kostal kommt bei dir aus?
unaufgearbeitet! -
-
Achso, ich dachte man kann irgendwo im Downloadbereich dieses Script downloaden und ich finde es nur nicht.
Ich bin ganz neu mit iobroker und auch in diesem Forum.
Aktuell nutze ich dieses Script:
// Photovoltaik: Piko 5.5 Anlage (alte Firmware) // Danke an homoran für den regex // @bahnuhr; 03/2019 Dieter Müller //Variaben var idaktuell = 'javascript.0.Photovoltaik.Leistung_aktuell'; var idTag = 'javascript.0.Photovoltaik.Tagesleistung'; var idall = 'javascript.0.Photovoltaik.Leistung_gesamt'; var idP1 = 'javascript.0.Photovoltaik.Leistung_Strang1'; var idP2 = 'javascript.0.Photovoltaik.Leistung_Strang2'; var NameAnlage = 'pvserver'; // Nutzername der Photovoltaik-Anlage var PassAnlage = 'pvwr'; // Password der Photovoltaik-Anlage var IPAnlage = '192.168.176.211'; // IP der Photovoltaik-Anlage var logging = false; var request = require('request'); function Piko() { log("Piko 10.1 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); log (z[1]); } 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); 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"); setState(idaktuell, parseFloat(pwr)); setState(idTag, parseFloat(day)); setState(idall, parseFloat(all)); setState(idP1, parseFloat(p1)); setState(idP2, parseFloat(p2)); }); } 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.Photovoltaik.Tagesleistung', 0); });
MOD-EDIT: Code in code-tags gesetzt!
Das sind die Ausgen:
31.8.2023, 20:12:00.005 [info ]: javascript.0 (31437) script.js.Kostal_auslesen: Auslöser: Schedule
31.8.2023, 20:12:00.005 [info ]: javascript.0 (31437) script.js.Kostal_auslesen: Piko 10.1 auslesen
31.8.2023, 20:12:00.078 [info ]: javascript.0 (31437) script.js.Kostal_auslesen: 69360
31.8.2023, 20:12:00.078 [info ]: javascript.0 (31437) script.js.Kostal_auslesen: 29.41
31.8.2023, 20:12:00.078 [info ]: javascript.0 (31437) script.js.Kostal_auslesen: 219
31.8.2023, 20:12:00.078 [info ]: javascript.0 (31437) script.js.Kostal_auslesen: 229
31.8.2023, 20:12:00.078 [info ]: javascript.0 (31437) script.js.Kostal_auslesen: 0.00
31.8.2023, 20:12:00.078 [info ]: javascript.0 (31437) script.js.Kostal_auslesen: 0
31.8.2023, 20:12:00.078 [info ]: javascript.0 (31437) script.js.Kostal_auslesen: 218
31.8.2023, 20:12:00.078 [info ]: javascript.0 (31437) script.js.Kostal_auslesen: 228
31.8.2023, 20:12:00.078 [info ]: javascript.0 (31437) script.js.Kostal_auslesen: 0.00
31.8.2023, 20:12:00.078 [info ]: javascript.0 (31437) script.js.Kostal_auslesen: 0
31.8.2023, 20:12:00.078 [info ]: javascript.0 (31437) script.js.Kostal_auslesen: 218
31.8.2023, 20:12:00.078 [info ]: javascript.0 (31437) script.js.Kostal_auslesen: 226
31.8.2023, 20:12:00.078 [info ]: javascript.0 (31437) script.js.Kostal_auslesen: 0.00
31.8.2023, 20:12:00.078 [info ]: javascript.0 (31437) script.js.Kostal_auslesen: 0 -
@dbox83 sagte in Kostal Wechselrichter mit Firmware 3.71:
Aktuell nutze ich dieses Script:
und das musst du aufbohren mit den Variablen für den 3. String
-
Nach dem Post von SirTiGer
am 31 Dec 2022, 14:06 hatte ich gehofft, dass er einfach nochmal seinen Code hier einstellt.....Hier der Quelltext von meinem Wechselrichter:
<!DOCtype HTML PUBLIC "-//W3C//Dtd HTML 4.0 Transitional//EN"> <html> <head> <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"> <meta name="Generator" CONTENT="ChrisB"> <title>PV Webserver</title> </head> <body nof="(MB=(DefaultMasterborder, 65, 60, 150, 10), L=(HomeLayout, 700, 600))" bgcolor="#EAF7F7" text="#000000" link="#0033CC" vlink="#990099" alink="#FF0000" topmargin=0 leftmargin=0 marginwidth=0 marginheight=0> <form method="post" action=""> <table cellspacing="0" cellpadding="0" width="770" nof="ly"> <tr><td height="5"></td></tr> <tr><td width="190" height="55"></td> <td width="400"> <font face="Arial,Helvetica,Geneva,Sans-serif,sans-serif" size="+3"> PIKO 10.1 <br><font size="+1"> Friedrich (255) </font> </font> </td> <td><img alt="Logo" height="42" width="130" src="KSE.gif"></td> </tr> </table> <font face="Arial,Helvetica,Geneva,Sans-serif,sans-serif"> <table Border="0" width="100%"><tr> <td width="150"></td> <td> <hr> </td> </tr></table> <table cellspacing="0" cellpadding="0" width="770"> <tr><td></td></tr> <tr> <td width="190"></td> <td colspan="2"> <b>AC-Leistung</b></td> <td> </td> <td> <b>Energie</b></td></tr> <tr><td height="10"></td></tr> <tr> <td width="190"></td> <td width="100"> aktuell</td> <td width="70" align="right" bgcolor="#FFFFFF"> x x x </td> <td width="140">  W</td> <td width="100"> Gesamtenergie</td> <td width="70" align="right" bgcolor="#FFFFFF"> 69360</td> <td width="50">  kWh</td> <td> </td></tr> <tr height="2"><td></td></tr> <tr> <td width="190"></td> <td width="100">  </td> <td width="70" align="right">  </td> <td width="140"> </td> <td width="100"> Tagesenergie</td> <td width="70" align="right" bgcolor="#FFFFFF"> 29.41</td> <td width="50">  kWh</td> <td> </td></tr> <tr height="5"><td></td></tr> <tr> <td width="190"></td> <td width="100"> Status</td> <td colspan="4"> Aus</td> <td> </td></tr> <tr height="8"><td></td></tr> <tr><td colspan="7"> <table align="top" width="100%"><tr> <td width="182"></td> <td><hr size="1"></font></td></tr> <tr><td height="5"></td></tr></table> </td></tr> <tr> <td width="190"></td> <td colspan="2"> <b>PV-Generator</b></td> <td width="140"> </td> <td colspan="2"> <b>Ausgangsleistung</b></td> <td width="30"> </td> <td> </td></tr> <tr><td height="10"></td></tr> <tr> <td width="190"></td> <td width="100"> <u>String 1</u></td> <td width="70"> </td> <td width="140"> </td> <td width="95"> <u>L1</u></td> <td width="70"> </td> <td width="30"> </td> <td> </td></tr> <tr> <td width="190"></td> <td width="100"> Spannung</td> <td width="70" align="right" bgcolor="#FFFFFF"> x x x </td> <td width="140">  V</td> <td width="100"> Spannung</td> <td width="70" align="right" bgcolor="#FFFFFF"> x x x </td> <td width="30">  V</td> <td> </td></tr> <tr height="2"><td></td></tr> <tr valign="top" align="left"> <td width="190"> </td> <td width="100"> Strom</td> <td width="70" align="right" bgcolor="#FFFFFF"> x x x </td> <td width="140">  A</td> <td width="100"> Leistung</td> <td width="70" align="right" bgcolor="#FFFFFF"> x x x </td> <td width="30">  W</td> <td> </td></tr> <tr height="22"><td></td></tr> <tr> <td width="190"></td> <td width="100"> <u>String 2</u></td> <td width="70"> </td> <td width="140"> </td> <td width="100"> <u>L2</u></td> <td width="70"> </td> <td width="30"> </td> <td> </td></tr> <tr> <td width="190"></td> <td width="100"> Spannung</td> <td width="70" align="right" bgcolor="#FFFFFF"> x x x </td> <td width="140">  V</td> <td width="100"> Spannung</td> <td width="70" align="right" bgcolor="#FFFFFF"> x x x </td> <td width="30">  V</td> <td> </td></tr> <tr height="2"><td></td></tr> <tr valign="top" align="left"> <td width="190"> </td> <td width="100"> Strom</td> <td width="70" align="right" bgcolor="#FFFFFF"> x x x </td> <td width="140">  A</td> <td width="100"> Leistung</td> <td width="70" align="right" bgcolor="#FFFFFF"> x x x </td> <td width="30">  W</td> <td> </td></tr> <tr height="22"><td></td></tr> <tr> <td width="190"></td> <td width="100"> <u>String 3</u></td> <td width="70"> </td> <td width="140"> </td> <td width="100"> <u>L3</u></td> <td width="70"> </td> <td width="30"> </td> <td> </td></tr> <tr> <td width="190"></td> <td width="100"> Spannung</td> <td width="70" align="right" bgcolor="#FFFFFF"> x x x </td> <td width="140">  V</td> <td width="95"> Spannung</td> <td width="70" align="right" bgcolor="#FFFFFF"> x x x </td> <td width="30">  V</td> <td> </td></tr> <tr height="2"><td></td></tr> <tr valign="top" align="left"> <td width="190"> </td> <td width="95"> Strom</td> <td width="70" align="right" bgcolor="#FFFFFF"> x x x </td> <td width="140">  A</td> <td width="95"> Leistung</td> <td width="70" align="right" bgcolor="#FFFFFF"> x x x </td> <td width="30">  W</td> <td> </td></tr> <tr><td height="15"></td></tr> <tr><td colspan="7"> <table align="top" width="100%"> <tr><td width="182"></td> <td><hr size="1"></font></td> </tr><tr><td height="5"></td></tr></table> </td></tr></table> <table cellspacing="0" cellpadding="0" width="770"> <tr><td width="190"></td> <td><font face="Arial,Helvetica,Geneva,Sans-serif"> <b>RS485 Kommunikation</b></td></tr> <tr><td height="8"></td></tr> <tr><td width="190"></td> <td><font face="Arial,Helvetica,Geneva,Sans-serif"> Wechselrichter  <INPUT TYPE="Text" NAME="edWrNr" VALUE="255" SIZE="3" MAXLENGTH="3"> <input type="submit" value="Anzeigen/Aktualisieren"> </td></tr><tr><td height="10"></td></tr> </table> </td></tr></table></font> <hr> <table cellspacing="0" cellpadding="0" width="770"> <tr><td height="5"></td></tr> <tr><td width="190"></td> <td width="440"> <font face="Arial,Helvetica,Geneva,Sans-serif,sans-serif"> <a href="LogDaten.dat">Historie</a>     <a href="Info.fhtml">Infoseite</a>     <a href="BA.fhtml"></a>     <a href="igak.fhtml"></a> </font></td> <td align="right"> <font face="Arial,Helvetica,Geneva,Sans-serif,sans-serif"> <a href="Solar2.fhtml">Einstellungen</a></font></td> <td width="50"></td> </tr></table></font> </form> </body> </html>
-
Hier nochmal das bisherige Script in Code-Tags:
// Photovoltaik: Piko 5.5 Anlage (alte Firmware) // Danke an homoran für den regex // @bahnuhr; 03/2019 Dieter Müller //Variaben var idaktuell = 'javascript.0.Photovoltaik.Leistung_aktuell'; var idTag = 'javascript.0.Photovoltaik.Tagesleistung'; var idall = 'javascript.0.Photovoltaik.Leistung_gesamt'; var idP1 = 'javascript.0.Photovoltaik.Leistung_Strang1'; var idP2 = 'javascript.0.Photovoltaik.Leistung_Strang2'; var NameAnlage = 'pvserver'; // Nutzername der Photovoltaik-Anlage var PassAnlage = 'pvwr'; // Password der Photovoltaik-Anlage var IPAnlage = '192.168.176.211'; // IP der Photovoltaik-Anlage var logging = false; var request = require('request'); function Piko() { log("Piko 10.1 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); log (z[1]); } 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); 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"); setState(idaktuell, parseFloat(pwr)); setState(idTag, parseFloat(day)); setState(idall, parseFloat(all)); setState(idP1, parseFloat(p1)); setState(idP2, parseFloat(p2)); }); } 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.Photovoltaik.Tagesleistung', 0); });
-
-
-
Na klar, ich lese hier fleißig mit:
Im Script befindet sich folgendes:
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);
Wenn dies funktioniert, dann vielleicht wie folgt erweitern:
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);
Habs nicht getestet (weil bei mir nicht notwendig).
Und weiter unten dann logisch noch log und setstate erweitern.Bitte probieren.