[gelöst] DOIF: Auslösung trotz nicht erfüllter Bedingung?

Begonnen von Ralli, 18 Juni 2015, 17:54:47

Vorheriges Thema - Nächstes Thema

Ralli

Hallo,

ich habe ein ziemlich großes DOIF gebaut. Davon daher nur ein kleiner Ausschnitt mit der ersten Bedingung:


Internals:
   DEF        ((([{sunrise(0,"06:30","08:30")}-10:29|8] and ![?Feiertag]) or [{sunrise(0,"07:35","10:00")}-10:29]) and
  [Wetter:fc1_condition] =~ /sonnig|heiter|teilweise wolkig/ and
  ([Wetter:fc1_high_c] > 22 or ([GEN_Aussensensor:temperature] > 18 and [GEN_Aussensensor:luminosity] > 2500)))
  ({Beschattung("Ost")})
DOELSEIF ...
   NAME       GEN_Beschattung
   NR         541
   NTFY_ORDER 50-GEN_Beschattung
   STATE      cmd_1
   TYPE       DOIF
   CHANGETIME:
   Helper:
     Dblog:
       Cmd_event:
         Eventlog:
           TIME       1434640363.92222
           VALUE      GEN_Aussensensor
       Cmd_nr:
         Eventlog:
           TIME       1434640363.92222
           VALUE      1
       State:
         Eventlog:
           TIME       1434640363.92222
           VALUE      cmd_1
   Readings:
     2015-06-18 17:12:43   cmd_event       GEN_Aussensensor
     2015-06-18 17:12:43   cmd_nr          1
     2015-06-18 17:45:59   e_GEN_Aussensensor_luminosity 7207
     2015-06-18 17:45:59   e_GEN_Aussensensor_temperature 26.1
     2015-06-18 17:42:40   e_Wetter_condition überwiegend wolkig
     2015-06-18 17:42:40   e_Wetter_fc1_condition teilweise wolkig
     2015-06-18 17:42:40   e_Wetter_fc1_high_c 20
     2015-06-18 17:12:43   state           cmd_1
     2015-06-18 17:12:49   timer_10_c5     19.06.2015 12:31:00
     2015-06-18 17:12:49   timer_11_c5     19.06.2015 15:59:00
     2015-06-18 17:12:49   timer_12_c6     19.06.2015 16:00:00
     2015-06-18 17:12:49   timer_13_c6     18.06.2015 17:59:00
     2015-06-18 17:12:49   timer_14_c7     19.06.2015 16:00:00
     2015-06-18 17:12:49   timer_15_c7     18.06.2015 17:59:00
     2015-06-18 17:12:49   timer_16_c8     18.06.2015 18:00:00
     2015-06-18 17:12:49   timer_17_c9     18.06.2015 18:01:00
     2015-06-18 17:12:49   timer_18_c9     18.06.2015 19:00:00
     2015-06-18 17:12:49   timer_19_c10    18.06.2015 18:01:00
     2015-06-18 17:12:49   timer_1_c1      19.06.2015 06:30:00|8
     2015-06-18 17:12:49   timer_20_c10    18.06.2015 19:59:00
     2015-06-18 17:12:49   timer_21_c11    18.06.2015 20:00:00
     2015-06-18 17:12:49   timer_22_c12    18.06.2015 22:00:00
     2015-06-18 17:12:49   timer_2_c1      19.06.2015 10:29:00|8
     2015-06-18 17:12:49   timer_3_c1      19.06.2015 07:34:59
     2015-06-18 17:12:49   timer_4_c1      19.06.2015 10:29:00
     2015-06-18 17:12:49   timer_5_c2      19.06.2015 10:30:00
     2015-06-18 17:12:49   timer_6_c2      19.06.2015 12:29:00
     2015-06-18 17:12:49   timer_7_c3      19.06.2015 12:30:00
     2015-06-18 17:12:49   timer_8_c4      19.06.2015 12:31:00
     2015-06-18 17:12:49   timer_9_c4      19.06.2015 15:59:00
   Condition:
     0          ((DOIF_time($hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"8") and !InternalDoIf('Feiertag','STATE','')) or DOIF_time($hash->{realtime}{2},$hash->{realtime}{3},$wday,$hms,"")) and   ReadingValDoIf('Wetter','fc1_condition','') =~ /sonnig|heiter|teilweise wolkig/ and   (ReadingValDoIf('Wetter','fc1_high_c','') > 22 or (ReadingValDoIf('GEN_Aussensensor','temperature','') > 18 and ReadingValDoIf('GEN_Aussensensor','luminosity','') > 2500))
