Moin Moin,
gegeben sei ein Userreading namens "ControlledLights" und ein Userreading "PctValue" in einem Dummy "Test".
Das erste Userreading führt eine Liste von Devicenamen, die mit Komma getrennt sind.
Das zweite Userreading führt einen prozentualen "Dimmlevel".
ControlledLights HUEDevice1,HUEDevice2,HM_SCHEUENE_LightsLeft,HM_CARPORT_LightsRight
pctValue 44
Diese Gerätenamen basieren auf unterschiedlichen Protokollen und sind unterschiedlichen Typs, in diesem Beispiel Philipe HUE Lights und Homematic. Es können Dimmer, RGB-Dimmer und Schalter gemischt vorkommen.
Dieses Userreading soll nun im klassischen Ausführungsteil mit FILTER= verarbeitet werden, z.B.
set [Test:ControlledLights]:FILTER=TYPE=HUL_CM:FILTER=subtype=switch on
Laut Commandref kann set mit einer kommaseparierten Liste von Gerätenamen in der Kombination mit FILTER= arbeiten, aber wie klappt dies mit klassischem DOIF?
Funktioniert eine eine Erweiterung, wenn ich auch noch das zweite Userreading einbinde, also z.B.
set [Test:ControlledLights]:FILTER=TYPE=HUL_CM:FILTER=subtype=dimmer:FILTER=pct!=[Test:pctValue] pct [Test:pctValue]
um alle Dimmer der Geräteliste, die nicht auf dem Wert pctValue sind auf diesen zurückzusetzen?
Meine Versuche und Experimente waren nicht so erfolgreich.
Vielen Dank für die Hilfe,
Ciao, -MN
Bei mir funktioniert
defmod di_test2 DOIF ([FS])(set [$SELF:bla] on)
mit Reading bla: bla1,bla2
Wenn es nicht funktioniert, dann hat das etwas mit der set-Filter-Syntax zutun und weniger mit DOIF.
Was ist TYPE=HUL_CM ?? :o
Ein Buchstabenverwuxler....
CUL_HM sollte es heissen...
Ciao, MN