Hi, versuche ein Doif mit 2x and und Wochenzeit zu erstellen. Die Einschaltzeiten werden angezeigt aber beim ausführen wird nicht geschaltet und ich bekomme ein Syntax error.....
Was mache ich falsch?
(([Tageslicht_weather:"Nacht"]) and ([DavidFruehschicht:"on"]) and ([01:00:00|123456] [06:45:00|0])) (set Deckenfluter on) DOELSE (set Deckenfluter off)
Hier der error:
condition c01: syntax error, DOIF_time_once"
Und ein warning:
condition c01: (Missing operator before DOIF_time_once?)
Und der Listeintrag:
Internals:
CFGFN
DEF ([Tageslicht_weather:"Nacht"] and [DavidFruehschicht:"on"] and [01:00:00|123456] [06:45:00|0]) (set Deckenfluter on) DOELSE (set Deckenfluter off)
NAME DeckenfluterOnOff
NR 702
NTFY_ORDER 50-DeckenfluterOnOff
STATE initialized
TYPE DOIF
READINGS:
2018-03-17 01:12:20 cmd 0
2018-03-17 01:12:31 error condition c01: syntax error, DOIF_time_once"
2018-03-17 01:12:20 mode enabled
2018-03-17 01:12:20 state initialized
2018-03-17 01:12:20 timer_01_c01 18.03.2018 01:00:00|123456
2018-03-17 01:12:20 timer_02_c01 17.03.2018 06:45:00|0
2018-03-17 01:12:31 warning condition c01: (Missing operator before DOIF_time_once?)
Regex:
condition:
0 EventDoIf('Tageslicht_weather',$hash,'Nacht',1) and EventDoIf('DavidFruehschicht',$hash,'on',1) and DOIF_time_once($hash,0,$wday,"123456") DOIF_time_once($hash,1,$wday,"0")
days:
0 123456
1 0
devices:
0 Tageslicht_weather DavidFruehschicht
all Tageslicht_weather DavidFruehschicht
do:
0:
0 set Deckenfluter on
1:
0 set Deckenfluter off
helper:
DOIF_Readings_events
DOIF_eventas
globalinit 1
last_timer 2
sleeptimer -1
triggerDev
internals:
itimer:
localtime:
0 1521331200
1 1521265500
readings:
realtime:
0 01:00:00
1 06:45:00
time:
0 01:00:00
1 06:45:00
timeCond:
0 0
1 0
timer:
0 0
1 0
timers:
0 0 1
trigger:
all Tageslicht_weather DavidFruehschicht
triggertime:
1521265500:
localtime 1521265500
hash:
1521331200:
localtime 1521331200
hash:
uiState:
uiTable:
Attributes:
room 2 DOIF
Du hast einen Operator vergessen, vermutlich or.
Okayyyy, das müsste ich jetzt noch verstehen... :-\
([01:00:00|123456] [06:45:00|0]))
Das ist wohl kein Zeitintervall, sondern zwei Zeitangaben, die logisch miteinander verknüpft werden wollen, soviel sei verraten: and würde hier keinen Sinn machen.
([01:00:00|123456] [06:45:00|0]))
Zwei unterschiedliche Zeitangaben innerhalb einer Bedingung werden nicht funktionieren ......
Also sollte in etwa eher so aussehen:
([01:00:00|123456]) or ( [06:45:00|0]))
PS: Damian war schneller :D
Zitat von: Icinger am 17 März 2018, 08:38:04
([01:00:00|123456] [06:45:00|0]))
Zwei unterschiedliche Zeitangaben innerhalb einer Bedingung werden nicht funktionieren ......
Also sollte in etwa eher so aussehen:
([01:00:00|123456]) or ( [06:45:00|0]))
PS: Damian war schneller :D
ich denke, er will eher
([01:00:00|123456] or [06:45:00|0])
denn or ist in der Rangpriorität hinter and, and bindet stärker als or - daher or klammern, wenn die letzte Zeitangabe nicht für sich alleine stehen soll.
Joaaa, ich denke das ist was ich will... Komme aber mit dem or nicht klar im Kopf....
Ich möchte das das Licht um 1:00 UND 6:45 uhr an geht... Das macht mich wuschig in meinen Schaltkreisen...
Muss ich dieses or zwischen den Zeiten so sehen das er mir das licht zu den beiden Zeiten einschaltet?
Habe es jetzt mal getestet... Er zeigt zwar keinen Fehler mehr und führt im Fhem die Schaltung durch, aber er setzt mir den Deckenfluter nicht on...
Was mache ich falsch? Habe schon sämtliche klammersetzungen getestet...
(([Tageslicht_weather:"Tag"]) and ([DavidFruehschicht:"on"]) and ([11:14:00|123456] or [06:45:00|0])) (set Deckenfluter on) DOELSE (set Deckenfluter off)
Ich würde aber die Abfrage "Tag" und "Frühschicht" auf Zustand umbauen. Event ist hier eher ungünstig.
((also [Tageslicht_waether] eq "Tag" and [DavidFruehschicht] eq "on") and (.......)) (set ....)
Weiterer Tip: für Frühschicht wäre "ja/nein" bestimmt verständlicher. :-)
;D Hervorragend! Jetzt klappt es auch mit dem Nachbarn!
Vielen Dank!!!
HIer der funktionierende Code:
([Tageslicht_weather] eq "Tag" and [DavidFruehschicht] eq "on" and [05:45:00|123456] or [06:45:00|0]) (set Deckenfluter on) DOELSE (set Deckenfluter off)