Mahlzeit!
Ich habe vor einiger Zeit mein DOIF für das automatische Starten meines Staubsaugerroboters mittels checkall etwas übersichtlicher gestaltet. Zuvor musste ich bei jedem Reinigungsvorgang, d. h. in jedem DOELSEIF-Zweig die Grundbedingungen (kein Anwohner anwesend usw.) mitprüfen. Das funktionierte zuverlässig. Nun habe ich auf checkall umgestellt:
Internals:
CHANGED
DEF ([Presence_all] eq "present")
()
DOELSEIF ([OG.WO.VR100:R-State] ne "Ready" and [OG.WO.VR100:R-State] ne "Charging")
()
DOELSEIF([10:00|15])
(set OG.WO.VR100 cleanHouse)
DOELSEIF ([10:00|2346])
(set OG.WO.VR100 cleanSpot 250 250)
DOELSE
()
NAME D_OG.WO.VR100_clean
NR 306
NTFY_ORDER 50-D_OG.WO.VR100_clean
STATE not absent
TYPE DOIF
[...]
Attributes:
DbLogExclude .*
checkall 1
cmdState not absent|busy|cleanHouse|cleanSpot|ready
do always
event-on-change-reading .*
icon icoUhr.png
room Auto
Die Idee ist, sämtliche Bedingungen, die ein Starten der Reinigung verhindern sollen, in (leeren) Extrazweigen abzufangen, um die Übersichtlichkeit zu erhöhen und außerdem mittels cmdState einen besserne Einblick zu haben.
Heute morgen - ich wurde von meiner Frau darauf hingewiesen (-> Höchste Alarmstufe) - fuhr der Roboter obwohl wir zu Hause waren ([Presence_all] war "present"). Ist es möglich, dass bei Zeittriggern trotz checkall nicht die anderen Bedingungen geprüft werden oder habe ich einen Denkfehler?
Patrick
Zitat von: PatrickR am 24 Dezember 2016, 15:52:52
Mahlzeit!
Ich habe vor einiger Zeit mein DOIF für das automatische Starten meines Staubsaugerroboters mittels checkall etwas übersichtlicher gestaltet. Zuvor musste ich bei jedem Reinigungsvorgang, d. h. in jedem DOELSEIF-Zweig die Grundbedingungen (kein Anwohner anwesend usw.) mitprüfen. Das funktionierte zuverlässig. Nun habe ich auf checkall umgestellt:
Internals:
CHANGED
DEF ([Presence_all] eq "present")
()
DOELSEIF ([OG.WO.VR100:R-State] ne "Ready" and [OG.WO.VR100:R-State] ne "Charging")
()
DOELSEIF([10:00|15])
(set OG.WO.VR100 cleanHouse)
DOELSEIF ([10:00|2346])
(set OG.WO.VR100 cleanSpot 250 250)
DOELSE
()
NAME D_OG.WO.VR100_clean
NR 306
NTFY_ORDER 50-D_OG.WO.VR100_clean
STATE not absent
TYPE DOIF
[...]
Attributes:
DbLogExclude .*
checkall 1
cmdState not absent|busy|cleanHouse|cleanSpot|ready
do always
event-on-change-reading .*
icon icoUhr.png
room Auto
Die Idee ist, sämtliche Bedingungen, die ein Starten der Reinigung verhindern sollen, in (leeren) Extrazweigen abzufangen, um die Übersichtlichkeit zu erhöhen und außerdem mittels cmdState einen besserne Einblick zu haben.
Heute morgen - ich wurde von meiner Frau darauf hingewiesen (-> Höchste Alarmstufe) - fuhr der Roboter obwohl wir zu Hause waren ([Presence_all] war "present"). Ist es möglich, dass bei Zeittriggern trotz checkall nicht die anderen Bedingungen geprüft werden oder habe ich einen Denkfehler?
Patrick
ja, z. Zt. funktioniert checkall nur bei Ereignissen. checkall für Timer steht auf der todo-Liste.
Gruß
Damian
Zitatja z. Zt. funktioniert checkall nur bei Ereignissen. checkall für Timer steht auf der todo-Liste.
In genau diese Falle bin ich auch gerade getappt. Ich hatte auch erwartet, dass checkall auf auf Timer Anwendung findet. Wäre echt spitze, wenn das schon bald implementiert würde. Ich möchte nämlich so viel lieber DOIF nutzen, als eine Kombination aus AT, IF und NOTIFY. Sagst Du hier im Forum Bescheid, wenn es soweit ist? Tausend Dank!
Zitat von: upsalmo am 24 Dezember 2016, 23:12:06
In genau diese Falle bin ich auch gerade getappt. Ich hatte auch erwartet, dass checkall auf auf Timer Anwendung findet. Wäre echt spitze, wenn das schon bald implementiert würde. Ich möchte nämlich so viel lieber DOIF nutzen, als eine Kombination aus AT, IF und NOTIFY. Sagst Du hier im Forum Bescheid, wenn es soweit ist? Tausend Dank!
siehe https://forum.fhem.de/index.php/topic,63375.0.html