[Gelöst] MODEL Perl statt FHEM: Attribut für do, repeatsame und wait fehlen

Begonnen von Gisbert, 13 Mai 2018, 13:07:26

Vorheriges Thema - Nächstes Thema

turo

Eigentlich müsste das gut funktionieren. Es wäre interessant, wie jetzt das ganze Statement aussieht und was der genaue Inhalt von Wetter.Proplanta:weather ist. Ein "list" von dem DOIF müsste das alles zeigen.

Gruss,
Turo
3xRaspberry PI, Homematic, SELVE Rollos, 1-wire, Logitech Harmony, Alexa, Fussbodenheizung (ESP8266), Netatmo

Gisbert

Hallo Turo,

ein list meines "Monster"-DOIFs mit den beiden Punkten in "stark.bew.lkt":
Internals:
   CFGFN      ./FHEM/Markisensteuerung.cfg
   DEF        ([?Treppenhaus.Markise.hoch.dum] eq "off" and ($md ge "04-15" and $md le "10-15")
and [?Treppenhaus.Markise:level] != 0 and [?Wetter.Proplanta:wind] <= 25 and [TH.Kuhlmannweg8:temperature] >= 22
and ReadingsAge("Wetter.Proplanta","weather","") <= 900 and [?Wetter.Proplanta:weather] =~ /^(sonnig|heiter|wolkig|stark.bew.lkt)$/
and [?Buienradar:rainDataNow] == 0 and [?13:00-22:00] and [?myTwilight:azimuth] >=185 and sunset_abs(-3420) gt $hms)
(set Treppenhaus.Markise off)
DOELSEIF ([?Treppenhaus.Markise.runter.dum] eq "on" and [?Treppenhaus.Markise:level] != 100
and ([Wetter.Proplanta:wind] > 25 or [Buienradar:rainDataNow] != 0 or [Wetter.Proplanta:weather] !~ /^(sonnig|heiter|wolkig|stark.bew.lkt)$/))
(set Treppenhaus.Markise on)
DOELSEIF ([?Treppenhaus.Markise.runter.dum] eq "off" and [?Treppenhaus.Markise:level] != 100
and ([Wetter.Proplanta:wind] > 25 or [TH.Kuhlmannweg8:temperature] < 22
or ReadingsAge("Wetter.Proplanta","weather","") > 1260 or [Wetter.Proplanta:weather] !~ /^(sonnig|heiter|wolkig|stark.bew.lkt)$/
or [Buienradar:rainDataNow] != 0 or [myTwilight:azimuth] <185 or sunset_abs(-3420) le $hms))
(set Treppenhaus.Markise on)
DOELSEIF ([Treppenhaus.Markise.runter.dum] eq "on")
DOELSEIF ([Treppenhaus.Markise.hoch.dum] eq "on")
DOELSEIF ([Treppenhaus.Markise:level] == 0 and [+600]) (setreading Treppenhaus.Markise level 0)
   MODEL      FHEM
   NAME       Treppenhaus.Markisensteuerung
   NR         353
   NTFY_ORDER 50-Treppenhaus.Markisensteuerung
   STATE      cmd_3
   TYPE       DOIF
   READINGS:
     2018-05-16 07:01:36   Device          Wetter.Proplanta
     2018-05-15 21:01:49   cmd             3
     2018-05-15 21:01:49   cmd_count       2
     2018-05-15 21:01:49   cmd_event       myTwilight
     2018-05-15 21:01:49   cmd_nr          3
     2018-05-16 07:01:15   e_Buienradar_rainDataNow 0.00
     2018-05-16 06:55:26   e_TH.Kuhlmannweg8_temperature 13.0
     2018-05-15 21:01:55   e_Treppenhaus.Markise_level 100
     2018-05-16 07:01:36   e_Wetter.Proplanta_weather Nebel
     2018-05-16 07:01:36   e_Wetter.Proplanta_wind 3.6
     2018-05-16 07:00:58   e_myTwilight_azimuth 72.01
     2018-05-15 20:52:20   mode            enabled
     2018-05-15 21:01:49   state           cmd_3
     2018-05-15 22:00:00   timer_01_c01    16.05.2018 13:00:00
     2018-05-15 22:00:00   timer_02_c01    16.05.2018 22:00:00
     2018-05-16 07:02:20   timer_03_c06    16.05.2018 07:12:20
     2018-05-15 21:01:48   wait_timer      no timer
   Regex:
   condition:
     0          InternalDoIf($hash,'Treppenhaus.Markise.hoch.dum','STATE') eq "off" and ($md ge "04-15" and $md le "10-15")  and ReadingValDoIf($hash,'Treppenhaus.Markise','level') != 0 and ReadingValDoIf($hash,'Wetter.Proplanta','wind') <= 25 and ReadingValDoIf($hash,'TH.Kuhlmannweg8','temperature') >= 22  and ReadingsAge("Wetter.Proplanta","weather","") <= 900 and ReadingValDoIf($hash,'Wetter.Proplanta','weather') =~ /^(sonnig|heiter|wolkig|stark.bew.lkt)$/  and ReadingValDoIf($hash,'Buienradar','rainDataNow') == 0 and DOIF_time($hash,0,1,$wday,$hms) and ReadingValDoIf($hash,'myTwilight','azimuth') >=185 and sunset_abs(-3420) gt $hms
     1          InternalDoIf($hash,'Treppenhaus.Markise.runter.dum','STATE') eq "on" and ReadingValDoIf($hash,'Treppenhaus.Markise','level') != 100  and (ReadingValDoIf($hash,'Wetter.Proplanta','wind') > 25 or ReadingValDoIf($hash,'Buienradar','rainDataNow') != 0 or ReadingValDoIf($hash,'Wetter.Proplanta','weather') !~ /^(sonnig|heiter|wolkig|stark.bew.lkt)$/)
     2          InternalDoIf($hash,'Treppenhaus.Markise.runter.dum','STATE') eq "off" and ReadingValDoIf($hash,'Treppenhaus.Markise','level') != 100  and (ReadingValDoIf($hash,'Wetter.Proplanta','wind') > 25 or ReadingValDoIf($hash,'TH.Kuhlmannweg8','temperature') < 22  or ReadingsAge("Wetter.Proplanta","weather","") > 1260 or ReadingValDoIf($hash,'Wetter.Proplanta','weather') !~ /^(sonnig|heiter|wolkig|stark.bew.lkt)$/  or ReadingValDoIf($hash,'Buienradar','rainDataNow') != 0 or ReadingValDoIf($hash,'myTwilight','azimuth') <185 or sunset_abs(-3420) le $hms)
     3          InternalDoIf($hash,'Treppenhaus.Markise.runter.dum','STATE') eq "on"
     4          InternalDoIf($hash,'Treppenhaus.Markise.hoch.dum','STATE') eq "on"
     5          ReadingValDoIf($hash,'Treppenhaus.Markise','level') == 0 and DOIF_time_once($hash,2,$wday)
   days:
   devices:
     0           TH.Kuhlmannweg8
     1           Wetter.Proplanta Buienradar
     2           Wetter.Proplanta TH.Kuhlmannweg8 Buienradar myTwilight
     3           Treppenhaus.Markise.runter.dum
     4           Treppenhaus.Markise.hoch.dum
     5           Treppenhaus.Markise
     all         TH.Kuhlmannweg8 Wetter.Proplanta Buienradar myTwilight Treppenhaus.Markise.runter.dum Treppenhaus.Markise.hoch.dum Treppenhaus.Markise
   do:
     0:
       0          set Treppenhaus.Markise off
     1:
       0          set Treppenhaus.Markise on
     2:
       0          set Treppenhaus.Markise on
     3:
       0         
     4:
       0         
     5:
       0          setreading Treppenhaus.Markise level 0
     6:
   helper:
     DOIF_Readings_events
     DOIF_eventas
     event      timer_3
     globalinit 1
     last_timer 3
     sleepdevice myTwilight
     sleepsubtimer -1
     sleeptimer -1
     timerdev   myTwilight
     timerevent azimuth: 300.07,elevation: 1.87,twilight: 77,twilight_weather: 62.6,compasspoint: west-northwest
     triggerDev
     bm:
       DOIF_Get:
         cnt        1
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        16.05. 07:03:50
         max        0.000139951705932617
         tot        0.000139951705932617
         mAr:
           HASH(0x6e625c0)
           Treppenhaus.Markisensteuerung
           ?
       DOIF_Notify:
         cnt        27681
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        15.05. 21:00:49
         max        0.0788650512695312
         tot        6.69328022003174
         mAr:
           HASH(0x6e625c0)
           HASH(0x6ca4bd0)
       DOIF_Set:
         cnt        22
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        16.05. 07:03:50
         max        0.000476837158203125
         tot        0.00360012054443359
         mAr:
           HASH(0x6e625c0)
           Treppenhaus.Markisensteuerung
           ?
     timerevents:
       azimuth: 300.07
       elevation: 1.87
       twilight: 77
       twilight_weather: 62.6
       compasspoint: west-northwest
     timereventsState:
       azimuth: 300.07
       elevation: 1.87
       twilight: 77
       twilight_weather: 62.6
       compasspoint: west-northwest
     triggerEvents:
       timer_3
     triggerEventsState:
       fc1_chOfRain00: 15
       fc0_weatherNightIcon: https://www.proplanta.de/wetterdaten/images/symbole/n2.gif
       fc3_windDir09: 294
       fc0_temp00: 16
       fc0_cloud03: 100
       fc2_temp09: 14
       fc3_wind12: 10.8
       fc0_windDir12: 356
       fc0_wind21: 14.4
       fc0_temp09: 20
       fc2_rain21: 0
       windDirIcon: https://www.proplanta.de/wetterdaten/images/symbole/w28.gif
       fc1_temp06: 11
       fc2_chOfRain03: 20
       fc1_temp03: 10
       fc0_uv: 6
       fc3_chOfRain09: 5
       fc0_gust21: 36
       fc2_rain06: 0
       fc2_weatherNight: wolkig
       fc0_chOfRain06: 20
       fc0_weatherEvening: Regenschauer
       fc1_tempMax: 20
       fc2_frost: 0
       fc0_windDir06: 321
       fc0_date: 16.05.2018
       fc2_windDir06: 304
       fc0_wind03: 3.6
       fc2_chOfRain00: 5
       fc3_chOfRain21: 5
       fc3_weatherMorning: heiter
       fc3_temp15: 20
       fc0_wind09: 14.4
       fc1_cloud21: 0
       fc2_temp03: 11
       fc0_dew: 1
       fc1_cloud03: 12.5
       fc2_temp12: 18
       obsTime: 06:00
       durationFetchReadings: 6.00
       fc3_chOfRain15: 10
       fc0_chOfRain00: 40
       fc3_rain15: 0
       fc3_gust12: 10.8
       fc3_cloud12: 37.5
       fc2_rad: 5.8
       fc3_wind03: 7.2
       fc1_weatherNightIcon: https://www.proplanta.de/wetterdaten/images/symbole/n3.gif
       fc3_cloud18: 12.5
       fc0_weatherMorning: bedeckt
       fc0_moonRise: 06:45
       fc0_rain21: 0
       fc0_cloud15: 0
       fc0_temp18: 20
       fc2_gust18: 18
       fc1_temp21: 12
       fc0_chOfRain12: 40
       fc1_moonSet: 23:37
       fc3_wind15: 10.8
       fc1_windDir18: 325
       fc1_weatherEvening: heiter
       fc3_windDir12: 296
       fc2_chOfRain12: 10
       fc1_weatherNight: wolkig
       fc3_temp06: 10
       wind: 3.6
       fc0_wind00: 3.6
       fc0_cloud06: 100
       fc1_windDir03: 337
       fc2_dew: 1
       fc1_windDir00: 345
       fc1_gust00: 28.8
       fc2_gust12: 18
       fc2_windDir09: 303
       fc3_cloud15: 37.5
       fc2_windDir12: 298
       fc2_date: 18.05.2018
       fc3_weatherEvening: heiter
       fc0_rain18: 0.4
       fc3_cloud06: 12.5
       pressure: 1014.5
       fc1_chOfRain06: 5
       fc1_wind18: 14.4
       fc0_wind12: 21.6
       fc2_temp06: 10
       fc3_gust15: 10.8
       fc3_weatherDay: heiter
       fc0_cloud00: 100
       fc2_chOfRainDay: 15
       fc1_windDir09: 323
       fc2_chOfRain18: 20
       fc2_rain15: 0
       fc3_rain00: 0
       fc2_wind15: 14.4
       fc3_wind00: 7.2
       fc1_chOfRain09: 5
       fc2_wind00: 10.8
       fc0_frost: 0
       fc1_moonRise: 07:29
       fc1_windDir15: 321
       fc0_wind15: 21.6
       fc2_chOfRainNight: 10
       windDir: 225
       fc1_gust09: 21.6
       fc0_chOfRainDay: 40
       fc1_rain21: 0
       fc0_rad: 7.2
       fc3_wind21: 7.2
       fc0_sun: 30
       fc3_temp03: 9
       fc0_weatherDay: Regenschauer
       fc3_weatherDayIcon: https://www.proplanta.de/wetterdaten/images/symbole/t2.gif
       fc0_windDir00: 53
       fc1_cloud15: 37.5
       fc3_windDir15: 305
       fc0_temp21: 15
       fc3_rain12: 0
       fc1_chOfRain15: 10
       fc2_wind09: 10.8
       fc3_frost: 0
       fc1_gust03: 25.2
       fc0_chOfRain03: 40
       fc1_rain09: 0
       fc1_rad: 7.8
       fc2_weatherMorningIcon: https://www.proplanta.de/wetterdaten/images/symbole/t5.gif
       fc1_wind15: 14.4
       fc2_temp15: 17
       fc2_rain12: 0
       fc3_chOfRain03: 5
       fc1_tempMin: 9
       fc3_uv: 6
       weather: Nebel
       fc2_wind03: 10.8
       cloudBaseMax: 2000
       fc0_chOfRain21: 0
       fc1_wind06: 10.8
       fc2_gust00: 14.4
       fc1_chOfRainDay: 5
       fc3_temp09: 15
       fc2_wind06: 10.8
       fc2_gust09: 14.4
       fc2_rain00: 0
       fc1_weatherEveningIcon: https://www.proplanta.de/wetterdaten/images/symbole/n2.gif
       fc0_gust18: 36
       fc3_temp21: 14
       fc1_gust21: 18
       fc3_dew: 2
       fc3_rain09: 0
       fc1_chOfRain12: 10
       fc1_temp00: 13
       fc2_gust15: 18
       fc0_cloud09: 62.5
       fc3_wind09: 7.2
       fc0_weatherMorningIcon: https://www.proplanta.de/wetterdaten/images/symbole/t5.gif
       fc1_uv: 6
       fc0_gust15: 36
       fc1_windDir21: 334
       fc3_rad: 8
       fc0_temp03: 15
       fc3_gust09: 7.2
       fc1_rain15: 0
       fc2_wind18: 10.8
       fc1_temp12: 19
       fc1_temp18: 17
       fc0_cloud12: 62.5
       fc2_wind21: 10.8
       temperature: 12
       fc3_rain: 0
       fc2_windDir18: 339
       fc0_tempMin: 14
       fc2_tempMin: 9
       fc3_wind18: 10.8
       fc1_gust12: 21.6
       fc3_chOfRainDay: 5
       humidity: 93.5
       fc1_rain03: 0
       fc3_tempMax: 20
       fc0_rain12: 2
       fc1_cloud12: 50
       fc2_cloud12: 50
       fc2_tempMax: 18
       fc0_tempMax: 24
       fc2_chOfRain21: 20
       fc1_gust06: 21.6
       fc2_chOfRain15: 15
       fc0_gust03: 18
       fc0_rain15: 0
       fc1_cloud00: 75
       fc0_weatherEveningIcon: https://www.proplanta.de/wetterdaten/images/symbole/n6.gif
       fc3_gust18: 14.4
       fc3_cloud21: 25
       fc0_temp06: 16
       fc0_weatherDayIcon: https://www.proplanta.de/wetterdaten/images/symbole/t6.gif
       fc3_cloud03: 12.5
       fc2_cloud06: 100
       fc2_rain03: 0
       fc0_temp15: 23
       fc1_temp15: 20
       fc1_temp09: 15
       fc1_frost: 0
       fc1_sun: 75
       fc3_windDir03: 312
       fc2_gust21: 14.4
       fc0_rain09: 0
       fc3_rain18: 0
       fc3_weatherNightIcon: https://www.proplanta.de/wetterdaten/images/symbole/n2.gif
       fc1_chOfRain03: 5
       fc1_gust18: 25.2
       fc1_rain: 0
       fc3_rain21: 0
       fc1_chOfRain18: 5
       fc1_weatherMorningIcon: https://www.proplanta.de/wetterdaten/images/symbole/t2.gif
       fc3_temp12: 19
       fc0_temp12: 24
       fc2_gust06: 14.4
       fc0_windDir03: 359
       fc3_weatherMorningIcon: https://www.proplanta.de/wetterdaten/images/symbole/t2.gif
       cloudBaseMin: 1500
       fc2_uv: 3
       fc1_wind21: 10.8
       fc1_rain06: 0
       fc3_chOfRain00: 15
       fc0_gust12: 36
       fc1_wind03: 10.8
       fc2_rain09: 0
       fc2_chOfRain06: 20
       fc2_cloud09: 75
       fc2_moonSet: --:--
       fc0_gust06: 21.6
       fc3_chOfRainNight: 5
       fc1_cloud18: 25
       fc2_rain: 0
       fc3_rain06: 0
       fc1_rain18: 0
       fc1_wind12: 14.4
       fc0_weatherNight: heiter
       fc3_date: 19.05.2018
       fc3_chOfRain06: 5
       fc0_rain06: 0
       fc1_cloud09: 25
       fc2_cloud18: 100
       fc1_date: 17.05.2018
       fc2_evapor: 2
       fc0_chOfRain18: 40
       fc0_windDir21: 350
       fc3_moonRise: 09:24
       fc0_windDir18: 354
       fc0_gust09: 28.8
       fc2_windDir15: 317
       fc2_temp18: 16
       dewPoint: 11.3
       fc1_weatherDay: heiter
       fc1_weatherDayIcon: https://www.proplanta.de/wetterdaten/images/symbole/t2.gif
       fc3_tempMin: 7
       fc2_cloud21: 100
       weatherIcon: https://www.proplanta.de/wetterdaten/images/symbole/t12.gif
       fc3_wind06: 7.2
       fc2_moonRise: 08:21
       fc2_wind12: 14.4
       fc0_rain00: 0.6
       fc3_temp00: 11
       fc2_rain18: 0
       fc3_moonSet: 00:40
       fc0_moonSet: 22:25
       fc0_rain: 4.7
       fc2_cloud03: 100
       fc0_chOfRainNight: 5
       fc1_dew: 0
       fc1_wind00: 14.4
       fc0_windDir15: 356
       fc2_weatherDayIcon: https://www.proplanta.de/wetterdaten/images/symbole/t4.gif
       fc1_rain12: 0
       fc1_chOfRainNight: 10
       fc3_weatherEveningIcon: https://www.proplanta.de/wetterdaten/images/symbole/n2.gif
       fc3_cloud09: 12.5
       visibility: 25
       fc3_sun: 75
       fc0_rain03: 1.7
       fc3_chOfRain18: 5
       fc2_chOfRain09: 15
       fc3_gust00: 10.8
       fc3_temp18: 18
       fc2_weatherEvening: bedeckt
       fc1_wind09: 14.4
       fc1_chOfRain21: 0
       fc3_windDir00: 337
       fc0_evapor: 2
       fc1_rain00: 0
       fc2_windDir00: 320
       fc0_chOfRain09: 10
       fc2_cloud00: 25
       fc1_windDir12: 320
       fc3_windDir06: 303
       fc0_wind18: 21.6
       fc1_evapor: 2
       fc2_temp21: 14
       fc0_chOfRain15: 0
       fc2_windDir21: 341
       fc1_weatherMorning: heiter
       fc3_gust21: 14.4
       fc0_cloud21: 0
       fc3_rain03: 0
       fc2_gust03: 14.4
       fc1_cloud06: 12.5
       fc1_gust15: 25.2
       fc2_weatherMorning: bedeckt
       fc3_windDir18: 315
       fc2_cloud15: 87.5
       fc3_evapor: 2
       fc0_cloud18: 50
       fc1_windDir06: 337
       fc0_wind06: 7.2
       fc0_gust00: 14.4
       fc3_cloud00: 87.5
       fc2_windDir03: 310
       fc3_chOfRain12: 10
       fc0_windDir09: 356
       fc3_gust03: 10.8
       fc2_weatherEveningIcon: https://www.proplanta.de/wetterdaten/images/symbole/n5.gif
       fc2_weatherNightIcon: https://www.proplanta.de/wetterdaten/images/symbole/n3.gif
       fc2_weatherDay: stark bewölkt
       fc2_temp00: 11
       fc3_gust06: 10.8
       fc2_sun: 25
       fc3_weatherNight: heiter
       fc3_windDir21: 342
       state: Tmin: 14 Tmax: 24 T: 12 H: 93.5 W: 3.6 P: 1014.5
       lastConnection: 326 values captured in 6.00 s
       Zeitstempel: 2018-05-16 07:01
       Temperature: 12.0
       Humidity: 94
       Druck: 1014
   internals:
     0           Treppenhaus.Markise.hoch.dum:STATE
     1           Treppenhaus.Markise.runter.dum:STATE
     2           Treppenhaus.Markise.runter.dum:STATE
     3           Treppenhaus.Markise.runter.dum:STATE
     4           Treppenhaus.Markise.hoch.dum:STATE
     all         Treppenhaus.Markise.hoch.dum:STATE Treppenhaus.Markise.runter.dum:STATE
   interval:
     0          -1
     1          0
   itimer:
   localtime:
     0          1526468400
     1          1526500800
     2          1526447540
   readings:
     0           TH.Kuhlmannweg8:temperature
     1           Wetter.Proplanta:wind Buienradar:rainDataNow Wetter.Proplanta:weather
     2           Wetter.Proplanta:wind TH.Kuhlmannweg8:temperature Wetter.Proplanta:weather Buienradar:rainDataNow myTwilight:azimuth
     5           Treppenhaus.Markise:level
     all         TH.Kuhlmannweg8:temperature Wetter.Proplanta:wind Buienradar:rainDataNow Wetter.Proplanta:weather myTwilight:azimuth Treppenhaus.Markise:level
   realtime:
     0          13:00:00
     1          22:00:00
     2          07:12:20
   time:
     0          13:00:00
     1          22:00:00
     2          +600
   timeCond:
     0          0
     1          0
     2          5
   timer:
     0          0
     1          0
     2          0
   timers:
     5           2
   trigger:
   triggertime:
     1526447540:
       localtime  1526447540
       hash:
     1526468400:
       localtime  1526468400
       hash:
     1526500800:
       localtime  1526500800
       hash:
   uiState:
   uiTable:
Attributes:
   comment    Umlaut in bewölkt durch einen Punkt (.) ersetzt.
Der Punkt kann alles mögliche sein, ein normales Zeichen, ein Umlaut oder auch ein Leerzeichen.
   devStateIcon (cmd_1|cmd_6):fts_sunblind@red (cmd_2|cmd_3|cmd_7):fts_sunblind_0@gray cmd_4:fts_shutter_down@red cmd_5:fts_shutter_up@red
   icon       fts_sunblind
   repeatsame 3:3:3:3:3:60
   room       CUL_HM,Mobile,Rollladen
   wait       60:60:60:1:1:1


Viele​ Grüße​ Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

Stefan Knoll

Ich würde gerne nochmal auf das ursprüngliche Problem zurückkommen:

Mir scheint, dass es eine - meiner Meinung nach unglückliche Änderung - im Zusammenhang mit dem genannten Update im DOIF gibt:

Vorher konnte ein DOIF auch mit einem Kommentar beginnen
Seit dem Update passiert folgendes:
- Beim Reboot der FHEM-Installation wird die DOIF-Komponente nicht mehr als "FHEM" erkannt, sondern als "Perl" gekennzeichnet und verliert damit jegliche Funktion
- Bei Anlage / Änderung des DOIF in der GUI passiert das jedoch nicht.

Man kann also aus dem "Perl" wieder ein "FHEM" machen, indem man einfach den Editiermodus aktiviert und dann - ohne jegliche Änderung vorzunehmen - den "Modify"-Button betätigt.
Letzteres ist natürlich für den laufenden Betrieb kein gangbarer Workaround.

Lässt sich das Problem vielleicht wieder beheben?

Gruß
Stefan


Damian

Zitat von: Stefan Knoll am 27 Mai 2018, 11:45:16
Ich würde gerne nochmal auf das ursprüngliche Problem zurückkommen:

Mir scheint, dass es eine - meiner Meinung nach unglückliche Änderung - im Zusammenhang mit dem genannten Update im DOIF gibt:

Vorher konnte ein DOIF auch mit einem Kommentar beginnen
Seit dem Update passiert folgendes:
- Beim Reboot der FHEM-Installation wird die DOIF-Komponente nicht mehr als "FHEM" erkannt, sondern als "Perl" gekennzeichnet und verliert damit jegliche Funktion
- Bei Anlage / Änderung des DOIF in der GUI passiert das jedoch nicht.

Man kann also aus dem "Perl" wieder ein "FHEM" machen, indem man einfach den Editiermodus aktiviert und dann - ohne jegliche Änderung vorzunehmen - den "Modify"-Button betätigt.
Letzteres ist natürlich für den laufenden Betrieb kein gangbarer Workaround.

