Trigger: Unterschied zwischen den Versionen

Aus FHEMWiki
K (Vorlage Link2CmdRef)
Keine Bearbeitungszusammenfassung
 
(Eine dazwischenliegende Version von einem anderen Benutzer wird nicht angezeigt)
Zeile 29: Zeile 29:
Manchmal möchte man nicht auf state prüfen (wie z.B. bei einem Dummy) sondern auf ein bestimmtes Reading.
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  
Hierfür lautet die Syntax  
:<code>trigger <Device> <Reading>:<Value></code>
:<code>trigger <Device> <Reading>: <Value></code>
Also z.B.  
Also z.B.  
:<code>trigger Stromzaehler power:1000</code>
:<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 39: 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, 08: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