FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Wasserwerk33 am 13 August 2020, 17:56:20

Titel: Doif schaltet diesen Sommer nicht letzten sommer super geschaltet
Beitrag von: Wasserwerk33 am 13 August 2020, 17:56:20
Hallo Leute,
Habe ein Problem mit meinem DOIF.
Es hat den ganzen letzten sommer super geschaltet. Nur jetzt will er einfach nicht mehr schalten. Kann mir einer sagen ob ich einen Schreibfehler habe? Oder wo mein Fehler ist und wieso es letztes Jahr trotzdem geschaltet hat. Also das Hauptproblem ist er schaltet den Lüfter nicht mehr an das andere schaltet er.

Mit cmd1.2
ZitatInternals:
   CFGFN     
   DEF        (([21:00-18:00]) and ([LaCrosse_0C:temperature] - [LaCrosse_23:temperature]) < - 0.2
and ([LaCrosse_23:temperature] > ([Ole_Luefter_automatik:desired] + 2))) (set Luefter_Ole on) (set Luefter_Ole off)
DOELSE
((([LaCrosse_0C:temperature] - [LaCrosse_23:temperature]) > 0.2) or ([LaCrosse_0C:temperature] < [Ole_Luefter_automatik:desired]))
(set Luefter_Ole off)
   FUUID      5f344a24-f33f-faf7-62e8-a01008e1902c96db
   MODEL      FHEM
   NAME       Ole_Luefter_automatik
   NOTIFYDEV  LaCrosse_23,LaCrosse_0C,Ole_Luefter_automatik,global
   NR         3575
   NTFY_ORDER 50-Ole_Luefter_automatik
   STATE      off
   TYPE       DOIF
   VERSION    20811 2019-12-22 17:45:08
   READINGS:
     2020-08-13 18:00:00   cmd             2.2
     2020-08-13 18:00:00   cmd_event       timer_2
     2020-08-13 18:00:00   cmd_nr          2
     2020-08-13 18:00:00   cmd_seqnr       2
     2020-08-13 17:55:12   desired         20
     2020-08-13 17:55:12   e_Ole_Luefter_automatik_desired 20
     2020-08-13 17:37:41   mode            enabled
     2020-08-13 18:00:00   state           off
     2020-08-13 18:00:00   timer_01_c01    13.08.2020 21:00:00
     2020-08-13 18:00:00   timer_02_c01    14.08.2020 18:00:00
   Regex:
     accu:
     cond:
       LaCrosse_0C:
         0:
           temperature ^LaCrosse_0C$:^temperature:
       LaCrosse_23:
         0:
           temperature ^LaCrosse_23$:^temperature:
       Ole_Luefter_automatik:
         0:
           desired    ^Ole_Luefter_automatik$:^desired:
   attr:
     cmdState:
       0:
         on
       1:
         off
     repeatcmd:
     wait:
     waitdel:
     waitsame:
   condition:
     0          (::DOIF_time($hash,0,1,$wday,$hms)) and (::ReadingValDoIf($hash,'LaCrosse_0C','temperature') - ::ReadingValDoIf($hash,'LaCrosse_23','temperature')) < - 0.2  and (::ReadingValDoIf($hash,'LaCrosse_23','temperature') > (::ReadingValDoIf($hash,'Ole_Luefter_automatik','desired') + 2))
   days:
   do:
     0:
       0          set Luefter_Ole on
       1          set Luefter_Ole off
     1:
       0          (([LaCrosse_0C:temperature] - [LaCrosse_23:temperature]) > 0.2) or ([LaCrosse_0C:temperature] < [Ole_Luefter_automatik:desired])
       1          set Luefter_Ole off
   helper:
     DEVFILTER  ^global$|^LaCrosse_0C$|^LaCrosse_23$|^Ole_Luefter_automatik$
     NOTIFYDEV  global|LaCrosse_0C|LaCrosse_23|Ole_Luefter_automatik
     event      timer_2
     globalinit 1
     last_timer 2
     sleeptimer -1
     timerdev   
     timerevent timer_2
     triggerDev
     timerevents:
       timer_2
     timereventsState:
       timer_2
     triggerEvents:
       timer_2
     triggerEventsState:
       timer_2
   internals:
   interval:
     0          -1
     1          0
   intervalfunc:
   localtime:
     0          1597345200
     1          1597420800
   readings:
     all         LaCrosse_0C:temperature LaCrosse_23:temperature Ole_Luefter_automatik:desired
   realtime:
     0          21:00:00
     1          18:00:00
   time:
     0          21:00:00
     1          18:00:00
   timeCond:
     0          0
     1          0
   timer:
     0          0
     1          0
   timers:
     0           0  1
   trigger:
   triggertime:
     1597345200:
       localtime  1597345200
       hash:
     1597420800:
       localtime  1597420800
       hash:
   uiState:
   uiTable:
Attributes:
   cmdState   on|off
   readingList desired
   room       Lüfter,Ole
   setList    desired:14,20,21,22,23,24
   webCmd     desired
