set mit RegEx verarbeitet nur 8 Dummys

Begonnen von chefschaffner, 04 März 2022, 07:41:23

Vorheriges Thema - Nächstes Thema

chefschaffner

Hallo zusammen,
ich habe ein seltsames Problem - oder stehe irgendwie auf der Leitung; vielleicht kann mir jemand helfen.

Ich habe verschiedene Lampen und Steckdosen in dummys zusammengefasst, geschaltet wird dann über ein notify, welches durch die dummys getriggert wird. Das sieht dann z.B. so aus:

Notify

Internals:
   DEF        dLa.*:.* {
my ($evt, $par) = split(":", $EVENT);
my $dev = ReadingsVal($NAME,"device","Err");
my $ct = ReadingsVal($NAME,"ct","Err");
my $br = ReadingsVal($NAME,"brightness","Err");
my $col = ReadingsVal($NAME,"color","Err");
my $stat = ReadingsVal($NAME,"state","Err");
{Log 1, "[nUniDimmer] Device: $NAME / Event: $EVENT / Ziel: $dev CT: $ct / BR: $br / Col: $col / state: $stat"};
if ($evt eq "on") {
{ fhem "set $dev $evt" };
if ($ct ne "Err") { fhem "set $dev ct $ct" ; }
if ($br ne "Err") { fhem "set $dev brightness $br" ; }
if ($col ne "Err") { fhem "set $dev hex $col" ; }
} elsif ($evt eq "off") {
fhem "set $dev $evt"
} else {
if ($stat eq "on") { fhem "set $dev $evt $par"  ; }
}
}
   FUUID      62211950-f33f-98ff-9b67-de9f70ebaa2d2cd4
   NAME       nUniDimmer
   NOTIFYDEV  dLa.*
   NR         285
   NTFY_ORDER 50-nUniDimmer
   REGEXP     dLa.*:.*
   STATE      2022-03-04 07:04:23
   TRIGGERTIME 1646373863.54413
   TYPE       notify
   READINGS:
     2022-03-04 02:03:05   state           active
     2022-03-04 07:04:23   triggeredByDev  dLaEgWzTs
     2022-03-04 07:04:23   triggeredByEvent off
Attributes:


Dummy
Internals:
   FUUID      6218d9ab-f33f-98ff-4ee2-6688578f085cde1c
   NAME       dLaEgKuDl
   NR         259
   STATE      off
   TYPE       dummy
   READINGS:
     2022-03-03 21:32:33   brightness      255
     2022-03-03 21:25:30   device          LaZbKuDl.
     2022-03-04 07:04:23   state           off
Attributes:
   alias      Deckenlicht Küche
   group      Licht
   icon       light_control
   readingList brightness device
   room       1 Erdgeschoss -> Küche
   setList    on:noArg off:noArg brightness:colorpicker,BRI,0,5,255
   webCmd     on:off:brightness


Von diesen Dummys gibt es (im Erdgeschoss) 9 Stück:

list d..Eg.*

dLaEgEzDl
dLaEgKuDl
dLaEgKuTr
dLaEgWzDl
dLaEgWzSb
dLaEgWzSl
dLaEgWzTs
dSwEgEzTl
dSwEgKuAp

Ziel: Alle Dummys im Ergeschoss auf "off" setzen:
set d..Eg.* off

Hier werden aber nur 8 geschaltet:
Log

2022.03.04 07:18:07 1: [nUniDimmer] Device: dLaEgEzDl / Event: off / Ziel: LaZbEzDl. CT: 500 / BR: 75 / Col: Err / state: off
2022.03.04 07:18:07 1: [nUniDimmer] Device: dLaEgKuDl / Event: off / Ziel: LaZbKuDl. CT: Err / BR: 255 / Col: Err / state: off
2022.03.04 07:18:07 1: [nUniDimmer] Device: dLaEgKuTr / Event: off / Ziel: LaZbKuSp. CT: 350 / BR: 150 / Col: Err / state: off
2022.03.04 07:18:07 1: [nUniDimmer] Device: dLaEgWzDl / Event: off / Ziel: LaZbWzD20. CT: 500 / BR: 125 / Col: 4393a3 / state: off
2022.03.04 07:18:07 1: [nUniDimmer] Device: dLaEgWzSb / Event: off / Ziel: LaZbWzSb. CT: Err / BR: 165 / Col: Err / state: off
2022.03.04 07:18:07 1: [nUniDimmer] Device: dLaEgWzSl / Event: off / Ziel: LaZbWzSl. CT: 324 / BR: 125 / Col: 40ff40 / state: off
2022.03.04 07:18:07 1: [nUniDimmer] Device: dLaEgWzTs / Event: off / Ziel: LaZbWzTodesstern CT: 232 / BR: 5 / Col: 3dff71 / state: off
2022.03.04 07:18:07 1: [nUniSwitch] Device: dSwEgEzTl / Event: off / Ziel: SdZbTl