...
   Days:
     0          8
     1          8
   Devices:
     0           Wetter GEN_Aussensensor
     1           Wetter GEN_Aussensensor
     3           GEN_Aussensensor Wetter
     4           GEN_Aussensensor
     5           GEN_Aussensensor Wetter
     6           GEN_Aussensensor
     8           GEN_Aussensensor Wetter
     9           GEN_Aussensensor
     all         Wetter GEN_Aussensensor
   Do:
     0          {Beschattung("Ost")}
   ...
   Helper:
     last_timer 22
     sleeptimer -1
   Internals:
   Itimer:
   Readings:
     0           Wetter:fc1_condition Wetter:fc1_high_c GEN_Aussensensor:temperature GEN_Aussensensor:luminosity
   Realtime:
     0          06:30:00
     1          10:29:00
     2          07:34:59
     3          10:29:00
   State:
   Time:
     0          {sunrise(0,"06:30","08:30")}
     1          10:29:00
     2          {sunrise(0,"07:35","10:00")}
     3          10:29:00
   Timecond:
     0          0
     1          0
     2          0
     3          0
     4          1
   Timer:
     0          0
     1          0
     2          0
     3          0
   Timerfunc:
   Timers:
     0           0  1  2  3
     1           4  5
     2           6
     3           7  8
   Trigger:
Attributes:
   disable    0
   group      Timer
   room       System


Nach einem Update habe ich um 17.13 Uhr einen shutdown restart gemacht. Komischerweise hat dieses DOIF dann mit cmd_1 reagiert, ausgelöst durch den GEN_Aussensensor. Eigentlich hätte aber cmd_1 nicht ausgelöst werden dürfen, da neben dem triggernden Aussensensor gleichwertig eine Zeitabfrage daneben steht, die eigentlich nicht erfüllt sein sollte.

Wo ist der (mein) (Denk-) Fehler?
Gruß,
Ralli

Proxmox 8.4 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.4 dev, virtualisierte RaspberryMatic (3.81.5.20250527) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.4.1) und HMW-GW, FRITZBOX 7490 (07.59), FBDECT, Siri und Alexa

flurin

Kannst du den Fehler auch mit einem "shutdown restart" (ohne Update) reproduzieren?

Ralli

Gruß,
Ralli

Proxmox 8.4 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.4 dev, virtualisierte RaspberryMatic (3.81.5.20250527) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.4.1) und HMW-GW, FRITZBOX 7490 (07.59), FBDECT, Siri und Alexa

flurin

#3
Zitat von: Ralli am 18 Juni 2015, 21:46:04
Ja. Konnte ich.

Das macht das Debugging einfacher. Ich würde das DOIF schrittweise vereinfachen.
Evtl. ist es so schon fehlerfrei:

([06:30-10:29] and [Wetter:fc1_condition] =~ /sonnig|heiter|teilweise wolkig/ and
  ([Wetter:fc1_high_c] > 22 or ([GEN_Aussensensor:temperature] > 18 and [GEN_Aussensensor:luminosity] > 2500)))
  ({Beschattung("Ost")})


Dann kann man wieder das DOIF schrittweise ausbauen.

Damian

Zitat von: Ralli am 18 Juni 2015, 17:54:47
Hallo,

ich habe ein ziemlich großes DOIF gebaut. Davon daher nur ein kleiner Ausschnitt mit der ersten Bedingung:


Internals:
   DEF        ((([{sunrise(0,"06:30","08:30")}-10:29|8] and ![?Feiertag]) or [{sunrise(0,"07:35","10:00")}-10:29]) and
  [Wetter:fc1_condition] =~ /sonnig|heiter|teilweise wolkig/ and
  ([Wetter:fc1_high_c] > 22 or ([GEN_Aussensensor:temperature] > 18 and [GEN_Aussensensor:luminosity] > 2500)))
  ({Beschattung("Ost")})