Lässt sich das Problem vielleicht wieder beheben?

Gruß
Stefan

Poste mal die Ausgabe von list von dem betroffenen DOIF.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Stefan Knoll

So funktioniert's:


Internals:
   DEF        (
## =====================================
## HOCHFAHREN MIT ZUFÄLLIGER VERZÖGERUNG

## Beginn Bedingungen
  ( ## Beginn Änderungsbedingungen
    ## WENN DIE WETTERABHÄNGIGE HELLIGKEIT DEN SCHWELLWERT ÜBERSCHREITET
    [mytwilight:twilight_weather] >= [twilight_weather_threshold_morning.dy:state]
  ) ## Ende Änderungsbedingungen
  and
  ( ## Beginn Nebenbedingungen (müssen mit einem "?" beginnen)
    [?kueche.rollo:pct] != 100 and
    [?kueche.rollo.di:state] eq "cmd_6"
  ) ## Ende Nebenbedingungen
) ## Ende Bedingungen

  set kueche.rollo 100
)

DOELSEIF

## =====================
## SOFORTIGES HOCHFAHREN

( ## Beginn Bedingungen
  ( ## Beginn Änderungsbedingungen
    ## WENN JEMAND TAGSÜBER HEIMKOMMT
    [Anwesenheit] eq "present" 
  ) ## Ende Änderungsbedingungen
  and
  ( ## Beginn Nebenbedingungen (müssen mit einem "?" beginnen)
    ## Nebenbedingungen (müssen mit einem "?" beginnen)
    [?mytwilight:twilight_weather] >= [twilight_weather_threshold_west.dy:state]  and
    [?kueche.rollo:pct] != 100 and
    [?kueche.rollo.di:state] ne "cmd_4" and 
    [?kueche.rollo.di:state] ne "cmd_6"
  ) ## Ende Nebenbedingungen
) ## Ende Bedingungen 

  set kueche.rollo 100
)

