Ausführung von Kommandos, obwohl Bedingungen nicht erfüllt sind

Begonnen von CountAlmasy, 11 Februar 2016, 09:43:22

Vorheriges Thema - Nächstes Thema

CountAlmasy

Folgender Code zur Steuerung der Position von Jalousien (EnOcean) ist bei mir monatelang problemlos gelaufen:

define OG_AZ_Jalousien_SyncA DOIF ([OG_AZ_Jalousien:stateFSB12A] eq "opens") (setreading OG_AZ_Jalousien positionA 0, setreading OG_AZ_Jalousien stateFSB12A open) \
  DOELSEIF ([OG_AZ_Jalousien:stateFSB12A] eq "closes") (setreading OG_AZ_Jalousien positionA 100, setreading OG_AZ_Jalousien stateFSB12A closed)
attr OG_AZ_Jalousien_SyncA do always
attr OG_AZ_Jalousien_SyncA wait 60:60


Heute habe ich (eher zufällig) bemerkt, dass dieser Code nicht mehr so funktioniert wie geplant. Obwohl das userReading "stateFSB12A" den Wert "stopped" hat (also weder die erste noch die zweite Bedingung erfüllt ist), wird eines der Kommandos ausgeführt. Ich habe noch nicht herausfinden können, seit wann das Verhalten geändert ist. Hat sich mit einem Update an der Funktionalität von DOIF etwas geändert? In der Referenz (commandref) habe ich keinen entsprechenden Hinweis finden können.

Damian

Zitat von: CountAlmasy am 11 Februar 2016, 09:43:22
Folgender Code zur Steuerung der Position von Jalousien (EnOcean) ist bei mir monatelang problemlos gelaufen:

define OG_AZ_Jalousien_SyncA DOIF ([OG_AZ_Jalousien:stateFSB12A] eq "opens") (setreading OG_AZ_Jalousien positionA 0, setreading OG_AZ_Jalousien stateFSB12A open) \
  DOELSEIF ([OG_AZ_Jalousien:stateFSB12A] eq "closes") (setreading OG_AZ_Jalousien positionA 100, setreading OG_AZ_Jalousien stateFSB12A closed)
attr OG_AZ_Jalousien_SyncA do always
attr OG_AZ_Jalousien_SyncA wait 60:60


Heute habe ich (eher zufällig) bemerkt, dass dieser Code nicht mehr so funktioniert wie geplant. Obwohl das userReading "stateFSB12A" den Wert "stopped" hat (also weder die erste noch die zweite Bedingung erfüllt ist), wird eines der Kommandos ausgeführt. Ich habe noch nicht herausfinden können, seit wann das Verhalten geändert ist. Hat sich mit einem Update an der Funktionalität von DOIF etwas geändert? In der Referenz (commandref) habe ich keinen entsprechenden Hinweis finden können.

Poste mal list von diesem Modul.

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

CountAlmasy

Hier ist derOutput:

