FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: abraxas678 am 10 Oktober 2016, 12:36:27

Titel: IF innerhalb DOIF mit Zeitangabe
Beitrag von: abraxas678 am 10 Oktober 2016, 12:36:27
Hallo,

ich habe ein IF innerhalb eines DOIFs:

([ga_bm:"on"] and [ha_home] ne 3) (
   IF ([do_home] eq 3 and ([T] ne 6 or [16:00-23:00])) ((set ga_lampe1 on, set ku_lichter on))
)

Der Zeitbereich  [16:00-23:00] wird nicht erkannt anscheinend, hier der Log:

IF ([do_home] eq 3 and ([T] ne 6 or [16:00-23:00])) ((set ga_lampe1 on, set ku_lichter on)): IF: unknown Device: 16

Wie kann ich in diesem Fall die Zeit mit angeben?

Danke!





Titel: Antw:IF innerhalb DOIF mit Zeitangabe
Beitrag von: Ellert am 10 Oktober 2016, 13:02:31
Das IF (http://fhem.de/commandref_DE.html#IF) ist ein FHEM-Befehl und kennt die DOIF Syntax nicht, Zeitangaben must Du in die Bedingung des DOIF einbauen.

Bitte poste Deinen Code das nächste Mal in Code-Tags (Rautezeichen (#) ), dann ist er besser zu lesen.
Titel: Antw:IF innerhalb DOIF mit Zeitangabe
Beitrag von: abraxas678 am 10 Oktober 2016, 14:11:58
Hallo,

ich brauche die Zeitangabe im IF, davon gibt es mehre. Ich hatte ne Zeile gekürzt, weil die nicht relevant war.

Ich hab jetzt verstanden, dass ich bei den IF nicht mehr im DOIF bin. Logisch eigentlich!  :-[

So funktionerts nun:


([ga_bm:"on"] and [ha_home] ne 3) (
IF ([do_home] eq 3 and ([T] ne 6 or ($hms gt "16:00" and $hms lt "23:00"))) (set ga_lampe1 on, set ku_lichter on)
)


Danke!
Titel: Antw:IF innerhalb DOIF mit Zeitangabe
Beitrag von: Ellert am 10 Oktober 2016, 16:15:21
Das sollte doch auch ohne IF klappen, solange andere Bedingungen im DOIF nicht gleichzeitig wahr werden
([ga_bm:"on"] and [ha_home] ne 3 and [?do_home] eq 3 and ([?T] ne 6 or [?16:00-23:00]))
   (set ...)