FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: item am 16 November 2016, 10:06:55

Titel: Wecker mit DOIF und Dummy
Beitrag von: item am 16 November 2016, 10:06:55
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  :'(



Titel: Antw:Wecker mit DOIF und Dummy
Beitrag von: CoolTux am 16 November 2016, 10:23:56

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.
Titel: Antw:Wecker mit DOIF und Dummy
Beitrag von: item am 16 November 2016, 10:53:05
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;;)
Titel: Antw:Wecker mit DOIF und Dummy
Beitrag von: kumue am 16 November 2016, 11:26:31
define at_Wecker DOIF ([?Wecker] eq "on" and [[Weckzeit]]) (set Weckertest on)
siehe commandref DOIF Indirekten Zeitangaben erstes Beispiel.. doppelte [[ ]]
Titel: Antw:Wecker mit DOIF und Dummy
Beitrag von: Ellert am 16 November 2016, 11:53:39
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
Titel: Antw:Wecker mit DOIF und Dummy
Beitrag von: item am 16 November 2016, 12:01:58
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...