Hallo,
ich habe eine Frage zu eval und eval_trigger bei der Verwendung direkt in den items.
Im Grunde möchte ich die Rollladen automatisch in Abhängigkeit von Sonne fahren. Die Freigabe dafür soll über ein weiteres item erfolgen.
In Summe habe ich dafür 5 Items konfiguriert:
1. Automatikmodul als bool
2. Auslöser für hochfahren als bool mit crontab
3. Auslöser für runterfahren als bool mit crontab
4. Hochfahren, wenn Automatik = 1 und Auslöser für Hochfahren = 1
5. Runterfahren, wenn Automatik = 1 und Auslöser für Runterfahren = 1
Hier der Auszug aus den Items:
Problem ist,
- das der Aktor bei gesendeten 0 und 1 fährt (hoch oder runter)
- bei Verwendung von if bei eval direkt in den items immer ein else sein muss
und dann die Rolladen immer irgendwas machen. Ich dachte, dass wenn ich else = value setze, nicht auf den KNX gesendet wird.
Es soll so sein, dass [[[AutoMoveDown]]] und [[[AutoMoveUp]]] nur dann was auf den KNX senden, wenn die Bedingung erfüllt ist.
Wer kann mir hier einen Tip geben?
DANKE.
ich habe eine Frage zu eval und eval_trigger bei der Verwendung direkt in den items.
Im Grunde möchte ich die Rollladen automatisch in Abhängigkeit von Sonne fahren. Die Freigabe dafür soll über ein weiteres item erfolgen.
In Summe habe ich dafür 5 Items konfiguriert:
1. Automatikmodul als bool
2. Auslöser für hochfahren als bool mit crontab
3. Auslöser für runterfahren als bool mit crontab
4. Hochfahren, wenn Automatik = 1 und Auslöser für Hochfahren = 1
5. Runterfahren, wenn Automatik = 1 und Auslöser für Runterfahren = 1
Hier der Auszug aus den Items:
Code:
[Rollladen] [[EG]] [[[Automatik]]] type = bool visu_acl = rw knx_dpt = 1 knx_send = 0/0/64 knx_listen = 0/0/64 knx_init = 0/0/64 enforce_updates = yes cache = yes [[[hoch]]] type = bool visu_acl = rw enforce_updates = yes autotimer = 1 = 0 crontab = 5:50<sunrise-8 = 1 enforce_updates = yes [[[runter]]] type = bool visu_acl = rw enforce_updates = yes autotimer = 1 = 0 crontab = sunset-7<22:20 = 1 enforce_updates = yes [[[AutoMoveDown]]] type = bool visu_acl = rw eval = 0 if sh.Rollladen.EG.Automatik() == 1 and sh.Rollladen.EG.runter() == 1 else value eval_trigger = Rollladen.EG.runter | Rollladen.EG.Automatik knx_dpt = 1 knx_send = 0/0/10 enforce_updates = yes [[[AutoMoveUp]]] type = bool visu_acl = rw eval = 1 if sh.Rollladen.EG.Automatik() == 1 and sh.Rollladen.EG.hoch() == 1 else value eval_trigger = Rollladen.EG.hoch | Rollladen.EG.Automatik knx_dpt = 1 knx_send = 0/0/10 enforce_updates = yes
- das der Aktor bei gesendeten 0 und 1 fährt (hoch oder runter)
- bei Verwendung von if bei eval direkt in den items immer ein else sein muss
und dann die Rolladen immer irgendwas machen. Ich dachte, dass wenn ich else = value setze, nicht auf den KNX gesendet wird.
Es soll so sein, dass [[[AutoMoveDown]]] und [[[AutoMoveUp]]] nur dann was auf den KNX senden, wenn die Bedingung erfüllt ist.
Wer kann mir hier einen Tip geben?
DANKE.
Kommentar