Internals:
   DEF        ([OG_AZ_Jalousien:stateFSB12A] eq "opens") (setreading OG_AZ_Jalousien positionA 0, setreading OG_AZ_Jalousien stateFSB12A open)
  DOELSEIF ([OG_AZ_Jalousien:stateFSB12A] eq "closes") (setreading OG_AZ_Jalousien positionA 100, setreading OG_AZ_Jalousien stateFSB12A closed)
   NAME       OG_AZ_Jalousien_SyncA
   NR         275
   NTFY_ORDER 50-OG_AZ_Jalousien_SyncA
   STATE      cmd_1
   TYPE       DOIF
   Readings:
     2016-02-11 09:29:43   Device          OG_AZ_Jalousien
     2016-02-11 09:30:42   cmd_event       OG_AZ_Jalousien
     2016-02-11 09:30:42   cmd_nr          1
     2016-02-11 09:29:43   e_OG_AZ_Jalousien_stateFSB12A stopped
     2016-02-11 09:30:42   state           cmd_1
     2016-02-11 09:45:08   wait_timer      no timer
   Condition:
     0          ReadingValDoIf('OG_AZ_Jalousien','stateFSB12A','',AttrVal($hash->{NAME},'notexist',undef)) eq "opens"
     1          ReadingValDoIf('OG_AZ_Jalousien','stateFSB12A','',AttrVal($hash->{NAME},'notexist',undef)) eq "closes"
   Devices:
     0           OG_AZ_Jalousien
     1           OG_AZ_Jalousien
     all         OG_AZ_Jalousien
   Do:
     0:
       0          setreading OG_AZ_Jalousien positionA 0, setreading OG_AZ_Jalousien stateFSB12A open
     1:
       0          setreading OG_AZ_Jalousien positionA 100, setreading OG_AZ_Jalousien stateFSB12A closed
   Helper:
     globalinit 1
     last_timer 0
     sleeptimer -1
   Itimer:
   Readings:
     0           OG_AZ_Jalousien:stateFSB12A
     1           OG_AZ_Jalousien:stateFSB12A
     all         OG_AZ_Jalousien:stateFSB12A
   Regexp:
     All:
   State:
Attributes:
   do         always
   wait       60:60

Damian

Ich kann hier kein fehlerhaftes Verhalten erkennen:

um 09:29:43 Uhr  gab es einen Trigger von OG_AZ_Jalousien_stateFSB12A

Daraufhin wurde ca. 60 Sekunden später um 09:30:42 cmd_1 geschaltet.

Es funktioniert hier alles wie programmiert.

Gruß

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

CountAlmasy

Hallo Damian,

ich fürchte, dass wir aneinander vorbeireden. Der Algorithmus sieht vor, dass cmd_1 ausgeführt werden soll, wenn das userReading "stateFSB12A" den Wert "opens" hat, und dass cmd_2 ausgeführt werden soll, wenn das userReading den Wert "closes" hat. Tatsächlich hat das userReading aber den Wert "stopped", so dass weder cmd_1 noch cmd_2 ausgeführt werden sollte. So verhielt sich diese Anweisung auch, als ich das vor vielen Monaten konfiguriert habe.

Wie sollte ich das oben beschriebene Verhalten denn in der "neuen" Version alternativ umsetzen?

Damian

Zitat von: CountAlmasy am 11 Februar 2016, 20:02:57
Hallo Damian,

ich fürchte, dass wir aneinander vorbeireden. Der Algorithmus sieht vor, dass cmd_1 ausgeführt werden soll, wenn das userReading "stateFSB12A" den Wert "opens" hat, und dass cmd_2 ausgeführt werden soll, wenn das userReading den Wert "closes" hat. Tatsächlich hat das userReading aber den Wert "stopped", so dass weder cmd_1 noch cmd_2 ausgeführt werden sollte. So verhielt sich diese Anweisung auch, als ich das vor vielen Monaten konfiguriert habe.

Wie sollte ich das oben beschriebene Verhalten denn in der "neuen" Version alternativ umsetzen?

Ok, du hast recht. Die neue Version muss sich an der Stelle genauso verhalten wie die alte.

Die Auswertung wird von Perl vorgenommen und das sollte sich gleich verhalten.

Benutzt du Aliasnamen?

Teste mal ohne wait, dann mal mit einem Dummy, bis man die Ursache eingekreist hat.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Damian

Ich bin mir relativ sicher, dass eine Sekunde vor "stopped" "opens" kam. Das könntest du mit Logging der Ereignisse sehen.
Du kannst z. B. bei dir ergänzen:

  ({Log 3,"Ereignisse von $DEVICE: $EVENTS"},setreading OG_AZ_Jalousien positionA 0, setreading OG_AZ_Jalousien stateFSB12A open)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

dancatt

Moin,

