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