Titel: Antw:Doif schaltet diesen Sommer nicht letzten sommer super geschaltet
Beitrag von: amenomade am 13 August 2020, 21:24:56
DOELSE nimmt keine Bedingung.
Wenn Bedingung nötig, DOELSEIF

Um 18:00 Uhr ist [21:00-18:00] falsch => das DOIF ist im Status cmd2, und das ist normal
Titel: Antw:Doif schaltet diesen Sommer nicht letzten sommer super geschaltet
Beitrag von: Wasserwerk33 am 13 August 2020, 22:02:42
hi
hatte es noch schnell geändert nach dem du es mir geschickt hast. Hat aber leider nix gebracht. Leider fragt er die zustände des Temperatursensoren zur zeit auch nicht ab. ist dieses normal?? Habe es dieses abend mal wieder per Hand geschaltet.
so sieht mein Reading aus leider nur ohne Temperatursensoren



Ole_Luefter_automatik
Internals
CFGFN

DEF

(([21:00-18:00]) and ([LaCrosse_0C:temperature] - [LaCrosse_23:temperature]) < - 0.2
and ([LaCrosse_23:temperature] > ([Ole_Luefter_automatik:desired] + 2))) (set Luefter_Ole on) (set Luefter_Ole off)
DOELSEIF
((([LaCrosse_0C:temperature] - [LaCrosse_23:temperature]) > 0.2) or ([LaCrosse_0C:temperature] < [Ole_Luefter_automatik:desired]))
(set Luefter_Ole off)

FUUID

5f344a24-f33f-faf7-62e8-a01008e1902c96db
MODEL

FHEM
NAME

Ole_Luefter_automatik
NOTIFYDEV

LaCrosse_23,LaCrosse_0C,Ole_Luefter_automatik,global
NR

3575
NTFY_ORDER

50-Ole_Luefter_automatik
STATE

off
TYPE

DOIF
VERSION

20811 2019-12-22 17:45:08
Readings
cmd

2

2020-08-13 21:27:20
cmd_event

Ole_Luefter_automatik

2020-08-13 21:27:20
cmd_nr

2

2020-08-13 21:27:20
desired

23

2020-08-13 20:29:07
mode

enabled

2020-08-13 21:26:47
state

off

2020-08-13 21:27:20
timer_01_c01

14.08.2020 21:00:00

2020-08-13 21:26:47
timer_02_c01

14.08.2020 18:00:00

2020-08-13 21:26:47


das komische ist ja das es letztes Jahr geschaltet hat und im Winter hatte ich es deaktiviert und wo es wärmer wurde habe ich es wieder aktiviert aber es läuft einfach nicht.
Titel: Antw:Doif schaltet diesen Sommer nicht letzten sommer super geschaltet
Beitrag von: amenomade am 13 August 2020, 22:16:23
Mit einem lesbaren "list" wäre es einfacher...

Auch ein "list" (wenn möglich lesbar) von den Temperatursensoren bitte
Titel: Antw:Doif schaltet diesen Sommer nicht letzten sommer super geschaltet
Beitrag von: Wasserwerk33 am 13 August 2020, 22:49:58
HI amenomade,

Sind die List so leider nicht lesbar?? Habe sie immer einfach kopiert.

List aussenthemometer
nternals:
   CHANGED   
   DEF        0C
   FUUID      5c8cece2-f33f-faf7-e34c-fda23f475953f641
   IODev      myJeeLink
   LASTInputDev myJeeLink
   LaCrosse_lastRcv 2020-08-13 22:43:45
   MSGCNT     20551
   NAME       LaCrosse_0C
   NR         48
   STATE      T: 25.9 H: 66
   TYPE       LaCrosse
   addr       0C
   battery_new 0
   bufferedH 
   bufferedT 
   corr1      0
   corr2      0
   myJeeLink_MSGCNT 20695
   myJeeLink_RAWMSG OK 9 12 1 4 235 66
   myJeeLink_TIME 2020-08-13 22:43:45
   previousH  66
   previousT  25.9
   sensorType 0=T(H)
   READINGS:
     2020-08-13 22:43:45   battery         ok
     2020-08-13 22:43:45   humidity        66
     2020-08-13 22:42:15   state           T: 25.9 H: 66
     2020-08-13 22:43:45   temperature     25.9
Attributes:
   IODev      myJeeLink
   alias      Garten
   event-on-change-reading humidity, temperatur
   room       Garten,Lüfter,Ole,Temperatur,Til
   verbose    0


