Hauptmenü

Wecker mit DOIF und Dummy

Begonnen von item, 16 November 2016, 10:06:55

Vorheriges Thema - Nächstes Thema

item

Bin gerade dabei eine Weckfunktion einzubauen... habe einen Dummy "Wecker" um die Funktion komfortabel ein- und ausschalten zu können. Im Dummy "Weckzeit" soll die Uhrzeit eingestellt werden. Der Dummy "Weckertest" soll später das Wecklicht werden und ist momentan nur zum Testen gedacht.


define Wecker dummy
attr Wecker devStateIcon on:general_an@green off:general_aus@grey
attr Wecker group Weckerfunktion
attr Wecker room Wecker
attr Wecker setList on off
attr Wecker webCmd on:off

define Weckertest dummy
attr Weckertest devStateIcon on:general_an@green off:general_aus@grey
attr Weckertest group Weckerfunktion
attr Weckertest room Wecker
attr Weckertest setList on off
attr Weckertest webCmd on:off

define Weckzeit dummy
attr Weckzeit group Weckerfunktion
attr Weckzeit room Wecker
attr Weckzeit setList state:time
attr Weckzeit webCmd state


Mit einem DOIF wollte ich es auswerten, was mit der absoluten Zeitangabe auch funktioniert:
define at_Wecker DOIF ([Wecker] eq "on" and [08:00]) (set Weckertest on;;)
attr at_Wecker do always


Gebe ich statt 8 Uhr nun das Dummy "Weckzeit" ein, dann schaltet der Weckertest sofort ein - warum ist das so?
define at_Wecker DOIF ([Wecker] eq "on" and [Weckzeit]) (set Weckertest on;;)
attr at_Wecker do always


Ich fürchte ich habe da was nicht verstanden  :'(




CoolTux


define at_Wecker DOIF ([?Wecker] eq "on" and [08:00]) (set Weckertest on;;)


Man beachte das ? vor Wecker.
Bedeutung des ? ist in der Commandref nach zu lesen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

item

Danke, aber die Uhrzeit (in meinem Beispiel 8:00 Uhr) war ja nicht das Problem (geht auch ohne ?)
Mein Problem ist der Dummy Wert "Weckzeit" statt der fix eingestellten Uhrzeit.
define at_Wecker DOIF ([Wecker] eq "on" and [Weckzeit]) (set Weckertest on;;)

kumue

define at_Wecker DOIF ([?Wecker] eq "on" and [[Weckzeit]]) (set Weckertest on)
siehe commandref DOIF Indirekten Zeitangaben erstes Beispiel.. doppelte [[ ]]

Ellert

Nach dem nächten Update des DOIF oder mit der Beta-Version https://forum.fhem.de/index.php/topic,58556.msg499140.html#msg499140
kann man auf die Dummys verzichten, dann funktioniert setList und readingList im DOIF selbst, die Readings mit _ als Präfix sind persistent. Die Anzeige erfolgt dann in einer Zeile.

define at_Wecker DOIF ([?_einaus,"off"] eq "on" and [[_weckzeit,"00:00"]]) (set Weckertest on)

attr at_Wecker readingList _einaus _weckzeit
attr at_Wecker setList _einaus:on,off _weckzeit:time
attr at_Wecker webCmd _einaus:_weckzeit

item

Danke, mit den doppelten eckigen Klammern funktioniert es wie erwartet...  ;D
DOIF ist sehr mächtig, als Anfänger ist es trotz hervorragender Beschreibung nicht ganz einfach da durchzublicken...