Modul YAAHM: Unterschied zwischen den Versionen

Aus FHEMWiki
Keine Bearbeitungszusammenfassung
Zeile 30: Zeile 30:
Jedes Wochenprofil besteht aus einem Ereignis (Event) je Wochentag. Für dieses Event kann eine Liste von FHEM-Kommandos angegeben werden, die dann ausgeführt werden. Zwei Standard-Wochenprofile ''Wecken'' und ''Schlafen'' sind vordefiniert und können nicht gelöscht werden. Eine beliebige Anzahl weiterer Wochenprofile kann angelegt und wieder gelöscht werden.  
Jedes Wochenprofil besteht aus einem Ereignis (Event) je Wochentag. Für dieses Event kann eine Liste von FHEM-Kommandos angegeben werden, die dann ausgeführt werden. Zwei Standard-Wochenprofile ''Wecken'' und ''Schlafen'' sind vordefiniert und können nicht gelöscht werden. Eine beliebige Anzahl weiterer Wochenprofile kann angelegt und wieder gelöscht werden.  


Für jedes Wochenprofil kann eine '''manuelle nächste Zeit''' eingegeben werden. Ist diese später als der gegenwärtige Zeitpunkt, wird sie für den aktuellen Tag verwendet. Ist diese früher als der gegenwärtige Zeitpunkt, wird sie erst am nächsten Tag als Ausnahmezeit verwendet.
Für jedes Wochenprofil kann eine '''manuelle Auslösezeit''' eingegeben werden. Ist diese später als der gegenwärtige Zeitpunkt, wird sie für den aktuellen Tag verwendet. Ist diese früher als der gegenwärtige Zeitpunkt, wird sie erst am nächsten Tag als Ausnahmezeit verwendet.


== (Nutzungs-)Modus und (Sicherheits-)Zustand==
== (Nutzungs-)Modus und (Sicherheits-)Zustand==
Zeile 57: Zeile 57:


==Konfiguration ==
==Konfiguration ==
Das YAAHM-Device kennt die folgenden Set-Befehle:
Das YAAHM-Device kennt die folgenden Set-Befehle (''YYY'' ist duch den tatsächlichen Device-Namen zu ersetzen):
  set YYY time <timeevent>
  set YYY time (after|before)midnight | [before|after]sunrise | [before|after]sunset | morning | noon | afternoon | evening | night | wakeup | sleep
Erzeugt manuell </code></a><br/>
Erzeugt manuell den entsprechenden Event.
                    Set the current house time (event), i.e. one of several values:
set YYY manualnext &lt;timernumber&gt; &lt;time&gt;
                    <ul>
set YYY manualnext &lt;timername&gt; &lt;time&gt;
                    <li>(after|before) midnight | [before|after] sunrise | [before|after] sunset are calculated from astronomical data (&pm;offset).
Setzt die manuelle Auslösezeit für den Wochen-Timer, der durch die Angabe einer fortlaufenden Nummerierung (beginnend bei 0) oder seinen Namen identifiiert wird.  
                    These values vary from day to day, only the offset can be specified in the daily profile. </li>
set YYY mode normal | party | absence
                    <li>morning | noon | afternoon | evening | night are fixed time events specified in the daily profile.
Setzt den (Nutzungs-)Modus des SmartHome
                    The time phase between events morning and night is called <i>daytime</i>, the
set YYY state unsecured | secured | protected | guarded
                    time phase between events night and morning is called <i>nighttime</i></li>
Setzt den (Sicherheits-)Zustand des SmartHome
                    <li>wakeup|sleep are time events specified in the weekly default profiles <i>Wakeup</i> and <i>Sleep</i>, i.e. the value may change from day to day.</li>
set YYY createWeekly &lt;string&gt;
                    </ul>
set YYY deleteWeekly &lt;string&gt;
                  </li>
Erzeuge oder entferne ein Wochen-Profil mit dem entsprechenden Namen.
            <li><a name="yaahm_manualnext">
set YYY locked |unlocked
                    <code>set &lt;name&gt; manualnext &lt;timernumber&gt; &lt;time&gt;</code></a><br/>