Automatik trost einstellung Lüfter Off
Internals:
   CFGFN     
   DEF        (([21:00-18:00]) and ([LaCrosse_0C:temperature] - [LaCrosse_23:temperature]) < - 0.2
and ([LaCrosse_23:temperature] > ([Ole_Luefter_automatik:desired] + 2))) (set Luefter_Ole on) (set Luefter_Ole off)
DOELSEIF
((([LaCrosse_0C:temperature] - [LaCrosse_23:temperature]) > 0.2) or ([LaCrosse_0C:temperature] < [Ole_Luefter_automatik:desired]))
(set Luefter_Ole off)
   FUUID      5f344a24-f33f-faf7-62e8-a01008e1902c96db
   MODEL      FHEM
   NAME       Ole_Luefter_automatik
   NOTIFYDEV  LaCrosse_23,LaCrosse_0C,Ole_Luefter_automatik,global
   NR         3575
   NTFY_ORDER 50-Ole_Luefter_automatik
   STATE      on
   TYPE       DOIF
   VERSION    20811 2019-12-22 17:45:08
   READINGS:
     2020-08-13 22:51:56   cmd             1.2
     2020-08-13 22:51:56   cmd_event       Ole_Luefter_automatik
     2020-08-13 22:51:56   cmd_nr          1
     2020-08-13 22:51:56   cmd_seqnr       2
     2020-08-13 20:29:07   desired         23
     2020-08-13 21:26:47   mode            enabled
     2020-08-13 22:51:56   state           on
     2020-08-13 21:26:47   timer_01_c01    14.08.2020 21:00:00
     2020-08-13 21:26:47   timer_02_c01    14.08.2020 18:00:00
   Regex:
     accu:
     cond:
       LaCrosse_0C:
         0:
           temperature ^LaCrosse_0C$:^temperature:
         1:
           temperature ^LaCrosse_0C$:^temperature:
       LaCrosse_23:
         0:
           temperature ^LaCrosse_23$:^temperature:
         1:
           temperature ^LaCrosse_23$:^temperature:
       Ole_Luefter_automatik:
         0:
           desired    ^Ole_Luefter_automatik$:^desired:
         1:
           desired    ^Ole_Luefter_automatik$:^desired:
   attr:
     cmdState:
       0:
         on
       1:
         off
     repeatcmd:
     wait:
     waitdel:
     waitsame:
   condition:
     0          (::DOIF_time($hash,0,1,$wday,$hms)) and (::ReadingValDoIf($hash,'LaCrosse_0C','temperature') - ::ReadingValDoIf($hash,'LaCrosse_23','temperature')) < - 0.2  and (::ReadingValDoIf($hash,'LaCrosse_23','temperature') > (::ReadingValDoIf($hash,'Ole_Luefter_automatik','desired') + 2))
     1          ((::ReadingValDoIf($hash,'LaCrosse_0C','temperature') - ::ReadingValDoIf($hash,'LaCrosse_23','temperature')) > 0.2) or (::ReadingValDoIf($hash,'LaCrosse_0C','temperature') < ::ReadingValDoIf($hash,'Ole_Luefter_automatik','desired'))
   days:
   do:
     0:
       0          set Luefter_Ole on
       1          set Luefter_Ole off
     1:
       0          set Luefter_Ole off
     2:
   helper:
     DEVFILTER  ^global$|^LaCrosse_23$|^LaCrosse_0C$|^Ole_Luefter_automatik$
     NOTIFYDEV  global|LaCrosse_23|LaCrosse_0C|Ole_Luefter_automatik
     globalinit 1
     last_timer 2
     sleeptimer -1
     timerdev   
     timerevent
     timerevents
     timereventsState
     triggerDev
   interval:
     0          -1
     1          0
   intervalfunc:
   localtime:
     0          1597431600
     1          1597420800
   readings:
     all         LaCrosse_0C:temperature LaCrosse_23:temperature Ole_Luefter_automatik:desired
   realtime:
     0          21:00:00
     1          18:00:00
   time:
     0          21:00:00
     1          18:00:00
   timeCond:
     0          0
     1          0
   timer:
     0          0
     1          0
   timers:
     0           0  1
   triggertime:
     1597420800:
       localtime  1597420800
       hash:
     1597431600:
       localtime  1597431600
       hash:
   uiState:
   uiTable:
Attributes:
   cmdState   on|off
   readingList desired
   room       Lüfter,Ole
   setList    desired:14,20,21,22,23,24
   webCmd     desiredcode]

Thermometer Ole
[code]Internals:
   CHANGED   
   DEF        23
   FUUID      5c8cec5e-f33f-faf7-d88d-b88e022c32234ad5
   IODev      myJeeLink
   LASTInputDev myJeeLink
   LaCrosse_lastRcv 2020-08-13 22:46:11
   MSGCNT     18208
   NAME       LaCrosse_23
   NR         46
   STATE      T: 27.4 H: 59
   TYPE       LaCrosse
   addr       23
   battery_new 0
   corr1      0
   corr2      0
   myJeeLink_MSGCNT 18332
   myJeeLink_RAWMSG OK 9 35 1 4 250 59
   myJeeLink_TIME 2020-08-13 22:46:11
   previousH  59
   previousT  27.4
   sensorType 0=T(H)
   READINGS:
     2020-08-13 22:46:11   battery         ok
     2020-08-13 22:46:11   humidity        59
     2020-08-13 22:46:03   state           T: 27.4 H: 59
     2020-08-13 22:46:11   temperature     27.4
     2020-04-02 03:46:59   temperature2    42.5