DOELSEIF

## ======================
## VERZÖGERTES HOCHFAHREN

( ## Beginn Bedingungen
  ( ## Beginn Änderungsbedingungen
    (
      ## HOCHFAHREN DES ROLLOS ZUR HEIZUNGSUNTERSTÜTZUNG
      [garten.tempdiffsensor.west.high.low:temperature] >= [garten.tempdiff.lower.value.dy:state] and
      [wohn.fh] eq "on"
    ) or (
      ## HOCHFAHREN DES ROLLOS WENN DIE BEDINGUNGEN ZUM SONNENABHÄNGIGEN RUNTERFAHREN NICHT MEHR GEGEBEN SIND
      [garten.tempdiffsensor.west.high.low:temperature] < [garten.tempdiff.lower.value.dy:state] and
      [garten.tempdiffsensor.west.low:temperature] < [outside_temperatur_upper_threshold_dy:state] and
      ( 
        [wohn.fh] ne "on" or
        [?Anwesenheit] eq "present"
      )
    ) 
  ) ## Ende Änderungsbedingungen
  and
  ( ## Beginn Nebenbedingungen (müssen mit einem "?" beginnen) [?kueche.rollo:pct] != 100 and 
    [?mytwilight:twilight_weather] == 100 and
    [?kueche.rollo.di:state] ne "cmd_6" and
    [?kueche.rollo.di:state] ne "cmd_1" and
    [?kueche.rollo.di:state] ne "cmd_2"
  ) ## Ende Nebenbedingungen
) ## Ende Bedingungen 

  set kueche.rollo 100
)

