FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Tabularasa am 21 August 2017, 11:31:44

Titel: [Gelöst]DOIF Rollo temperaturabhängig fahren
Beitrag von: Tabularasa am 21 August 2017, 11:31:44
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
Titel: Antw:DOIF Rollo temperaturabhängig fahren
Beitrag von: Per am 21 August 2017, 13:39:05
Setzt doch mal Klammern um deine AND-OR-Konstrukte...
Titel: Antw:DOIF Rollo temperaturabhängig fahren
Beitrag von: Tabularasa am 21 August 2017, 16:25:10
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.
Titel: Antw:DOIF Rollo temperaturabhängig fahren
Beitrag von: Per am 21 August 2017, 16:55:47
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.
Titel: Antw:DOIF Rollo temperaturabhängig fahren
Beitrag von: Tabularasa am 21 August 2017, 18:17:14
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
Titel: Antw:DOIF Rollo temperaturabhängig fahren
Beitrag von: Per am 21 August 2017, 19:21:13

([?Rollo_SZ_Links] ne "off" and (["rr_Manuel:asleep"] or ["rr_Lydia:asleep"]))

Also: A and (B or C)
Titel: Antw:DOIF Rollo temperaturabhängig fahren
Beitrag von: Tabularasa am 23 August 2017, 10:27:54
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)

Titel: Antw:DOIF Rollo temperaturabhängig fahren
Beitrag von: Per am 23 August 2017, 11:42:31
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.