Hallo. Das Rollo fährt irgendwie trotzdem hoch obwohl die Temperatur noch nicht unterschritten ist. Thermostat ist ein HM-CC-RT-DN.
Hier mal das List des DOIF
Internals:
CFGFN
DEF ([HZG_SZ_rechts:"^measured-temp",0]>20) (set Rollo_SZ_Links 0) DOELSEIF
([HZG_SZ_rechts:"^measured-temp",0] < 18.3) (set Rollo_SZ_Links 100) DOELSEIF
([?Rollo_SZ_Links] ne "off" and ["rr_Manuel:asleep"] or ["rr_Lydia:asleep"]) (set Rollo_SZ_Links 0)
NAME di_Rollo_SZ_Links
NR 4071
NTFY_ORDER 50-di_Rollo_SZ_Links
STATE cmd_2
TYPE DOIF
READINGS:
2017-08-21 11:12:34 Device HZG_SZ_rechts
2017-08-21 11:12:35 cmd 2
2017-08-21 11:12:35 cmd_event HZG_SZ_rechts
2017-08-21 11:12:35 cmd_nr 2
2017-08-21 11:12:34 e_HZG_SZ_rechts_events measured-temp: 18.4
2017-08-21 11:12:35 state cmd_2
condition:
0 EventDoIf('HZG_SZ_rechts',$hash,'^measured-temp',1)>20
1 EventDoIf('HZG_SZ_rechts',$hash,'^measured-temp',1) < 18.3
2 InternalDoIf($hash,'Rollo_SZ_Links','STATE') ne "off" and EventDoIf('rr_Manuel',$hash,'asleep',0) or EventDoIf('rr_Lydia',$hash,'asleep',0)
devices:
0 HZG_SZ_rechts
1 HZG_SZ_rechts
all HZG_SZ_rechts
do:
0:
0 set Rollo_SZ_Links 0
1:
0 set Rollo_SZ_Links 100
2:
0 set Rollo_SZ_Links 0
3:
helper:
event measured-temp: 18.4
globalinit 1
last_timer 0
sleeptimer -1
timerdev HZG_SZ_rechts
timerevent measured-temp: 18.4
triggerDev HZG_SZ_rechts
timerevents:
measured-temp: 18.4
timereventsState:
measured-temp: 18.4
triggerEvents:
measured-temp: 18.4
triggerEventsState:
measured-temp: 18.4
internals:
2 Rollo_SZ_Links:STATE
all Rollo_SZ_Links:STATE
itimer:
readings:
regexp:
0:
1:
2:
0 rr_Manuel:asleep
1 rr_Lydia:asleep
all:
0 rr_Manuel:asleep
1 rr_Lydia:asleep
state:
STATE:
trigger:
all HZG_SZ_rechts
Attributes:
Hatte schon verschiedene Schreibweisen(ohne ,0) ausprobiert aber immer mit dem selben Ergebnis. Eigentlich sollte es dann noch mit Lüftungsfunktion, Nachtschichtmodus und Außentemperatur usw ergänzt werden, aber erstmal müsste das hier laufen ::) Danke
Setzt doch mal Klammern um deine AND-OR-Konstrukte...
Also dieser Zweig funktioniert ja. Es geht mir um den wo das Rollo hoch fährt. Weiterhin weiß ich jetzt gar nicht wo da Klammern hin müssten.
Welches ist denn "Hoch"? 100 oder 0?
Mach mal ein :d (https://fhem.de/commandref_DE.html#DOIF_Filtern_nach_Zahlen) am deine temps dran. Evtl. sinds ja Strings.
100 ist hoch. Aber der andere geht auch nicht habe ich gerade bemerkt weil die Temperatur auf 20.1 gestiegen ist und das Rollo auch nicht runter (0) fährt. Also meinst du measured-temp:d? Kannst du mir das mit den Klammern noch mal zeigen? Also wie es aussehen könnte? Danke
([?Rollo_SZ_Links] ne "off" and (["rr_Manuel:asleep"] or ["rr_Lydia:asleep"]))
Also: A and (B or C)
Ich weiß jetzt nicht, ob es an den Klammern gelegen hat, aber es funktioniert nun. Doif sieht nun so aus
([HZG_SZ_rechts:measured-temp]>19.5) (set Rollo_SZ_Links 0) DOELSEIF
([HZG_SZ_rechts:measured-temp]<18.3) (set Rollo_SZ_Links 100) DOELSEIF
([?Rollo_SZ_Links] ne "off" and (["rr_Manuel:asleep"] or ["rr_Lydia:asleep"])) (set Rollo_SZ_Links 0)
Zitat von: Tabularasa am 23 August 2017, 10:27:54Ich weiß jetzt nicht, ob es an den Klammern gelegen hat
Ich auch nicht, glaube aber eher an die Regex-Abfragen ("") und deren Rückgabeformat.