Sperre oder entsperre das Überschreiben der Timer
                    <code>set &lt;name&gt; manualnext &lt;timername&gt; &lt;time&gt;</code></a><br/>
                    For the weekly timer identified by its number (starting at 0) or its name, set the next ring time manually. The time specification &lt;time&gt;must be in the format hh:mm or "off"
                    If the time specification &lt;time&gt; is later than the current time, it will be used for today. If it is earlier than the current time, it will be used tomorrow.
                  </li>
            <li><a name="yaahm_mode">
                    <code>set &lt;name&gt; mode normal | party | absence</code>
                </a>
                <br />Set the current house mode, i.e. one of several values:
                <ul>
               
                </li> 
              <li><a name="yaahm_state">
                    <code>set &lt;name&gt; state unsecured | secured | protected | guarded</code>
                </a>
                <br/>Set house (security) state, i.e. one of several values:
                  <ul>
                    <li> unsecured - Example: doors etc. are unlocked, windows may be open, movement alarm is disarmed, danger alarm is armed. Alarm is targeted at people present in the house.
                    </li>
                    <li> secured - Example: doors etc. are locked, windows may not be open, movement alarm is disarmed, danger alarm is armed. Alarm is targeted at people present in the house.
                    </li>
                    <li> protected - Example: doors etc. are locked, windows may not be open, movement alarm is armed, danger alarm is armed. Alarm is targeted at people present in the house.
                    </li>
                    <li> guarded - Example: doors etc. are locked, windows may not be open, movement alarm is armed, danger alarm is armed. Alarm is targeted at absent people.
                    </li>
                  </ul>
                  House (security) states are valid until manual change. If the attribute <i>stateAuto</i> is set (see below), state will change automatically at certain times.</li>
                </li>     
            <li><a name="yaahm_createweekly">
                    <code>set &lt;name&gt; createWeekly &lt;string&gt;</code>
                </a>
                <br />Create a new weekly profile &lt;string&gt;</li>
            <li><a name="yaahm_deleteweekly">
                    <code>set &lt;name&gt; deleteWeekly &lt;string&gt;</code>
                </a>
                <br />Delete the weekly profile &lt;string&gt;</li>
            <li><a name="yaahm_lock">
                    <code>set &lt;name&gt; locked|unlocked</code>
                </a>
                <br />Set the lockstate of the yaahm module to <i>locked</i> (i.e., yaahm setups
                may not be changed) resp. <i>unlocked</i> (i.e., yaahm setups may be changed>)</li>
        </ul>


==Bedienung==
=Webinterface=
In diesem Abschnitt wird die Bedienung der Weboberfläche und damit die Konfiguration der Hausautomatik beschrieben. Um sie zu erreichen, klickt man auf den Begriff ''Profile'' im oberen Menü des Webinterfaces
In diesem Abschnitt wird die Bedienung des Webinterfaces und damit die Konfiguration der Hausautomatik beschrieben. Um sie zu erreichen, klickt man auf den Begriff ''Profile'' im oberen Menü des Webinterfaces
===Aktion===
===Aktion===



Version vom 10. August 2017, 14:15 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. Dafür gibt es verschiedene Begriffe zu verstehen.

Tages-Profil

Das Tagesprofil besteht aus einer Kette von Ereignissen (Events), die an jedem Tag zeitgesteuert ablaufen. Welcher Event als letztes durchgeführt wurde, steht im Reading housetime, der vorhergehende Event im Reading prev_housetime und der vom gegenwärtigen Zeitpunkt aus nächste Event im Reading next_housetime. Für jedes Event kann eine Liste von FHEM-Kommandos angegeben werden, die dann ausgeführt werden.

Die vordefinierten Events umfassen

  • Nach Mitternacht und Vor Mitternacht (aftermidnight, beforemidnight) sind Events, die mit einem Offset an jedem Tag nach bzw. vor Mitternacht ausgeführt werden.
  • Sonnenaufgang, Vor Sonnenaufgang und Nach Sonnenaufgang (sunrise, beforesunrise, aftersunrise) sind Events, die an jedem Tag zu Sonnenaufgang bzw. mit einem Offset davor und danach ausgeführt werden. Der Zeitpunkt des Sonnenaufgangs wird aus dem Modul 95_Astro.pm berechnet.
  • Sonnenuntergang, Vor Sonnenuntergang und Nach Sonnenuntergang (sunset, beforesunset, aftersunset) sind Events, die an jedem Tag zu Sonnenuntergang bzw. mit einem Offset davor und danach ausgeführt werden. Der Zeitpunkt des Sonnenuntergangs wird aus dem Modul 95_Astro.pm berechnet.
  • Morgen, Mittag, Nachmittag, Abend und Nacht (morning, noon, afternoon, evening, night) sind Events, die zu einer einstellbaren Zeit an jedem Tag ausgeführt werden.

Das Reading housephase nimmt zwischen Morgen und Nacht den Wert Tageszeit an, sonst den Wert Nachtzeit.

  • Wecken und Schlafen (wakeup,sleep) sind Events, die durch die beiden Standard-Wochenprofile gleichen Namens ausgelöst werden. Die entsprechenden Zeiten können von Tag zu Tag beliebig variieren.