Attributes:
   IODev      myJeeLink
   alias      Ole Zimmer
   event-min-interval .*:3600
   event-on-change-reading temperatur,humidity
   room       Lüfter,Ole,Temperatur


Automatik Lüfter Ole
Internals:
   CFGFN     
   DEF        (([21:00-18:00]) and ([LaCrosse_0C:temperature] - [LaCrosse_23:temperature]) < - 0.2
and ([LaCrosse_23:temperature] > ([Ole_Luefter_automatik:desired] + 2))) (set Luefter_Ole on) (set Luefter_Ole off)
DOELSEIF
((([LaCrosse_0C:temperature] - [LaCrosse_23:temperature]) > 0.2) or ([LaCrosse_0C:temperature] < [Ole_Luefter_automatik:desired]))
(set Luefter_Ole off)
   FUUID      5f344a24-f33f-faf7-62e8-a01008e1902c96db
   MODEL      FHEM
   NAME       Ole_Luefter_automatik
   NOTIFYDEV  LaCrosse_23,LaCrosse_0C,Ole_Luefter_automatik,global
   NR         3575
   NTFY_ORDER 50-Ole_Luefter_automatik
   STATE      off
   TYPE       DOIF
   VERSION    20811 2019-12-22 17:45:08
   READINGS:
     2020-08-13 21:27:20   cmd             2
     2020-08-13 21:27:20   cmd_event       Ole_Luefter_automatik
     2020-08-13 21:27:20   cmd_nr          2
     2020-08-13 20:29:07   desired         23
     2020-08-13 21:26:47   mode            enabled
     2020-08-13 21:27:20   state           off
     2020-08-13 21:26:47   timer_01_c01    14.08.2020 21:00:00
     2020-08-13 21:26:47   timer_02_c01    14.08.2020 18:00:00
   Regex:
     accu:
     cond:
       LaCrosse_0C:
         0:
           temperature ^LaCrosse_0C$:^temperature:
         1:
           temperature ^LaCrosse_0C$:^temperature:
       LaCrosse_23:
         0:
           temperature ^LaCrosse_23$:^temperature:
         1:
           temperature ^LaCrosse_23$:^temperature:
       Ole_Luefter_automatik:
         0:
           desired    ^Ole_Luefter_automatik$:^desired:
         1:
           desired    ^Ole_Luefter_automatik$:^desired:
   attr:
     cmdState:
       0:
         on
       1:
         off
     repeatcmd:
     wait:
     waitdel:
     waitsame:
   condition:
     0          (::DOIF_time($hash,0,1,$wday,$hms)) and (::ReadingValDoIf($hash,'LaCrosse_0C','temperature') - ::ReadingValDoIf($hash,'LaCrosse_23','temperature')) < - 0.2  and (::ReadingValDoIf($hash,'LaCrosse_23','temperature') > (::ReadingValDoIf($hash,'Ole_Luefter_automatik','desired') + 2))
     1          ((::ReadingValDoIf($hash,'LaCrosse_0C','temperature') - ::ReadingValDoIf($hash,'LaCrosse_23','temperature')) > 0.2) or (::ReadingValDoIf($hash,'LaCrosse_0C','temperature') < ::ReadingValDoIf($hash,'Ole_Luefter_automatik','desired'))
   days:
   do:
     0:
       0          set Luefter_Ole on
       1          set Luefter_Ole off
     1:
       0          set Luefter_Ole off
     2:
   helper:
     DEVFILTER  ^global$|^LaCrosse_23$|^LaCrosse_0C$|^Ole_Luefter_automatik$
     NOTIFYDEV  global|LaCrosse_23|LaCrosse_0C|Ole_Luefter_automatik
     globalinit 1
     last_timer 2
     sleeptimer -1
     timerdev   
     timerevent
     timerevents
     timereventsState
     triggerDev
   interval:
     0          -1
     1          0
   intervalfunc:
   localtime:
     0          1597431600
     1          1597420800
   readings:
     all         LaCrosse_0C:temperature LaCrosse_23:temperature Ole_Luefter_automatik:desired
   realtime:
     0          21:00:00
     1          18:00:00
   time:
     0          21:00:00
     1          18:00:00
   timeCond:
     0          0
     1          0
   timer:
     0          0
     1          0
   timers:
     0           0  1
   triggertime:
     1597420800:
       localtime  1597420800
       hash:
     1597431600:
       localtime  1597431600
       hash:
   uiState:
   uiTable:
Attributes:
   cmdState   on|off
   readingList desired
   room       Lüfter,Ole
   setList    desired:14,20,21,22,23,24
   webCmd     desired
Titel: Antw:Doif schaltet diesen Sommer nicht letzten sommer super geschaltet
Beitrag von: amenomade am 13 August 2020, 22:57:05
Diese "lists" sehen besser aus
   NAME       LaCrosse_0C
     2020-08-13 22:43:45   temperature     25.9
  event-on-change-reading humidity, temperatur


So wirst Du nie Events auf "temperature" haben und das DOIF kann darauf nicht reagieren