DOELSEIF ...
   NAME       GEN_Beschattung
   NR         541
   NTFY_ORDER 50-GEN_Beschattung
   STATE      cmd_1
   TYPE       DOIF
   CHANGETIME:
   Helper:
     Dblog:
       Cmd_event:
         Eventlog:
           TIME       1434640363.92222
           VALUE      GEN_Aussensensor
       Cmd_nr:
         Eventlog:
           TIME       1434640363.92222
           VALUE      1
       State:
         Eventlog:
           TIME       1434640363.92222
           VALUE      cmd_1
   Readings:
     2015-06-18 17:12:43   cmd_event       GEN_Aussensensor
     2015-06-18 17:12:43   cmd_nr          1
     2015-06-18 17:45:59   e_GEN_Aussensensor_luminosity 7207
     2015-06-18 17:45:59   e_GEN_Aussensensor_temperature 26.1
     2015-06-18 17:42:40   e_Wetter_condition überwiegend wolkig
     2015-06-18 17:42:40   e_Wetter_fc1_condition teilweise wolkig
     2015-06-18 17:42:40   e_Wetter_fc1_high_c 20
     2015-06-18 17:12:43   state           cmd_1
     2015-06-18 17:12:49   timer_10_c5     19.06.2015 12:31:00
     2015-06-18 17:12:49   timer_11_c5     19.06.2015 15:59:00
     2015-06-18 17:12:49   timer_12_c6     19.06.2015 16:00:00
     2015-06-18 17:12:49   timer_13_c6     18.06.2015 17:59:00
     2015-06-18 17:12:49   timer_14_c7     19.06.2015 16:00:00
     2015-06-18 17:12:49   timer_15_c7     18.06.2015 17:59:00
     2015-06-18 17:12:49   timer_16_c8     18.06.2015 18:00:00
     2015-06-18 17:12:49   timer_17_c9     18.06.2015 18:01:00
     2015-06-18 17:12:49   timer_18_c9     18.06.2015 19:00:00
     2015-06-18 17:12:49   timer_19_c10    18.06.2015 18:01:00
     2015-06-18 17:12:49   timer_1_c1      19.06.2015 06:30:00|8
     2015-06-18 17:12:49   timer_20_c10    18.06.2015 19:59:00
     2015-06-18 17:12:49   timer_21_c11    18.06.2015 20:00:00
     2015-06-18 17:12:49   timer_22_c12    18.06.2015 22:00:00
     2015-06-18 17:12:49   timer_2_c1      19.06.2015 10:29:00|8
     2015-06-18 17:12:49   timer_3_c1      19.06.2015 07:34:59
     2015-06-18 17:12:49   timer_4_c1      19.06.2015 10:29:00
     2015-06-18 17:12:49   timer_5_c2      19.06.2015 10:30:00
     2015-06-18 17:12:49   timer_6_c2      19.06.2015 12:29:00
     2015-06-18 17:12:49   timer_7_c3      19.06.2015 12:30:00
     2015-06-18 17:12:49   timer_8_c4      19.06.2015 12:31:00
     2015-06-18 17:12:49   timer_9_c4      19.06.2015 15:59:00
   Condition:
     0          ((DOIF_time($hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"8") and !InternalDoIf('Feiertag','STATE','')) or DOIF_time($hash->{realtime}{2},$hash->{realtime}{3},$wday,$hms,"")) and   ReadingValDoIf('Wetter','fc1_condition','') =~ /sonnig|heiter|teilweise wolkig/ and   (ReadingValDoIf('Wetter','fc1_high_c','') > 22 or (ReadingValDoIf('GEN_Aussensensor','temperature','') > 18 and ReadingValDoIf('GEN_Aussensensor','luminosity','') > 2500))
...
   Days:
     0          8
     1          8
   Devices:
     0           Wetter GEN_Aussensensor
     1           Wetter GEN_Aussensensor
     3           GEN_Aussensensor Wetter
     4           GEN_Aussensensor
     5           GEN_Aussensensor Wetter
     6           GEN_Aussensensor
     8           GEN_Aussensensor Wetter
     9           GEN_Aussensensor
     all         Wetter GEN_Aussensensor
   Do:
     0          {Beschattung("Ost")}
   ...
   Helper:
     last_timer 22
     sleeptimer -1
   Internals:
   Itimer:
   Readings:
     0           Wetter:fc1_condition Wetter:fc1_high_c GEN_Aussensensor:temperature GEN_Aussensensor:luminosity
   Realtime:
     0          06:30:00
     1          10:29:00
     2          07:34:59
     3          10:29:00
   State:
   Time:
     0          {sunrise(0,"06:30","08:30")}
     1          10:29:00
     2          {sunrise(0,"07:35","10:00")}
     3          10:29:00
   Timecond:
     0          0
     1          0
     2          0
     3          0
     4          1
   Timer:
     0          0
     1          0
     2          0
     3          0
   Timerfunc:
   Timers:
     0           0  1  2  3
     1           4  5
     2           6
     3           7  8
   Trigger:
Attributes:
   disable    0
   group      Timer
   room       System


Nach einem Update habe ich um 17.13 Uhr einen shutdown restart gemacht. Komischerweise hat dieses DOIF dann mit cmd_1 reagiert, ausgelöst durch den GEN_Aussensensor. Eigentlich hätte aber cmd_1 nicht ausgelöst werden dürfen, da neben dem triggernden Aussensensor gleichwertig eine Zeitabfrage daneben steht, die eigentlich nicht erfüllt sein sollte.

Wo ist der (mein) (Denk-) Fehler?

GEN_Aussensensor hat offenbar zugeschlagen (17:12:43), bevor das System die Initialisierung abgeschlossen hat. Das kann man daran erkennen, weil die Timer erst paar Sekunden später gesetzt wurden (17:12:49). So etwas haben wir schon mal gehabt (ich glaube in Verbindung mit einem Proxy). Meiner Meinung dürfte es keine Events geben, wenn das System noch nicht komplett hochgefahren ist, aber das ist nicht meine Baustelle. Der Patch von flurin würde dagegen helfen, siehe http://forum.fhem.de/index.php/topic,36311.0.html. Den baue ich im nächsten Update ein.

Gruß

Damian




Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Ralli

Gruß,
Ralli

Proxmox 8.4 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.4 dev, virtualisierte RaspberryMatic (3.81.5.20250527) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.4.1) und HMW-GW, FRITZBOX 7490 (07.59), FBDECT, Siri und Alexa

Ralli

Hallo Damian,

mit Deiner letzten Test-Version hier aus dem Forum ist das Problem immer noch aufgetreten.
Gruß,
Ralli

Proxmox 8.4 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.4 dev, virtualisierte RaspberryMatic (3.81.5.20250527) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.4.1) und HMW-GW, FRITZBOX 7490 (07.59), FBDECT, Siri und Alexa

Damian

Zitat von: Ralli am 25 Juni 2015, 16:42:59
Hallo Damian,

mit Deiner letzten Test-Version hier aus dem Forum ist das Problem immer noch aufgetreten.

Das dürfte eigentlich nicht passieren. Dann brauche ich noch mal ein list von diesem Vorfall.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Ralli

#8

Internals:
   DEF        ((([{sunrise(0,"06:30","08:30")}-10:29|8] and ![?Feiertag]) or [{sunrise(0,"07:35","10:00")}-10:29]) and
  [Wetter:fc1_condition] =~ /sonnig|heiter|teilweise wolkig/ and
  ([Wetter:fc1_high_c] > 22 or ([GEN_Aussensensor:temperature] > 18 and [GEN_Aussensensor:luminosity] > 2500)))
  ({Beschattung("Ost")})