ich glaube mein Problem passt auch hier her.
Ich benutze DOIF um mir Meldungen zu schicken wenn das Fenster offen ist.
Es kommen 3 Nachrichten alle 10 Minuten. Die erste aber erst nach 5 Minuten.
Wenn ich nun innerhalb dieses Zeitraum das Fenster wieder schließe werden trotzdem die restlichen Nachrichten verschickt.

list nach dem Öffnen:

Internals:
   CFGFN
   DEF        (["Fensterkontakt$:open"] and [?Heizungmodus] eq "Winter")
  ({PushMassage("Fhem","$DEVICE ist offen","",0,"")})
DOELSE
  ()
   NAME       doif_Ueberwachung_Fensterkontakt
   NR         308
   NTFY_ORDER 50-doif_Ueberwachung_Fensterkontakt
   STATE      initialized
   TYPE       DOIF
   Helper:
     Dblog:
       Cmd_count:
         Dblog:
           TIME       1455268054.01556
           VALUE      1
       Cmd_event:
         Dblog:
           TIME       1455268054.51926
           VALUE      2_03_SZ_Fensterkontakt
       Cmd_nr:
         Dblog:
           TIME       1455268054.51926
           VALUE      1
       Cmd_seqnr:
         Dblog:
           TIME       1455268054.51926
           VALUE      2
       Error:
         Dblog:
           TIME       1455268054.51926
           VALUE      {EximMail("peterpan\@web.de", "FHEM Überwachung: 2_03_SZ_Fensterkontakt", "Fenster ist offen")}: -1
       State:
         Dblog:
           TIME       1455268264.03589
           VALUE      initialized
       Wait_timer:
         Dblog:
           TIME       1455268358.61317
           VALUE      12.02.2016 10:17:38 cmd_1 2_03_SZ_Fensterkontakt
   Readings:
     2016-02-12 10:12:38   Device          2_03_SZ_Fensterkontakt
     2016-02-12 10:12:38   matched_event_c1_1 contact: open (to VCCU)
     2016-02-12 10:11:04   state           initialized
     2016-02-12 10:12:38   wait_timer      12.02.2016 10:17:38 cmd_1 2_03_SZ_Fensterkontakt
   Condition:
     0          EventDoIf('Fensterkontakt$',$hash,'open',0) and InternalDoIf('Heizungmodus','STATE','',AttrVal($hash->{NAME},'notexist',undef)) eq "Winter"
   Devices:
   Do:
     0:
       0          {PushMassage("Fhem","$DEVICE ist offen","",0,"")}
     1:
       0
   Helper:
     event      contact: open (to VCCU)
     globalinit 1
     last_timer 0
     sleepdevice 2_03_SZ_Fensterkontakt
     sleepsubtimer 0
     sleeptimer 0
     timerdev   2_03_SZ_Fensterkontakt
     timerevent contact: open (to VCCU)
     triggerDev 2_03_SZ_Fensterkontakt
     timerevents:
       battery: ok
       contact: open (to VCCU)
       open
       trigDst_VCCU: noConfig
       trigger_cnt: 84
     triggerEvents:
       battery: ok
       contact: open (to VCCU)
       open
       trigDst_VCCU: noConfig
       trigger_cnt: 84
   Internals:
     0           Heizungmodus:STATE
     all         Heizungmodus:STATE
   Itimer:
   Readings:
   Regexp:
     0:
       0          Fensterkontakt$:open
     All:
       0          Fensterkontakt$:open
   State:
   Trigger:
Attributes:
   do         always
   group      Überwachung
   loglevel   6
   repeatcmd  600
   repeatsame 3
   room       9_09_Einstellungen
   wait       300


list nach dem Senden der ersten Nachricht:

Internals:
   CFGFN
   DEF        (["Fensterkontakt$:open"] and [?Heizungmodus] eq "Winter")
  ({PushMassage("Fhem","$DEVICE ist offen","",0,"")})