EDIT: genauso bei  Ole_Luefter_automatik
Titel: Antw:Doif schaltet diesen Sommer nicht letzten sommer super geschaltet
Beitrag von: frank am 13 August 2020, 23:54:12
ausserdem ist scheinbar noch ein leerzeichen vor "temperatur", was da nicht hin gehört.

komisch finde ich allerdings, warum das letztes jahr funktioniert haben soll.  :)
Titel: Antw:Doif schaltet diesen Sommer nicht letzten sommer super geschaltet
Beitrag von: amenomade am 14 August 2020, 00:16:14
Vorletztes Jahr hätte es gar nicht funktioniert:

https://forum.fhem.de/index.php/topic,91959.msg844624.html#msg844624
   event-on-change-reading 1


Aber letztes Jahr hatte er sicher event-on-change-reading nicht so, da:
https://forum.fhem.de/index.php/topic,101742.msg952152.html#msg952152
     2019-06-24 19:22:44   e_LaCrosse_0C_temperature 30.9
https://forum.fhem.de/index.php/topic,99861.msg945894.html#msg945894
     2019-06-03 22:56:23   e_LaCrosse_0C_temperature 20.9
     2019-06-03 22:56:24   e_LaCrosse_23_temperature 22.8


Ich wusste, dass ich dieses DOIF schon gesehen hatte ;)
Titel: Antw:Doif schaltet diesen Sommer nicht letzten sommer super geschaltet
Beitrag von: Wasserwerk33 am 14 August 2020, 06:22:41
Hi
Habe die Daten geändert danke. Ne event on Chance reqding ist gläubig irgendwann im Winter dazu gekommen. Wollte es nicht so überladen habe, falls man was nachschauen wollte.

Ja genau es war letztes Jahr im Juni dort hat es aber geschaltet danach den ganzen Sommer
Titel: Antw:Doif schaltet diesen Sommer nicht letzten sommer super geschaltet
Beitrag von: Wasserwerk33 am 14 August 2020, 16:27:04
Ich habe die event on chance reading mal rausgeschmissen mal schauen ob es jetzt wieder klappt.

Ab wann kann man eigentlich die Sensoren wieder sehen? Sie werden mir nämlich im reading angezeigt.

  Internals:
   CFGFN     
   DEF        (([21:00-18:00]) and ([LaCrosse_0C:temperature] - [LaCrosse_23:temperature]) < - 0.2
and ([LaCrosse_23:temperature] > ([Ole_Luefter_automatik:desired] + 2))) (set Luefter_Ole on) (set Luefter_Ole off)
DOELSE
((([LaCrosse_0C:temperature] - [LaCrosse_23:temperature]) > 0.2) or ([LaCrosse_0C:temperature] < [Ole_Luefter_automatik:desired]))
(set Luefter_Ole off)
   FUUID      5f344a24-f33f-faf7-62e8-a01008e1902c96db
   MODEL      FHEM
   NAME       Ole_Luefter_automatik
   NOTIFYDEV  global,Ole_Luefter_automatik,LaCrosse_23,LaCrosse_0C
   NR         3575
   NTFY_ORDER 50-Ole_Luefter_automatik
   STATE      off
   TYPE       DOIF
   VERSION    20811 2019-12-22 17:45:08
   READINGS:
     2020-08-14 16:30:17   cmd             2.2
     2020-08-14 16:30:17   cmd_event       Ole_Luefter_automatik
     2020-08-14 16:30:17   cmd_nr          2
     2020-08-14 16:30:17   cmd_seqnr       2
     2020-08-13 20:29:07   desired         23
     2020-08-14 16:30:14   mode            enabled
     2020-08-14 16:30:17   state           off
     2020-08-14 16:30:14   timer_01_c01    14.08.2020 21:00:00
     2020-08-14 16:30:14   timer_02_c01    14.08.2020 18:00:00
   Regex:
     accu:
     cond:
       LaCrosse_0C:
         0:
           temperature ^LaCrosse_0C$:^temperature:
       LaCrosse_23:
         0:
           temperature ^LaCrosse_23$:^temperature:
       Ole_Luefter_automatik:
         0:
           desired    ^Ole_Luefter_automatik$:^desired:
   attr:
     cmdState:
       0:
         on
       1:
         off
     repeatcmd:
     wait:
     waitdel:
     waitsame:
   condition:
     0          (::DOIF_time($hash,0,1,$wday,$hms)) and (::ReadingValDoIf($hash,'LaCrosse_0C','temperature') - ::ReadingValDoIf($hash,'LaCrosse_23','temperature')) < - 0.2  and (::ReadingValDoIf($hash,'LaCrosse_23','temperature') > (::ReadingValDoIf($hash,'Ole_Luefter_automatik','desired') + 2))
   days:
   do:
     0:
       0          set Luefter_Ole on
       1          set Luefter_Ole off
     1:
       0          (([LaCrosse_0C:temperature] - [LaCrosse_23:temperature]) > 0.2) or ([LaCrosse_0C:temperature] < [Ole_Luefter_automatik:desired])
       1          set Luefter_Ole off
   helper:
     DEVFILTER  ^global$|^Ole_Luefter_automatik$|^LaCrosse_23$|^LaCrosse_0C$
     NOTIFYDEV  global|Ole_Luefter_automatik|LaCrosse_23|LaCrosse_0C
     globalinit 1
     last_timer 2
     sleeptimer -1
     timerdev   
     timerevent
     timerevents
     timereventsState
     triggerDev
   interval:
     0          -1
     1          0
   intervalfunc:
   localtime:
     0          1597431600
     1          1597420800
   readings:
     all         LaCrosse_0C:temperature LaCrosse_23:temperature Ole_Luefter_automatik:desired
   realtime:
     0          21:00:00
     1          18:00:00
   time:
     0          21:00:00
     1          18:00:00
   timeCond:
     0          0
     1          0
   timer:
     0          0
     1          0
   timers:
     0           0  1
   triggertime:
     1597420800:
       localtime  1597420800
       hash:
     1597431600:
       localtime  1597431600
       hash:
   uiState:
   uiTable:
