Modul Babble: Unterschied zwischen den Versionen

Aus FHEMWiki
Keine Bearbeitungszusammenfassung
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.
 
==Funktionsweise==
Dieses Modul überprüft einen empfangenen Befehlssatz auf einen darin enthaltenen Orts-Identifikator, sowie auf eine Liste von vordefinierten Verben. Beispielsweise resultieren die beiden Eingabesätze
* '''Schalte die Beleuchtung in der Sitzgruppe an'''
*
Gerät=licht Ort=sitzgruppe Verb=schalten Ziel=ein
=Babble-Device=
=Babble-Device=
==Installation==
==Installation==
Zeile 43: Zeile 47:
==Attribute==
==Attribute==
Das Babble-Device benötigt zum Funktionieren unbedingt ein paar wichtige Attribute. Bei der ersten Definition sollten diese automatisch belegt werden, können aber jederzeit geändert werden.
Das Babble-Device benötigt zum Funktionieren unbedingt ein paar wichtige Attribute. Bei der ersten Definition sollten diese automatisch belegt werden, können aber jederzeit geändert werden.
*'''babblePlaces''' ist eine durch Leerzeichen separierte Liste von Orten, die in der Sprachsteuerung erkannt werden sollen. Die in FHEM bekannten ''Rooms''=Räume werden ebenfalls als Ortsbezeichnungen zur Verfügung gestellt und brauchen nicht in dieser Liste aufzutauchen.
*'''babblePlaces''' ist eine durch Leerzeichen separierte Liste von Orts-Identifikatoren, die in der Sprachsteuerung erkannt werden sollen. Die in FHEM bekannten ''Rooms''=Räume werden ebenfalls als Ortsbezeichnungen zur Verfügung gestellt und brauchen nicht in dieser Liste aufzutauchen.
*'''babbleStatus''' ist eine durch Leerzeichen separierte Liste von Status-Identifikatoren, also Nomen, die den Status eines Untersystems wiedergeben. Beispiel: ''Status Wert Wetter Zeit''
*'''babbleStatus''' ist eine durch Leerzeichen separierte Liste von Status-Identifikatoren, also Nomen, die den Status eines Untersystems wiedergeben. Beispiel: ''Status Wert Wetter Zeit''
*'''babblePrepos''' ist eine durch Leerzeichen separierte Liste von Präpositionen. Beispiel: ''von vom des der in im auf bei am''
*'''babblePrepos''' ist eine durch Leerzeichen separierte Liste von Präpositionen. Beispiel: ''von vom des der in im auf bei am''
Zeile 51: Zeile 55:
*'''babbleVerbs''' ist eine durch Leerzeichen separierte Liste von Verbengruppen, die jeweils aus kommagetrennten Variationen und Konjugationen sowie einem davon per ':' getrennten Infinitiv bestehen. Beispiel: ''schalt,schalte:schalten mach,machs,mache:machen öffne:öffnen schließe,schließ:schließen''
*'''babbleVerbs''' ist eine durch Leerzeichen separierte Liste von Verbengruppen, die jeweils aus kommagetrennten Variationen und Konjugationen sowie einem davon per ':' getrennten Infinitiv bestehen. Beispiel: ''schalt,schalte:schalten mach,machs,mache:machen öffne:öffnen schließe,schließ:schließen''
*'''babbleVerbParts''' ist eine durch Leerzeichen separierte Liste von Verbteilen, die den durch das grundlegende Tun (beschrieben durch ein Verb, z.B. ''schließen'') erreichten Zustand festlegen (z.B. ''zu'' in zuschließen und ''auf'' in aufschließen). Beispiel für diese Liste: ''zu auf ent wider ein an aus ab um''
*'''babbleVerbParts''' ist eine durch Leerzeichen separierte Liste von Verbteilen, die den durch das grundlegende Tun (beschrieben durch ein Verb, z.B. ''schließen'') erreichten Zustand festlegen (z.B. ''zu'' in zuschließen und ''auf'' in aufschließen). Beispiel für diese Liste: ''zu auf ent wider ein an aus ab um''
*'''babbleWrites''' ist eine durch Leerzeichen separierte Liste, die spezielle Verben enthält, di emit Schreiboperationen befasst sind. Beispiel: ''sagen senden hinzufügen entfernen ändern löschen''
*'''babbleWrites''' ist eine durch Leerzeichen separierte Liste, die spezielle Verben enthält, die mit Schreiboperationen befasst sind. Beispiel: ''sagen senden hinzufügen entfernen ändern löschen''
*'''linkname''' ist der Name für den Link im FHEM-Menü. Default: ''Babble''.
*'''linkname''' ist der Name für den Link im FHEM-Menü. Default: ''Babble''.
*'''hiddenroom''' ist der Name für den versteckten Raum, der das Babble-Device enthält. Default: ''babbleRoom''
*'''hiddenroom''' ist der Name für den versteckten Raum, der das Babble-Device enthält. Default: ''babbleRoom''
Zeile 59: Zeile 63:
In diesem Abschnitt wird die Bedienung des Webinterfaces und damit die Konfiguration des NLUI beschrieben. Um sie zu erreichen, klickt man auf den Begriff ''Babble'' im oberen Menü des Webinterfaces.
In diesem Abschnitt wird die Bedienung des Webinterfaces und damit die Konfiguration des NLUI beschrieben. Um sie zu erreichen, klickt man auf den Begriff ''Babble'' im oberen Menü des Webinterfaces.
==Babble Test==
==Babble Test==
In diesem Teil des Webinterfaces kann ein Testsatz eingegeben werden. Durch anklicken des Buttons ''Test'' wird dieser analysiert und das Resultat der Analyse unmittelbar darunter angezeigt. Ist bereits ein FHEM-Kommando dafür definiert (siehe übernächsten Abschnitt), wird dieses ebenfalls angezeigt. Wenn man vorher die Checkbox ''Ausführung'' setzt, wird dieses FHEM-Kommando auch ausgeführt.


