Hallo zusammen,
erst einmal vielen Dank für eine solch Klasse Anleitung. Insbesondere die Mühe, die hier investiert wird.
Ich habe nun mal angefangen es genauso umzusetzen, nachdem ich die Shellys verbaut hatte.
Leider wird bei mir der Status nicht angezeigt und die Behanghöhe nicht aktualisiert, wenn ich den Rolladen z.B. manuell bediene .
Bleibt bei offline / x%.
Ich habe den Timer und die Aktualisierung wie auf den Bildern eingerichtet
Behang_Timer.jpgBehang_Aktualisierung.jpg
Pro Shelly habe ich eine Aktivität: Dann mit passenden Skript angelegt, wenn ich die einzeln teste, wird mir auch der Wert angezeigt.
Veränderungen z.B. 10% 20% 90% die ich per Shelly APP einstellen, werden dann auch richtig durch das Skript angezeigt.
!Skript V3.1.1 zur Behanghöheaktualisierung (%) Shelly2.5 als Rollladenaktor mit Originalfirmware © by 66er (alias Stefan K.) Alle Rechte vorbehalten
! Changelog: vereinfachtes Setup
!Gastebad (nur zur Orientierung, ggf anpassen)
!**** SETUP ******** SETUP ******** SETUP ******** SETUP ***
! ACHTUNG: Beim Anpassen der Adressen keine "" löschen!
! Setup der CUxD-GERÄTE
var url = "http://192.168.178.11/roller/0"; ! IP-Adresse des Shelly 2.5 anpassen
var exec2r = "CUxD.CUX2801003:3"; ! Adresse und Kanal des CUxD-Exec-Device angeben
var shelly25 = "CUxD.CUX4000003:1" ; ! Adresse und Kanal des CUxD-Device für den Shelly 2.5 anpassen
!Setup der SYSTEMVARIABLE(N)
var bhh = "Behanghoehe_Rollladen"; ! Name der Systemvariablen für die Behanghöhe anpassen
!****ENDE SETUP ********ENDE SETUP ********ENDE SETUP ******
!*****Ab hier NICHTS MEHR ÄNDERN *****
!****Abfrage des Shelly2.5 als Rollladenaktor*****
dom.GetObject(""#exec2r#".CMD_SETS").State("wget -q -O - '"#url#"'");
dom.GetObject(""#exec2r#".CMD_QUERY_RET").State(1);
string Antwort = dom.GetObject(""#exec2r#".CMD_RETS").State();
string t = dom.GetObject(""#exec2r#".CMD_RETS").State();
dom.GetObject(""#exec2r#".CMD_SETS").State("0");
!WriteLine(Antwort);
!WriteLine(t);
!****Auswertung des Antwortstrings ****
string s;
foreach (s,t.Split (",")) {
if (s.LTrim ("{").StartsWith ('"current_pos"')) {
string e = (s.StrValueByIndex (":",1).RTrim ("}"));
WriteLine(e);
}
}
!**** Variable Rollladenbehanghöhe setzen****
dom.GetObject(""#bhh#"").State(e);
!Ende Skript
Alles anzeigen
Im Skript ist mir etwas nicht ganz klar:
var exec2r = "CUxD.CUX2801003:3"; ! Adresse und Kanal des CUxD-Exec-Device angeben
Ich habe es nach meinen CUxD-Exex gerät angepasst. In wie weit ist der Kanal hier wichtig? Habe es mit 1 und 3 getestet. 3, da es in der Vorlage auch so war.
Die Erweiterung von @Friek habe ich soweit auch konfiguriert. Die funktioniert schon mal.
Vielleicht hat jemand von Euch einen Lösungsansatz für mich?
Meist sitz das Problem ja 50cm vor dem PC.
Gruß Sven