Sequence Befehl funktioniert seit Update nicht mehr

Begonnen von Trebor5, 01 August 2020, 16:06:42

Vorheriges Thema - Nächstes Thema

Trebor5

Hallo zusammen ,

ich weis zwar nicht was an dem Sequence Modul gemacht worden ist aber meine Sequenzen werden nicht mehr ausgeführt .

Die Schalter kommen im Eventmonitor an . Allerdings schaltet die Sequenz einfach nicht mehr.  Hier die Sequence : define 123 sequence Btn_01:Short*.* 10 Btn_02:Short*.* hier der Schalter define test notify 123:trigger set Box_Decke on.

Ich habe mir das Modul aus der Sicherung vor Update geholt und siehe da alles funktioniert wieder.
Odroid N2,Hauptsensoren Homematic + 1 Wire + 8Kanal Homematic auf Relay Schaltung. Forum Beiträge sind meine letzte Hoffnung nach Stundenlangen erfolglosen suchen und probieren.

DS_Starter

Wahrscheinlich hängt es mit dieser Änderung zusammen -> https://forum.fhem.de/index.php/topic,113108.0.html
Sicherlich gut in diesem Thread zu melden.

Davon abgesehen würde ich die Definition besser so schreiben:

define 123 sequence Btn_01:Short 10 Btn_02:Short

oder vllt. auch:

define 123 sequence Btn_01:^Short 10 Btn_02:^Short

Grüße,
Heiko
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

rudolfkoenig

ZitatWahrscheinlich hängt es mit dieser Änderung zusammen -> https://forum.fhem.de/index.php/topic,113108.0.html
Richtig, ich tendiere leider beim Patch Einbauen das Denken dem Patch-Erstellen zu ueberlassen.
Sollte jetzt gefixt sein.

Zitatdefine 123 sequence Btn_01:^Short 10 Btn_02:^Short
Diese Variante wird nicht funktionieren, da device:event zusammen geprueft werden.

Nestor

The new commit has a side-effect that when subsequent patterns in the DEF skip the device name, NOTIFYDEV is not set anymore.

fhem> list Seq_EnO_FEF75504 DEF
Seq_EnO_FEF75504           EnO_FEF75504|EnO_FEF08262:BI 0.40 :BI


fhem> {notifyRegexpCheck 'EnO_FEF75504|EnO_FEF08262:BI|:BI' }
EnO_FEF75504: device EnO_FEF75504 (OK)
EnO_FEF08262:BI: device EnO_FEF08262 (OK)
:BI: no match (ignored)


Fixed with following patch:
--- - 2020-08-17 19:45:57.201647634 +0200
+++ /srv/fhem/FHEM/91_sequence.pm 2020-08-17 19:45:55.182140037 +0200
@@ -52,7 +52,7 @@
     return "Bad regexp 1: $@" if($@);
     return "Bad timeout spec $to"       # timeout or delay:timeout
       if (defined($to) && $to !~ m/^(\d+(\.\d+)?:)?\d+(\.\d+)?$/);
-    push @reList,$re;
+    push @reList,$re if ((split(':', $re))[0] ne '');
   }

   $hash->{RE} = $def[0];

rudolfkoenig

Thanks for the hint.

I modified your patch slightly by using regexp instead of split, and I also delayed calling notifyRegexpChanged, for cases where the sequence is defined before the device referenced in the regexp.