Hallo,
seit heute funktioniert bei mir keine einzige DOIF-Funktion mehr. Alles was mit Zeit und weiteren Bedingungen ausgeführt werden soll funktioniert nicht mehr. At und Notify funktionieren.
Ich habe einen Testfunktion erstellt, aber diese funkioniert auch nicht. Führe ich die Befehle mit At aus, klappt alles.
Internals:
DEF { if ( [21:06|0123456] ) { fhem_set"az.RO up"; set_State("on") } }
{ if ( [21:01|0123456] ) { fhem(" {testfunc} ") } }
FUUID 64dbba87-f33f-6dec-eba9-74f80a7f40f92b65
MODEL Perl
NAME di.test
NOTIFYDEV global
NR 323
NTFY_ORDER 50-di.test
STATE initialized
TYPE DOIF
VERSION 27740 2023-07-10 09:31:11
eventCount 7
READINGS:
2023-08-15 21:09:48 block_01 executed
2023-08-15 21:09:56 block_02 executed
2023-08-15 21:09:47 mode enabled
2023-08-15 21:09:47 state initialized
2023-08-15 21:09:47 timer_01_c01 16.08.2023 21:06:00|0123456
2023-08-15 21:09:47 timer_02_c02 16.08.2023 21:01:00|0123456
Regex:
accu:
bar:
barAvg:
collect:
condition:
0 if ( ::DOIF_time_once($hash,0,$wday,"0123456") ) { fhem_set"az.RO up"; set_State("on") }
1 if ( ::DOIF_time_once($hash,1,$wday,"0123456") ) { fhem(" {testfunc} ") }
days:
0 0123456
1 0123456
helper:
NOTIFYDEV global
globalinit 1
last_timer 2
sleeptimer -1
intervalfunc:
localtime:
0 1692212760
1 1692212460
perlblock:
0 block_01
1 block_02
realtime:
0 21:06:00
1 21:01:00
time:
0 21:06:00
1 21:01:00
timeCond:
0 0
1 1
timer:
0 0
1 0
timers:
0 0
1 1
triggertime:
1692212460:
localtime 1692212460
hash:
1692212760:
localtime 1692212760
hash:
uiState:
uiTable:
Attributes:
room System
In den Logs kann ich nichts weiter finden; bzgl. DOIF steht dort nichts drin.
FHEM und das ganze Systeme habe ich bereits neugestartet.
Ich bräuchte echt Hilfe bei der Lösung des Problems und liefere gern weitere Infos.
MfG
Torsten
Du hast offenbar die Blöcke per set-Kommando ausgeführt. In diesem Fall ist die if-Bedingung nicht wahr, als Folge werden die Anweisung nicht ausgeführt.
Wenn der jeweilige Timer zuschlägt, dann ist auch die Bedingung wahr und die Anweisung wird ausgeführt.
Du kannst DOIF-Blöcke auch ohne if definieren:
{[21:06|0123456];fhem_set"az.RO up"; set_State("on")}
Hier gibt es keine if-Bedingung, die Anweisungen werden zu gegebener Uhrzeit als auch per set ausgeführt.
Hallo Damian,
danke für den Tipp. Das Problem war ja, dass keine DOIFs über den Tag ausgeführt wurden, also auch nicht nach Zeit.
Wie auch immer ... heute früh ging alles wieder an ... merkwürdig.
Kurze Frage zu deiner Antwort:
Wie schreibt man folgende Bedingung ohne if:
{ if ( [07:10|125] and not ::isWeekend($we) ) { fhem(" {preconditioning(1)} ") } }
Das ist eine echte Bedingung, die kannst du nur über if abfragen. Ich gehe davon aus, dass du die Feiertage abfangen willst, ansonsten ist 125 ja schon kein Wochenende.
Ja, Feiertage und ein manueller Schalter werden abgefangen.
Aber gut, es funktioniert alles wieder.
Vielen Dank.