DOELSE
  ()
   NAME       doif_Ueberwachung_Fensterkontakt
   NR         308
   NTFY_ORDER 50-doif_Ueberwachung_Fensterkontakt
   STATE      cmd_1
   TYPE       DOIF
   Helper:
     Dblog:
       Cmd_count:
         Dblog:
           TIME       1455268659.15706
           VALUE      1
       Cmd_event:
         Dblog:
           TIME       1455268659.21851
           VALUE      2_03_SZ_Fensterkontakt
       Cmd_nr:
         Dblog:
           TIME       1455268659.21851
           VALUE      1
       Cmd_seqnr:
         Dblog:
           TIME       1455268054.51926
           VALUE      2
       Error:
         Dblog:
           TIME       1455268054.51926
           VALUE      {EximMail("peterpan\@web.de", "FHEM Überwachung: 2_03_SZ_Fensterkontakt", "Fenster ist offen")}: -1
       State:
         Dblog:
           TIME       1455268659.21851
           VALUE      cmd_1
       Wait_timer:
         Dblog:
           TIME       1455268659.25232
           VALUE      12.02.2016 10:27:39 cmd_1 2_03_SZ_Fensterkontakt
   Readings:
     2016-02-12 10:12:38   Device          2_03_SZ_Fensterkontakt
     2016-02-12 10:17:39   cmd_count       1
     2016-02-12 10:17:39   cmd_event       2_03_SZ_Fensterkontakt
     2016-02-12 10:17:39   cmd_nr          1
     2016-02-12 10:12:38   matched_event_c1_1 contact: open (to VCCU)
     2016-02-12 10:17:39   state           cmd_1
     2016-02-12 10:17:39   wait_timer      12.02.2016 10:27:39 cmd_1 2_03_SZ_Fensterkontakt
   Condition:
     0          EventDoIf('Fensterkontakt$',$hash,'open',0) and InternalDoIf('Heizungmodus','STATE','',AttrVal($hash->{NAME},'notexist',undef)) eq "Winter"
   Devices:
   Do:
     0:
       0          {PushMassage("Fhem","$DEVICE ist offen","",0,"")}
     1:
       0
   Helper:
     event      contact: open (to VCCU)
     globalinit 1
     last_timer 0
     sleepdevice 2_03_SZ_Fensterkontakt
     sleepsubtimer 0
     sleeptimer 0
     timerdev   2_03_SZ_Fensterkontakt
     timerevent contact: open (to VCCU)
     triggerDev 2_03_SZ_Fensterkontakt
     timerevents:
       battery: ok
       contact: open (to VCCU)
       open
       trigDst_VCCU: noConfig
       trigger_cnt: 84
     triggerEvents:
       battery: ok
       contact: open (to VCCU)
       open
       trigDst_VCCU: noConfig
       trigger_cnt: 84
   Internals:
     0           Heizungmodus:STATE
     all         Heizungmodus:STATE
   Itimer:
   Readings:
   Regexp:
     0:
       0          Fensterkontakt$:open
     All:
       0          Fensterkontakt$:open
   State:
   Trigger:
Attributes:
   do         always
   group      Überwachung
   loglevel   6
   repeatcmd  600
   repeatsame 3
   room       9_09_Einstellungen
   wait       300


list nach dem Schließen des Fensters. Keine Änderung zum vorherigen.

Internals:
   CFGFN
   DEF        (["Fensterkontakt$:open"] and [?Heizungmodus] eq "Winter")
  ({PushMassage("Fhem","$DEVICE ist offen","",0,"")})