Attributes:
   cmdState   on|off
   readingList desired
   room       Lüfter,Ole
   setList    desired:14,20,21,22,23,24
   webCmd     desired 
Titel: Antw:Doif schaltet diesen Sommer nicht letzten sommer super geschaltet
Beitrag von: amenomade am 14 August 2020, 18:35:30
Also eigentlich sollte ein Tempsensor sich regelmässig melden. Es wird aber nix passieren, so lange er nicht wieder auf cmd1 springt

Du hast immer noch ein DOELSE statt ein DOELSEIF. Deswegen interpretiert DOIF das so: nur eine "condition", und im 2. Zweig zwei Befehle:
Zitat condition:
     0          (::DOIF_time($hash,0,1,$wday,$hms)) and (::ReadingValDoIf($hash,'LaCrosse_0C','temperature') - ::ReadingValDoIf($hash,'LaCrosse_23','temperature')) < - 0.2  and (::ReadingValDoIf($hash,'LaCrosse_23','temperature') > (::ReadingValDoIf($hash,'Ole_Luefter_automatik','desired') + 2))
   days:
   do:
     0:
       0          set Luefter_Ole on
       1          set Luefter_Ole off
     1:
       0          (([LaCrosse_0C:temperature] - [LaCrosse_23:temperature]) > 0.2) or ([LaCrosse_0C:temperature] < [Ole_Luefter_automatik:desired])
       1          set Luefter_Ole off
Titel: Antw:Doif schaltet diesen Sommer nicht letzten sommer super geschaltet
Beitrag von: Wasserwerk33 am 14 August 2020, 21:21:08
Hi
Ne hatte es danach noch auf DOELSEIF geändert. Nur leider sprengt er nur im CMD 1.2 und schaltet den Lüfter nicht an
Funktoniert das nicht mit (set Luefter_Ole on) (set Luefter_Ole off)??? Wenn ich das off wegnehmen schaltet er sofort an. Wenn die Bedingungen passen.
Titel: Antw:Doif schaltet diesen Sommer nicht letzten sommer super geschaltet
Beitrag von: amenomade am 14 August 2020, 21:28:34
Bitte ein "list".

Aber bitte in der Fassung, die jetzt produktiv ist! Sowas wie "neee, das war in meinem list, aber das hatte ich geändert" ist nur ein Zeitverlusst für uns. Was sollen wir analysieren, wenn was wir analysieren nicht das ist, was läuft? ? ? Was soll es bringen?

