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?
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?
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.
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?