Hallo Leute,
ich steige gerade mehr oder weniger in FHEM ein.
Einiges gelesen ... viel angeschaut ... leider des Öfteren nur mäßig ans Ziel gekommen.
Ich würde gerne 2 Rolläden abhängig von meiner Anwesendheit und von der Tageszeit hoch und runter fahen.
Dafür frage ich mein Handy via Lan-Ping ab.
Abhängig von dem State und der Tageszeit soll ein DOIF die Sache richten.
Im ersten DOIF möchte ich die Tageszeit erfassen. (Abgeschaut hier irgendwo im Forum):
define doif.isdayreal DOIF (sunset_real("real")) DOELSEIF (sunrise_real("real"))
attr doif.isdayreal cmdState night|day
Der Code scheint nicht richtig zu funktionieren. Denn der State ändert sich nicht.
Also von mir umgebaut zu:
define doif.isdayreal DOIF (sunset_real("real")) ([doif.isdayreal:state = "night"]) DOELSEIF (sunrise_real("real")) ([doif.isdayreal:state = "day"])
attr doif.isdayreal cmdState night|day
Funzt aber auch nicht wirklich.
Das DOIF das af meine Anwesenheit reagieren soll sieht so aus:
define doif.anwesend.markus DOIF ([anwesendheit.handy.markus:"present"] and ([doif.isdayreal] eq "day")) (set eg.rolladen.wohnzimmer.1 on) (set eg.rolladen.schlafzimmer on) DOELSEIF ([anwesendheit.handy.markus:"present"] and ([doif.isdayreal] eq "night")) (set eg.rolladen.wohnzimmer.1 off) (set eg.rolladen.schlafzimmer off) DOELSE (set eg.rolladen.wohnzimmer.1 off) (set eg.rolladen.schlafzimmer off)
Kann mir jemand bei der Erkennung der Tageszeit helfen?
Und dann vielleicht auch direkt mal auf mein DOIF schauen das die Rolläden schaltet?
Vielen Dank.
Gruß
Markus
Ich fang mal an, denn ich denke es gibt da einige Missverständnisse.
Du solltest nicht selber den state des DOIFs anpassen, dass ist nicht Sinn der Sache, denn genau dafür ist ja das DOIF zuständig
sunset_real kenne ich nicht vermute aber es gehört zum Ausführungsteil, dann fehlt beim ersten DOIF die Bedingung
Also grundsätzlich für ein minimales DOIF wird benötigt: eine Bedingung (da gibt es ganz viele Möglichkeiten) und ein Ausführungsteil. Wie gesagt das ist das Minimum mit DOELSE/etc lässt sich das erweitern
Ausführungsteil bezieht sich meistens eher auf ANDERE Devices an denen etwas ausgeführt wird.
Achso: Dies soll jetzt erstmal nur ein erster hinweis sein, denn vermutlich befindest Du Dich auf einem grossen Holzweg
Mein Vorschlag wäre erstmal ein ganz einfaches DOIF aufzubauen nach der Art Wenn etwas passiert oder ein Zeitpunkt erreicht wird mache etwas. Aber eben so einfach wie möglich, vielleicht einfach einen Dummy-state setzen - das könnte auch helfen um Dein Problem anzugehen
Ein Beispiel aus dem Forum kann schon mal falsch sein, eins aus der Commandref kaum. Es gibt dort Beispiele zur genauen Syntax im Zusammenhang mit sunrise/sunset, s. https://fhem.de/commandref_DE.html#DOIF_Zeitsteuerung_mit_Zeitintervallen
Alles klar. Vielen Dank erst einmal.
Ich werde mich noch einmal durchbeißen.
Gruß