DOELSE
  ()
   NAME       doif_Ueberwachung_Fensterkontakt
   NR         308
   NTFY_ORDER 50-doif_Ueberwachung_Fensterkontakt
   STATE      cmd_1
   TYPE       DOIF
   Helper:
     Dblog:
       Cmd_count:
         Dblog:
           TIME       1455268659.15706
           VALUE      1
       Cmd_event:
         Dblog:
           TIME       1455268659.21851
           VALUE      2_03_SZ_Fensterkontakt
       Cmd_nr:
         Dblog:
           TIME       1455268659.21851
           VALUE      1
       Cmd_seqnr:
         Dblog:
           TIME       1455268054.51926
           VALUE      2
       Error:
         Dblog:
           TIME       1455268054.51926
           VALUE      {EximMail("peterpan\@web.de", "FHEM Überwachung: 2_03_SZ_Fensterkontakt", "Fenster ist offen")}: -1
       State:
         Dblog:
           TIME       1455268659.21851
           VALUE      cmd_1
       Wait_timer:
         Dblog:
           TIME       1455268659.25232
           VALUE      12.02.2016 10:27:39 cmd_1 2_03_SZ_Fensterkontakt
   Readings:
     2016-02-12 10:12:38   Device          2_03_SZ_Fensterkontakt
     2016-02-12 10:17:39   cmd_count       1
     2016-02-12 10:17:39   cmd_event       2_03_SZ_Fensterkontakt
     2016-02-12 10:17:39   cmd_nr          1
     2016-02-12 10:12:38   matched_event_c1_1 contact: open (to VCCU)
     2016-02-12 10:17:39   state           cmd_1
     2016-02-12 10:17:39   wait_timer      12.02.2016 10:27:39 cmd_1 2_03_SZ_Fensterkontakt
   Condition:
     0          EventDoIf('Fensterkontakt$',$hash,'open',0) and InternalDoIf('Heizungmodus','STATE','',AttrVal($hash->{NAME},'notexist',undef)) eq "Winter"
   Devices:
   Do:
     0:
       0          {PushMassage("Fhem","$DEVICE ist offen","",0,"")}
     1:
       0
   Helper:
     event      contact: open (to VCCU)
     globalinit 1
     last_timer 0
     sleepdevice 2_03_SZ_Fensterkontakt
     sleepsubtimer 0
     sleeptimer 0
     timerdev   2_03_SZ_Fensterkontakt
     timerevent contact: open (to VCCU)
     triggerDev 2_03_SZ_Fensterkontakt
     timerevents:
       battery: ok
       contact: open (to VCCU)
       open
       trigDst_VCCU: noConfig
       trigger_cnt: 84
     triggerEvents:
       battery: ok
       contact: open (to VCCU)
       open
       trigDst_VCCU: noConfig
       trigger_cnt: 84
   Internals:
     0           Heizungmodus:STATE
     all         Heizungmodus:STATE
   Itimer:
   Readings:
   Regexp:
     0:
       0          Fensterkontakt$:open
     All:
       0          Fensterkontakt$:open
   State:
   Trigger:
Attributes:
   do         always
   group      Überwachung
   loglevel   6
   repeatcmd  600
   repeatsame 3
   room       9_09_Einstellungen
   wait       300

list vom Fensterkontakt:

Internals:
   ...
   HMLAN1_TIME 2016-02-12 10:19:40
   IODev      HMLAN1
   LASTInputDev HMLAN1
   MSGCNT     16
   NAME       2_03_SZ_Fensterkontakt
   NR         81
   NTFY_ORDER 50-2_03_SZ_Fensterkontakt
   STATE      closed
   TYPE       CUL_HM
   lastMsg    No:F2 - t:41 s:2AD870 d:23A38D 015500
   peerList   2_03_SZ_Heizungsthermostat_WindowRec,
   protLastRcv 2016-02-12 10:19:40
   protSnd    8 last_at:2016-02-12 10:19:40
   protState  CMDs_done
   ...


list nach dem Senden der zweiten Nachricht obwohl das Fenster schon geschlossen ist:

Internals:
   CFGFN
   DEF        (["Fensterkontakt$:open"] and [?Heizungmodus] eq "Winter")
  ({PushMassage("Fhem","$DEVICE ist offen","",0,"")})