DOELSEIF

## =================================
## VERZÖGERTES HERUNTERFAHREN ZU 1/2

( ## Beginn Bedingungen
  ( ## Beginn Änderungsbedingungen
    ## BEI ÜBERSCHREITUNG DES UNTEREN SCHWELLWERTS FÜR DIE SONNENINTENSITÄT
    (
      [garten.tempdiffsensor.west.high.low:temperature] >= [garten.tempdiff.lower.value.dy:state] or
      [garten.tempdiffsensor.west.low:temperature] >= [outside_temperatur_upper_threshold_dy:state]
    ) and
    [wohn.fh] eq "off" and
    [Anwesenheit] eq "present"
  ) ## Ende Änderungsbedingungen
  and
  ( ## Beginn Nebenbedingungen (müssen mit einem "?" beginnen)
    [?mytwilight:twilight_weather] == 100 and
    [?kueche.rollo:pct] != 50
  ) ## Ende Nebenbedingungen
) ## Ende Bedingungen 

  set kueche.rollo 50
)

DOELSEIF

## ========================================
## VERZÖGERTES VOLLSTÄNDIGES HERUNTERFAHREN

( ## Beginn Bedingungen
  ( ## Beginn Änderungsbedingungen
    (
      ( ## BEI STARKER SONNENEINSTRAHLUNG WENN KEINER ZUHAUSE IST
        [wohn.fh] eq "off" and
        (
          [garten.tempdiffsensor.west.high.low:temperature] >= [garten.tempdiff.upper.value.dy:state] or
          [garten.tempdiffsensor.west.low:temperature] >= [outside_temperatur_upper_threshold_dy:state]
        )
      ) or ( ## WENN ES DRAUSSEN SEHR KALT UND KEINER ZUHAUSE IST
        [garten.tempdiffsensor.west.low:temperature] < [wohn.thermostat.climate:desired-temp] - [tempdiff_inside_outside_threshold_dy:state] and
        [wohn.fh] eq "on"
      )
    ) and
    [Anwesenheit] eq "absent"
  ) ## Ende Änderungsbedingungen
  and
  ( ## Beginn Nebenbedingungen (müssen mit einem "?" beginnen)
    [?mytwilight:twilight_weather] == 100 and
    [?kueche.rollo:pct] != 0   
  ) ## Ende Nebenbedingungen
) ## Ende Bedingungen 

  set kueche.rollo 0
)

DOELSEIF

## ================================================================
## HERUNTERFAHREN DES ROLLOS ANHAND DER WETTERABHÄNGIGEN HELLIGKEIT