DOELSEIF ...
...
DOELSEIF
  ([22:00])
  ()
   NAME       GEN_Beschattung
   NR         541
   NTFY_ORDER 50-GEN_Beschattung
   STATE      cmd_1
   TYPE       DOIF
   CHANGETIME:
   Helper:
     Dblog:
       Cmd_event:
         Eventlog:
           TIME       1435243113.79093
           VALUE      GEN_Aussensensor
       Cmd_nr:
         Eventlog:
           TIME       1435243113.79093
           VALUE      1
       State:
         Eventlog:
           TIME       1435243113.79093
           VALUE      cmd_1
   Readings:
     2015-06-25 16:38:33   cmd_event       GEN_Aussensensor
     2015-06-25 16:38:33   cmd_nr          1
     2015-06-25 16:44:35   e_GEN_Aussensensor_luminosity 5076
     2015-06-25 16:44:35   e_GEN_Aussensensor_temperature 27.2
     2015-06-25 16:34:16   e_Wetter_condition überwiegend wolkig
     2015-06-25 16:34:16   e_Wetter_fc1_condition teilweise wolkig
     2015-06-25 16:34:16   e_Wetter_fc1_high_c 23
     2015-06-25 16:38:33   state           cmd_1
     2015-06-25 16:38:39   timer_10_c5     26.06.2015 12:31:00
     2015-06-25 16:38:39   timer_11_c5     26.06.2015 15:59:00
     2015-06-25 16:38:39   timer_12_c6     26.06.2015 16:00:00
     2015-06-25 16:38:39   timer_13_c6     25.06.2015 17:59:00
     2015-06-25 16:38:39   timer_14_c7     26.06.2015 16:00:00
     2015-06-25 16:38:39   timer_15_c7     25.06.2015 17:59:00
     2015-06-25 16:38:39   timer_16_c8     25.06.2015 18:00:00
     2015-06-25 16:38:39   timer_17_c9     25.06.2015 18:01:00
     2015-06-25 16:38:39   timer_18_c9     25.06.2015 19:00:00
     2015-06-25 16:38:39   timer_19_c10    25.06.2015 18:01:00
     2015-06-25 16:38:39   timer_1_c1      26.06.2015 06:30:00|8
     2015-06-25 16:38:39   timer_20_c10    25.06.2015 19:59:00
     2015-06-25 16:38:39   timer_21_c11    25.06.2015 20:00:00
     2015-06-25 16:38:39   timer_22_c12    25.06.2015 22:00:00
     2015-06-25 16:38:39   timer_2_c1      26.06.2015 10:29:00|8
     2015-06-25 16:38:39   timer_3_c1      26.06.2015 07:34:59
     2015-06-25 16:38:39   timer_4_c1      26.06.2015 10:29:00
     2015-06-25 16:38:39   timer_5_c2      26.06.2015 10:30:00
     2015-06-25 16:38:39   timer_6_c2      26.06.2015 12:29:00
     2015-06-25 16:38:39   timer_7_c3      26.06.2015 12:30:00
     2015-06-25 16:38:39   timer_8_c4      26.06.2015 12:31:00
     2015-06-25 16:38:39   timer_9_c4      26.06.2015 15:59:00
   Condition:
     0          ((DOIF_time($hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"8") and !InternalDoIf('Feiertag','STATE','')) or DOIF_time($hash->{realtime}{2},$hash->{realtime}{3},$wday,$hms,"")) and   ReadingValDoIf('Wetter','fc1_condition','') =~ /sonnig|heiter|teilweise wolkig/ and   (ReadingValDoIf('Wetter','fc1_high_c','') > 22 or (ReadingValDoIf('GEN_Aussensensor','temperature','') > 18 and ReadingValDoIf('GEN_Aussensensor','luminosity','') > 2500))