DOELSE
  ()
   NAME       doif_Ueberwachung_Fensterkontakt
   NR         308
   NTFY_ORDER 50-doif_Ueberwachung_Fensterkontakt
   STATE      cmd_1
   TYPE       DOIF
   Helper:
     Dblog:
       Cmd_count:
         Dblog:
           TIME       1455269259.27562
           VALUE      2
       Cmd_event:
         Dblog:
           TIME       1455269259.32628
           VALUE      2_03_SZ_Fensterkontakt
       Cmd_nr:
         Dblog:
           TIME       1455269259.32628
           VALUE      1
       Cmd_seqnr:
         Dblog:
           TIME       1455268054.51926
           VALUE      2
       Error:
         Dblog:
           TIME       1455268054.51926
           VALUE      {EximMail("peterpan\@web.de", "doif FHEM Überwachung: 2_03_SZ_Fensterkontakt", "Fenster ist offen")}: -1
       State:
         Dblog:
           TIME       1455269259.32628
           VALUE      cmd_1
       Wait_timer:
         Dblog:
           TIME       1455269259.35794
           VALUE      12.02.2016 10:37:39 cmd_1 2_03_SZ_Fensterkontakt
   Readings:
     2016-02-12 10:12:38   Device          2_03_SZ_Fensterkontakt
     2016-02-12 10:27:39   cmd_count       2
     2016-02-12 10:27:39   cmd_event       2_03_SZ_Fensterkontakt
     2016-02-12 10:27:39   cmd_nr          1
     2016-02-12 10:12:38   matched_event_c1_1 contact: open (to VCCU)
     2016-02-12 10:27:39   state           cmd_1
     2016-02-12 10:27:39   wait_timer      12.02.2016 10:37:39 cmd_1 2_03_SZ_Fensterkontakt
   Condition:
     0          EventDoIf('Fensterkontakt$',$hash,'open',0) and InternalDoIf('Heizungmodus','STATE','',AttrVal($hash->{NAME},'notexist',undef)) eq "Winter"
   Devices:
   Do:
     0:
       0          {PushMassage("Fhem","$DEVICE ist offen","",0,"")}
     1:
       0
   Helper:
     event      contact: open (to VCCU)
     globalinit 1
     last_timer 0
     sleepdevice 2_03_SZ_Fensterkontakt
     sleepsubtimer 0
     sleeptimer 0
     timerdev   2_03_SZ_Fensterkontakt
     timerevent contact: open (to VCCU)
     triggerDev 2_03_SZ_Fensterkontakt
     timerevents:
       battery: ok
       contact: open (to VCCU)
       open
       trigDst_VCCU: noConfig
       trigger_cnt: 84
     triggerEvents:
       battery: ok
       contact: open (to VCCU)
       open
       trigDst_VCCU: noConfig
       trigger_cnt: 84
   Internals:
     0           Heizungmodus:STATE
     all         Heizungmodus:STATE
   Itimer:
   Readings:
   Regexp:
     0:
       0          Fensterkontakt$:open
     All:
       0          Fensterkontakt$:open
   State:
   Trigger:
Attributes:
   do         always
   group      Überwachung
   loglevel   6
   repeatcmd  600
   repeatsame 3
   room       9_09_Einstellungen
   wait       300


Die dritte Meldung kommt dann auch noch.

Das Problem besteht nicht wenn ich anstatt Device-Regex direkt auf das Device prüfe.
Cubietruck: FHEM-Server 6.0

Homematic: HM-USB-CFG2, HM-CFG-LAN, HM-LC-SW1-FM, HM-LC-Sw1-Pl-DN-R1, HM-CC-RT-DN, HM-TC-IT-WM-W-EU, HM-SEC-SC-2, HM-SEC-SD, HM-PB-6-WM55

CountAlmasy

Zitat von: Damian am 12 Februar 2016, 08:10:39
Ich bin mir relativ sicher, dass eine Sekunde vor "stopped" "opens" kam. Das könntest du mit Logging der Ereignisse sehen.

Hallo Damian,

