Natural Language User Interface 95_Babble.pm

Begonnen von Prof. Dr. Peter Henning, 28 Dezember 2017, 17:37:03

Vorheriges Thema - Nächstes Thema

Prof. Dr. Peter Henning

Stimmt, daran kann das auch liegen. Da ich in meinem gesicherten Netz arbeite, habe ich den csrf-Token in den meísten Fällen deaktiviert.

Wenn ich viel Zeit habe, werde ich das auch gerne einbauen - derzeit steht aber die Funktionalität des Moduls im Vordergrund.

LG

pah

yrwyddfa

Wow, für eine grobe Wiki-Version schon echt umfangreich! Ich werde mich demnächst mal ransetzen und es auch ausprobieren. Danke fürs Programmieren!
If every day has its number, Monday would be a zero division.

tiroso

Babble finde ich als Name cool  :) *neid*  ;)

Prof. Dr. Peter Henning

So, ich habe sowohl babble.js als auch 95_Babble.pm um CSRF-Sicherheit ergänzt. Für babble.js heißt das: Die Tests funktionieren auch ohne das Abschalten von csrfToken.

Bei Babble.pm heißt das: Ausführungen von Kommandos auf entfernten FHEM-Installationen sind auch möglich, ohne csrfToken abzuschalten. Man muss nur (leider auch nach jedem Neustart der externen FHEM-Instalation) einmalig get ... tokens ausführen.

LG

pah

karl0123

Soweit funktioniert das Modul sehr gut, Danke dafür.

Wenn man Devices den gleichen Namen gibt (was durchaus logisch sein kann, da es eine Leuchte im Wohnzimmer und eine im Esszimmer usw. geben kann), wird eines der Devices mehrfach in der Liste des Babble System aufgeführt, das/die andere(n) gar nicht.

Manchmal werden Verben als Devices erkannt, obwohl man den genau gleichen Satzbau verwendet, nur das Device ein anderes ist.

ZitatDie Leuchte im Wohnzimmer einschalten

führt zu

Category=1.3.0: Device=leuchte Place=wohnzimmer Verb= Target=einschalten /

ZitatLeuchte im Wohnzimmer einschalten

führt zu

Category=1.3.0: Device=einschalten Place=wohnzimmer Verb= Target= /


ggf. sollte es die möglichkeit geben, den Ort/Place weg zu lassen, da ein Device eineindeutig sein kann.


refi

Hallo,
ich habe folgendes funktionsfähig konfiguriert:

AMAD/Automagic → Spracheingabe via Widget → DOIF ruft Babble_DoIt auf → Babble führt Befehl aus

Babble-Device: DeckenlampeArbeitszimmer als Device "Licht" (Ort, Verb, Ziel, Aktion eingerichtet)
Babble-Ort: Arbeitszimmer
Babble-Verb: schalten

Test-Input:
Beispiel im Wiki=Schalte die Beleuchtung in der Sitzgruppe an

deshalb versuche ich:
Schalte das Licht im Arbeitszimmer an
Ergebnis:
Category=1.2.4: Gerät=arbeitszimmer Ort=licht Verb=schalten Ziel=an /

aber:
Schalte im Arbeitszimmer das Licht an
Ergebnis:
Category=1.1.0: Gerät=licht Ort=arbeitszimmer Verb=schalten Ziel=an / ==> set DeckenlampeArbeitszimmer on

Warum passt mein Input nicht? Was kann ich ändern, damit beide Varianten passen?

Danke!
Gruß
René
Raspberry Pi3: Duofern, Z-Wave, EnOcean

refi

...gleich noch eine Frage:

Kann ich unterschiedlichen FHEM-Geräten das gleiche Attribut "babbleDevice" geben und nur nach "Ort" unterscheiden? (also Lampe Arbeitszimmer = "Licht" und Lampe Küche auch "Licht")
Wenn ich das mache werden Device-Einstellungen unter "Babble Devices" gemischt/überschrieben.