...
   Days:
     0          8
     1          8
   Devices:
     0           Wetter GEN_Aussensensor
     1           Wetter GEN_Aussensensor
     3           GEN_Aussensensor Wetter
     4           GEN_Aussensensor
     5           GEN_Aussensensor Wetter
     6           GEN_Aussensensor
     8           GEN_Aussensensor Wetter
     9           GEN_Aussensensor
     all         Wetter GEN_Aussensensor
   Do:
     0          {Beschattung("Ost")}
     1          {Beschattung("SuedOst")}
     10         {if (($month > 4) and ($month < 10)) {GenRolloSet("on")}}
     11
     2          {GenRolloSet("on","Ost")}
     3          {Beschattung("Sued")}
     4          {GenRolloSet("on")}
     5          {Beschattung("SuedWest")}
     6          {GenRolloSet("on")}
     7          {GenRolloSet("on","Sued")}
     8          {Beschattung("Erker")}
     9          {GenRolloSet("on")}
   Helper:
     last_timer 22
     sleeptimer -1
   Internals:
   Itimer:
   Readings:
     0           Wetter:fc1_condition Wetter:fc1_high_c GEN_Aussensensor:temperature GEN_Aussensensor:luminosity
     1           Wetter:fc1_condition Wetter:fc1_high_c GEN_Aussensensor:temperature GEN_Aussensensor:luminosity
     3           GEN_Aussensensor:temperature GEN_Aussensensor:luminosity Wetter:condition
     4           GEN_Aussensensor:temperature GEN_Aussensensor:luminosity
     5           GEN_Aussensensor:temperature GEN_Aussensensor:luminosity Wetter:condition
     6           GEN_Aussensensor:temperature GEN_Aussensensor:luminosity
     8           GEN_Aussensensor:temperature GEN_Aussensensor:luminosity Wetter:condition
     9           GEN_Aussensensor:temperature GEN_Aussensensor:luminosity
     all         Wetter:fc1_condition Wetter:fc1_high_c GEN_Aussensensor:temperature GEN_Aussensensor:luminosity Wetter:condition
   Realtime:
     0          06:30:00
     1          10:29:00
     10         15:59:00
     11         16:00:00
     12         17:59:00
     13         16:00:00
     14         17:59:00
     15         18:00:00
     16         18:01:00
     17         19:00:00
     18         18:01:00
     19         19:59:00
     2          07:34:59
     20         20:00:00
     21         22:00:00
     3          10:29:00
     4          10:30:00
     5          12:29:00
     6          12:30:00
     7          12:31:00
     8          15:59:00
     9          12:31:00
   State:
   Time:
     0          {sunrise(0,"06:30","08:30")}
     1          10:29:00
     10         15:59:00
     11         16:00:00
     12         17:59:00
     13         16:00:00
     14         17:59:00
     15         18:00:00
     16         18:01:00
     17         {sunset(0,"18:02","19:00")}
     18         18:01:00
     19         {sunset(0,"18:02","19:59")}
     2          {sunrise(0,"07:35","10:00")}
     20         {sunset(0,"","20:00")}
     21         22:00:00
     3          10:29:00
     4          10:30:00
     5          12:29:00
     6          12:30:00
     7          12:31:00
     8          15:59:00
     9          12:31:00
   Timecond:
     0          0
     1          0
     10         4
     11         5
     12         5
     13         6
     14         6
     15         7
     16         8
     17         8
     18         9
     19         9
     2          0
     20         10
     21         11
     3          0
     4          1
     5          1
     6          2
     7          3
     8          3
     9          4
   Timer:
     0          0
     1          0
     10         0
     11         0
     12         0
     13         0
     14         0
     15         0
     16         0
     17         0
     18         0
     19         0
     2          0
     20         0
     21         0
     3          0
     4          0
     5          0
     6          0
     7          0
     8          0
     9          0
   Timerfunc:
   Timers:
     0           0  1  2  3
     1           4  5
     10          20
     11          21
     2           6
     3           7  8
     4           9  10
     5           11  12
     6           13  14
     7           15
     8           16  17
     9           18  19
   Trigger:
Attributes:
   disable    0
   group      Timer
   room       System


Edit: Mit der "alten" Version aus dem SVN und dem Patch von flurin klappt es.
Gruß,
Ralli

Proxmox 8.4 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.4 dev, virtualisierte RaspberryMatic (3.81.5.20250527) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.4.1) und HMW-GW, FRITZBOX 7490 (07.59), FBDECT, Siri und Alexa

Damian

Zitat von: Ralli am 25 Juni 2015, 16:48:12

Internals:
   DEF        ((([{sunrise(0,"06:30","08:30")}-10:29|8] and ![?Feiertag]) or [{sunrise(0,"07:35","10:00")}-10:29]) and
  [Wetter:fc1_condition] =~ /sonnig|heiter|teilweise wolkig/ and
  ([Wetter:fc1_high_c] > 22 or ([GEN_Aussensensor:temperature] > 18 and [GEN_Aussensensor:luminosity] > 2500)))
  ({Beschattung("Ost")})
DOELSEIF ...
...
DOELSEIF
  ([22:00])
  ()
   NAME       GEN_Beschattung
   NR         541
   NTFY_ORDER 50-GEN_Beschattung
   STATE      cmd_1
   TYPE       DOIF
   CHANGETIME:
   Helper:
     Dblog:
       Cmd_event:
         Eventlog:
           TIME       1435243113.79093
           VALUE      GEN_Aussensensor
       Cmd_nr:
         Eventlog:
           TIME       1435243113.79093
           VALUE      1
       State:
         Eventlog:
           TIME       1435243113.79093
           VALUE      cmd_1
   Readings:
     2015-06-25 16:38:33   cmd_event       GEN_Aussensensor
     2015-06-25 16:38:33   cmd_nr          1
     2015-06-25 16:44:35   e_GEN_Aussensensor_luminosity 5076
     2015-06-25 16:44:35   e_GEN_Aussensensor_temperature 27.2
     2015-06-25 16:34:16   e_Wetter_condition überwiegend wolkig
     2015-06-25 16:34:16   e_Wetter_fc1_condition teilweise wolkig
     2015-06-25 16:34:16   e_Wetter_fc1_high_c 23
     2015-06-25 16:38:33   state           cmd_1
     2015-06-25 16:38:39   timer_10_c5     26.06.2015 12:31:00
     2015-06-25 16:38:39   timer_11_c5     26.06.2015 15:59:00
     2015-06-25 16:38:39   timer_12_c6     26.06.2015 16:00:00
     2015-06-25 16:38:39   timer_13_c6     25.06.2015 17:59:00
     2015-06-25 16:38:39   timer_14_c7     26.06.2015 16:00:00
     2015-06-25 16:38:39   timer_15_c7     25.06.2015 17:59:00
     2015-06-25 16:38:39   timer_16_c8     25.06.2015 18:00:00
     2015-06-25 16:38:39   timer_17_c9     25.06.2015 18:01:00
     2015-06-25 16:38:39   timer_18_c9     25.06.2015 19:00:00
     2015-06-25 16:38:39   timer_19_c10    25.06.2015 18:01:00
     2015-06-25 16:38:39   timer_1_c1      26.06.2015 06:30:00|8
     2015-06-25 16:38:39   timer_20_c10    25.06.2015 19:59:00
     2015-06-25 16:38:39   timer_21_c11    25.06.2015 20:00:00
     2015-06-25 16:38:39   timer_22_c12    25.06.2015 22:00:00
     2015-06-25 16:38:39   timer_2_c1      26.06.2015 10:29:00|8
     2015-06-25 16:38:39   timer_3_c1      26.06.2015 07:34:59
     2015-06-25 16:38:39   timer_4_c1      26.06.2015 10:29:00
     2015-06-25 16:38:39   timer_5_c2      26.06.2015 10:30:00
     2015-06-25 16:38:39   timer_6_c2      26.06.2015 12:29:00
     2015-06-25 16:38:39   timer_7_c3      26.06.2015 12:30:00
     2015-06-25 16:38:39   timer_8_c4      26.06.2015 12:31:00
     2015-06-25 16:38:39   timer_9_c4      26.06.2015 15:59:00
   Condition:
     0          ((DOIF_time($hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"8") and !InternalDoIf('Feiertag','STATE','')) or DOIF_time($hash->{realtime}{2},$hash->{realtime}{3},$wday,$hms,"")) and   ReadingValDoIf('Wetter','fc1_condition','') =~ /sonnig|heiter|teilweise wolkig/ and   (ReadingValDoIf('Wetter','fc1_high_c','') > 22 or (ReadingValDoIf('GEN_Aussensensor','temperature','') > 18 and ReadingValDoIf('GEN_Aussensensor','luminosity','') > 2500))