ja, das kann ich Dir sogar ohne Log bestätigen. Aber DOIF sollte ja den letzten Status auswerten, also "stopped". Wäre es möglich, dass stattdessen der vorherige Status "opens" von DOIF ausgewertet wird? Das war früher definitiv nicht der Fall (und sollte meines Erachtens auch nicht so sein). Ich werde am Wochenende mal ein wenig debuggen und versuchen, die Ursache für das geänderte Verhalten zu finden.

Zum Hintergrund:

Ich möchte mit dem DOIF die Stellung der Jalousien setzen. Wenn innerhalb der Motorlaufzeit der Jalousie der Schalter erneut gedrückt wird (zumeist nach einer Sekunde, um die Neigung der Lamellen zu ändern), setzt eine von mir geschriebene Perl-Funktion den Status (stateFSB12A) auf "stopped" und wertet aufgrund der Zeit seit dem letzten Tastendruck die Position aus. Mit der DOIF-Anweisung prüfe ich am Ende der Motorlaufzeit, ob keine Taste gedrückt wurde und setze die Position dann entweder auf 0 (offen) oder auf 100 (geschlossen). Aktuell wird aber immer ein Kommando ausgeführt, auch wenn ich eine Taste gedrückt habe und der Status auf "stopped" steht.

Damian

Zitat von: CountAlmasy am 12 Februar 2016, 13:02:38
Hallo Damian,

ja, das kann ich Dir sogar ohne Log bestätigen. Aber DOIF sollte ja den letzten Status auswerten, also "stopped". Wäre es möglich, dass stattdessen der vorherige Status "opens" von DOIF ausgewertet wird? Das war früher definitiv nicht der Fall (und sollte meines Erachtens auch nicht so sein). Ich werde am Wochenende mal ein wenig debuggen und versuchen, die Ursache für das geänderte Verhalten zu finden.


"stopped" wird ja auch ausgewertet, dafür hast du aber keinen Zweig definiert, deswegen passiert nichts.

Du hast mehrere Möglichkeiten. Wenn du do always weglässt wird automatisch bei "stopped" in einen nicht angegeben Sonst-Fall hier cmd_3 geschaltet und die geplante Ausführung von cmd_1 wegen wait unterbrochen.

Wenn du dieses Verhalten auch bei do always erreichen willst (das war tatsächlich mal eine Änderung vor einigen Monaten), dann musst du am Ende einfach DOELSE ohne weitere Angaben dran hängen.

Gruß

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

CountAlmasy

Hallo Damian,

ich hatte bereits versucht, "do always" auszukommentieren, bevor ich den Thread eröffnet habe. Das hatte aber nichts bewirkt. Ich habe es nach Deiner Antwort noch einmal probiert. Aber diese Variante funktioniert leider nicht.

Die Variante mit DOELSE funktioniert aber! Vielen Dank für diesen Hinweis! Ich werde jetzt meine mehr als 30 DOIF-Anweisungen daraufhin überprüfen, ob sie angepasst werden müssen  :(

Ich werde mir aber für die Zukunft überlegen, ob ich seltener Updates durchführen und dafür nach jedem Update einige Tests einbauen werde. Die Geschwindigkeit, mit der sich FHEM weiterentwickelt, stellt eine gewisse Herausforderung für die Kontinuität und Stabilität eines laufenden Systems dar.

Meine Familie ist leider nicht so begeistert von der Idee, dass ich noch mehr Zeit für FHEM aufwende ;)

dancatt

Hallo Damian,

eine Idee zu meinem Post?
http://forum.fhem.de/index.php/topic,49148.msg408556.html#msg408556

Oder geht das mit der neuen Version einfach nicht.

Vielen Dank.

Gruß Daniel
Cubietruck: FHEM-Server 6.0

Homematic: HM-USB-CFG2, HM-CFG-LAN, HM-LC-SW1-FM, HM-LC-Sw1-Pl-DN-R1, HM-CC-RT-DN, HM-TC-IT-WM-W-EU, HM-SEC-SC-2, HM-SEC-SD, HM-PB-6-WM55