Hallo zusammen,
ich habe eine RaspberryMatic in dem ich zukünftig viele Shellys anbinden möchten.
Bei dem ersten Versuchen stoße ich auf ein Problem und viel lesen und probieren hat in den letzten Wochen nicht zum Ziel geführt. Ich komme ohne Hilfe nicht weiter. Ich hoffe Ihr könnt mir helfen:
Eckdaten:
RaspberryMatic auf Pi 4
Shelly Dimmer 2 (20230913-114008/v1.14.0-gcb84623)
Ziel:
Dimmwerte in RaspberryMatic anzeigen.
Ich bin wie hier (Shelly Dimmer in Homematic einbinden - mit der Originalfirmware) beschrieben vorgegangen, mit dem Ergebnis, dass alles wie beschrieben funtiniert, mit Ausnahme der Skripte.
Angefangen bei der Helligkeitsaktualisierung
Gerät für Exec (hier habe ich wie beschrieben nichts veränder):
Und das Gerät für die Steuerung:
Die Variable:
Hier das Programm:
!Skript zur Helligkeitsaktualisierung Shelly Dimmer mit Originalfirmware (by SparkyMaster V1.0)
!Raumbezeichnung (nur zur Orientierung, ggf anpassen)
!****Abfrage des Shelly Dimmer*****
!In der folgenden Zeile IP des Shelly Dimmer anpassen!
var url = "http://192.168.0.46/light/0?status";
!In den folgenden Zeilen die CUxD-Exec-Kanal anpassen (hier: 2801001:16)
dom.GetObject("CUxD.CUX2800001:2.CMD_SETS").State("wget -q -O - '"#url#"'");
dom.GetObject("CUxD.CUX2800001:2.CMD_QUERY_RET").State(1);
string Antwort = dom.GetObject("CUxD.CUX2800001:2.CMD_RETS").State();
string t = dom.GetObject("CUxD.CUX2800001:2.CMD_RETS").State();
dom.GetObject("CUxD.CUX2800001:2.CMD_SETS").State("0");
!WriteLine(Antwort);
!WriteLine(t);
!****Auswertung des Antwortstrings ****
!Hier NICHTS ändern
string s;
foreach (s,t.Split (",")) {
if (s.LTrim ("{").StartsWith ('"brightness"')) {
string p = (s.StrValueByIndex (":",1).RTrim ("}"));
! WriteLine(p);
}
}
!**** Variable setzen****
!Variablennamen anpassen (hier: Shelly_Dimmer_Vivian_Helligkeit)
dom.GetObject("Kueche_Dim_Helligkeit").State(p);
!Ende Skript
Alles anzeigen
Wenn ich das folgenden ausgeben lassen, kommt direkt null zurück:
Ergebnis = null
Ich würde mich über Hilfe sehr freuen und hoffe, dass ich an der richtigen Stelle hier bin.