Wochen-Profile

Jedes Wochenprofil besteht aus einem Ereignis (Event) je Wochentag. Für dieses Event kann eine Liste von FHEM-Kommandos angegeben werden, die dann ausgeführt werden. Zwei Standard-Wochenprofile Wecken und Schlafen sind vordefiniert und können nicht gelöscht werden. Eine beliebige Anzahl weiterer Wochenprofile kann angelegt und wieder gelöscht werden.

Für jedes Wochenprofil kann eine manuelle Auslösezeit eingegeben werden. Ist diese später als der gegenwärtige Zeitpunkt, wird sie für den aktuellen Tag verwendet. Ist diese früher als der gegenwärtige Zeitpunkt, wird sie erst am nächsten Tag als Ausnahmezeit verwendet.

(Nutzungs-)Modus und (Sicherheits-)Zustand

  • housemode (bzw. Modus) besagt, dass sich das SmartHome in einem der drei Modi Normal, Party oder Abwesenheit befindet. Die Festsetzung des Modus bleibt bestehen, bis eine erneute manuelle Änderung durchgeführt wird. Ausnahme: Wenn das Attribut modeAuto gesetzt wird, kann sich der Modus auch bei bestimmten Events ändern. Dabei bedeutet:
    • Normal = normale Tages- und Wochen-Profile werden angewandt, keine speziellen Anordnungen.
    • Party = kann in Hilfsfunktionen verwendet werden, um spezielle Anordnungen betreffend die Sicherheit und den Übergang in den Nachtzustand zu realisieren.
      • Das Modul selbst sorgt dafür, dass im Party-Modus das SmartHome nicht in einen gesicherten Zustand versetzt werden kann.
    • Abwesenheit = kann in Hilfsfunktionen verwendet werden, um spezielle Anordnungen zu realisieren.
  • housestate (bzw. (Sicherheits-)Zustand) besagt, dass sich das SmartHome in einem der vier Zustände Nicht gesichert, Gesichert, Geschützt oder Überwacht befindet. Die Festsetzung des Zustands bleibt bestehen, bis eine erneute manuelle Änderung durchgeführt wird. Ausnahme: Wenn das Attribut stateAuto gesetzt wird, kann sich der Zustand auch bei bestimmten Events ändern. Dabei bedeutet:
    • Nicht gesichert =
    • Gesichert =
    • Geschützt =
    • Überwacht =

YAAHM-Device

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.

Beim Anklicken des Begriffes Profile (eben der genannte Weblink) im oberen Menü des Webinterfaces wird dieser versteckte Raum angezeigt. Er enthält an erster Stelle das YAAHM-Device. Für die Konfiguration dieses Devices siehe den nächsten Abschnitt, für die Bedienung siehe den Abschnitt [Bedienung].

Konfiguration

Das YAAHM-Device kennt die folgenden Set-Befehle (YYY ist duch den tatsächlichen Device-Namen zu ersetzen):

set YYY time (after|before)midnight | [before|after]sunrise | [before|after]sunset | morning | noon | afternoon | evening | night | wakeup | sleep

Erzeugt manuell den entsprechenden Event.

set YYY manualnext <timernumber> <time>
set YYY manualnext <timername> <time>

Setzt die manuelle Auslösezeit für den Wochen-Timer, der durch die Angabe einer fortlaufenden Nummerierung (beginnend bei 0) oder seinen Namen identifiiert wird.

set YYY mode normal | party | absence

Setzt den (Nutzungs-)Modus des SmartHome

set YYY state unsecured | secured | protected | guarded

Setzt den (Sicherheits-)Zustand des SmartHome

set YYY createWeekly <string>
set YYY deleteWeekly <string>

Erzeuge oder entferne ein Wochen-Profil mit dem entsprechenden Namen.

set YYY locked  |unlocked

Sperre oder entsperre das Überschreiben der Timer

Webinterface

In diesem Abschnitt wird die Bedienung des Webinterfaces und damit die Konfiguration der Hausautomatik beschrieben. Um sie zu erreichen, klickt man auf den Begriff Profile im oberen Menü des Webinterfaces

Aktion

Action 2.png

Zusammenfassung

Summary 2.png

Tages-Profil

Daily 2.png

Wochen-Profile

Weekly 2.png

Konfiguration

Sperrung

Das Reading lockstate muss den Wert unlocked haben, damit durch Anklicken der Start-Buttons für die Timer diese auch gestartet werden. 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.