Ein DOIF für mehrere Geräte

Begonnen von The Grue, 06 Juni 2023, 10:47:05

Vorheriges Thema - Nächstes Thema

The Grue

Servus!

Mal wieder eine dumme Frage, weil ich nicht in der Lage bin, die Antwort aus der Hilfe zu DOIF rauszulesen... sorry.

Ich habe zwei DOIFs, die genau das gleiche machen, nur halt für zwei Geräte:

define Basement.Corridor.PIR.Activation DOIF ([Basement.Corridor.PIR:"^alarm:.HomeSecurity:.Motion.Detection.-.Unknown.Location$"]) \
(set Basement.Corridor.Light on-for-timer 120) \
DOELSE ()

bzw

define Basement.PIR.Activation DOIF ([Basement.Stairs.PIR:"^alarm:.HomeSecurity:.Motion.Detection.-.Unknown.Location$"]) \
(set Basement.Corridor.Light on-for-timer 120) \
DOELSE ()

Ich hätte gedacht, daß das mit einer Regexp funktioniert (define Basement.*.PIR.Activation ...), aber da zuckt nix.

Bestimmt ist die Lösung trivial, aber ich komm' nicht drauf :( und bitte um Hilfe.

Danke!
--
The Grue

rabehd

 ::) Mal ein OR in die Bedingung eingefügt?
Ist zwar nicht schön, aber...
Auch funktionierende Lösungen kann man hinterfragen.

Sany

DOIF sagt dazu:
ZitatSollen Events verschiedener Devices ausgewertet werden, so lässt sich folgende Syntax anwenden: ["<device regex>:<event regex>"]

und
Zitat["FS:temp"] triggert auf alle Devices, die "FS" im Namen und "temp" im Event beinhalten


du musst also die Regex auf den Namen ausweiten, d.h. die Anführungszeichen müssen da drum rum

Deine Def könnte also so aussehen:



define Basement.Corridor.PIR.Activation DOIF (["^Basement.*PIR$:^alarm:.HomeSecurity:.Motion.Detection.-.Unknown.Location$"]) \
 (set Basement.Corridor.Light on-for-timer 120) \
DOELSE ()


oder

define Basement.Corridor.PIR.Activation DOIF (["^Basement.(Corridor|Stairs).PIR$:^alarm:.HomeSecurity:.Motion.Detection.-.Unknown.Location$"]) \
 (set Basement.Corridor.Light on-for-timer 120) \
DOELSE ()
die erste Variante ist allgemeiner, die 2te nur für Corridor und Stairs.

Viel Erfolg!!


Sany
fhem auf Zotac ZBox nano als LXC auf Proxmox, weitere LXC mit ZigBee2MQTT, MariaDB und Grafana. Homematic, FS20, mySensors, MQTT2, Tasmota, Shelly, Z-Wave  ....

The Grue

Zitat von: Sany am 06 Juni 2023, 12:31:07Viel Erfolg!!

Vielen Dank! Eine schöne Lösung die auch funktioniert :) Hab' ich mal wieder die richtige Zeile in der Doku übersehen, ich Blindfuchs...

The Grue

Servus rabehd

Zitat von: rabehd am 06 Juni 2023, 12:16:41::) Mal ein OR in die Bedingung eingefügt?
Ist zwar nicht schön, aber...

Danke :) Ja, hab' ich. ist aber eine Lösung, die irgendwie nicht zu fhem passt.

Da Erlaube ich mir ein Zitat ;)

Zitat von: rabehdAuch funktionierende Lösungen kann man hinterfragen.