( ## Beginn Bedingungen
  ( ## Beginn Änderungsbedingungen
    [mytwilight:twilight_weather] < [twilight_weather_threshold_west.dy:state]
  ) ## Ende Änderungsbedingungen
  and
  ( ## Beginn Nebenbedingungen (müssen mit einem "?" beginnen)
    [?12:01 - 23:59] and
    [?mytwilight:twilight] != 100
  ) ## Ende Nebenbedingungen
) ## Ende Bedingungen
(
  set kueche.rollo 0
)
   MODEL      FHEM
   NAME       kueche.rollo.di
   NR         816
   NTFY_ORDER 50-kueche.rollo.di
   STATE      cmd_3
   TYPE       DOIF
   Helper:
     DBLOG:
       cmd:
         logdb:
           TIME       1527612121.73442
           VALUE      3
       cmd_event:
         logdb:
           TIME       1527612121.73442
           VALUE      garten.tempdiffsensor.west.high.low
       cmd_nr:
         logdb:
           TIME       1527612121.73442
           VALUE      3
       state:
         logdb:
           TIME       1527612121.73442
           VALUE      cmd_3
       wait_timer:
         logdb:
           TIME       1527612139.96711
           VALUE      29.05.2018 18:57:19 cmd_3 garten.tempdiffsensor.west.high.low
   READINGS:
     2018-05-29 18:42:55   Device          wohn.thermostat.climate
     2018-05-29 18:42:01   cmd             3
     2018-05-29 18:42:01   cmd_event       garten.tempdiffsensor.west.high.low
     2018-05-29 18:42:01   cmd_nr          3
     2018-05-29 17:31:15   e_Anwesenheit_STATE present
     2018-05-29 18:42:19   e_garten.tempdiffsensor.west.high.low_temperature 1.5
     2018-05-29 18:42:19   e_garten.tempdiffsensor.west.low_temperature 28.4
     2018-05-29 06:26:01   e_mytwilight_twilight_weather 100
     2018-05-29 07:01:00   e_wohn.fh_STATE off
     2018-05-29 18:42:55   e_wohn.thermostat.climate_desired-temp 22.5
     2018-05-27 11:35:45   mode            enabled
     2018-05-29 18:42:01   state           cmd_3
     2018-05-29 04:16:10   timer_01_c06    29.05.2018 12:01:00
     2018-05-29 04:16:10   timer_02_c06    29.05.2018 23:59:00
     2018-05-29 18:42:19   wait_timer      29.05.2018 18:57:19 cmd_3 garten.tempdiffsensor.west.high.low
   Regex:
   condition:
     0                  (           ReadingValDoIf($hash,'mytwilight','twilight_weather') >= ReadingValDoIf($hash,'twilight_weather_threshold_morning.dy','state')    )    and   (      ReadingValDoIf($hash,'kueche.rollo','pct') != 100 and     ReadingValDoIf($hash,'kueche.rollo.di','state') eq "cmd_6"   ) 
     1              (           InternalDoIf($hash,'Anwesenheit','STATE') eq "present"     )    and   (           ReadingValDoIf($hash,'mytwilight','twilight_weather') >= ReadingValDoIf($hash,'twilight_weather_threshold_west.dy','state')  and     ReadingValDoIf($hash,'kueche.rollo','pct') != 100 and     ReadingValDoIf($hash,'kueche.rollo.di','state') ne "cmd_4" and       ReadingValDoIf($hash,'kueche.rollo.di','state') ne "cmd_6"   ) 
     2              (      (               ReadingValDoIf($hash,'garten.tempdiffsensor.west.high.low','temperature') >= ReadingValDoIf($hash,'garten.tempdiff.lower.value.dy','state') and       InternalDoIf($hash,'wohn.fh','STATE') eq "on"      ) or (               ReadingValDoIf($hash,'garten.tempdiffsensor.west.high.low','temperature') < ReadingValDoIf($hash,'garten.tempdiff.lower.value.dy','state') and       ReadingValDoIf($hash,'garten.tempdiffsensor.west.low','temperature') < ReadingValDoIf($hash,'outside_temperatur_upper_threshold_dy','state') and       (           InternalDoIf($hash,'wohn.fh','STATE') ne "on" or         InternalDoIf($hash,'Anwesenheit','STATE') eq "present"       )      )     )    and   (      ReadingValDoIf($hash,'mytwilight','twilight_weather') == 100 and     ReadingValDoIf($hash,'kueche.rollo.di','state') ne "cmd_6" and     ReadingValDoIf($hash,'kueche.rollo.di','state') ne "cmd_1" and     ReadingValDoIf($hash,'kueche.rollo.di','state') ne "cmd_2"   ) 
     3              (           (       ReadingValDoIf($hash,'garten.tempdiffsensor.west.high.low','temperature') >= ReadingValDoIf($hash,'garten.tempdiff.lower.value.dy','state') or       ReadingValDoIf($hash,'garten.tempdiffsensor.west.low','temperature') >= ReadingValDoIf($hash,'outside_temperatur_upper_threshold_dy','state')     ) and     InternalDoIf($hash,'wohn.fh','STATE') eq "off" and     InternalDoIf($hash,'Anwesenheit','STATE') eq "present"   )    and   (      ReadingValDoIf($hash,'mytwilight','twilight_weather') == 100 and     ReadingValDoIf($hash,'kueche.rollo','pct') != 50   ) 
     4              (      (       (          InternalDoIf($hash,'wohn.fh','STATE') eq "off" and          (           ReadingValDoIf($hash,'garten.tempdiffsensor.west.high.low','temperature') >= ReadingValDoIf($hash,'garten.tempdiff.upper.value.dy','state') or           ReadingValDoIf($hash,'garten.tempdiffsensor.west.low','temperature') >= ReadingValDoIf($hash,'outside_temperatur_upper_threshold_dy','state')         )       ) or (          ReadingValDoIf($hash,'garten.tempdiffsensor.west.low','temperature') < ReadingValDoIf($hash,'wohn.thermostat.climate','desired-temp') - ReadingValDoIf($hash,'tempdiff_inside_outside_threshold_dy','state') and         InternalDoIf($hash,'wohn.fh','STATE') eq "on"       )     ) and     InternalDoIf($hash,'Anwesenheit','STATE') eq "absent"    )    and   (      ReadingValDoIf($hash,'mytwilight','twilight_weather') == 100 and     ReadingValDoIf($hash,'kueche.rollo','pct') != 0      ) 
     5              (      ReadingValDoIf($hash,'mytwilight','twilight_weather') < ReadingValDoIf($hash,'twilight_weather_threshold_west.dy','state')   )    and   (      DOIF_time($hash,0,1,$wday,$hms) and     ReadingValDoIf($hash,'mytwilight','twilight') != 100    ) 
   days:
   devices:
     0           mytwilight twilight_weather_threshold_morning.dy
     1           Anwesenheit twilight_weather_threshold_west.dy
     2           garten.tempdiffsensor.west.high.low garten.tempdiff.lower.value.dy wohn.fh garten.tempdiffsensor.west.low outside_temperatur_upper_threshold_dy
     3           garten.tempdiffsensor.west.high.low garten.tempdiff.lower.value.dy garten.tempdiffsensor.west.low outside_temperatur_upper_threshold_dy wohn.fh Anwesenheit
     4           wohn.fh garten.tempdiffsensor.west.high.low garten.tempdiff.upper.value.dy garten.tempdiffsensor.west.low outside_temperatur_upper_threshold_dy wohn.thermostat.climate tempdiff_inside_outside_threshold_dy Anwesenheit
     5           mytwilight twilight_weather_threshold_west.dy
     all         mytwilight twilight_weather_threshold_morning.dy Anwesenheit twilight_weather_threshold_west.dy garten.tempdiffsensor.west.high.low garten.tempdiff.lower.value.dy wohn.fh garten.tempdiffsensor.west.low outside_temperatur_upper_threshold_dy garten.tempdiff.upper.value.dy wohn.thermostat.climate tempdiff_inside_outside_threshold_dy
   do:
     0:
       0               set kueche.rollo 100 
     1:
       0               set kueche.rollo 100 
     2:
       0               set kueche.rollo 100
     3:
       0               set kueche.rollo 50
     4:
       0               set kueche.rollo 0
     5:
       0             set kueche.rollo 0 
     6:
   helper:
     DOIF_Readings_events
     DOIF_eventas
     event      desired-temp: 22.5,humidity: 62,measured-temp: 24.1,T: 24.1 desired: 22.5,dewpoint: 16.4
     globalinit 1
     last_timer 2
     sleepdevice garten.tempdiffsensor.west.high.low
     sleepsubtimer 0
     sleeptimer 2
     timerdev   garten.tempdiffsensor.west.low
     timerevent temperature: 28.4
     triggerDev wohn.thermostat.climate
     timerevents:
       temperature: 28.4
     timereventsState:
       temperature: 28.4
     triggerEvents:
       desired-temp: 22.5
       humidity: 62
       measured-temp: 24.1
       T: 24.1 desired: 22.5
       dewpoint: 16.4
     triggerEventsState:
       desired-temp: 22.5
       humidity: 62
       measured-temp: 24.1
       state: T: 24.1 desired: 22.5
       dewpoint: 16.4
   internals:
     1           Anwesenheit:STATE
     2           wohn.fh:STATE Anwesenheit:STATE
     3           wohn.fh:STATE Anwesenheit:STATE
     4           wohn.fh:STATE Anwesenheit:STATE
     all         Anwesenheit:STATE wohn.fh:STATE
   interval:
     0          -1
     1          0
   intervalfunc:
   intervaltimer:
   itimer:
   localtime:
     0          1527588060
     1          1527631140
   perlblock:
   readings:
     0           mytwilight:twilight_weather twilight_weather_threshold_morning.dy:state
     1           twilight_weather_threshold_west.dy:state
     2           garten.tempdiffsensor.west.high.low:temperature garten.tempdiff.lower.value.dy:state garten.tempdiffsensor.west.low:temperature outside_temperatur_upper_threshold_dy:state
     3           garten.tempdiffsensor.west.high.low:temperature garten.tempdiff.lower.value.dy:state garten.tempdiffsensor.west.low:temperature outside_temperatur_upper_threshold_dy:state
     4           garten.tempdiffsensor.west.high.low:temperature garten.tempdiff.upper.value.dy:state garten.tempdiffsensor.west.low:temperature outside_temperatur_upper_threshold_dy:state wohn.thermostat.climate:desired-temp tempdiff_inside_outside_threshold_dy:state
     5           mytwilight:twilight_weather twilight_weather_threshold_west.dy:state
     all         mytwilight:twilight_weather twilight_weather_threshold_morning.dy:state twilight_weather_threshold_west.dy:state garten.tempdiffsensor.west.high.low:temperature garten.tempdiff.lower.value.dy:state garten.tempdiffsensor.west.low:temperature outside_temperatur_upper_threshold_dy:state garten.tempdiff.upper.value.dy:state wohn.thermostat.climate:desired-temp tempdiff_inside_outside_threshold_dy:state
   realtime:
     0          12:01:00
     1          23:59:00
   time:
     0          12:01:00
     1          23:59:00
   timeCond:
     0          5
     1          5
   timer:
     0          0
     1          0
   timers:
   trigger:
   triggertime:
     1527631140:
       localtime  1527631140
       hash:
   uiState:
   uiTable:
