Hauptmenü

[GELÖST]Luefter

Begonnen von Eisix, 04 März 2019, 15:02:12

Vorheriges Thema - Nächstes Thema

Eisix

Hallo,

kann mir jemand sagen warum mein DOIF auf CMD 4 steht und nicht auf CMD 2 wie ich bei den Werten erwarten würde?

Gruß
Eisix



Internals:
DEF        ([Luefter:state] eq "auto" and [Sensor_BAD_OG:humidity:dd] ge "60") (setreading Luefter stufe 4)

DOELSEIF ([Luefter:state] eq "auto" and [Sensor_BAD_OG:humidity:dd] le "60" and [Wetter:windchill] le "10" and [Wetter:wind] ge "20" and [Wetter:wind] lt "30") (setreading Luefter stufe 1)

DOELSEIF ([Luefter:state] eq "auto" and [Sensor_BAD_OG:humidity:dd] le "60" and [Wetter:windchill] le "5" and [Wetter:wind] ge "30") (setreading Luefter stufe 0)

DOELSE (setreading Luefter stufe 2)

   NAME       Steuerung.Luefter

   TYPE       DOIF
   VERSION    18706 2019-02-23 21:48:22
   READINGS:
     2019-03-04 14:50:51   Device          Luefter
     2019-03-04 14:50:51   cmd             4
     2019-03-04 14:50:51   cmd_event       Steuerung.Luefter
     2019-03-04 14:50:51   cmd_nr          4
     2019-03-04 14:39:00   e_Luefter_state auto
     2019-03-04 13:07:45   e_Sensor_BAD_OG_humidity 46 %
     2019-03-04 13:32:28   e_Wetter_wind   25.2
     2019-03-04 13:32:28   e_Wetter_windchill 3.1

     2019-03-04 12:48:30   mode            enabled
     2019-03-04 14:50:51   state           cmd_4
   Regex:
     accu:
   attr:
     cmdState:
     wait:
       0:
         1200
       1:
         0
       2:
         0
       3:
         0
     waitdel:
   condition:
     0          ::ReadingValDoIf($hash,'Luefter','state') eq "auto" and ::ReadingValDoIf($hash,'Sensor_BAD_OG','humidity','','dd') ge "60"
     1          ::ReadingValDoIf($hash,'Luefter','state') eq "auto" and ::ReadingValDoIf($hash,'Sensor_BAD_OG','humidity','','dd') le "60" and ::ReadingValDoIf($hash,'Wetter','windchill') le "10" and ::ReadingValDoIf($hash,'Wetter','wind') ge "20" and ::ReadingValDoIf($hash,'Wetter','wind') lt "30"
     2          ::ReadingValDoIf($hash,'Luefter','state') eq "auto" and ::ReadingValDoIf($hash,'Sensor_BAD_OG','humidity','','dd') le "60" and ::ReadingValDoIf($hash,'Wetter','windchill') le "5" and ::ReadingValDoIf($hash,'Wetter','wind') ge "30"
   devices:
     0           Luefter Sensor_BAD_OG
     1           Luefter Sensor_BAD_OG Wetter
     2           Luefter Sensor_BAD_OG Wetter
     all         Luefter Sensor_BAD_OG Wetter
   do:
     0:
       0          setreading Luefter stufe 4
     1:
       0          setreading Luefter stufe 1
     2:
       0          setreading Luefter stufe 0
     3:
       0          setreading Luefter stufe 2
   helper:
     event      stufe: 2
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   
     timerevent stufe: 1
     triggerDev Luefter
     DOIF_eventas:
       cmd_nr: 4
       cmd: 4
       cmd_event: Steuerung.Luefter
       state: cmd_4
     timerevents:
       stufe: 1
     timereventsState:
       stufe: 1
     triggerEvents:
       stufe: 2
     triggerEventsState:
       stufe: 2
   internals:
   itimer:
   perlblock:
   readings:
     0           Luefter:state Sensor_BAD_OG:humidity
     1           Luefter:state Sensor_BAD_OG:humidity Wetter:windchill Wetter:wind
     2           Luefter:state Sensor_BAD_OG:humidity Wetter:windchill Wetter:wind
     all         Luefter:state Sensor_BAD_OG:humidity Wetter:windchill Wetter:wind
   trigger:
   uiState:
   uiTable:
Attributes:
   room       Luefter
   wait       1200:0:0:0


doman75

ich würde erst mal die operatoren für zahlen verwenden. also anstatt ge > usw.

Vergleichende Abfragen werden in der Bedingung, mit Perl-Operatoren ==, !=, <, <=, >, >= bei Zahlen und mit eq, ne, lt, le, gt, ge, =~, !~ bei Zeichenketten angegeben.

Vielleicht bringt das ja schon was, und von dem Sensor_BAD dings mal ein List am besten

Eisix

Werde ich mal umstellen. Der Wind wurde gerade stärker und seltsamerweise funktioniert es in dem Zweig.


Internals:
   DEF        ([Luefter:state] eq "auto" and [Sensor_BAD_OG:humidity:dd] ge "60") (setreading Luefter stufe 4)
DOELSEIF ([Luefter:state] eq "auto" and [Sensor_BAD_OG:humidity:dd] le "60" and [Wetter:windchill] le "10" and [Wetter:wind] ge "20" and [Wetter:wind] lt "30") (setreading Luefter stufe 1)
DOELSEIF ([Luefter:state] eq "auto" and [Sensor_BAD_OG:humidity:dd] le "60" and [Wetter:windchill] le "5" and [Wetter:wind] ge "30") (setreading Luefter stufe 0)
DOELSE (setreading Luefter stufe 2)

   MODEL      FHEM
   NAME       Steuerung.Luefter
   NR         494
   NTFY_ORDER 50-Steuerung.Luefter
   STATE      cmd_3
   TYPE       DOIF
   VERSION    18706 2019-02-23 21:48:22
   READINGS:
     2019-03-04 15:29:59   Device          Wetter
     2019-03-04 15:29:59   cmd             3
     2019-03-04 15:29:59   cmd_event       Wetter
     2019-03-04 15:29:59   cmd_nr          3
     2019-03-04 15:17:58   e_Luefter_state auto
     2019-03-04 13:07:45   e_Sensor_BAD_OG_humidity 46 %
     2019-03-04 15:29:59   e_Wetter_wind   32.4
     2019-03-04 15:29:59   e_Wetter_windchill 2
     2019-03-04 12:48:30   mode            enabled
     2019-03-04 15:29:59   state           cmd_3


Eisix

OK das hat geklappt.

Danke!
Eisix