Rein aus Interesse:
Wie wäre denn die korrekte Syntax ?
https://forum.fhem.de/index.php/topic,91310.msg838137.html#msg838137 (https://forum.fhem.de/index.php/topic,91310.msg838137.html#msg838137)
Gruß
Thomas
Es war die korrekte Syntax (man muss natürlich das aktuelle DOIF-Version haben ;) )
Perl-Mode
DOIF {if ([{sunset}-00:00] and [Garagentor:open]) {fhem "set Licht_Garage on-for-timer 300"}}
oder
FHEM-Mode
DOIF ([{sunset}-00:00] and [Garagentor:open]) (set Licht_Garage on-for-timer 300)
Bei mir möchte das nicht oder ich steh auf dem Schlauch:
Internals:
DEF {if ([{sunrise}-13:00] and [du_Test] eq "on") {fhem "set Mi_Wecklicht off"}}
MODEL Perl
NAME doif_Test3
NR 431
NTFY_ORDER 50-doif_Test3
STATE initialized
TYPE DOIF
READINGS:
2018-09-21 12:44:42 Device du_Test
2018-09-21 12:44:42 block_01 condition c01: syntax error, line 1, near "13:"
2018-09-21 12:44:42 e_du_Test_STATE on
2018-09-21 12:40:19 mode enabled
2018-09-21 12:40:19 state initialized
Regex:
condition:
0 if ([{sunrise}-13:00] and InternalDoIf($hash,'du_Test','STATE') eq "on") {fhem "set Mi_Wecklicht off"}
devices:
0 du_Test
all du_Test
helper:
event gtanke: 1.46
globalinit 1
last_timer 0
sleeptimer -1
triggerDev du_Test
triggerEvents:
gtanke: 1.46
triggerEventsState:
gtanke: 1.46
internals:
0 du_Test:STATE
all du_Test:STATE
itimer:
perlblock:
0
readings:
trigger:
uiState:
uiTable:
Attributes:
98_DOIF.pm 17373 2018-09-19 19:15:59Z Damian
edit:
Hab mir gerade angeschaut was in sunrise drinsteht, kann ja nicht gehen.
Gestern abend hatte ich auf jedenfall noch
98_DOIF.pm 17291 2018-09-06 18:37:03Z Damian
und da gings mit sunset nicht. Schau heute abend nochmal.
[{sunrise}-13:00]
wird nicht als DOIF-Syntax erkannt sondern als Subtraktion, sollte eigentlich nicht so sein.
Zitat von: Ellert am 21 September 2018, 13:06:23
[{sunrise}-13:00]
wird nicht als DOIF-Syntax erkannt sondern als Subtraktion, sollte eigentlich nicht so sein.
ja, ich habe es gerade auch feststellen müssen. Es gibt wohl noch eine Inkompatibilität zum FHEM Modus. Den Fehler werde ich heute noch bereinigen.
Was bewusst im Perlmodus nicht mehr geht, ist die Angabe von Zeittriggern mit Sekunden z. B.
if ([3600]) ...
Bedeutung: 3600 Sekunden nach Mitternacht.
Diese Angaben wurden selten benutzt und lassen sich besser in HH:MM angeben (hier [01:00]).
Dadurch können im Perlmodus jetzt Arrays z. B. $a[1] angegeben werden, ohne dass es fälschlicher Weise als Zeittrigger erkannt wird.
Version korrigiert und eingecheckt.