-
Autor
Hallo zusammen,
über eure Anleitung den Shelly in die CCU einzufügen bin ich bei euch gelandet und ihr habt mir bei einigen Dingen auch schon geholfen, deshalb hoffe ich ihr könnt mir hier auch helfen.
Ich habe mir über das Wochenende einen Kopf gemacht, wie ich innerhalb der CCU erfahren kann, wie lang der Timer des Shelly noch läuft. Über eine Dokumentation der http Request bin ich auf den Befehl relay/0?
Mit dem Befehl bekommt man unter anderem die verbleibende Timerdauer in Sekunden angezeigt.
Daher habe ich mir folgendes Script geschrieben:
var url = "http://192.168.178.54/relay/0?";
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q -O - '"#url#"'");
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
string Ausgabe = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("0");
!_________Auswertung des Augabestrings____________
string timer_remaining = Ausgabe.StrValueByIndex(",", 4); !Antwortstring auf Timerzeit reduzieren
string Timer_sec = timer_remaining.Substr(19,5); !Die Zeit in Sekunden auslesen
var umwandeln = 0.0 + Timer_sec; !Aus String Gleitkommezahl machen
var Timer_min = umwandeln/ 60; !Aus Sekunden Minuten machen
string umrechnung = Timer_min.ToString(); !Aus Gleitkommezahl String wandeln
integer Punkt = umrechnung.Find(".")+1; !Stelle des Punktes finden
integer sec100 = umrechnung.Substr(Punkt,1); !Ausgabe der Zehntel Minuten
integer min = umrechnung.Substr(0,Punkt-1); !Ausgabe der vollen Minuten
WriteLine(min); !Überprüfung Minuten
WriteLine(sec100);
!__________Übertragen in eine Variable_____________
dom.GetObject("Timer_Poolpumpe").State(Timer_min); !Wert in variable Schreiben
Alles anzeigen
Soweit funktioniert auch alles, nur was er absolut nicht macht ist eine Multiplikation der Variable sec100 mit 6 um wieder auf die genauen Sekunden zu kommen. Ich meine das eine Integer ganz normal multipliziert werden sollte aber es passiert leider nichts.
Ja ich weiß, dass ich durch dieses vorgehen ein Delta von 6 Sekunden habe aber bei einer Aktualisierung von 30s ist das vernachlässigbar.
Es geht bestimmt auch kürzer mit dem Script aber als "Neuling" bin ich schon glücklich, dass ich soweit gekommen bin.