Attributes:
   DbLogInclude 1
   alias      Steuerung Küchenrollo
   cmdpause   3600
   disable    0
   event-on-change-reading .*
   event-on-update-reading .*
   group      Steuerungslogik
   repeatsame 0:0:0:0:0:0
   room       Steuerung Rolladen
   wait       rand(600):0:900:900:900:rand(600)


Davor hat's so angefangen und das zuvor beschriebene Verhalten erzeugt (der einzige Unterschied ist die Position der ersten öffnenden Klammer):


Internals:
   DEF       
## =====================================
## HOCHFAHREN MIT ZUFÄLLIGER VERZÖGERUNG
(
## Beginn Bedingungen
  ( ## Beginn Änderungsbedingungen
    ## WENN DIE WETTERABHÄNGIGE HELLIGKEIT DEN SCHWELLWERT ÜBERSCHREITET
    [mytwilight:twilight_weather] >= [twilight_weather_threshold_morning.dy:state]
  ) ## Ende Änderungsbedingungen
  and
  ( ## Beginn Nebenbedingungen (müssen mit einem "?" beginnen)
    [?kueche.rollo:pct] != ...

Damian

Dann benutzt du offenbar nicht die aktuelle DOIF-Version.

Gegenbeweis:

list test liefert:

Internals:
   CFGFN     
   DEF       
## =====================================
## HOCHFAHREN MIT ZUFÄLLIGER VERZÖGERUNG
(
## Beginn Bedingungen
  ( ## Beginn Änderungsbedingungen
    ## WENN DIE WETTERABHÄNGIGE HELLIGKEIT DEN SCHWELLWERT ÜBERSCHREITET
    [mytwilight:twilight_weather] >= [twilight_weather_threshold_morning.dy:state]
  ) ## Ende Änderungsbedingungen
)

   MODEL      FHEM
   NAME       test
   NR         592
   NTFY_ORDER 50-test
   STATE      initialized
   TYPE       DOIF
   READINGS:
...
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF