Modul YAAHM: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 14: | Zeile 14: | ||
Das Modul ''95_YAAHM.pm'' stellt eine komfortable Oberfläche bereit, um per Webinterface die zyklische Ausführung von Kommandos - mit Tages- und Wochenprofil - zu konfigurieren. Der Titel '''YAAHM''' ist das Akronym für ''Yet Another Auto Home Module'', denn es gibt ja schon verschiedene Module, die den Zeitablauf in einem SmartHome vereinfachen sollen. Warum also noch Eines ? | Das Modul ''95_YAAHM.pm'' stellt eine komfortable Oberfläche bereit, um per Webinterface die zyklische Ausführung von Kommandos - mit Tages- und Wochenprofil - zu konfigurieren. Der Titel '''YAAHM''' ist das Akronym für ''Yet Another Auto Home Module'', denn es gibt ja schon verschiedene Module, die den Zeitablauf in einem SmartHome vereinfachen sollen. Warum also noch Eines ? | ||
Ganz einfach: Die Philosophie von YAAHM ist die einfache Bedienbarkeit im Frontend, mit Eingabefeldern und Visualisierungselementen - statt dabei | Ganz einfach: Die Philosophie von YAAHM ist die einfache Bedienbarkeit im Frontend, mit Eingabefeldern und Visualisierungselementen - statt dabei Unmengen von Attributen zu setzen. | ||
==Definition== | ==Definition== | ||
Zeile 27: | Zeile 27: | ||
==Konfiguration== | ==Konfiguration== | ||
Beim Anklicken des Begriffes ''Profile'' im oberen Menü des Webinterfaces wird dieser versteckte Raum angezeigt. Er enthält | Beim Anklicken des Begriffes ''Profile'' im oberen Menü des Webinterfaces wird dieser versteckte Raum angezeigt. Er enthält | ||
=== | ===Aktion=== | ||
[[Datei: | [[Datei:action_2.png]] | ||
8 Alarmlevel sind für das Modul normalerweise möglich (kann durch Setzen eines einzelnen Parameters im Modulcode verändert werden). | 8 Alarmlevel sind für das Modul normalerweise möglich (kann durch Setzen eines einzelnen Parameters im Modulcode verändert werden). |
Version vom 10. August 2017, 10:43 Uhr
YAAHM | |
---|---|
Zweck / Funktion | |
Das Modul stellt eine komfortable Oberfläche bereit, um per Webinterface die zyklische Ausführung von Kommandos - mit Tages- und Wochenprofil - zu konfigurieren | |
Allgemein | |
Typ | Hilfsmodul |
Details | |
Dokumentation | EN / DE |
Support (Forum) | Unterstuetzende Dienste |
Modulname | 95_YAAHM.pm |
Ersteller | Prof. Dr. Peter A. Henning |
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref! |
Diese Seite beschreibt die Konfiguration und Verwendung des Moduls 95_YAAHM.pm.
Allgemeines
Das Modul 95_YAAHM.pm stellt eine komfortable Oberfläche bereit, um per Webinterface die zyklische Ausführung von Kommandos - mit Tages- und Wochenprofil - zu konfigurieren. Der Titel YAAHM ist das Akronym für Yet Another Auto Home Module, denn es gibt ja schon verschiedene Module, die den Zeitablauf in einem SmartHome vereinfachen sollen. Warum also noch Eines ?
Ganz einfach: Die Philosophie von YAAHM ist die einfache Bedienbarkeit im Frontend, mit Eingabefeldern und Visualisierungselementen - statt dabei Unmengen von Attributen zu setzen.
Definition
Das YAAHM_Device - hier mit dem Namen YYY versehen - selbst wird über
define YYY YAAHM
definiert. Diese Definition legt einen versteckten Raum "ProfileRoom" an, welcher über einen Weblink im oberen Menü des Webinterfaces erreichbar ist.
- Der Name dieses Raumes kann durch das Attribut hiddenRoom geändert werden.
- Dieses Modul verwendet das globale Attribut language zur Bestimmung der Anzeigedaten (Standard: EN=english). Für deutsche Ausgabedaten muss in FHEM das Attribut
attr global language DE
gesetzt werden. Für dieses Wiki werden die deutschen Ausgabedaten verwendet.
Konfiguration
Beim Anklicken des Begriffes Profile im oberen Menü des Webinterfaces wird dieser versteckte Raum angezeigt. Er enthält
Aktion
8 Alarmlevel sind für das Modul normalerweise möglich (kann durch Setzen eines einzelnen Parameters im Modulcode verändert werden). In der Tabelle 'Settings' können für jeden Level die Startzeit ts und Endzeit te des Alarmlevels gesetzt werden. Formate für die Zeitangabe können sein:
- hh:mm - direkte Eingabe einer festen Zeit.
- {funktion} - eine beliebige Perl-Funktion in geschweiften Klammern, die einen gültigen Zeitwert hh:mm zurückliefert. Die Gültigkeit wird erst zur Laufzeit überprüft. Beispielsweise "30 Minuten vor Sonnenuntergang" als {sunset_abs(-1800)}.
Diese Aktivierungszeiten wirken sich wie folgt auf den Alarmlevel aus:
- Wenn ts < te, ist dieser Alarmlevel aktiv, falls ts < Zeit < te.
- Wenn ts >= te, ist dieser Alarmlevel aktiv, falls ts < Zeit <= 23:59 sowie wenn 0:00 < Zeit <= te.
Ferner kann für jeden Alarmlevel gesetzt oder bedient werden
- Eine Nachricht zur Erläuterung des Alarms (Teil 2)
- Eine Checkbox Armed = scharf
- Ein Button Cancel zum Canceln = Aufheben des Alarms
Sensors
Danach wird die Tabelle der Sensoren angezeigt. Für jeden Sensor kann gesetzt werden:
- Alarmlevel, die hierdurch ausgelöst werden
- Ein regulärer Ausdruck, bei dessen Erkennung die Auslösung erfolgt
- Eine Nachricht zur Erläuterung des Alarms (Teil 1)
- Ein Selektor, um festzulegen, ob dieser Sensor den Alarm
- auslöst (=Raise),
- widerruft (=Cancel),
- scharf schaltet (=Arm) oder
- unscharf schaltet (=Disarm).
Achtung: Es ist zwingend notwendig, dass für einen auszulösenden Alarmlevel auch ein Sensor für den Widerruf (=Cancel) des Alarms definiert wird, ansonsten ignoriert das Modul die Definition dieses Levels.
Die insgesamt in den STATE der Alarmanlage geschriebene Nachricht besteht dann aus
(Anzeige der Zustände) (Nachricht Teil 1)' '(Nachricht Teil 2).
Bitte weiter unten nachlesen, was mit der Anzeige der Zustände gemeint ist. In diesen Nachrichten werden die folgenden Ersetzungen vorgenommen
- $NAME vird durch den Namen des auslösenden Devices ersetzt
- $EVENT wird durch den kompletten Event ersetzt
- $EVTPART1... wird durch den 1. Teilstring des Events gefüllt, etc.
Actors
Anschließend wird die Tabelle der Aktoren angezeigt. Für jeden Aktor kann gesetzt werden:
- Alarmlevel, die diesen Aktor starten
- Ein FHEM-Kommando zum Starten des Aktors
- Ein FHEM-Kommando zum Stoppen des Aktors
- Eine Zeitverzögerung - entweder als Angabe von Sekunden (<60) oder im Format mm:ss
In den Strings für diese Aktionen werden folgende Ersetzungen vorgenommen:
- $NAME vird durch den Namen des auslösenden Devices ersetzt
- $EVENT wird durch den kompletten Event ersetzt
- $EVTPART1... wird durch den 1. Teilstring des Events gefüllt, etc.
- $SHORT wird durch die vollständige Kurznachricht der Alarmauslösung ersetzt
Aktivierung
Durch Anklicken des Buttons Set Alarms werden die alarmSettings-Attribute befüllt. Achtung, Folgendes beachten
- Es ist zwingend notwendig, dass für einen auszulösenden Alarmlevel auch ein Sensor für den Widerruf (=Cancel) des Alarms definiert wird, ansonsten ignoriert das Modul die Definition dieses Levels.
- Der Button Set Alarms wird nur funktionieren, wenn keine Sperrung vorliegt, siehe unten.
- Es empfiehlt sich, danach ein Save Config auszuführen, damit die Attribute und Notifier permanent sind.
Anzeige der Zustände
Auf Wunsch können die Zustände der Alarmanlage zusammen mit der konkreten Meldung im internal STATE (bzw. reading state, beide sind in diesem Modul identisch) angezeigt werden. Hierfür gibt es ein Attribut statedisplay mit den folgenden möglichen Werten, die nachfolgend am Beispiel für den Zustand "Alarm Level 1 ausgelöst" erläutert sind:
- none - keine Anzeige
- simple - OXOOOOOO
- color - 0 1 2 3 4 5 6 7
- table -
Das Problem ist, dass möglicherweise das internal STATE an anderer Stelle verwendet werden soll - z.B. beim Versenden von Mails als Value('AAA') Es macht natürlich keinen Sinn, eine HTML-Tabelle in eine Mail zu packen. Deshalb sollte für die Weiterverarbeitung statt des obigen Code die Abkürzung $SHORT in den Feldern des Alarm-Moduls verwendet werden. Sie wird vor der Ausführung ersetzt durch $defs{'AAA'}{READINGS}{"short"}{VAL} Dies enthält nur die Meldung, nicht aber die Anzeige aller Zustände.
Alternativ kann man auch die Zustandsanzeige durch Wahl des Attributwertes none komplett abstellen.
Sperrung
Das Reading lockstate muss den Wert unlocked haben, damit durch Anklicken des Buttons Set Alarms die alarmSettings-Attribute befüllt werden können. Das ist in der Regel beim ersten Laden des Moduls nicht der Fall, hierzu muss also das Reading von Hand auf den richtigen Wert gesetzt werden. Dazu muss der Befehl set ... unlocked ausgeführt werden.