[[Datei:Babble_Test.png|600px|]]
[[Datei:Babble_Test.png|600px|]]
==Babble Orte und Babble Verben==
Hier können im oberen Bereich zusätzliche Orts-Identifikatoren angegeben und mit Hilfe des Buttons ''Hinzufügen'' dem Attribut '''babblePlaces''' hinzugefügt werden. Wählt man stattdessen einen bereits definierten Orts-Identifikator aus, verändert sich der Button in einen ''Entfernen''-Button, zusätzlich erscheint ein Button zum ''Abbruch''.
Hier können im unteren Bereich zusätzliche Verbengruppen angegeben und mit Hilfe des Buttons ''Hinzufügen'' dem Attribut '''babbleVerbs''' hinzugefügt werden. Wählt man stattdessen ein bereits definiertes Verb aus, verändert sich der Button in einen ''Entfernen''-Button, zusätzlich erscheinen ein Button zum ''Ändern'' und zum ''Abbruch''.
[[Datei:Babble_Places.png|600px|]]
==Babble Devices==
In diesem Bereich können mit Dropdown-Listen die bekannten Orte, Verben, und Zielzustände ausgewählt werden, die in der semantischen Analyse erkannt werden. Zusätzliche Zeilen können mit dem Button ''Hinzufügen'' gewonnen werden, alle bis auf die erste Zeile für jedes Device können entfernt werden.
[[Datei:Babble_Devices.png|600px|]]

Version vom 29. Dezember 2017, 20:17 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.

Funktionsweise

Dieses Modul überprüft einen empfangenen Befehlssatz auf einen darin enthaltenen Orts-Identifikator, sowie auf eine Liste von vordefinierten Verben. Beispielsweise resultieren die beiden Eingabesätze

  • Schalte die Beleuchtung in der Sitzgruppe an

Gerät=licht Ort=sitzgruppe Verb=schalten Ziel=ein

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 Babble-Device kennt die folgenden Get-Befehle (Babble ist duch den tatsächlichen Device-Namen zu ersetzen):

 get Babble version

Gibt die Versionsnummer des Moduls zurück

Attribute

