Mitarbeiterantwort
Apr 26, 2017 - 06:55
Eine kleine Erklärung vorweg:
Die CCU meldet aktiv (über HTTP) den Status, wenn sich der Status der Geräte ändert. Die CCU meldet allerdings nicht aktiv, wenn sich der Status von Systemvariablen ändert. Der Automation Manager benötigt für eine Ausführung im Sobald-Block aber eine aktive Mitteilung der CCU, dass sich ein Status geändert hat.
Folgende Lösungen sind möglich
1) Setze (wie zdenko33 schon treffend beschrieben hat) im Sobald-Block den Intervall-Block. Dieser fragt aktiv (vom Automation Manager aus) z.B. Status ab. Mit dem Intervall-Block könnte eine Systemvariablen-Abfrage z.B. so aussehen:
2) Alternativ kannst Du im Automation Manager einen HTTP-Auslöser einstellen und ein Skript in der CCU erstellen, das eben jenen HTTP-Auslöser aufruft, wenn sich die System-Variable ändert.
Hier die Anleitung dazu:
HTTP Request im Automation Manager anlegen:
Systemvariable in der CCU erstellen:
Hier die erstellte Variable:
Bedingungen festlegen:
Hier das Skript:
Hiernochmal der Skripttext zum rauskopieren:
string stderr;
string stdout;
string url="http://192.168.XX.XX:80/tm/http?ccutrigger=1&auth=Passwort";
system.Exec("wget -q -O - "#url, &stdout, &stderr);
Liebe Grüße,
Mona
Von
Also mit system.Exec würde ich nicht arbeiten, das kann die CCU auch instabil machen. Wenn dann über CuxD. Aber geht das nicht auch irgendwie einfacher, z.B. auf einen virtuellen Taster reagieren?