FHEM Notify
In FHEM ist ein notify eine Möglichkeit, auf bestimmte Events zu reagieren, die von einem Gerät (z. B. ein Shelly-Aktor) ausgelöst werden. Ein notify wird automatisch ausgeführt, wenn eine definierte Bedingung auftritt – zum Beispiel das Schalten eines Geräts (Aktor ein/aus).
🔧 Funktionsweise von notify in FHEM
Ein notify lauscht auf Ereignisse im Event-System von FHEM. Wenn ein Gerät ein bestimmtes Event auslöst (z. B. state: on), wird das notify ausgelöst und führt den darin angegebenen Befehl aus.
Syntax
perl
define <NAME> notify <TRIGGER> <BEFEHL>
<NAME>: Name des Notify-Objekts.
<TRIGGER>: Gerät und Event, auf das reagiert werden soll.
<BEFEHL>: Der auszuführende FHEM-Befehl.
⚙️ Beispiel: Notify bei Schalten eines Shelly-Aktors
Angenommen, dein Shelly-Gerät heißt Shelly_Wohnzimmer_Licht und du möchtest, dass bei jedem Ein- oder Ausschalten eine Lognachricht geschrieben wird.
Beispiel-Definition
perl
define n_ShellySchaltLog notify Shelly_Wohnzimmer_Licht:.* {
my $state = ReadingsVal("Shelly_Wohnzimmer_Licht", "state", "undef");
Log 1, "Shelly Wohnzimmer Licht wurde geschaltet: $state";
}
Erklärung:
Shelly_Wohnzimmer_Licht:.* bedeutet: Reagiere auf jedes Event dieses Geräts.
ReadingsVal(...) holt den aktuellen Status (on, off, o. ä.).
Log 1, ... schreibt ins Logfile mit Loglevel 1 (Info).
Du kannst anstelle eines Logeintrags auch andere FHEM-Kommandos einfügen (z. B. ein anderes Gerät schalten).
📌 Beispiel: Aktives Schalten bei Event
Möchtest du z. B. eine Lampe einschalten, wenn der Shelly eingeschaltet wurde:
perl
define n_ShellyOnLampOn notify Shelly_Wohnzimmer_Licht:on set Lampe_Esszimmer on
Wenn Shelly_Wohnzimmer_Licht den Status on meldet, wird Lampe_Esszimmer eingeschaltet.
🔍 Tipps zur Fehlersuche
Aktiviere verbose 5 temporär für detailliertes Logging.
Schaue mit eventTypes oder inform timer nach, welche Events tatsächlich ankommen.
Mit dem Befehl setuuid kannst du ein Notify gezielt identifizieren (für Debugging).