(Das Notify nUniSwitch funktioniert grundsätzlich so wie nUniDimmer, schaltet aber nur On / Off)


Es fehlt das dummy dSwEgKuAp.

Das Verrückte daran ist, dass immer das letzte fehlt.
Ändere ich die Reihenfolge set d..EgKu.* off ; set d..EgWz.* off ; set d..EgEz.* off
fehlt das Dummy dSwEgEzTl:
Log
2022.03.04 07:25:11 1: [nUniDimmer] Device: dLaEgKuDl / Event: off / Ziel: LaZbKuDl. CT: Err / BR: 255 / Col: Err / state: off
2022.03.04 07:25:11 1: [nUniDimmer] Device: dLaEgKuTr / Event: off / Ziel: LaZbKuSp. CT: 350 / BR: 150 / Col: Err / state: off
2022.03.04 07:25:11 1: [nUniSwitch] Device: dSwEgKuAp / Event: off / Ziel: LaHiKuFe
2022.03.04 07:25:11 1: [nUniDimmer] Device: dLaEgWzDl / Event: off / Ziel: LaZbWzD20. CT: 500 / BR: 125 / Col: 4393a3 / state: off
2022.03.04 07:25:11 1: [nUniDimmer] Device: dLaEgWzSb / Event: off / Ziel: LaZbWzSb. CT: Err / BR: 165 / Col: Err / state: off
2022.03.04 07:25:11 1: [nUniDimmer] Device: dLaEgWzSl / Event: off / Ziel: LaZbWzSl. CT: 324 / BR: 125 / Col: 40ff40 / state: off
2022.03.04 07:25:11 1: [nUniDimmer] Device: dLaEgWzTs / Event: off / Ziel: LaZbWzTodesstern CT: 232 / BR: 5 / Col: 3dff71 / state: off
2022.03.04 07:25:11 1: [nUniDimmer] Device: dLaEgEzDl / Event: off / Ziel: LaZbEzDl. CT: 500 / BR: 75 / Col: Err / state: off


Zu erwähnen ist vielleicht noch, dass die Dummys zwischen 1 und 5 Devices schalten; das im Beispiel genannte Device LaZbKuDl. addressiert z.B. 2 Zigbee-Leuchten.

Ich habe nun keine Idee mehr - kann jemand helfen?
Docker: fhem & zigbee2mqtt / RaspiMatic / Elero / Fritz!Dect

Beta-User

Zitat von: chefschaffner am 04 März 2022, 07:41:23
ein seltsames Problem
..eher: ein gut nachvollziehbares Problem, das entsteht wegen einer eher suboptimalen Konstruktion... (Wieder ein Beleg, dass dieses dummy-Geschubse nicht gut ist).

Dein Problem: "verkettete" Eventhandler, ist z.B. dasselbe Thema wie in https://forum.fhem.de/index.php/topic,125923.0.html.
Ausgelassen wird m.E. nicht "das letzte Device", sondern das, das bereits "abgearbeitet" ist.

Prinzipiell würde ich die Konstruktion auf "structure"-Basis umstellen.

Welchen Grund gibt es eigentlich für diese "Zwischendummy" für die eigentlichen Geräte?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

chefschaffner

Danke für die Info - verstanden habe ich das aber nicht. Der Zusammenhang mit dem verlinkten Beitrag fehlt mir irgendwie - da weiss ich vermutlich zu wenig über die Internas... Mit der Info, besser auf "Dummy-Geschubse" zu verzichten, kann ich aber leben (auch wenn ich meine Idee gar nicht so schlecht fand... ;)).

ZitatWelchen Grund gibt es eigentlich für diese "Zwischendummy" für die eigentlichen Geräte?
Weil ich (noch?) nicht verstanden habe, wie ich in einer structure die Farb- und Helligkeitsinformationen speichern / setzen kann.

Für On/Off devices habe ich die structure verstanden, aber die Steuerung meiner Zigbee-Lampen (dimmbar / Farbe) habe ich damit nicht umsetzen können. Die  Dokumentation ist an dieser Stelle offenbar dünn, zumindest habe ich nichts hilfreiches gefunden...

Die Dummys haben für mich den Vorteil, dass die Schaltelemente (TabletUI) den aktuellen Status wiedergeben.
Docker: fhem & zigbee2mqtt / RaspiMatic / Elero / Fritz!Dect

rudolfkoenig

ZitatIch habe nun keine Idee mehr - kann jemand helfen?
Kannst du bitte einen problematischen Schaltvorgang mit verbose 5 protokollieren, und das Log hier (je nach Groesse komprimiert) anhaengen?