Wenn er bei cmd1.2 gelandet ist, hat er die Befehle ausgeführt.
Wenn Du aber set on und sofort wieder set off machst, dann geht der Lüfter zu kurz an, damit Du etwas sehen kannst. Wahrscheinlich fehlt dir noch ein "wait" Attribut
Titel: Antw:Doif schaltet diesen Sommer nicht letzten sommer super geschaltet
Beitrag von: Wasserwerk33 am 14 August 2020, 21:33:52
Tut mir leid. werde sofort eins nachreichen.
Hier schaltet es nicht. Dieses ist mit (set Luefter_Ole on) (set Luefter_Ole off)
Internals:
   CFGFN     
   DEF        (([21:00-18:00]) and ([LaCrosse_0C:temperature] - [LaCrosse_23:temperature]) < - 0.2
and ([LaCrosse_23:temperature] > ([Ole_Luefter_automatik:desired] + 2))) (set Luefter_Ole on)
(set Luefter_Ole off)
DOELSEIF
((([LaCrosse_0C:temperature] - [LaCrosse_23:temperature]) > 0.2) or ([LaCrosse_0C:temperature] < [Ole_Luefter_automatik:desired]))
(set Luefter_Ole off)
   FUUID      5f344a24-f33f-faf7-62e8-a01008e1902c96db
   MODEL      FHEM
   NAME       Ole_Luefter_automatik
   NOTIFYDEV  global,LaCrosse_0C,LaCrosse_23,Ole_Luefter_automatik
   NR         3575
   NTFY_ORDER 50-Ole_Luefter_automatik
   STATE      on
   TYPE       DOIF
   VERSION    20811 2019-12-22 17:45:08
   READINGS:
     2020-08-14 21:32:34   Device          LaCrosse_0C
     2020-08-14 21:32:23   cmd             1.2
     2020-08-14 21:32:23   cmd_event       LaCrosse_0C
     2020-08-14 21:32:23   cmd_nr          1
     2020-08-14 21:32:23   cmd_seqnr       2
     2020-08-13 20:29:07   desired         23
     2020-08-14 21:32:34   e_LaCrosse_0C_temperature 25.1
     2020-08-14 21:32:33   e_LaCrosse_23_temperature 27.9
     2020-08-14 21:32:21   mode            enabled
     2020-08-14 21:32:23   state           on
     2020-08-14 21:32:21   timer_01_c01    15.08.2020 21:00:00
     2020-08-14 21:32:21   timer_02_c01    15.08.2020 18:00:00
   Regex:
     accu:
     cond:
       LaCrosse_0C:
         0:
           temperature ^LaCrosse_0C$:^temperature:
         1:
           temperature ^LaCrosse_0C$:^temperature:
       LaCrosse_23:
         0:
           temperature ^LaCrosse_23$:^temperature:
         1:
           temperature ^LaCrosse_23$:^temperature:
       Ole_Luefter_automatik:
         0:
           desired    ^Ole_Luefter_automatik$:^desired:
         1:
           desired    ^Ole_Luefter_automatik$:^desired:
   attr:
     cmdState:
       0:
         on
       1:
         off
     repeatcmd:
     wait:
     waitdel:
     waitsame:
   condition:
     0          (::DOIF_time($hash,0,1,$wday,$hms)) and (::ReadingValDoIf($hash,'LaCrosse_0C','temperature') - ::ReadingValDoIf($hash,'LaCrosse_23','temperature')) < - 0.2  and (::ReadingValDoIf($hash,'LaCrosse_23','temperature') > (::ReadingValDoIf($hash,'Ole_Luefter_automatik','desired') + 2))
     1          ((::ReadingValDoIf($hash,'LaCrosse_0C','temperature') - ::ReadingValDoIf($hash,'LaCrosse_23','temperature')) > 0.2) or (::ReadingValDoIf($hash,'LaCrosse_0C','temperature') < ::ReadingValDoIf($hash,'Ole_Luefter_automatik','desired'))
   days:
   do:
     0:
       0          set Luefter_Ole on
       1          set Luefter_Ole off
     1:
       0          set Luefter_Ole off
     2:
   helper:
     DEVFILTER  ^global$|^LaCrosse_0C$|^LaCrosse_23$|^Ole_Luefter_automatik$
     NOTIFYDEV  global|LaCrosse_0C|LaCrosse_23|Ole_Luefter_automatik
     event      battery: ok,temperature: 25.1,humidity: 64
     globalinit 1
     last_timer 2
     sleeptimer -1
     timerdev   LaCrosse_0C
     timerevent battery: ok,temperature: 25.1,humidity: 64
     triggerDev LaCrosse_0C
     timerevents:
       battery: ok
       temperature: 25.1
       humidity: 64
     timereventsState:
       battery: ok
       temperature: 25.1
       humidity: 64
     triggerEvents:
       battery: ok
       temperature: 25.1
       humidity: 64
     triggerEventsState:
       battery: ok
       temperature: 25.1
       humidity: 64
   internals:
   interval:
     0          -1
     1          0
   intervalfunc:
   localtime:
     0          1597518000
     1          1597507200
   readings:
     all         LaCrosse_0C:temperature LaCrosse_23:temperature Ole_Luefter_automatik:desired
   realtime:
     0          21:00:00
     1          18:00:00
   time:
     0          21:00:00
     1          18:00:00
   timeCond:
     0          0
     1          0
   timer:
     0          0
     1          0
   timers:
     0           0  1
   trigger:
   triggertime:
     1597507200:
       localtime  1597507200
       hash:
     1597518000:
       localtime  1597518000
       hash:
   uiState:
   uiTable:
Attributes:
   cmdState   on|off
   readingList desired
   room       Lüfter,Ole
   setList    desired:14,20,21,22,23,24
   webCmd     desired


werde es aber mal mit einem wait befehl ausprobieren so wie du meintest.
Titel: Antw:Doif schaltet diesen Sommer nicht letzten sommer super geschaltet
Beitrag von: amenomade am 14 August 2020, 21:39:08
ZUmindest triggern jetzt Lacrosse_0C und Lacrosse_23
Titel: Antw:Doif schaltet diesen Sommer nicht letzten sommer super geschaltet
Beitrag von: Wasserwerk33 am 14 August 2020, 21:57:05
Ja genau die Triggern. Das hat geklappt -> dafür schon mal danke.
Und ich habe einfach das off entfernt und schon schaltet es.