Danke!
Gruß
René
Raspberry Pi3: Duofern, Z-Wave, EnOcean

tiroso

Konkurrenz belebt das Geschäft  ;)

Probier mal TEERKO. Da kannst du beide Varianten nutzen...und gleiche Namen in unterschiedlichen Räumen nutzen

https://forum.fhem.de/index.php/topic,72657.0.html

Prof. Dr. Peter Henning

ZitatKann ich unterschiedlichen FHEM-Geräten das gleiche Attribut "babbleDevice" geben und nur nach "Ort" unterscheiden?
In der Form nicht direkt.

Aber man kann problemlos eine LightScene definieren, die ganz unterschiedliche Devices vereint und den Namen "Licht" bekommt. Und darin dann nach Ort unterscheiden - so mache ich das bei mir. Dann heißt ein Ort z.B. "Sitzgruppe" - und schaltet eben nur diese Leuchten an.

ZitatKonkurrenz belebt das Geschäft
Keine Konkurrenz, anderes Ziel.

LG

pah

tiroso

Aus Interesse:
Welches Ziel verfolgen Sie denn?

karl0123

Das macht natürlich alles unendlich kompliziert. Es sollte möglich sein, die Devices gleich zu benennen und nach Ort zu unterscheiden. Sonst ist der Nutzen von Babble doch stark begrenzt und die ganze Einrichtung sehr schwer wartbar.

Dann nochmal mein Beitrag von oben als Zitat, weil offenbar überlesen:

ZitatSoweit funktioniert das Modul sehr gut, Danke dafür.

Wenn man Devices den gleichen Namen gibt (was durchaus logisch sein kann, da es eine Leuchte im Wohnzimmer und eine im Esszimmer usw. geben kann), wird eines der Devices mehrfach in der Liste des Babble System aufgeführt, das/die andere(n) gar nicht.

Manchmal werden Verben als Devices erkannt, obwohl man den genau gleichen Satzbau verwendet, nur das Device ein anderes ist.


   
ZitatDie Leuchte im Wohnzimmer einschalten


führt zu


Category=1.3.0: Device=leuchte Place=wohnzimmer Verb= Target=einschalten /


   
ZitatLeuchte im Wohnzimmer einschalten


führt zu


Category=1.3.0: Device=einschalten Place=wohnzimmer Verb= Target= /



ggf. sollte es die möglichkeit geben, den Ort/Place weg zu lassen, da ein Device eineindeutig sein kann.

Prof. Dr. Peter Henning

Nun mal langsam.
ZitatDas macht natürlich alles unendlich kompliziert.
Nein, macht es nicht - und gerade für die Beleuchtung habe ich mit dem Hinweis auf die Lightscene einen Tipp gegeben, wie man das umsetzen kann.

ZitatDevices den gleichen Namen gibt (was durchaus logisch sein kann, da es eine Leuchte im Wohnzimmer und eine im Esszimmer usw. geben kann)
Äh - wer von uns beiden ist der Experte für Semantik und Logik ?

ZitatEs sollte möglich sein, die Devices gleich zu benennen und nach Ort zu unterscheiden.
Siehe oben. Wer es anders will, soll bitte seine Leuchte im Schlafzimmer auch "Schlafzimmerleuchte" nennen.

ZitatSonst ist der Nutzen von Babble doch stark begrenzt und die ganze Einrichtung sehr schwer wartbar
Prima - ich zwinge ja niemanden, das zu benutzen.

Der Rest des Posts (bzw. des darin zitierten Posts) ist nicht nachvollziehbar.

Ich bekomme in meiner Installation mit

ZitatInput: Die Leuchte im Wohnzimmer einschalten
Ergebnis: Category=3.2.5: Gerät=leuchte Ort=wohnzimmer Verb=schalten Ziel=an /


ZitatInput: Leuchte im Wohnzimmer einschalten
Ergebnis: Category=3.4.7: Gerät=leuchte Ort=wohnzimmer Verb=schalten Ziel=an /

LG

pah

karl0123

#57
Auf deinen seltsamen "Ton", der nicht annähernd angebracht ist, gehe ich mal nicht noch weiter ein.

Ein "mal langsam" hat hier gar nichts zu suchen, weil niemand auf irgendein Tempo gedrückt hat.

Genau die lightscene Lösung macht es unnötig kompliziert. Es ist mir völlig egal, ob du ein Experte auf dem Gebiet bist, offenbar heißt das nicht, dass du das "echte Leben" verstanden hast (im Übrigen ist Logik in meinen Job auch eine nicht unerhebliche Komponente). Das, was du laut Beschreibung mit dem Modul vor hast, ist im Grund gelungen, dieser Punkt verschiebt es aber von einfach zu "geht so". Und ja, ich habe die Lösung verstanden.

Dein Vorschlag mit der Schlafzimmerleuchte ist natürlich ... naja, ein nettes Wort fällt mir dafür nicht ein. Muss ich dann sagen "Die Schlafzimmerleuchte im Schlafzimmer einschalten"? Oder muss ich dann noch einen nicht vorhandenen Ort wie "Decke" oder "Tischchen" erfinden (Orte, die in natürlicher Sprache in den konkreten Fällen nicht verwendet würden) und mir diese Orte und Namen dann auch noch für jeden Raum oder Platz merken? Devices haben eben oft den gleichen Nutzen (auch im gleichen Raum) und dementsprechend den gleichen Namen. Wenn man sich in komplexen Installationen und Haushalten viele verschiedene Namen merken muss und dann der Ort nicht weg gelassen werden kann, ist das tatsächlich unnötig kompliziert und der Experte hat es nicht erkannt. Mit "Natural Language" hat das dann irgendwann nicht mehr viel zu tun.

Zu sagen, wer etwas kritisiert, sollte es nicht verwenden, klingt sehr erwachsen. Ich werde die Enwicklung natürlich weiter verfolgen. Ich finde den Ansatz weiterhin gut.

Zu "nicht nachvollziehbar":

In meiner Installation ist es nachvollziehbar und reproduzierbar (sogar mit identischem Beispiel aus dem Wiki). UND es gab eine weitere Meldung hier im Thread, die ein ganz ähnliches Problem beschrieb. Das ist ok und nicht böse gemeint aber das Modul arbeitet nicht perfekt (aktuelle Version aus dem ersten Post). Es ist ja noch jung und die Meldung war tatsächlich dazu gedacht, bei der Entwicklung behilflich zu sein. Wenn das natürlich nicht gewünscht ist, dann eben nicht.

Im Übrigen kommt das Modul nicht mit der neuen Raumstruktur in FHEMWEB zurecht (->). Details kannst du sicher selbst heraus finden.

Prof. Dr. Peter Henning

Zitatoffenbar heißt das nicht, dass du das "echte Leben" verstanden hast
Sieh mal einer an, da wird schon wieder jemand plump vertraulich.

Schade, aber vielleicht sucht er sich ja ein anderes Modul.

pah

karl0123

Wie wäre es denn, wenn du dich mal inhaltlich mit meinen Beiträgen auseinandersetzt und erklärst, warum dein Ansatz (insbesondere der Teil, dass jedes Device einen anderen Namen haben muss) nach allen Gesichtspunkten, die die Bedienung per natürlicher Sprache entsprechen, so sinnvoll ist.

Die Argumentation über aus dem Zusammenhang gerissene Teilzitate, herauszustellen, dass du der Experte bist oder das Empfehlen anderer Module (ich bin durchaus in der Lage selbst ein Modul zu bauen, wenn ich es denn benötige) ist weder sinnvoll noch jemandem angemessen, der sich so darstellt, wie du es in diesem Forum tust. Auch wenn ich sicher bin, dass es nicht so ist, könnte der Leser dieses Threads denken, dass nicht viel hinter deinem recht aufgeblasenen Gehabe steckt.

Damit soll es das gewesen sein. Es ist müßig mit jemanden zu diskutieren, der nicht diskutieren möchte.