Modul Babble: Unterschied zwischen den Versionen

Aus FHEMWiki
(Die Seite wurde neu angelegt: „{{ Infobox Modul |ModPurpose=Das Modul stellt eine komfortable Oberfläche bereit, um per Webinterface ein 'Natural Language User Interface' (NLUI) zu konfigur…“)
 
Keine Bearbeitungszusammenfassung
Zeile 11: Zeile 11:
Diese Seite beschreibt die Konfiguration und Verwendung des Moduls 95_Babble.pm.
Diese Seite beschreibt die Konfiguration und Verwendung des Moduls 95_Babble.pm.
=Allgemeines=
=Allgemeines=
Das Modul 95_Babble.pm stellt eine komfortable Oberfläche bereit, um per Webinterface ein 'Natural Language User Interface' (NLUI) zu konfigurieren
Das Modul ''95_Babble.pm'' stellt eine komfortable Oberfläche bereit, um per Webinterface ein ''Natural Language User Interface'' (NLUI) zu konfigurieren
 
=Babble-Device=
==Installation==
'''Dieser Abschnitt bleibt nur hier so lange wie Babble noch nicht per Update verteilt wird'''
 
WICHTIG: Nicht nur das Modul 95_Babble.pm installieren, sondern auch die Datei babble.js in /fhem/www/pgm2 !!!
==Definition==
Das Babble-Device - hier mit dem Namen ''Babble'' versehen - selbst wird über
define Babble Babble
definiert. Diese Definition legt einen versteckten Raum "babbleRoom" 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 ''Babble'' (eben der genannte Weblink) im oberen Menü des Webinterfaces wird dieser versteckte Raum angezeigt. Er enthält an erster Stelle das Babble-Device. Für die Konfiguration dieses Devices siehe den nächsten Abschnitt, für die Bedienung siehe den Abschnitt [Bedienung].
 
==Set-Befehle ==
Das Babble-Device kennt die folgenden Set-Befehle (''Babble'' ist duch den tatsächlichen Device-Namen zu ersetzen):
set Babble locked | unlocked
Sperre oder entsperre das Überschreiben der persistenten Daten, siehe [[#Sperrung | Sperrung]].
set Babble save | restore
Speichere die Daten persistent, oder hole sie aus der betreffenden Datei ''babbleFile'' (Achtung für Nutzer der configdb: Das File wird in der Datenbank abgelegt, nicht im Dateisystem).
 
==Get-Befehle==
Das YAAHM-Device kennt die folgenden Get-Befehle (''YYY'' ist duch den tatsächlichen Device-Namen zu ersetzen):
get YYY next <timernumber> 
get YYY next <timername> 
get YYY sayNext <timernumber> 
get YYY sayNext <timername> 
Holt die nächste Auslösezeit für das betreffende Wochen-Profil (Timer genannt). Mit dem Befehl ''next'' erfolgt das in einem Format, das für textuelle Ausgabegeräte geeignet ist, mit dem Befehl ''sayNext'' in einem Format, das für Sprach-Ausgabegeräte geeignet ist. Die Identifikation des Wochen-Profiles (Timer genannt) erfolgt durch die Angabe einer fortlaufenden Nummerierung (beginnend bei 0) oder seinen Namen. Das nicht löschbare Standard-Wochen-Profil ''Wecken'' hat die Timer-Nummer 0, das nicht löschbare Standard-Wochen-Profil ''Schlafen'' hat die Timer-Nummer 1.
  get YYY version
Gibt die Versionsnummer des Modul szurück
get YYY template
Gibt Vorschläge für Helferfunktionen zurück.
 
==Attribute==
*Wenn das Attribut '''timeHelper''' auf einen Perl-Funktionsnamen gesetzt wird, erfolgt automatisch der Eintrag des Perl-Funktionsnamens in das Aktionsfeld für das Tages-Profil und die Aktionsfelder der beiden ersten (=Standard-)Wochenprofile, verbunden mit dem Argument des entsprechenden Events. Einen entsprechenden Vorschlag für eine solche Helferfunktion kann man sich durch ''get YYY template'' anzeigen lassen.
 
*Wenn das Attribut '''modeHelper''' auf einen Perl-Funktionsnamen gesetzt wird, erfolgt automatisch die Ausführung dieser Funktion (verbunden mit dem Argument des entsprechenden Events) bei einem Wechsel des (Nutzungs-)Modus. Einen entsprechenden Vorschlag für eine solche Helferfunktion kann man sich durch ''get YYY template'' anzeigen lassen.
*Wenn das Attribut '''modeAuto''' auf 1 gesetzt wird, wechselt der (Nutzungs-)Modus automatisch zu bestimmten Events:
**Die Events ''sleep'' und ''morning'' bewirken, dass der Modus ''Party'' aufgehoben wird und wieder ''Normal'' ist.
**Der Event ''wakeup'' bewirkt, dass der Modus ''Abwesenheit'' aufgehoben wird und wieder ''Normal'' ist.
**Jeder Event bewirkt, dass der Modus ''Nicht Stören'' aufgehoben wird und wieder ''Normal'' ist.
 
*Wenn das Attribut '''stateHelper''' auf einen Perl-Funktionsnamen gesetzt wird, erfolgt automatisch die Ausführung dieser Funktion (verbunden mit dem Argument des entsprechenden Events) bei einem Wechsel des (Sicherheits-)Zustands. Einen entsprechenden Vorschlag für eine solche Helferfunktion kann man sich durch ''get YYY template'' anzeigen lassen.
*Wenn das Attribut '''stateAuto''' auf 1 gesetzt wird, wechselt der (Sicherheits-)Zustand automatisch zu bestimmten Events:
**Wenn der Modus ''Normal'' ist und der Zustand ''Nicht gesichert'' ist, wird bei Eintritt der Events ''sleep'' oder ''night'' der Zustand auf ''Gesichert'' gesetzt.
**Wenn der Modus ''Party'' durch den Event ''sleep'' verlassen wurde, und der Zustand ''Nicht gesichert'' ist, wird der Zustand auf ''Gesichert'' gesetzt.
 
*Das Attribut '''stateDevices''' enthält eine kommagetrennte Liste von FHEM-Devices, die jeweils gefolgt werden von den erwarteten ''state''-Readings (getrennt durch ein ":"-Zeichen) für die entsprechenden (Sicherheits-) Zustände, also z.B. für eine Haustür, die in den (Sicherheits-) Zuständen ''Gesichert'', ''Geschützt'' und ''Überwacht'' abgeschlossen sein soll:
HausTuer::locked:locked:locked:locked
**Ob die korrekte Stellung der jeweiligen Devices erreicht wurde, wird periodisch in jeweils '''stateInterval''' Minuten geprüft und in der [[#Zusammenfassung | Zusammenfassung]] angezeigt.
**Für jedes Device, dessen Zustand nicht der Vorgabe entspricht, wird die im Attribut '''stateWarning''' genannte Funktion mit den Argumenten ''Device'', ''Sollzustand'', ''Istzustand'' aufgerufen.
 
*'''linkname''' ist der Name für den Link im FHEM-Menü. Default: ''Profile''.
*'''hiddenroom''' ist der Name für den versteckten Raum, der das YAAHM-Device enthält. Default: ''ProfileRoom''
*'''lockstate''' ist der Sperrzustand für das Device, siehe [[#Sperrung | Sperrung]]
*Wenn dass Attribut '''simulation''' auf 1 gesetzt wird, werden die Kommandos in den Aktionsfeldern nicht ausgeführt, sondern nur eine Log-Meldung geschrieben.
 
*'''holidayDevices''', '''vacationDevices''' und '''specialDevices''' sind attribute, die jeweils eine kommagetrennte Liste von FHEM-Devices enthalten. Diese dürfen vom Typ holiday oder vom Typ calendar sein.
**holidayDevices enthält die Liste der Feiertage (=höchste Tagespriorität)
**vacationDevices enthält die Liste der Schulferien (=dritthöchste Tagespriorität)
**specialDevices enthält eine Liste von Einzelterminen (z.B. der Müllabfuhr)
*Diese Kalenderdaten werden jeweils kurz nach Mitternacht eingelesen und in der [[#Zusammenfassung | Zusammenfassung]] angezeigt.
 
=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.
Das Babble-Device benötigt zum Funktionieren unbedingt ein paar wichtige Attribute

Version vom 29. Dezember 2017, 17:57 Uhr

Babble
Zweck / Funktion
Das Modul stellt eine komfortable Oberfläche bereit, um per Webinterface ein 'Natural Language User Interface' (NLUI) zu konfigurieren
Allgemein
Typ Hilfsmodul
Details
Dokumentation EN / DE
Support (Forum) Unterstuetzende Dienste
Modulname 95_Babble.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_Babble.pm.

Allgemeines

Das Modul 95_Babble.pm stellt eine komfortable Oberfläche bereit, um per Webinterface ein Natural Language User Interface (NLUI) zu konfigurieren

Babble-Device

Installation

Dieser Abschnitt bleibt nur hier so lange wie Babble noch nicht per Update verteilt wird

WICHTIG: Nicht nur das Modul 95_Babble.pm installieren, sondern auch die Datei babble.js in /fhem/www/pgm2 !!!

Definition

Das Babble-Device - hier mit dem Namen Babble versehen - selbst wird über

define Babble Babble

definiert. Diese Definition legt einen versteckten Raum "babbleRoom" 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 Babble (eben der genannte Weblink) im oberen Menü des Webinterfaces wird dieser versteckte Raum angezeigt. Er enthält an erster Stelle das Babble-Device. Für die Konfiguration dieses Devices siehe den nächsten Abschnitt, für die Bedienung siehe den Abschnitt [Bedienung].

Set-Befehle

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

set Babble locked | unlocked

Sperre oder entsperre das Überschreiben der persistenten Daten, siehe Sperrung.

set Babble save | restore

Speichere die Daten persistent, oder hole sie aus der betreffenden Datei babbleFile (Achtung für Nutzer der configdb: Das File wird in der Datenbank abgelegt, nicht im Dateisystem).

Get-Befehle

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

get YYY next <timernumber>  
get YYY next <timername>  
get YYY sayNext <timernumber>  
get YYY sayNext <timername>  

Holt die nächste Auslösezeit für das betreffende Wochen-Profil (Timer genannt). Mit dem Befehl next erfolgt das in einem Format, das für textuelle Ausgabegeräte geeignet ist, mit dem Befehl sayNext in einem Format, das für Sprach-Ausgabegeräte geeignet ist. Die Identifikation des Wochen-Profiles (Timer genannt) erfolgt durch die Angabe einer fortlaufenden Nummerierung (beginnend bei 0) oder seinen Namen. Das nicht löschbare Standard-Wochen-Profil Wecken hat die Timer-Nummer 0, das nicht löschbare Standard-Wochen-Profil Schlafen hat die Timer-Nummer 1.

 get YYY version

Gibt die Versionsnummer des Modul szurück

get YYY template

Gibt Vorschläge für Helferfunktionen zurück.

Attribute

  • Wenn das Attribut timeHelper auf einen Perl-Funktionsnamen gesetzt wird, erfolgt automatisch der Eintrag des Perl-Funktionsnamens in das Aktionsfeld für das Tages-Profil und die Aktionsfelder der beiden ersten (=Standard-)Wochenprofile, verbunden mit dem Argument des entsprechenden Events. Einen entsprechenden Vorschlag für eine solche Helferfunktion kann man sich durch get YYY template anzeigen lassen.
  • Wenn das Attribut modeHelper auf einen Perl-Funktionsnamen gesetzt wird, erfolgt automatisch die Ausführung dieser Funktion (verbunden mit dem Argument des entsprechenden Events) bei einem Wechsel des (Nutzungs-)Modus. Einen entsprechenden Vorschlag für eine solche Helferfunktion kann man sich durch get YYY template anzeigen lassen.
  • Wenn das Attribut modeAuto auf 1 gesetzt wird, wechselt der (Nutzungs-)Modus automatisch zu bestimmten Events:
    • Die Events sleep und morning bewirken, dass der Modus Party aufgehoben wird und wieder Normal ist.
    • Der Event wakeup bewirkt, dass der Modus Abwesenheit aufgehoben wird und wieder Normal ist.
    • Jeder Event bewirkt, dass der Modus Nicht Stören aufgehoben wird und wieder Normal ist.
  • Wenn das Attribut stateHelper auf einen Perl-Funktionsnamen gesetzt wird, erfolgt automatisch die Ausführung dieser Funktion (verbunden mit dem Argument des entsprechenden Events) bei einem Wechsel des (Sicherheits-)Zustands. Einen entsprechenden Vorschlag für eine solche Helferfunktion kann man sich durch get YYY template anzeigen lassen.
  • Wenn das Attribut stateAuto auf 1 gesetzt wird, wechselt der (Sicherheits-)Zustand automatisch zu bestimmten Events:
    • Wenn der Modus Normal ist und der Zustand Nicht gesichert ist, wird bei Eintritt der Events sleep oder night der Zustand auf Gesichert gesetzt.
    • Wenn der Modus Party durch den Event sleep verlassen wurde, und der Zustand Nicht gesichert ist, wird der Zustand auf Gesichert gesetzt.
  • Das Attribut stateDevices enthält eine kommagetrennte Liste von FHEM-Devices, die jeweils gefolgt werden von den erwarteten state-Readings (getrennt durch ein ":"-Zeichen) für die entsprechenden (Sicherheits-) Zustände, also z.B. für eine Haustür, die in den (Sicherheits-) Zuständen Gesichert, Geschützt und Überwacht abgeschlossen sein soll:
HausTuer::locked:locked:locked:locked
    • Ob die korrekte Stellung der jeweiligen Devices erreicht wurde, wird periodisch in jeweils stateInterval Minuten geprüft und in der Zusammenfassung angezeigt.
    • Für jedes Device, dessen Zustand nicht der Vorgabe entspricht, wird die im Attribut stateWarning genannte Funktion mit den Argumenten Device, Sollzustand, Istzustand aufgerufen.
  • linkname ist der Name für den Link im FHEM-Menü. Default: Profile.
  • hiddenroom ist der Name für den versteckten Raum, der das YAAHM-Device enthält. Default: ProfileRoom
  • lockstate ist der Sperrzustand für das Device, siehe Sperrung
  • Wenn dass Attribut simulation auf 1 gesetzt wird, werden die Kommandos in den Aktionsfeldern nicht ausgeführt, sondern nur eine Log-Meldung geschrieben.
  • holidayDevices, vacationDevices und specialDevices sind attribute, die jeweils eine kommagetrennte Liste von FHEM-Devices enthalten. Diese dürfen vom Typ holiday oder vom Typ calendar sein.
    • holidayDevices enthält die Liste der Feiertage (=höchste Tagespriorität)
    • vacationDevices enthält die Liste der Schulferien (=dritthöchste Tagespriorität)
    • specialDevices enthält eine Liste von Einzelterminen (z.B. der Müllabfuhr)
  • Diese Kalenderdaten werden jeweils kurz nach Mitternacht eingelesen und in der Zusammenfassung angezeigt.

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. Das Babble-Device benötigt zum Funktionieren unbedingt ein paar wichtige Attribute