DOIF löst aus, obwohl nicht alle Bedingungen Wahr sind

Begonnen von Thoffi1978, 24 Juni 2017, 20:06:27

Vorheriges Thema - Nächstes Thema

Thoffi1978

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

amenomade

Sind deine Jalousie mittlerweile wirklich auf 40 geblieben?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

CoolTux

Aussentemperatur:temperature] => 23

Soll das ne Richtungsanzeige sein  ;D

>=
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Thoffi1978

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

CoolTux

Kann ich Dir nicht sagen. Eventuell hat er die => anders interpretiert
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

amenomade

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.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

nils_

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"
viele Wege in FHEM es gibt!

Damian

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.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

amenomade

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
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus