Trigger: Unterschied zwischen den Versionen

Aus FHEMWiki
(Erste Version der Seite)
 
Keine Bearbeitungszusammenfassung
 
(6 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 8: Zeile 8:
|ModOwner=rudolfkoenig ({{Link2FU|8|Forum}} / [[Benutzer Diskussion:Rudolfkoenig|Wiki]])
|ModOwner=rudolfkoenig ({{Link2FU|8|Forum}} / [[Benutzer Diskussion:Rudolfkoenig|Wiki]])
}}
}}
Mit dem Befehl [[trigger]] lässt sich ein [[notify]] direkt z.B. aus dem Befehls-Eingabefeld des [[FHEMWEB|Webfrontends]], einem [[at]] oder einem Skript anstoßen.
Der Befehl [[trigger]] stößt ein ein [[Event]] an, stellvertretend für ein Gerät. Damit ist es möglich Aktionen in Geräten auszulösen, z,B. [[DbLog]], [[DOIF]], [[FileLog]] und [[notify]]. Der Befehl kann direkt in dem Befehls-Eingabefeld des [[FHEMWEB|Webfrontends]], zeitgesteuert in einem [[at]] oder [[DOIF]], ereignisgesteuert in einem [[DOIF]] oder [[notify]] oder in einem Skript verwendet werden, um Events anzustoßen.


== Voraussetzungen ==
== Voraussetzungen ==


== Syntax ==
== Syntax ==
:<code><nowiki>trigger <notifyName> <event></nowiki></code>
:<code><nowiki>trigger <devspec> <event></nowiki></code>
Details sind in der commandref (siehe Infobox) zu finden.
Details sind in der {{Link2CmdRef|Anker=trigger}} zu finden.


== Beispiele ==
== Beispiele ==
=== Einfaches Beispiel ===
=== Einfaches Beispiel ===
Das folgende Beispiel ist {{Link2Forum|Topic=6964|LinkText=diesem Forenthread}} entnommen:
Das folgende Beispiel ist {{Link2Forum|Topic=6964|LinkText=diesem Forenthread}} entnommen:
:<code>define KellerLicht notify BueroOben1 set Keller1 % </code>
:<code>define KellerLicht notify BueroOben1 set Keller1 $EVENT </code>
kann angestoßen werden mit
kann angestoßen werden mit
:<code>trigger BueroOben1 on</code> oder  
:<code>trigger BueroOben1 on</code> oder  
Zeile 25: Zeile 25:
Falsch wäre jedoch z.B.:
Falsch wäre jedoch z.B.:
:<code>trigger KellerLicht on</code>
:<code>trigger KellerLicht on</code>
=== nur ein bestimmtes Reading triggern===
Manchmal möchte man nicht auf state prüfen (wie z.B. bei einem Dummy) sondern auf ein bestimmtes Reading.
Hierfür lautet die Syntax
:<code>trigger <Device> <Reading>: <Value></code>
Also z.B.
:<code>trigger Stromzaehler power: 1000</code>
Hinweis: zwischen Reading: und Wert ist ein Leerzeichen eingefügt um einen identischen Aufbau gegenüber den gewöhnlich vom System erzeugten Events zu erhalten (siehe Eventmonitor).


=== Eine komplexe Aktion auf verschieden Arten anstoßen ===
=== Eine komplexe Aktion auf verschieden Arten anstoßen ===
Zeile 31: Zeile 40:
== Links ==
== Links ==
* Forendiskussion mit dem Thema {{Link2Forum|Topic=12928|LinkText=Verständnis für "trigger"}}
* Forendiskussion mit dem Thema {{Link2Forum|Topic=12928|LinkText=Verständnis für "trigger"}}
* [[Eventhandler]]
* [[Timehandler]]

Aktuelle Version vom 6. November 2019, 09:04 Uhr


trigger
Zweck / Funktion
Anstoßen einer notify Aktion
Allgemein
Typ Befehl
Details
Dokumentation EN / DE
Support (Forum) Sonstiges
Modulname fhem.pl ("Built-in")
Ersteller rudolfkoenig (Forum / Wiki)
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!

Der Befehl trigger stößt ein ein Event an, stellvertretend für ein Gerät. Damit ist es möglich Aktionen in Geräten auszulösen, z,B. DbLog, DOIF, FileLog und notify. Der Befehl kann direkt in dem Befehls-Eingabefeld des Webfrontends, zeitgesteuert in einem at oder DOIF, ereignisgesteuert in einem DOIF oder notify oder in einem Skript verwendet werden, um Events anzustoßen.

Voraussetzungen

Syntax

trigger <devspec> <event>

Details sind in der commandref/trigger zu finden.

Beispiele

Einfaches Beispiel

Das folgende Beispiel ist diesem Forenthread entnommen:

define KellerLicht notify BueroOben1 set Keller1 $EVENT

kann angestoßen werden mit

trigger BueroOben1 on oder
trigger BueroOben1 off

Falsch wäre jedoch z.B.:

trigger KellerLicht on

nur ein bestimmtes Reading triggern

Manchmal möchte man nicht auf state prüfen (wie z.B. bei einem Dummy) sondern auf ein bestimmtes Reading. Hierfür lautet die Syntax

trigger <Device> <Reading>: <Value>

Also z.B.

trigger Stromzaehler power: 1000

Hinweis: zwischen Reading: und Wert ist ein Leerzeichen eingefügt um einen identischen Aufbau gegenüber den gewöhnlich vom System erzeugten Events zu erhalten (siehe Eventmonitor).

Eine komplexe Aktion auf verschieden Arten anstoßen

Annahme: es gibt eine notify-Definition, die (z.B. über Systembefehle) Bilder von einer Netzwerkkamera speichert. Soll das vom Benutzer über einen Button auf der Benutzeroberfläche angestoßen werden können, wird dafür sinnvollerweise ein dummy definiert, der ein entsprechendes Ereignis erzeugt. Zusätzlich kann aber auch eine at-Definition über den trigger-Befehl in regelmäßigen Abständen die gleiche Dummy-Definition ansprechen, was vom notify erkannt wird und ebenfalls dazu führt, das aktuelle Kamerabild zu sichern.

Links