Das Babble-Device benötigt zum Funktionieren unbedingt ein paar wichtige Attribute. Bei der ersten Definition sollten diese automatisch belegt werden, können aber jederzeit geändert werden.

  • babblePlaces ist eine durch Leerzeichen separierte Liste von Orts-Identifikatoren, die in der Sprachsteuerung erkannt werden sollen. Die in FHEM bekannten Rooms=Räume werden ebenfalls als Ortsbezeichnungen zur Verfügung gestellt und brauchen nicht in dieser Liste aufzutauchen.
  • babbleStatus ist eine durch Leerzeichen separierte Liste von Status-Identifikatoren, also Nomen, die den Status eines Untersystems wiedergeben. Beispiel: Status Wert Wetter Zeit
  • babblePrepos ist eine durch Leerzeichen separierte Liste von Präpositionen. Beispiel: von vom des der in im auf bei am
  • babbleTimes ist eine durch Leerzeichen separierte Liste von Zeit-Adverbien, die eine Zeitangabe eines Untersystems signalisieren. Beispiel: heute morgen übermorgen nacht
  • babbleQuests ist eine durch Leerzeichen separierte Liste von Frage-Adverbien. Beispiel: wie wo wann
  • babbleArticles ist eine durch Leerzeichen separierte Liste von Artikeln. Beispiel: der die das den des dem zur
  • babbleVerbs ist eine durch Leerzeichen separierte Liste von Verbengruppen, die jeweils aus kommagetrennten Variationen und Konjugationen sowie einem davon per ':' getrennten Infinitiv bestehen. Beispiel: schalt,schalte:schalten mach,machs,mache:machen öffne:öffnen schließe,schließ:schließen
  • babbleVerbParts ist eine durch Leerzeichen separierte Liste von Verbteilen, die den durch das grundlegende Tun (beschrieben durch ein Verb, z.B. schließen) erreichten Zustand festlegen (z.B. zu in zuschließen und auf in aufschließen). Beispiel für diese Liste: zu auf ent wider ein an aus ab um
  • babbleWrites ist eine durch Leerzeichen separierte Liste, die spezielle Verben enthält, die mit Schreiboperationen befasst sind. Beispiel: sagen senden hinzufügen entfernen ändern löschen
  • linkname ist der Name für den Link im FHEM-Menü. Default: Babble.
  • hiddenroom ist der Name für den versteckten Raum, der das Babble-Device enthält. Default: babbleRoom
  • lockstate ist der Sperrzustand für das Device, siehe Sperrung

Webinterface

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

Babble Test

In diesem Teil des Webinterfaces kann ein Testsatz eingegeben werden. Durch anklicken des Buttons Test wird dieser analysiert und das Resultat der Analyse unmittelbar darunter angezeigt. Ist bereits ein FHEM-Kommando dafür definiert (siehe übernächsten Abschnitt), wird dieses ebenfalls angezeigt. Wenn man vorher die Checkbox Ausführung setzt, wird dieses FHEM-Kommando auch ausgeführt.

Babble Test.png

Babble Orte und Babble Verben

Hier können im oberen Bereich zusätzliche Orts-Identifikatoren angegeben und mit Hilfe des Buttons Hinzufügen dem Attribut babblePlaces hinzugefügt werden. Wählt man stattdessen einen bereits definierten Orts-Identifikator aus, verändert sich der Button in einen Entfernen-Button, zusätzlich erscheint ein Button zum Abbruch.

Hier können im unteren Bereich zusätzliche Verbengruppen angegeben und mit Hilfe des Buttons Hinzufügen dem Attribut babbleVerbs hinzugefügt werden. Wählt man stattdessen ein bereits definiertes Verb aus, verändert sich der Button in einen Entfernen-Button, zusätzlich erscheinen ein Button zum Ändern und zum Abbruch.

Babble Places.png

Babble Devices

In diesem Bereich können mit Dropdown-Listen die bekannten Orte, Verben, und Zielzustände ausgewählt werden, die in der semantischen Analyse erkannt werden. Zusätzliche Zeilen können mit dem Button Hinzufügen gewonnen werden, alle bis auf die erste Zeile für jedes Device können entfernt werden.

Babble Devices.png