Eventhandler: Unterschied zwischen den Versionen

Aus FHEMWiki
Keine Bearbeitungszusammenfassung
K (Haupt-Kategorie FHEM entfernt; ist bereits über Kategoriebaum abgedeckt.)
 
(26 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Baustelle}}
== Begriff ==
== Begriff ==
Der englische Begriff event handler steht im Zusammenhang mit ereignisorientierten Programmiersprachen<ref>https://de.wikipedia.org/wiki/Ereignis_(Programmierung)#Verwendung</ref>. Als deutsche Begriffe werden Ereignisbehandler<ref>https://wiki.selfhtml.org/wiki/HTML/Eventhandler</ref> oder Ereignishandler verwendet. Zur Abgrenzung wird im Zusammenhang mit FHEM die Schreibung [[Eventhandler]] verwendet.
Der englische Begriff event handler steht im Zusammenhang mit ereignisorientierten Programmiersprachen<ref>https://de.wikipedia.org/wiki/Ereignis_(Programmierung)#Verwendung</ref>. Als deutsche Begriffe werden Ereignisbehandler<ref>https://wiki.selfhtml.org/wiki/HTML/Eventhandler</ref> oder Ereignishandler verwendet. Zur Abgrenzung wird im Zusammenhang mit FHEM die Schreibung [[Eventhandler]] verwendet.
Zeile 6: Zeile 5:
[[Eventhandler]] reagieren auf [[Ereignis|Ereignisse]], verarbeiten sie und liefern ein Ergebnis.
[[Eventhandler]] reagieren auf [[Ereignis|Ereignisse]], verarbeiten sie und liefern ein Ergebnis.


=== Benutzersicht ===
== Benutzersicht ==
Aus Benutzersicht sind es [[Module]], bzw. deren [[Gerät|Geräte]], die es erlauben den Ereignisfilter, die Ereignisverarbeitung, das Ergebnis oder Teilaspekte davon selbst zu bestimmen, wie.
Aus Benutzersicht sind es [[Modul|Module]], bzw. deren [[Gerät|Geräte]], die es erlauben Eingangsfilter, die Ereignisverarbeitung, das Ergebnis oder Teilaspekte dieser Parameter selbst zu bestimmen.


* [[DbLog]]<ref>{{Link2CmdRef|Anker=DbLog|Lang=de|Label=DbLog}}</ref>
=== Allgemeine Eventhandler ===
* [[DOIF]]<ref>{{Link2CmdRef|Anker=DOIF_|Lang=de|Label=DOIF}}</ref>
Allgemeine Eventhandler geben dem Benutzer die Möglichkeit den Eingangsfilter, die Verarbeitung und das Ergebnis selbst zu bestimmen. Das ist bei den folgenden [[Modul|Modulen]] der Fall.
* [[FileLog]]<ref>{{Link2CmdRef|Anker=FileLog|Lang=de|Label=FileLog}}</ref>
* [[notify]]<ref>{{Link2CmdRef|Anker=notify|Lang=de|Label=notify}}</ref>
* [[sequence]]<ref>{{Link2CmdRef|Anker=sequence|Lang=de|Label=sequence}}</ref>
* [[watchdog]]<ref>{{Link2CmdRef|Anker=watchdog|Lang=de|Label=watchdog}}</ref>


=== Modulsicht ===
* [[DOIF]]<ref>{{Link2CmdRef|Anker=DOIF|Lang=de}}</ref> universelles [[Modul]], welches ereignis- und zeitgesteuert Anweisungen ausführt
Aus Modulsicht sind es die die Modulfunktionen die Hardwareereignisse oder Systemereignisse behandeln, wie.
* [[notify]]<ref>{{Link2CmdRef|Anker=notify|Lang=de}}</ref> führt bei Events Anweisungen aus


* [[DevelopmentModuleIntro#X_Dispatch|X_Dispatch]]
=== Spezielle Eventhandler ===
* [[DevelopmentModuleIntro#X_Notify|X_Notify]]
Spezielle Eventhandler bieten Lösungen für typische Anwendungsfälle. Das ist bei den folgenden [[Modul|Modulen]] der Fall.
* [[DevelopmentModuleIntro#X_Parse|X_Parse]]
* [[Modul_Alarm|Alarm]]<ref>{{Link2CmdRef|Anker=Alarm|Lang=en}}</ref> Konfiguration eines Hausalarmsystems mit 8 Alarmstufen
* [[DevelopmentModuleIntro#X_Write|X_Write]]
* [[autocreate]]<ref>{{Link2CmdRef|Anker=autocreate|Lang=de}}</ref> Erzeugt FHEM-Geräte automatisch
* [[DbLog]]<ref>{{Link2CmdRef|Anker=DbLog|Lang=de}}</ref> loggt Events in eine Datenbank
* [[FileLog]]<ref>{{Link2CmdRef|Anker=FileLog|Lang=de}}</ref> schreibt Events in eine Logdatei
* [[PID20_-_Der_PID-Regler|PID20]]<ref>{{Link2CmdRef|Anker=PID20|Lang=de}}</ref> PID-Regler für Sensor und Aktor
* [[sequence]]<ref>{{Link2CmdRef|Anker=sequence|Lang=de}}</ref> generiert Event nach Empfang einer definierten Event-Sequenz
* [[THRESHOLD]]<ref>{{Link2CmdRef|Anker=THRESHOLD|Lang=de}}</ref> Simulation eines Zweipunktreglers
* [[watchdog]]<ref>{{Link2CmdRef|Anker=watchdog|Lang=de}}</ref> führt Befehl aus, falls innerhalb des Timeouts kein Event empfangen wurde


== Bedienung (Benutzersicht) ==
=== Bedienung ===
Es sind Ereignisfilter oder Suchmuster festzulegen.
Es sind Ereignisfilter oder Suchmuster festzulegen.
Die Verarbeitung ist zu beschreiben und das daraus resultierenden Ergebnis ist zu beschreiben.
Die Verarbeitung ist zu beschreiben und das daraus resultierenden Ergebnis ist festzulegen.
 
==== Suchmuster oder Ereignisfilter ====
Die im System aktuell entstehenden [[Ereignis|Ereignisse]] können mit dem [[Event monitor|Eventmonitor]] angezeigt werden. Die angzeigten [[Ereignis|Ereignisse]] sind die Grundlage zur Erstellung von Ereignisfiltern oder Suchmustern als Eingangsparameter für einen [[Eventhandler]].
Wenn [[Ereignis|Ereignisse]] zu dem Filter passen, dann startet die Verarbeitung und ein Ergebnis wird geliefert.
 
Der [[Event monitor|Eventmonitor]] stellt einen Assistenten bereit, der für einige [[Modul|Module]] das Erstellen von Ereignisfiltern oder Suchmustern unterstützt.
 
Die genaue Syntax der Filter oder Suchmuster eines [[Eventhandler]] ist in der {{Link2CmdRef|Anker=doctop|Lang=de|Label=Befehlereferenz}} beschrieben.


=== Suchmuster oder Ereignisfilter ===
==== Verarbeitung ====
Die im System aktuell entstehenden [[Ereignis|Ereignisse]] können mit dem [[Event monitor|Eventmonitor]] angezeigt werden. Die angzeigten [[Ereignis|Ereignisse]] sind die Grundlage zur Erstellung von Ereignisfiltern oder Suchmustern als Eingangsparameter für einen [[Eventhandler].
Ein zum Ereignisfilter passendes [[Ereignis]] ist der Auslöser oder auch Trigger der Verarbeitung.
Die Verarbeitung beinhaltet die Entscheidung welche Befehle ausgeführt werden sollen. Bei der Entscheidungsfindung können die in FHEM vorhandenen Größen und Werte berücksichtigt werden. Die Verküpfung erfolgt durch die vom jeweiligen [[Eventhandler]] bereitgestellten Möglichkeiten und Perlausdrücke<ref>https://perldoc.perl.org/index.html</ref>.


Der [[Event monitor|Eventmonitor]] stellt einen Assistenten bereit, der den Benutzer beim Erstellen von Ereignisfiltern oder Suchmustern unterstützt.
==== Ergebnis ====
Als Ergebnis der Eventverarbeitung werden Befehle ausgeführt, die {{Link2CmdRef|Anker=command|Lang=de|Label=FHEM-Befehlstypen}} sind in der {{Link2CmdRef|Anker=command|Lang=de|Label=Befehlereferenz}} beschrieben.


Die genaue Syntax der Filter oder Suchmuster eines [[Eventhandler]] in der {{Link2CmdRef|Anker=doctop|Lang=de|Label=Befehlereferenz}} beschrieben.
* FHEM-Befehle, sie werden direkt angegben und sind in der {{Link2CmdRef|Anker=command|Lang=de|Label=Befehlereferenz}} im Abschnitt '''FHEM-Befehle''' zu finden.
* Shellbefehle, sie werden durch doppelte Anführungszeichen <code>"<Shellbefehle>"</code> eingeschlossen.
* Perlausdrücke, sie werden von geschweiften Klammern <code>{<Perlausdrücke>}</code> eingeschlossen.


=== Verarbeitung ===
== Entwicklungssicht ==
Aus Modulsicht sind es Modulfunktionen, die Hardwareereignisse oder Systemereignisse behandeln.


=== Ergebnis ===
* [[DevelopmentModuleIntro#X_Dispatch|X_Dispatch]]
* [[DevelopmentModuleIntro#X_Notify|X_Notify]]
* [[DevelopmentModuleIntro#X_Parse|X_Parse]]
* [[DevelopmentModuleIntro#X_Write|X_Write]]


== Links ==
== Links ==
* [[Timehandler]]
<references />
<references />


[[Kategorie:FHEM-Verwendung]]
[[Kategorie:Glossary]]
[[Kategorie:Glossary]]

Aktuelle Version vom 4. Dezember 2019, 13:30 Uhr

Begriff

Der englische Begriff event handler steht im Zusammenhang mit ereignisorientierten Programmiersprachen[1]. Als deutsche Begriffe werden Ereignisbehandler[2] oder Ereignishandler verwendet. Zur Abgrenzung wird im Zusammenhang mit FHEM die Schreibung Eventhandler verwendet.

Definition

Eventhandler reagieren auf Ereignisse, verarbeiten sie und liefern ein Ergebnis.

Benutzersicht

Aus Benutzersicht sind es Module, bzw. deren Geräte, die es erlauben Eingangsfilter, die Ereignisverarbeitung, das Ergebnis oder Teilaspekte dieser Parameter selbst zu bestimmen.

Allgemeine Eventhandler

Allgemeine Eventhandler geben dem Benutzer die Möglichkeit den Eingangsfilter, die Verarbeitung und das Ergebnis selbst zu bestimmen. Das ist bei den folgenden Modulen der Fall.

  • DOIF[3] universelles Modul, welches ereignis- und zeitgesteuert Anweisungen ausführt
  • notify[4] führt bei Events Anweisungen aus

Spezielle Eventhandler

Spezielle Eventhandler bieten Lösungen für typische Anwendungsfälle. Das ist bei den folgenden Modulen der Fall.

  • Alarm[5] Konfiguration eines Hausalarmsystems mit 8 Alarmstufen
  • autocreate[6] Erzeugt FHEM-Geräte automatisch
  • DbLog[7] loggt Events in eine Datenbank
  • FileLog[8] schreibt Events in eine Logdatei
  • PID20[9] PID-Regler für Sensor und Aktor
  • sequence[10] generiert Event nach Empfang einer definierten Event-Sequenz
  • THRESHOLD[11] Simulation eines Zweipunktreglers
  • watchdog[12] führt Befehl aus, falls innerhalb des Timeouts kein Event empfangen wurde

Bedienung

Es sind Ereignisfilter oder Suchmuster festzulegen. Die Verarbeitung ist zu beschreiben und das daraus resultierenden Ergebnis ist festzulegen.

Suchmuster oder Ereignisfilter

Die im System aktuell entstehenden Ereignisse können mit dem Eventmonitor angezeigt werden. Die angzeigten Ereignisse sind die Grundlage zur Erstellung von Ereignisfiltern oder Suchmustern als Eingangsparameter für einen Eventhandler. Wenn Ereignisse zu dem Filter passen, dann startet die Verarbeitung und ein Ergebnis wird geliefert.

Der Eventmonitor stellt einen Assistenten bereit, der für einige Module das Erstellen von Ereignisfiltern oder Suchmustern unterstützt.

Die genaue Syntax der Filter oder Suchmuster eines Eventhandler ist in der Befehlereferenz beschrieben.

Verarbeitung

Ein zum Ereignisfilter passendes Ereignis ist der Auslöser oder auch Trigger der Verarbeitung. Die Verarbeitung beinhaltet die Entscheidung welche Befehle ausgeführt werden sollen. Bei der Entscheidungsfindung können die in FHEM vorhandenen Größen und Werte berücksichtigt werden. Die Verküpfung erfolgt durch die vom jeweiligen Eventhandler bereitgestellten Möglichkeiten und Perlausdrücke[13].

Ergebnis

Als Ergebnis der Eventverarbeitung werden Befehle ausgeführt, die FHEM-Befehlstypen sind in der Befehlereferenz beschrieben.

  • FHEM-Befehle, sie werden direkt angegben und sind in der Befehlereferenz im Abschnitt FHEM-Befehle zu finden.
  • Shellbefehle, sie werden durch doppelte Anführungszeichen "<Shellbefehle>" eingeschlossen.
  • Perlausdrücke, sie werden von geschweiften Klammern {<Perlausdrücke>} eingeschlossen.

Entwicklungssicht

Aus Modulsicht sind es Modulfunktionen, die Hardwareereignisse oder Systemereignisse behandeln.

Links