Internals:
   CFGFN     
   DEF        (([21:00-18:00]) and ([LaCrosse_0C:temperature] - [LaCrosse_23:temperature]) < - 0.2
and ([LaCrosse_23:temperature] > ([Ole_Luefter_automatik:desired] + 2))) (set Luefter_Ole on)
DOELSEIF
((([LaCrosse_0C:temperature] - [LaCrosse_23:temperature]) > 0.2) or ([LaCrosse_0C:temperature] < [Ole_Luefter_automatik:desired]))
(set Luefter_Ole off)
   FUUID      5f344a24-f33f-faf7-62e8-a01008e1902c96db
   MODEL      FHEM
   NAME       Ole_Luefter_automatik
   NOTIFYDEV  Ole_Luefter_automatik,LaCrosse_0C,LaCrosse_23,global
   NR         3575
   NTFY_ORDER 50-Ole_Luefter_automatik
   STATE      on
   TYPE       DOIF
   VERSION    20811 2019-12-22 17:45:08
   READINGS:
     2020-08-14 21:55:55   Device          LaCrosse_23
     2020-08-14 21:55:42   cmd             1
     2020-08-14 21:55:42   cmd_event       Ole_Luefter_automatik
     2020-08-14 21:55:42   cmd_nr          1
     2020-08-13 20:29:07   desired         23
     2020-08-14 21:55:50   e_LaCrosse_0C_temperature 24.8
     2020-08-14 21:55:55   e_LaCrosse_23_temperature 27.8
     2020-08-14 21:55:38   mode            enabled
     2020-08-14 21:55:42   state           on
     2020-08-14 21:55:38   timer_01_c01    15.08.2020 21:00:00
     2020-08-14 21:55:38   timer_02_c01    15.08.2020 18:00:00
   Regex:
     accu:
     cond:
       LaCrosse_0C:
         0:
           temperature ^LaCrosse_0C$:^temperature:
         1:
           temperature ^LaCrosse_0C$:^temperature:
       LaCrosse_23:
         0:
           temperature ^LaCrosse_23$:^temperature:
         1:
           temperature ^LaCrosse_23$:^temperature:
       Ole_Luefter_automatik:
         0:
           desired    ^Ole_Luefter_automatik$:^desired:
         1:
           desired    ^Ole_Luefter_automatik$:^desired:
   attr:
     cmdState:
       0:
         on
       1:
         off
     repeatcmd:
     wait:
     waitdel:
     waitsame:
   condition:
     0          (::DOIF_time($hash,0,1,$wday,$hms)) and (::ReadingValDoIf($hash,'LaCrosse_0C','temperature') - ::ReadingValDoIf($hash,'LaCrosse_23','temperature')) < - 0.2  and (::ReadingValDoIf($hash,'LaCrosse_23','temperature') > (::ReadingValDoIf($hash,'Ole_Luefter_automatik','desired') + 2))
     1          ((::ReadingValDoIf($hash,'LaCrosse_0C','temperature') - ::ReadingValDoIf($hash,'LaCrosse_23','temperature')) > 0.2) or (::ReadingValDoIf($hash,'LaCrosse_0C','temperature') < ::ReadingValDoIf($hash,'Ole_Luefter_automatik','desired'))
   days:
   do:
     0:
       0          set Luefter_Ole on
     1:
       0          set Luefter_Ole off
     2:
   helper:
     DEVFILTER  ^global$|^LaCrosse_23$|^LaCrosse_0C$|^Ole_Luefter_automatik$
     NOTIFYDEV  global|LaCrosse_23|LaCrosse_0C|Ole_Luefter_automatik
     event      battery: ok,temperature: 27.8,humidity: 59
     globalinit 1
     last_timer 2
     sleeptimer -1
     timerdev   LaCrosse_23
     timerevent battery: ok,temperature: 27.8,humidity: 59
     triggerDev LaCrosse_23
     timerevents:
       battery: ok
       temperature: 27.8
       humidity: 59
     timereventsState:
       battery: ok
       temperature: 27.8
       humidity: 59
     triggerEvents:
       battery: ok
       temperature: 27.8
       humidity: 59
     triggerEventsState:
       battery: ok
       temperature: 27.8
       humidity: 59
   internals:
   interval:
     0          -1
     1          0
   intervalfunc:
   localtime:
     0          1597518000
     1          1597507200
   readings:
     all         LaCrosse_0C:temperature LaCrosse_23:temperature Ole_Luefter_automatik:desired
   realtime:
     0          21:00:00
     1          18:00:00
   time:
     0          21:00:00
     1          18:00:00
   timeCond:
     0          0
     1          0
   timer:
     0          0
     1          0
   timers:
     0           0  1
   trigger:
   triggertime:
     1597507200:
       localtime  1597507200
       hash:
     1597518000:
       localtime  1597518000
       hash:
   uiState:
   uiTable:
Attributes:
   cmdState   on|off
   readingList desired
   room       Lüfter,Ole
   setList    desired:14,20,21,22,23,24
   webCmd     desired