FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Thoffi1978 am 24 Juni 2017, 20:06:27

Titel: DOIF löst aus, obwohl nicht alle Bedingungen Wahr sind
Beitrag von: Thoffi1978 am 24 Juni 2017, 20:06:27
Hallo,
jetzt, wo es doch wieder warme Tage gibt, fällt mir auf, das meine Schaltung doch nicht so läuft.

Wieso werden die Jalousien heruntergefahren? Bis auf die Helligkeit ist keine weitere Bedingung wahr.
Hier einmal mein Code:

([Aussentemperatur:temperature] => 23 and [Temp_Schlafzi:temperature] => 24 and [Helligkeit:state] > 1700 and [?13:45 - 18:30]) ((set Jalo_SchlafZi,Jalo_Bad,Jalo_WZ_Seite 40)) DOELSE ((set Jalo_SchlafZi:FILTER=pct=40,Jalo_Bad:FILTER=pct=40,Jalo_WZ_Seite:FILTER=pct=40 on))

um 13:55Uhr wurden die Jalousien runter gefahren. Unwahrscheinlich, das es im SchlafZi wärmer war, doch warum werden die jetzt nicht hoch gefahren? Alles ist Kühler.
Anbei die List vom DoIf:
DEF        ([Aussentemperatur:temperature] => 23 and [Temp_Schlafzi:temperature] => 24 and [Helligkeit:state] > 1700 and [?13:45 - 18:30]) ((set Jalo_SchlafZi,Jalo_Bad,Jalo_WZ_Seite  40)) DOELSE ((set Jalo_SchlafZi:FILTER=pct=40,Jalo_Bad:FILTER=pct=40,Jalo_WZ_Seite:FILTER=pct=40  on))
   NAME       di_Beschattung_seite
   NR         179
   NTFY_ORDER 50-di_Beschattung_seite
   STATE      cmd_1
   TYPE       DOIF
   Readings:
     2017-06-23 15:24:42   Device          Helligkeit
     2017-06-23 13:55:39   cmd             1
     2017-06-23 13:55:39   cmd_event       Aussentemperatur
     2017-06-23 13:55:39   cmd_nr          1
     2017-06-23 15:24:05   e_Aussentemperatur_temperature 20.0
     2017-06-23 15:24:42   e_Helligkeit_state 2269.0
     2017-06-23 15:21:57   e_Temp_Schlafzi_temperature 22.6
     2017-06-23 13:55:39   state           cmd_1
     2017-06-22 18:30:00   timer_01_c01    23.06.2017 13:45:00
     2017-06-22 18:30:00   timer_02_c01    23.06.2017 18:30:00
     2017-06-23 13:55:39   wait_timer      no timer
   Condition:
     0          ReadingValDoIf($hash,'Aussentemperatur','temperature') => 23 and ReadingValDoIf($hash,'Temp_Schlafzi','temperature') => 24 and ReadingValDoIf($hash,'Helligkeit','state') > 1700 and DOIF_time($hash,0,1,$wday,$hms)
   Days:
   Devices:
     0           Aussentemperatur Temp_Schlafzi Helligkeit
     all         Aussentemperatur Temp_Schlafzi Helligkeit
   Do:
     0:
       0          (set Jalo_SchlafZi,Jalo_Bad,Jalo_WZ_Seite  40)
     1:
       0          (set Jalo_SchlafZi:FILTER=pct=40,Jalo_Bad:FILTER=pct=40,Jalo_WZ_Seite:FILTER=pct=40  on)
   Helper:
     event      2269.0
     globalinit 1
     last_timer 2
     sleepdevice Aussentemperatur
     sleepsubtimer -1
     sleeptimer -1
     timerdev   Helligkeit
     timerevent 2269.0
     triggerDev Helligkeit
     timerevents:
       2269.0
     timereventsState:
       state: 2269.0
     triggerEvents:
       2269.0
     triggerEventsState:
       state: 2269.0
   Internals:
   Interval:
     0          -1
     1          0
   Itimer:
   Localtime:
     0          1498218300
     1          1498235400
   Readings:
     0           Aussentemperatur:temperature Temp_Schlafzi:temperature Helligkeit:state
     all         Aussentemperatur:temperature Temp_Schlafzi:temperature Helligkeit:state
   Realtime:
     0          13:45:00
     1          18:30:00
   Regexp:
     0:
     All:
   State:
     State:
   Time:
     0          13:45:00
     1          18:30:00
   Timecond:
     0          0
     1          0
   Timer:
     0          0
     1          0
   Timers:
   Trigger:
   Triggertime:
     1498235400:
       localtime  1498235400
       Hash:
