Automatische Notification für neue Geräte in einem Raum?

Begonnen von kampi, 12 September 2020, 12:39:18

Vorheriges Thema - Nächstes Thema

kampi

Hallo zusammen,

ich habe eine Funktion die Daten von EnOcean-Sensoren per MQTT versendet und ich würde gerne erreichen, dass alle Geräte die einem bestimmten Raum zugeordnet werden automatisch diese Notification zugewiesen bekommen sollen. Aktuell sieht die Notification so aus:


defmod UpdateThingsBoard notify EnO_05160C81:temperature { ThingsBoard_Utils_Sender($NAME) }


Ich müsste diese jetzt folgendermaßen abändern, damit diese nicht nur bei Temperaturwerten getriggert wird:


defmod UpdateThingsBoard notify EnO_05160C81:* { ThingsBoard_Utils_Sender($NAME) }


Und wie erreiche ich jetzt, dass diese Notification automatisch jedem Gerät zugewiesen wird, welches in den Raum EnOcean geschoben wird? Gibt es da eine passende Funktion für?

Danke und Gruß

MadMax-FHEM

Eine Notification wird keinem Device "zugewiesen"...

Es gibt Events und ein notify (DOIF, FileLog etc.) "reagieren" darauf...

Wenn du die Namen der Geräte "gut" wählst, dann reicht EIN notify!!?

Schau dir mal notify, devSpec usw. an!

Und auch mal lesen wie fhem generell "funktioniert" evtl. auch (noch) mal...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

MadMax-FHEM

#2
Also angenommen die Devices heißen alle:

En0_...

Dann würde ein notify wie folgt reichen:


defmod UpdateThingsBoard notify EnO_.*:temperature { ThingsBoard_Utils_Sender($NAME) }


Das notify reagiert dann eben für alle Devices deren Name mit En0_ beginnt und ein Event mit temperature schicken.
Bzw. evtl. sogar so (oder funktioniert das notify so schon?!)!?


defmod UpdateThingsBoard notify EnO_.*:temperature.* { ThingsBoard_Utils_Sender($NAME) }


Neben $NAME kann auch noch $EVENT oder $EVTPART0, $EVTPART1 usw. übergeben werden.

Besser ist nat. sich für Devices generell ein "gutes" Namens-Schema zu überlegen...
Eben wegen "solcher" und anderer "Dinge"...

Ein triggern auf Devices eines bestimmten Raumes geht mWn nicht.
Du kannst höchstens ein "weit gefasstes" notify anlegen (ähnlich meinem) und dann "im" notify (oder der Sub) abfragen, ob das "aulösende" Device in einem bestimmten Raum "steckt": if(AttrVal("Devicename","room","n.a.") eq "EnOcean") oder so...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)