Nach Update auf 2.31 .25 läuft mein Piko Skript nicht mehr

Fehler in Firmware und WebUI & Workarounds

Moderator: Co-Administratoren

Antworten
Blubbel
Beiträge: 80
Registriert: 16.01.2016, 17:38
System: CCU
Hat sich bedankt: 3 Mal

Nach Update auf 2.31 .25 läuft mein Piko Skript nicht mehr

Beitrag von Blubbel » 08.02.2018, 14:27

Hallo Ihr,

ich frage per Skript meinen Piko Wechselrichter die Leistungsdaten ab und bekomme eine XML zurück. Diese durchsuche ich dann nach einem String "aktuell" und dann hole ich mir den entsprechenden Zahlenwert nach dem String.

Code: Alles auswählen

!IP vom Wechselrichter
var url = "http://192.168.0.13/index.fhtml";

dom.GetObject("CUxD.CUX2801002:1.CMD_SETS").State("wget --user=meiner --password=keiner -q -O - '"#url#"'");
dom.GetObject("CUxD.CUX2801002:1.CMD_QUERY_RET").State(1);
string stdout = dom.GetObject("CUxD.CUX2801002:1.CMD_RETS").State();
!Rückgabe der kompletten Seite vom Wechselrichter
!WriteLine(stdout);


!string word = "!aktuell";
        string word = "aktuell";
        integer word_laenge = word.Length();
        integer word_position = stdout.Find(word);
!WriteLine(word_laenge);
!WriteLine(word_position);

        string daten = stdout.Substr((word_position + word_laenge +1), 61);
!WriteLine(daten);


        integer word_position = daten.Find(word);
!WriteLine(word_position);

        daten = daten.Substr(53, (word_position -1));
       
!WriteLine(daten);
!!!!!!!!! hier wirds falsch!!!!
dom.GetObject("Solar_Power").State(daten);
Mit WriteLine(daten); bekam ich immer wunderbar die Zahl zurück, seit dem Update erscheint aber immer das folgende, LeistungsWert als Zahl gefolgt von einem/ , zum Beispiel -> 55 /
Grundsätzlich passt der / ja auch, er kommt auch in den Daten vor.

Das bekomme ich dann klarerweise nimmer in die

Code: Alles auswählen

dom.GetObject("Solar_Power").State(daten);
Systemvariable.

Leider kommen zzt keine 4stellingen Leistungswerte vom Dach, dann werde ich versuchen, den String nochmal zu beschneiden.

Code: Alles auswählen

daten = daten.Substr(4, 4);
Wie kann denn das sein? Wurde das was geändert??

P.S. Hier die Rückgabe vom Piko
---------------

Code: Alles auswählen

 !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"                  
  kostal_4_2 (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 &nbsp /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" 
  56 /td 
 td width="140" &nbsp W /td 
 td width="100" 
  Gesamtenergie /td 
 td width="70" align="right" bgcolor="#FFFFFF" 
  24426 /td 
 td width="50" &nbsp kWh /td 
 td &nbsp /td  /tr 
 tr height="2"  td  /td  /tr 
 tr 
 td width="190"  /td 
 td width="100" 
  &nbsp /td 
 td width="70" align="right" 
  &nbsp /td 
 td width="140" &nbsp /td 
 td width="100" 
  Tagesenergie /td 
 td width="70" align="right" bgcolor="#FFFFFF" 
  0.11 /td 
 td width="50" &nbsp kWh /td 
 td &nbsp /td  /tr 
 tr height="5"  td  /td  /tr 
 tr 
 td width="190"  /td 
 td width="100" 
  Status /td 
 td colspan="4" 
  Einspeisen MPP /td 
 td &nbsp /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" &nbsp /td 
 td colspan="2" 
   b Ausgangsleistung /b  /td 
 td width="30" &nbsp /td 
 td &nbsp /td  /tr 
 tr  td height="10"  /td  /tr 
 tr 
 td width="190"  /td 
 td width="100" 
   u String 1 /u  /td 
 td width="70" &nbsp /td 
 td width="140" &nbsp /td 
 td width="95" 
   u L1 /u  /td 
 td width="70" &nbsp /td 
 td width="30" &nbsp /td 
 td &nbsp /td  /tr 
 tr 
 td width="190"  /td 
 td width="100" 
  Spannung /td 
 td width="70" align="right" bgcolor="#FFFFFF" 
  627 /td 
 td width="140" &nbsp V /td 
 td width="100" 
  Spannung /td 
 td width="70" align="right" bgcolor="#FFFFFF" 
  231 /td 
 td width="30" &nbsp V /td 
 td &nbsp /td  /tr 
 tr height="2"  td  /td  /tr 
 tr valign="top" align="left" 
 td width="190" &nbsp /td 
 td width="100" 
  Strom /td 
 td width="70" align="right" bgcolor="#FFFFFF" 
  0.11 /td 
 td width="140" &nbsp A /td 
 td width="100" 
  Leistung /td 
 td width="70" align="right" bgcolor="#FFFFFF" 
  56 /td 
 td width="30" &nbsp W /td 
 td &nbsp /td  /tr 
 tr height="22"  td  /td  /tr 
 tr 
 td width="190"  /td 
 td width="100" 
   u String 2 /u  /td 
 td width="70" &nbsp /td 
 td width="140" &nbsp /td 
 td width="100" 
   u L2 /u  /td 
 td width="70" &nbsp /td 
 td width="30" &nbsp /td 
 td &nbsp /td  /tr 
 tr 
 td width="190"  /td 
 td width="100" 
  Spannung /td 
 td width="70" align="right" bgcolor="#FFFFFF" 
  0 /td 
 td width="140" &nbsp V /td 
 td width="100" 
  Spannung /td 
 td width="70" align="right" bgcolor="#FFFFFF" 
  231 /td 
 td width="30" &nbsp V /td 
 td &nbsp /td  /tr 
 tr height="2"  td  /td  /tr 
 tr valign="top" align="left" 
 td width="190" &nbsp /td 
 td width="100" 
  Strom /td 
 td width="70" align="right" bgcolor="#FFFFFF" 
  0.00 /td 
 td width="140" &nbsp A /td 
 td width="100" 
  Leistung /td 
 td width="70" align="right" bgcolor="#FFFFFF" 
  0 /td 
 td width="30" &nbsp W /td 
 td &nbsp /td  /tr 
 tr height="22"  td  /td  /tr 
 tr 
 td width="190"  /td 
 td width="100" 
   u   /u  /td 
 td width="70" &nbsp /td 
 td width="140" &nbsp /td 
 td width="100" 
   u L3 /u  /td 
 td width="70" &nbsp /td 
 td width="30" &nbsp /td 
 td &nbsp /td  /tr 
 tr 
 td width="190"  /td 
 td width="100" 
    /td 
 td width="70" align="right" bgcolor="#EAF7F7" 
    /td 
 td width="140" &nbsp
    /td 
 td width="95" 
  Spannung /td 
 td width="70" align="right" bgcolor="#FFFFFF" 
  237 /td 
 td width="30" &nbsp V /td 
 td &nbsp /td  /tr 
 tr height="2"  td  /td  /tr 
 tr valign="top" align="left" 
 td width="190" &nbsp /td 
 td width="95" 
    /td 
 td width="70" align="right" bgcolor="#EAF7F7" 
    /td 
 td width="140" &nbsp
  /td 
 td width="95" 
  Leistung /td 
 td width="70" align="right" bgcolor="#FFFFFF" 
  0 /td 
 td width="30" &nbsp W /td 
 td &nbsp /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&nbsp
 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="330" 
 font face="Arial,Helvetica,Geneva,Sans-serif,sans-serif" 
 a href="LogDaten.dat" Historie /a 
&nbsp &nbsp &nbsp
 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 


Blubbel
Beiträge: 80
Registriert: 16.01.2016, 17:38
System: CCU
Hat sich bedankt: 3 Mal

Re: Nach Update auf 2.31 .25 läuft mein Piko Skript nicht me

Beitrag von Blubbel » 08.02.2018, 17:29

Nachtrag
Nächstes Problem: Es wird finster, der Wechselrichter sagt x x als Rückgabe. Auch das wurde vorher abgefangen und als Null interpretiert.
Gibt's sowas wie ein if daten = "x x" then Daten = 0
Ich muss mal googeln :(

alchy
Beiträge: 10744
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 671 Mal

Re: Nach Update auf 2.31 .25 läuft mein Piko Skript nicht me

Beitrag von alchy » 08.02.2018, 17:44

.subtsr() ist immer schwierig zu handhaben in solchen Fällen. Da ist eher von abzuraten.
Hast du den Scriptexecuter installiert, dann würde die JSON Ausgabe des Scriptes Klarheit schaffen.
Ansonsten wären vielleicht auch die im Script enthaltenen WriteLines Ausgaben interessant.

Ich kann mich dunkel an ein Script erinnern für den Kostal PIKO was ich mal geschrieben hatte. Da ging es aber über die /api/dxs.json?


Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Blubbel
Beiträge: 80
Registriert: 16.01.2016, 17:38
System: CCU
Hat sich bedankt: 3 Mal

Re: Nach Update auf 2.31 .25 läuft mein Piko Skript nicht me

Beitrag von Blubbel » 08.02.2018, 19:06

Das Skript ist bis zum Update gestern gut gelaufen.
Mit der von Dir beschriebenen Methode kenn ich mich leider nicht wirklich aus, werde das Morgen mal angucken.

Blubbel
Beiträge: 80
Registriert: 16.01.2016, 17:38
System: CCU
Hat sich bedankt: 3 Mal

Re: Nach Update auf 2.31 .25 läuft mein Piko Skript nicht me

Beitrag von Blubbel » 12.02.2018, 08:59

Es läuft jetzt wieder.. weiter unten musste ich ein paar Änderungen machen.

Für die Suchfunktion Piko 4.2 Wechselrichter auslesen :)

Code: Alles auswählen

var url = "http://192.168.xxx.xxx/index.fhtml";

dom.GetObject("CUxD.CUX2801002:1.CMD_SETS").State("wget --user=xxxxx --password=yyyyy -q -O - '"#url#"'");
dom.GetObject("CUxD.CUX2801002:1.CMD_QUERY_RET").State(1);
string stdout = dom.GetObject("CUxD.CUX2801002:1.CMD_RETS").State();
!WriteLine(stdout);


!string word = "!aktuell";
        string word = "aktuell";
        integer word_laenge = word.Length();
        integer word_position = stdout.Find(word);
!WriteLine(word_laenge);
!WriteLine(word_position);

        string daten = stdout.Substr((word_position + word_laenge +1), 61);
!WriteLine(daten);


        integer word_position = daten.Find(word);
!WriteLine(word_position);

        daten = daten.Substr(53, (word_position -1));
!!!!! da hab ich was Neues gemacht
        daten = daten.Substr(4, 4);
WriteLine(daten);
    
  !if (daten == "x x ") {WriteLine("Ventile auf, lass Sonne rein!")};
  if (daten == "x x ") {daten = "0";}
  if (daten == "0 /t") {daten = "0";}

WriteLine(daten);

dom.GetObject("Solar_Power").State(daten);

WriteLine("Hallo Welt!");

bernd-freundorfer
Beiträge: 4
Registriert: 23.02.2017, 19:40

Re: Nach Update auf 2.31 .25 läuft mein Piko Skript nicht me

Beitrag von bernd-freundorfer » 08.08.2018, 13:55

alchy hat geschrieben:
08.02.2018, 17:44
Ich kann mich dunkel an ein Script erinnern für den Kostal PIKO was ich mal geschrieben hatte. Da ging es aber über die /api/dxs.json?

Alchy
Hallo Alchy,
genau danach würde ich suchen - ein Skript um den Kostal Piko10 mit neuer Oberfläche (Version 6.11) auszulesen.
Die Benutzung von /api/dxs.json funktioniert grundsätzlich.
Aufruf http://192.168.178.144/api/dxs.json?dxsEntries=33556736
liefert mir:
{"dxsEntries":[{"dxsId":33556736,"value":6146.716797}],"session":{"sessionId":0,"roleId":0},"status":{"code":0}}
Was die aktuelle DC-Leistung von 6146,71 Watt ist.
Könntest du bitte in der Skript-Kiste mal kramen. ;-)
Vielen Dank im Voraus!
VG
Bernd

alchy
Beiträge: 10744
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 671 Mal

Re: Nach Update auf 2.31 .25 läuft mein Piko Skript nicht mehr

Beitrag von alchy » 08.08.2018, 16:09

Das fällt mir im Moment schwer da ich ohne jegliches Equipment unterwegs bin.
Ich schau mal was sich machen lässt, wenn ich mal wieder zu Hause bin.

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

andySZ
Beiträge: 2
Registriert: 08.03.2019, 14:34

Re: Nach Update auf 2.31 .25 läuft mein Piko Skript nicht mehr

Beitrag von andySZ » 08.03.2019, 14:42

Hallo Alchy,

ich bin mal wieder an diesem Thema dran,
hast du das Script zufällig noch?
Das auslesen mit dxs.json? funktioniert problemlos bei meinem Wechselrichter
Ergebniss: {"dxsEntries":[{"dxsId":33556736,"value":522.046814}],"session":{"sessionId":0,"roleId":0},"status":{"code":0}}


Wäre dir sehr dankbar, bin jetzt schon seit Tagen am probieren.
Gruß Andy

andySZ
Beiträge: 2
Registriert: 08.03.2019, 14:34

Re: Nach Update auf 2.31 .25 läuft mein Piko Skript nicht mehr

Beitrag von andySZ » 10.03.2019, 20:36

Hallo nochmals,
das Probelem scheint im abspeichern als String zu liegen
Da gibt es Problem mit den Sonderzeichen "{}....
hat hierfür irgendjemand eine einfache Lösung?
{"dxsEntries":[{"dxsId":33556736,"value":522.046814}],"session":{"sessionId":0,"roleId":0},"status":{"code":0}}
Mich würde ja nur der Teil hinter "value" interessieren, kann wget da schon selektieren?

Gruß Andy

Antworten

Zurück zu „HomeMatic - bekannte Bugs“