Attributes:
   group      Jalousien_seite
   room       Jalousien Di´s
   wait       600:1200



Vielen Dank
Torsten
Titel: Antw:DOIF löst aus, obwohl nicht alle Bedingungen Wahr sind
Beitrag von: amenomade am 24 Juni 2017, 20:30:25
Sind deine Jalousie mittlerweile wirklich auf 40 geblieben?
Titel: Antw:DOIF löst aus, obwohl nicht alle Bedingungen Wahr sind
Beitrag von: CoolTux am 24 Juni 2017, 21:04:10
Aussentemperatur:temperature] => 23

Soll das ne Richtungsanzeige sein  ;D

>=
Titel: Antw:DOIF löst aus, obwohl nicht alle Bedingungen Wahr sind
Beitrag von: Thoffi1978 am 25 Juni 2017, 06:48:07
Hallo,

@amenomade: Ja, die Jalousien werden erst um 18:30Uhr wieder hochgefahren.

@CoolTux: aaah :-) Also nicht "gleich größer" sondern "größer gleich".
                 
Doch wieso löst das DoIf aus, obwohl die Angabe falsch ist?

Vielen Dank
Torsten
Titel: Antw:DOIF löst aus, obwohl nicht alle Bedingungen Wahr sind
Beitrag von: CoolTux am 25 Juni 2017, 06:58:02
Kann ich Dir nicht sagen. Eventuell hat er die => anders interpretiert
Titel: Antw:DOIF löst aus, obwohl nicht alle Bedingungen Wahr sind
Beitrag von: amenomade am 25 Juni 2017, 11:13:17
Wenn Du sowas schreibst:[Aussentemperatur:temperature] => 23 wird jede Änderung des Readings "temperature" vom Device "Aussentemperatur" das DOIF triggern. Triggern heisst aber nicht, dass die Bedingung dann wahr ist.
Titel: Antw:DOIF löst aus, obwohl nicht alle Bedingungen Wahr sind
Beitrag von: nils_ am 26 Juni 2017, 08:19:23
Zitat von: CoolTux am 24 Juni 2017, 21:04:10
Aussentemperatur:temperature] => 23

Soll das ne Richtungsanzeige sein  ;D

>=
neee, das bedeutet "näher sich den 23 Grad" :)

spaß beiseite!


evtl. hat er nen hash gebaut.
vielleicht kann aber damian was dazu sagen wie das im DOIF "wirkt"
Titel: Antw:DOIF löst aus, obwohl nicht alle Bedingungen Wahr sind
Beitrag von: Damian am 26 Juni 2017, 09:31:43
Zitat von: nils_ am 26 Juni 2017, 08:19:23
neee, das bedeutet "näher sich den 23 Grad" :)

spaß beiseite!


evtl. hat er nen hash gebaut.
vielleicht kann aber damian was dazu sagen wie das im DOIF "wirkt"

Die Operatoren gehören zu Perl, deswegen >= angeben.
Titel: Antw:DOIF löst aus, obwohl nicht alle Bedingungen Wahr sind
Beitrag von: amenomade am 26 Juni 2017, 09:33:14
Zitatvielleicht kann aber damian was dazu sagen wie das im DOIF "wirkt"
Tja... ich bin nicht Damian, aber "=>" ist in Perl ein Operator, der nichts mit "<=" zu tun hat. Ich würde dann an deiner Stelle auf jeden Fall mein DOIF korrigieren und weiter testen.
http://perldoc.perl.org/perlop.html#Comma-Operator