...
   Days:
     0          8
     1          8
   Devices:
     0           Wetter GEN_Aussensensor
     1           Wetter GEN_Aussensensor
     3           GEN_Aussensensor Wetter
     4           GEN_Aussensensor
     5           GEN_Aussensensor Wetter
     6           GEN_Aussensensor
     8           GEN_Aussensensor Wetter
     9           GEN_Aussensensor
     all         Wetter GEN_Aussensensor
   Do:
     0          {Beschattung("Ost")}
     1          {Beschattung("SuedOst")}
     10         {if (($month > 4) and ($month < 10)) {GenRolloSet("on")}}
     11
     2          {GenRolloSet("on","Ost")}
     3          {Beschattung("Sued")}
     4          {GenRolloSet("on")}
     5          {Beschattung("SuedWest")}
     6          {GenRolloSet("on")}
     7          {GenRolloSet("on","Sued")}
     8          {Beschattung("Erker")}
     9          {GenRolloSet("on")}
   Helper:
     last_timer 22
     sleeptimer -1
   Internals:
   Itimer:
   Readings:
     0           Wetter:fc1_condition Wetter:fc1_high_c GEN_Aussensensor:temperature GEN_Aussensensor:luminosity
     1           Wetter:fc1_condition Wetter:fc1_high_c GEN_Aussensensor:temperature GEN_Aussensensor:luminosity
     3           GEN_Aussensensor:temperature GEN_Aussensensor:luminosity Wetter:condition
     4           GEN_Aussensensor:temperature GEN_Aussensensor:luminosity
     5           GEN_Aussensensor:temperature GEN_Aussensensor:luminosity Wetter:condition
     6           GEN_Aussensensor:temperature GEN_Aussensensor:luminosity
     8           GEN_Aussensensor:temperature GEN_Aussensensor:luminosity Wetter:condition
     9           GEN_Aussensensor:temperature GEN_Aussensensor:luminosity
     all         Wetter:fc1_condition Wetter:fc1_high_c GEN_Aussensensor:temperature GEN_Aussensensor:luminosity Wetter:condition
   Realtime:
     0          06:30:00
     1          10:29:00
     10         15:59:00
     11         16:00:00
     12         17:59:00
     13         16:00:00
     14         17:59:00
     15         18:00:00
     16         18:01:00
     17         19:00:00
     18         18:01:00
     19         19:59:00
     2          07:34:59
     20         20:00:00
     21         22:00:00
     3          10:29:00
     4          10:30:00
     5          12:29:00
     6          12:30:00
     7          12:31:00
     8          15:59:00
     9          12:31:00
   State:
   Time:
     0          {sunrise(0,"06:30","08:30")}
     1          10:29:00
     10         15:59:00
     11         16:00:00
     12         17:59:00
     13         16:00:00
     14         17:59:00
     15         18:00:00
     16         18:01:00
     17         {sunset(0,"18:02","19:00")}
     18         18:01:00
     19         {sunset(0,"18:02","19:59")}
     2          {sunrise(0,"07:35","10:00")}
     20         {sunset(0,"","20:00")}
     21         22:00:00
     3          10:29:00
     4          10:30:00
     5          12:29:00
     6          12:30:00
     7          12:31:00
     8          15:59:00
     9          12:31:00
   Timecond:
     0          0
     1          0
     10         4
     11         5
     12         5
     13         6
     14         6
     15         7
     16         8
     17         8
     18         9
     19         9
     2          0
     20         10
     21         11
     3          0
     4          1
     5          1
     6          2
     7          3
     8          3
     9          4
   Timer:
     0          0
     1          0
     10         0
     11         0
     12         0
     13         0
     14         0
     15         0
     16         0
     17         0
     18         0
     19         0
     2          0
     20         0
     21         0
     3          0
     4          0
     5          0
     6          0
     7          0
     8          0
     9          0
   Timerfunc:
   Timers:
     0           0  1  2  3
     1           4  5
     10          20
     11          21
     2           6
     3           7  8
     4           9  10
     5           11  12
     6           13  14
     7           15
     8           16  17
     9           18  19
   Trigger:
Attributes:
   disable    0
   group      Timer
   room       System


Edit: Mit der "alten" Version aus dem SVN und dem Patch von flurin klappt es.

Ich kann es mir nicht erklären, weil keine Auswertung stattfinden sollte, wenn das System nicht komplett hochgefahren ist.

Du bist sicher, dass die neue Version aktiv war?

Mit "Version DOIF" sollte keine Version angezeigt werden: # $Id: 98_DOIF.pm $

Gruß

Damian


Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Ralli

Ja, absolut sicher. Version zeigte exakt keine Version :).

Habe ein shutdown gemacht, die alte 98_DOIF.pm weggeschoben, neue 98_DOIF.pm rein kopiert, Rechte gesetzt, fhem neu gestartet.
Gruß,
Ralli

Proxmox 8.4 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.4 dev, virtualisierte RaspberryMatic (3.81.5.20250527) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.4.1) und HMW-GW, FRITZBOX 7490 (07.59), FBDECT, Siri und Alexa

Damian

Zitat von: Ralli am 25 Juni 2015, 17:12:16
Ja, absolut sicher. Version zeigte exakt keine Version :).

Habe ein shutdown gemacht, die alte 98_DOIF.pm weggeschoben, neue 98_DOIF.pm rein kopiert, Rechte gesetzt, fhem neu gestartet.

Das würde bedeuten, dass die Variable $init_done (System hochgefahren) wahr ist und der Trigger von  GEN_Aussensensor vor dem der Trigger global:INIALIZED kommt.

Schon sehr merkwürdig.

Muss ich mir mal anschauen, habe aber jetzt keine Zeit dazu.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Damian

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF