NEWS
Status vom Kostal Wechselrichter auslesen?
-
@Homoran
Bei mir klappts noch nicht...
```
javascript.0 2020-08-13 20:53:18.021 info (5941) script.js.Piko_Neu: registered 0 subscriptions and 1 schedule
javascript.0 2020-08-13 20:53:17.945 info (5941) Start javascript script.js.Piko_Neu
javascript.0 2020-08-13 20:53:17.426 info (5941) received all states
javascript.0 2020-08-13 20:53:17.302 info (5941) received all objects
javascript.0 2020-08-13 20:53:16.534 info (5941) requesting all objects
javascript.0 2020-08-13 20:53:16.531 info (5941) requesting all states
javascript.0 2020-08-13 20:53:16.448 info (5941) starting. Version 4.6.17 in /opt/iobroker/node_modules/iobroker.javascript, node: v10.22.0, js-controller: 3.1.6
javascript.0 2020-08-13 20:53:09.962 info (2592) Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason
javascript.0 2020-08-13 20:53:09.960 info (2592) terminating
javascript.0 2020-08-13 20:53:09.958 info (2592) Stop script script.js.Piko_Neu
javascript.0 2020-08-13 20:53:09.957 info (2592) Got terminate signal TERMINATE_YOURSELF
javascript.0 2020-08-13 20:50:26.259 info (2592) script.js.Piko_Neu: registered 0 subscriptions and 1 schedule
javascript.0 2020-08-13 20:50:26.243 info (2592) Start javascript script.js.Piko_Neu
javascript.0 2020-08-13 20:50:20.612 info (2592) Stop script script.js.Piko_Neu
javascript.0 2020-08-13 20:46:40.994 info (2592) Stop script script.js.Skript_1
javascript.0 2020-08-13 20:46:38.134 info (2592) Stop script script.js.Skript_1
javascript.0 2020-08-13 20:46:37.474 info (2592) script.js.Skript_1: registered 0 subscriptions and 1 schedule
javascript.0 2020-08-13 20:46:37.334 info (2592) Start javascript script.js.Skript_1Habe das Skript 1 gelöscht.... Dann das Piko Neu erstellt..ip eingefügt....instanz neu gestartet....Momentanwerte kommen nicht...weil dunkel?
-
@scout1978
Da ist was aufgetaucht -
@scout1978 sagte in Status vom Kostal Wechselrichter auslesen?:
Momentanwerte kommen nicht...weil dunkel?
Natürlich! Momentan wird nichts erzeugt.
Ist das alles was nicht funktioniert?
Dann musst du ein paar Solarmodule gegen Lunarmodule tauschen. -
@scout1978 sagte in Status vom Kostal Wechselrichter auslesen?:
Da ist was aufgetaucht
Code 0 sollte "aus" heißen.
Da ist noch ein FehlerDa muss statt
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)); }
In der Zeile mit
result[20].val == 0
richtig heißenresult[20].value == 0
, so wie in den anderen Zeilen danach -
@Homoran
Wow
Es klappt alles!!!! Vielen Dank!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -
Hallo zusammen,
ich nutze auch seit gut 6 Monaten das Javascript zum Auslesen der Werte.
Hat schon mal jemand die Events aus dem Piko BA ausgelesen? Mir dauert die Alarmierung aus dem Support-Portal von Kostal eindeutig zu lange.http://<IP>/#/info/events
Viele Grüße,
Kay -
@kaybau sagte in Status vom Kostal Wechselrichter auslesen?:
Hat schon mal jemand die Events aus dem Piko BA ausgelesen? Mir dauert die Alarmierung aus dem Support-Portal von Kostal eindeutig zu lange.
http://<IP>/#/info/eventsfür welche Version soll das gelten?
sieht für mich nicht aus wieAusleseskript Wechselrichter Kostal Piko ab Firmware v05.31
-
Piko BA 8 mit FW 2.32 UI 06.41
-
@kaybau dann gehört das hier nicht in den Thread.
Mach bitte einen neuen auf mit deutlichem Hinweis auf die alte FW -
Hi @Homoran , Ich nutze das skript "// Ausleseskript Wechselrichter Kostal Piko ab Firmware v05.31 (12.10.2015)" aus dem Anfang von diesem Thread.
Und es ist die neueste FW , die für den Piko 8 BA verfügbar ist.
Wie liest Du bei deiner FW die Events aus?
VG,
Kay -
@kaybau sagte in Status vom Kostal Wechselrichter auslesen?:
Wie liest Du bei deiner FW die Events aus?
gar nicht
Das ist unheimlich komplex, da du in der api erstmal sämtliche IDs der Events identifizieren musst und dann abfragen.
-
@kaybau
wäre das etwas für dich?Ich hatte mal einen ganz fiesen Störfall, da hat mir jemand (ich muss zu meiner Schande gestehen, dass ich nicht mehr weiß wer ) ein Skript zum auslesen der events geschrieben.
Habe das eben noch ein wenig optimiert um es in dem json-table widget darstellen zu können -
@Homoran : Das sieht so aus, als ist es mehr als nur einen Test wert
-
@kaybau sagte in Status vom Kostal Wechselrichter auslesen?:
@Homoran : Das sieht so aus, als ist es mehr als nur einen Test wert
Dann mach mal
Dieses
liest minütlich die Fehlermeldungen aus dem Piko (FW > v05.31) aus und schreibt sie in Datenpunkte.
Diese müssen noch selber angelegt werden:
Ich selber kann nicht so toll Skripten, habe nur das JSON noch etwas umformatiert.
Der aktuellste Event liegt unter Info0 ältere werden immer weiter nach hinten geschoben.
Wenn ich es könnte würde ich alles in ein großes json packen, damit im widget gescrollt werden kann. Im Moment bekommt man in der "Tabelle" nur eine Zeile:
Man muss also im Prinzip mehrere Widgets untereinander setzen, damit man auch noch ältere events sieht
Um auf irgendwelche events zu reagieren, könnte man jetzt ein Skript/Blockly schreiben, dass bei Änderung von Info0 die entsprechenden Informationen aus dem json extrahiert und als Meldung (eMail/Telegram), Sprachansage oder großes rotes blinkendes Widget in VIS ausgibt
-
Hi @Homoran ,
ich hab Dein skript bezgl des Eventauslesens übernommen. Was soll ich sagen?? Es läuft und liefert die letzten Werte.
Jetzt hab ich noch ne Telegram-Alerting draufgesetzt. Alles gut!
Danke,
Kay -
@Homoran said in Status vom Kostal Wechselrichter auslesen?:
Zum Kostal Wechselrichter gibt es hier schon Threads.
Entscheidend ist die Firmwareversion deines Piko.
Im MOment bekomme ich es so hin:
Gruß
Rainer
Hallo Rainer
Ich lese schon seit Stunden das Forum hoch und runter, finde aber mein Problem nirgends beschrieben.
Wollte Kostal WR Picco auslesen um eine ähnlich schöne Ansicht zu basten wie Du. Da der Adapter bei mir nicht funktioniert wollte ich mit Parser arbeiten, den ich bei iobroker jedoch noch nicht benutzt habe.Ich schaffe es, die Webseite mit Login und Passwort als Aufruf im parser anzulegen. Wenn ich im Parser in die Bleistift Edit Funktion einsteige, bekomme ich den richtigen Seitenquelltext des Picco angezeigt.
Ich schaffe es im Regex mit dem Seitenquellcode die richtigen Stellen per Anker usw. zu detektieren. Wenn ich die korrekte Regex Zeile dann im Parser einsetze kommen nie Ergebnisse, egal welches Beispiel ich bisher so probiert habe.
Jetzt habe ich noch was von minified js gelesen. Wollte mein Seitenquellcode minimieren, aber auf allen Minimierseiten bekomme ich Fehlermeldungen, wenn ich den Seitenquelltext 1:1 rein kopiere.
Nachdem ich jetzt schon 6 Stunden verbrannt habe hoffe ich auf einen klein Tipp von Dir.
Anbei die Adaptereinstellung:
und hier die funktionierende Regex Variante:
und hier noch der Quellcode...
code_text <!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 4.2 <br><font size="+1"> Namenlos (92) </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"> 146</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"> 13.91</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> </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"> </td> <td width="70" align="right" bgcolor="#EAF7F7"> </td> <td width="140">  </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"> </td> <td width="70" align="right" bgcolor="#EAF7F7"> </td> <td width="140">  </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="92" 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="330"> <font face="Arial,Helvetica,Geneva,Sans-serif,sans-serif"> <a href="LogDaten.dat">Historie</a>       <a href="Info.fhtml">Infoseite</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>
Danke Euch vorab.
Ich muss jetzt aufhören, sonst werde ich noch kirre...Gruss
Atlantis
-
@Atlantis sagte in Status vom Kostal Wechselrichter auslesen?:
Da der Adapter bei mir nicht funktioniert
Warum nicht?
Was kommt im Debug log?
-
@Atlantis sagte in Status vom Kostal Wechselrichter auslesen?:
Wollte Kostal WR Picco auslesen
Welche Firmwareversion hast du denn?
-
@Homoran
Ich habe 1 Original Kostal Picco 4.2 FW=? am start und 2 auf Centro Solar gebrandete Picco 4.2 und einen 3.0 er, welche zumindest ausser dem Logo optisch gleiche Webseiten haben und mit dem Kostal Parako verwaltet werden konnten.Wenn Du mir jetzt noch sagst, wo ich den FW Stand auslesen kann, kann ich diesen gerne mitteilen. (vielleicht am Display ? Muss das mal beim nä. Mal checken)
Ich wollte aber auch für andere Anwendungen mal den Parser in Einsatz bringen und vor allem Begreifen, wie ich diesen funktionierend in Einsatz bringen kann, weil das natürlich ein g..les Werkzeug ist.
Worin liegt denn der Unterschied vom Verhalten des Parsers und der des Regex?
Im Parser wird ja der nicht minimierte Code, den iobroker ausgelesen hat angezeigt.Danke Dir für weitere Tips
Steffen
-
@Atlantis sagte in Status vom Kostal Wechselrichter auslesen?:
FW=?
davon hängt die Art der Abarbeitung ab
Ab FW > v05.31 funktioniert die "alte" Herangehensweise nicht mehr.
Die Gerätetypen sind nicht hilfreich.@Atlantis sagte in Status vom Kostal Wechselrichter auslesen?:
optisch gleiche Webseiten
Da würde wahrscheinlich schon ein Screenshot weiterhelfen