FHEM Forum

FHEM => Frontends => Sprachsteuerung => Thema gestartet von: Prof. Dr. Peter Henning am 28 Dezember 2017, 17:37:03

Titel: Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 28 Dezember 2017, 17:37:03
Achtung, ab sofort wird Babble per Update verteilt. Die neueste Version mit RiveScript ChatBot wurde soeben eingecheckt.

Nachdem das Thema Sprachsteuerung immer interessanter wird, habe ich aus meiner Sprachanalysefunktion ein universelles Modul als Natural Language User Interface (NLUI) gebaut.

Die erste Version einer Dokumentation findet sich im Wiki, https://wiki.fhem.de/wiki/Modul_Babble.


Achtung, beim Update wird nicht automatisch der contrib-Ordner aktualisiert. Darin befinden sich aber im Unterordner Babble die beiden RiveScript-Dateien, die für das Funktionieren des Chatbots nötig sind - also diesen Ordner ggf. manuell aktualisieren. Oder die beiden angehängten Dateien begin.rive und general.rive verwenden.


LG

pah

Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: sash.sc am 28 Dezember 2017, 18:53:46
Wie kommen die Sprachbefehle ins fhem?

AMADNG? TtsMsg?

Gruß Sascha

Gesendet von meinem...... was auch immer

Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 28 Dezember 2017, 20:35:40
Soll unabhängig davon funktionieren. Tut es bei mir auch schon.

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: the ratman am 30 Dezember 2017, 19:36:50
mal das ganze installieren

nach einbau und fhem restart im log:2017.12.30 19:17:16 1: PERL WARNING: Useless use of a constant ("new") in void context at ./FHEM/95_Babble.pm line 1352.
2017.12.30 19:17:16 1: stacktrace:
2017.12.30 19:17:16 1:     main::__ANON__                      called by ./FHEM/95_Babble.pm (1352)
2017.12.30 19:17:16 1:     (eval)                              called by fhem.pl (2436)
2017.12.30 19:17:16 1:     (eval)                              called by fhem.pl (2435)
2017.12.30 19:17:16 1:     main::CommandReload                 called by fhem.pl (1851)
2017.12.30 19:17:16 1:     main::LoadModule                    called by fhem.pl (1908)
2017.12.30 19:17:16 1:     main::CommandDefine                 called by fhem.pl (1168)
2017.12.30 19:17:16 1:     main::AnalyzeCommand                called by fhem.pl (1022)
2017.12.30 19:17:16 1:     main::AnalyzeCommandChain           called by ./FHEM/01_FHEMWEB.pm (2466)
2017.12.30 19:17:16 1:     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (878)
2017.12.30 19:17:16 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (520)
2017.12.30 19:17:16 1:     main::FW_Read                       called by fhem.pl (3488)
2017.12.30 19:17:16 1:     main::CallFn                        called by fhem.pl (687)
2017.12.30 19:17:16 1: [Babble_restore] read error=Can't open babbleFILE: No such file or directory
2017.12.30 19:17:16 1: PERL WARNING: Use of uninitialized value $l in print at fhem.pl line 4862.
2017.12.30 19:17:16 1: stacktrace:
2017.12.30 19:17:16 1:     main::__ANON__                      called by fhem.pl (4862)
2017.12.30 19:17:16 1:     main::FileWrite                     called by ./FHEM/95_Babble.pm (419)
2017.12.30 19:17:16 1:     main::Babble_save                   called by ./FHEM/95_Babble.pm (252)
2017.12.30 19:17:16 1:     main::Babble_Define                 called by fhem.pl (3488)
2017.12.30 19:17:16 1:     main::CallFn                        called by fhem.pl (1930)
2017.12.30 19:17:16 1:     main::CommandDefine                 called by fhem.pl (1168)
2017.12.30 19:17:16 1:     main::AnalyzeCommand                called by fhem.pl (1022)
2017.12.30 19:17:16 1:     main::AnalyzeCommandChain           called by ./FHEM/01_FHEMWEB.pm (2466)
2017.12.30 19:17:16 1:     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (878)
2017.12.30 19:17:16 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (520)
2017.12.30 19:17:16 1:     main::FW_Read                       called by fhem.pl (3488)
2017.12.30 19:17:16 1:     main::CallFn                        called by fhem.pl (687)
2017.12.30 19:17:16 1: [Babble_Define] data hash is initialized

dann hat man im webinterface auf höhe des z.b. floorplan links nen neuen raum.
in dem raum liegts device, darunter steht:Can't use an undefined value as an ARRAY reference at ./FHEM/95_Babble.pm line 1197.
die selbe meldung hab ich im automatisch angelegten weblink.

im device wurden keine bubbleDevices angelegt. drum fehlen mir auch die im wiki gezeigten einstellmöglichkeiten (denk ich mal).
soll ich mal selber ein device anlegen, oder soll ich gleich mal was für dich probieren?

aja ...
rennt auf nem win10pro mit debian auf ner vm. alles tagesaktuell.
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 30 Dezember 2017, 19:48:01
OK, danke fürs testen. Der Reihe nach.

Der erste Fehler mit dem "Useless use" war ein überflüssiger String, habe ich in der obigen Datei behoben.

Das "Nichtlesenkönnen" der Datei ist ok, entsprechend wird der hash auch noch initialisiert. Dabei geht aber irgendetwas in die Hose, muss ich checken. Vlt. mal checken, welche Attribute im Babble Device gesetzt sind - bei mir sieht das z.B. so aus


attr Babble babbleArticles der die das den des dem zur
attr Babble babblePlaces Wohnzimmer
attr Babble babblePrepos von vom des der in im auf bei am
attr Babble babbleQuests wie wo wann
attr Babble babbleStatus Status Wert Wetter Zeit
attr Babble babbleTimes heute morgen übermorgen nacht
attr Babble babbleVerbParts zu auf ent wider ein an aus ab um
attr Babble babbleVerbs schalt,schalte:schalten mach,machs,mache:machen öffne:öffnen schließe,schließ:schließen
attr Babble babbleWrites sagen senden hinzufügen entfernen ändern löschen


Wenn diese Werte gesetzt sind, kann man die Spracherkennung schon mit Hilfe des Testbuttons test, auch dann, wenn noch keine Devices definiert worden sind.

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: the ratman am 30 Dezember 2017, 20:20:34
nicht viel anders ...Attributes:
   babbleArticles der die das den des dem zur
   babblePrepos von vom des der in im auf bei am
   babbleQuests wie wo wann
   babbleStatus Status Wert Wetter Zeit
   babbleTimes heute morgen übermorgen nacht
   babbleVerbParts zu auf ent wider ein an aus ab um
   babbleVerbs schalt,schalte:schalten
   babbleWrites sagen senden hinzufügen entfernen ändern löschen
   icon       im_bubble2

ich hab jetzt auch nen place dazu erfunden, nutzt aber auch nix.

babbledevices brauch ich ja nicht unbedingt, wenn ich keine externen instanzen hab?

der vollständigkeit halber ein list:Internals:
   CFGFN     
   CHANGED   
   NAME       babble
   NR         185
   STATE      Initialized
   TYPE       Babble
   VERSION    0.3
   DATA:
     commands   
     devcontacts
     devs       
     places     
     rooms     
     splaces   
     status     
     times     
     writes     
     command:
       :
         alarm:
           sagen:
         alarmanlage:
           :
           sagen:
         baumarktliste:
           sagen:
         das:
           :
         den:
           :
         die:
           :
         dominics_liste:
           :
         einkaufsliste:
           sagen:
         gerät:
           sagen:
         gute:
           :
           sagen:
         guten:
           :
           sagen:
         haus:
           sagen:
         haustür:
           sagen:
         licht:
           sagen:
         sage:
           :
         schalte:
           :
         sichere:
           :
         status:
           :
         wecker:
           sagen:
         wetter:
           :
           sagen:
         öffne:
           :
       an:
         mach:
           :
         schalte:
           :
       auf:
         mach:
           :
         schließe:
           :
         stelle:
           :
       aus:
         mache:
           :
         schalte:
           :
       bratheringe:
         zur:
           :
       das:
         wie:
           :
       den:
         stelle:
           :
       der:
         schalte:
           :
       die:
         stelle:
           :
       ein:
         schalte:
           :
       feuchte:
         wie:
           :
       gerät:
         sage:
           :
         wie:
           :
       im:
         status:
           :
       morgen:
         wie:
           :
       münchen:
         peters_liste:
           :
       schlafzimmer:
         status:
           :
       sitzgruppe:
         schalte:
           :
       status:
         wie:
           :
       temperatur:
         wie:
           :
       von:
         sage:
           :
         wie:
           :
       wecker:
         wie:
           :
       wert:
         stelle:
           :
         wie:
           :
       wetter:
         wie:
           :
       zu:
         schließe:
           :
     verbs:
     verbsi:
       schalten
     verbsicc:
       ARRAY(0x55aa84b6af30)
   READINGS:
     2017-12-30 19:17:16   savedate        Sat Dec 30 19:17:16 2017
     2017-12-30 19:17:16   state           Initialized
Attributes:
   babbleArticles der die das den des dem zur
   babblePlaces sofa
   babblePrepos von vom des der in im auf bei am
   babbleQuests wie wo wann
   babbleStatus Status Wert Wetter Zeit
   babbleTimes heute morgen übermorgen nacht
   babbleVerbParts zu auf ent wider ein an aus ab um
   babbleVerbs schalt,schalte:schalten mach,machs,mache:machen öffne:öffnen schließe,schließ:schließen
   babbleWrites sagen senden hinzufügen entfernen ändern löschen
   icon       im_bubble2
   room       babbleRoom
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 30 Dezember 2017, 20:43:19
Ist gefixt, Download oben im ersten Post.

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: the ratman am 30 Dezember 2017, 21:11:15
jo, schaut glei viel süßer aus *g*

sag, was empfielst du als lieferant für den text ?
wär übrigens lustig, gleich in babble ne anbindung an hardware und z.b. googles spracherkennung zu haben. quasi alles aus einer hand ...
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: the ratman am 30 Dezember 2017, 21:23:38
ach guck ...
2017.12.30 21:21:42 1: logfile wurde gelöscht
2017.12.30 21:21:56 1: PERL WARNING: Use of uninitialized value $l in print at fhem.pl line 4862.
2017.12.30 21:21:56 1: eval: {Babble_Html("babble")}
2017.12.30 21:21:56 1: stacktrace:
2017.12.30 21:21:56 1:     main::__ANON__                      called by fhem.pl (4862)
2017.12.30 21:21:56 1:     main::FileWrite                     called by ./FHEM/95_Babble.pm (410)
2017.12.30 21:21:56 1:     main::Babble_save                   called by ./FHEM/95_Babble.pm (1252)
2017.12.30 21:21:56 1:     main::Babble_getplaces              called by ./FHEM/95_Babble.pm (1439)
2017.12.30 21:21:56 1:     main::Babble_Html                   called by (eval 2932) (1)
2017.12.30 21:21:56 1:     (eval)                              called by fhem.pl (1074)
2017.12.30 21:21:56 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2017.12.30 21:21:56 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1848)
2017.12.30 21:21:56 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1031)
2017.12.30 21:21:56 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (520)
2017.12.30 21:21:56 1:     main::FW_Read                       called by fhem.pl (3488)
2017.12.30 21:21:56 1:     main::CallFn                        called by fhem.pl (687)
2017.12.30 21:21:56 1: PERL WARNING: Use of uninitialized value $l in print at fhem.pl line 4862.
2017.12.30 21:21:56 1: eval: {Babble_Html("babble")}
2017.12.30 21:21:56 1: stacktrace:
2017.12.30 21:21:56 1:     main::__ANON__                      called by fhem.pl (4862)
2017.12.30 21:21:56 1:     main::FileWrite                     called by ./FHEM/95_Babble.pm (410)
2017.12.30 21:21:56 1:     main::Babble_save                   called by ./FHEM/95_Babble.pm (1386)
2017.12.30 21:21:56 1:     main::Babble_getwords               called by ./FHEM/95_Babble.pm (1453)
2017.12.30 21:21:56 1:     main::Babble_Html                   called by (eval 2932) (1)
2017.12.30 21:21:56 1:     (eval)                              called by fhem.pl (1074)
2017.12.30 21:21:56 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2017.12.30 21:21:56 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1848)
2017.12.30 21:21:56 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1031)
2017.12.30 21:21:56 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (520)
2017.12.30 21:21:56 1:     main::FW_Read                       called by fhem.pl (3488)
2017.12.30 21:21:56 1:     main::CallFn                        called by fhem.pl (687)
2017.12.30 21:21:56 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/95_Babble.pm line 1506.
2017.12.30 21:21:56 1: eval: {Babble_Html("babble")}
2017.12.30 21:21:56 1: stacktrace:
2017.12.30 21:21:56 1:     main::__ANON__                      called by ./FHEM/95_Babble.pm (1506)
2017.12.30 21:21:56 1:     main::Babble_Html                   called by (eval 2932) (1)
2017.12.30 21:21:56 1:     (eval)                              called by fhem.pl (1074)
2017.12.30 21:21:56 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2017.12.30 21:21:56 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1848)
2017.12.30 21:21:56 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1031)
2017.12.30 21:21:56 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (520)
2017.12.30 21:21:56 1:     main::FW_Read                       called by fhem.pl (3488)
2017.12.30 21:21:56 1:     main::CallFn                        called by fhem.pl (687)

kommt bei jedem aufruf des weblinks
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 30 Dezember 2017, 21:52:06
Harmlos, passiert nur nur solange keine Babble-Devices definiert sind. Werde ich im nächsten Release abfangen.

Für die Anbindung: Es gibt schon eine ganze Menge Frontends, die diese Anbindung machen. Würde ich gerne offen halten.

Ich benutze dafür wandhängende Tablets und ein upgecyceltes Smartphone, siehe https://forum.fhem.de/index.php/topic,81863.0.html


LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: the ratman am 30 Dezember 2017, 22:19:22
nebenher ... deinen wecker halt ich für genial. schaut ja fast nach designerstück aus ...

aber du verwirrst mich grad ... wir haben ein modul, dass sprache über z.b. google als text raus gibt?
wo hab ich das den wieder übersehen? kenn nur amad, aber ich werd wohl bald keine tablets an der wand haben. ansagen über (w)lan-boxen, tv, ... und als erkennungs-hw für befehle schwebt mir matrix voice, als modul zur "übersetzung" dazu [...bitte hier einfügen...] vor. wer braucht dann noch displays und touch, wenn das mal geht? der onkel will hier erpelsteiß-verhältnisse *g*.

btw - offtopic zwar, aber guck mal das "andere ende" an, dass da kommen wird *sabber*
https://google.github.io/tacotron/publications/tacotron2/
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: MadMax-FHEM am 30 Dezember 2017, 22:54:36
Zitat von: the ratman am 30 Dezember 2017, 22:19:22
aber du verwirrst mich grad ... wir haben ein modul, dass sprache über z.b. google als text raus gibt?
wo hab ich das den wieder übersehen?

Dazu braucht es kein Modul, du kannst von Google Home per IFTTT (z.B.) und WebHook direkt Babble aufrufen (denke ich bzw. werde ich mal so versuchen / komme leider erst am Mo dazu)...

Aktuell mache ich das mit TEERKO so...

Bin schon gespannt, wenn ich endlich loslegen kann...

Gruß, Joachim
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Ma_Bo am 31 Dezember 2017, 01:00:36
Wäre es möglich, hier etwas zu implementieren, was mir noch nen Antworttext zurück gibt, ich bräuchte ein Reading, indem dann der Antworttext steht.
Genial wäre auch, wenn ich mehrere Antworttexte definiere und das Modul sich zufällig davon einen raussucht.

Z.B. sage ich:

"Schalte die Lampe im Wohnzimmer ein"

dann soll es evtl verschiedene Antworten geben

"ok, ich schalte die lampe im Wohnzimmer ein"
"die lampe im wohnzimmer wird eingeschaltet"
usw.

######Edit 1
Ist es auch möglich dann Zustände von Fhem-Devices abzufragen und diese dann in den Antworttext auszugeben?

Z.B. würde ich fragen wollen:
"wie warm ist es im wohnzimmer"

dann würde im Antworttext (den es ja noch nicht gibt) stehen:
"im wohnzimmer sind es x Grad"
"es sind x Grad im wohnzimmer"
"die temperatur im wohnzimmer beträgt x Grad"


Grüße Marcel
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Phill am 31 Dezember 2017, 01:25:28
Zitat von: Ma_Bo am 31 Dezember 2017, 01:00:36
Wäre es möglich, hier etwas zu implementieren, was mir noch nen Antworttext zurück gibt, ich bräuchte ein Reading, indem dann der Antworttext steht.
Genial wäre auch, wenn ich mehrere Antworttexte definiere und das Modul sich zufällig davon einen raussucht.
Hey mal Werbung in eigener Sache...  ;) https://forum.fhem.de/index.php/topic,80960.0.html (https://forum.fhem.de/index.php/topic,80960.0.html)
Talk2Fhem kann genau das...

Grüße
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Ma_Bo am 31 Dezember 2017, 01:28:11
Zitat von: Phill am 31 Dezember 2017, 01:25:28
Hey mal Werbung in eigener Sache...  ;) https://forum.fhem.de/index.php/topic,80960.0.html (https://forum.fhem.de/index.php/topic,80960.0.html)
Talk2Fhem kann genau das...

Grüße

Schon gesehen und dort lese ich fleissig mit, werde ich auch testen, aber das Modul hier ist schön zum zusammenklicken...  ::)
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 31 Dezember 2017, 06:02:39
ZitatWäre es möglich, hier etwas zu implementieren, was mir noch nen Antworttext zurück gibt, ich bräuchte ein Reading, indem dann der Antworttext steht.
Genial wäre auch, wenn ich mehrere Antworttexte definiere und das Modul sich zufällig davon einen raussucht.

Das ist geplant. Allerdings wird das eine ganze Weile dauern, denn ich will das eigentlich ebenso einfach konfigurierbar machen, wie den jetzigen Beginn des Babble-Frontends.
Ich lade hier mal die Seminararbeit eines meiner Studenten hoch - er hat ein paar Anwendungsbeispiele für RiveScript dokumentiert. Die Perl-Bindung für Rivescript wird also irgendwann in den nächsten Monaten (!) genau dieses leisten.

Das Modul Talk2Fhem ist ganz nett. Aber erfüllt eben weder das Kriterium der einfachen Bedienbarkeit, noch ist das wartbar. Geschmackssache also.

Zitat"wie warm ist es im wohnzimmer"

Über die Grammatik dieses Satzes muss ich mal grübeln, das entspricht nicht ganz den Regeln... Was aber bereits funktioniert ist

Zitatwie ist die temperatur im wohnzimmer

Das liefert Category=2.1.5: Gerät=temperatur Ort=wohnzimmer Verb=sagen Ziel=status

Ich werde nachher im Wiki dokumentieren, wie man damit eine Temperaturabfrage hinbekommen kann.

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: the ratman am 31 Dezember 2017, 09:11:15
Zitat von: MadMax-FHEM am 30 Dezember 2017, 22:54:36
Dazu braucht es kein Modul, du kannst von Google Home per IFTTT (z.B.) und WebHook direkt Babble aufrufen (denke ich bzw. werde ich mal so versuchen / komme leider erst am Mo dazu)...
ifttt geht ja nur über "extern", also keine lösung was ich so mitbekommen habe. ich will alles aus einer hand auf einem gerät.
ich hab auch kein google home, kein alexa oder sonst was redseeliges. wie gsagt, ich will da auf ne "unabhängige" hw warten, wie die dann wieder in fhem aussehen wird, weiß man ja auch noch ned.

aber wäre sicher lustig, wenn es ein modul gäbe, wo ich einfach nur einstellen muß, welche spracherkennung ich will und alles fein säuberlich als reading zurück krieg. wies ausschaut, wird in zukunft sowas eh von mehreren anderen modulen gebraucht werden können ... das sind die momente, wo ich mein programmier-unvermögen hasse! *g*

@herrn prof ...
ZitatDas ist geplant. Allerdings wird das eine ganze Weile dauern, denn ich will das eigentlich ebenso einfach konfigurierbar machen, wie den jetzigen Beginn des Babble-Frontends.
sehr, sehr erfreuliche nachrichten.
vor allem, weil ich plane, mir einige monate mit meiner zukünfitgen fhem v2 zeit zu lassen, bis sie auch 100% so funzt, wie ich das will. du kommst mir wie bestellt *bg*!
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Franz Tenbrock am 31 Dezember 2017, 09:24:18
Hallo PAH,
läuft die Sprachverarbeitung auf dem lokalen Rechner ( zB RaspI ) oder wird die Sprache extern verarbeitet?


Für mich sind Cloud Lösungen, Alexa und Google ein absolutes no-go, mag zwar altmodisch sein, aber bei all den verrückten die mittlerweile weltweit ihr Unheil austragen....
Vor 12 oder 13 Jahren als Sparchbefahle anfingen hab ich das in meienr Praxis probiert. Überrweisung Thorax dann kam die fertig ausgefüllte Überweisung aus dem Drucker, die Patienten dachten der Doc spinnt jetzt. Sprachbefehle machen vor allem da Sinn wo  an alleine ist, aber das ist ja Geschmackssache
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: MadMax-FHEM am 31 Dezember 2017, 09:47:47
@ratman:

dd hab ich wohl nicht genau genug gelesen aber nachdem du google erwähnt hattest... ;)

Ja autarke Lösung wäre schön aber aktuell sehe ich da leider nichts (mehr)...

Kann mich auch erinnern, dass es vor beinah 20 Jahren sogar von Microsoft was gab, um den PC zu steuern...

Ebenso von IBM eine Diktat-SW...

Aber vielleicht kommt da was oder kennt jemand was und postet hier...

Gruß und sorry ;) , Joachim
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: the ratman am 31 Dezember 2017, 10:51:36
m$ hat immer noch sprachbefehle im windoof.
sogar 2 sorten
cortana (cloud) die super funzt aber keine api zu haben scheint und diese alte, lokale version. aber da schaffs zumindest ich nicht, auch nur einen satz mal richtig erkannt zu kriegen.
eine sehr gute spracherkennung hätte z.b. auch dragon dictate, dass auch auf nem halbwegs modernen i3 super rennt - aber die kostet viel zu viel und ich bezweifel, dass diese eigenbrötler auch nur ansatzweise ne api zur verfügung stellen.
würde das funzen, könnte mans nämlich über das modul winconnect verwenden, das kann das alles schon. nur die erkennungsrate is halt (bis auf einzelne worte) totaler schrott. der autor hat dann auch cloudbassierte lösungen einbaut, aber dazu muß dann halt immer auch ein win rennen, damit man die ergebnisse ins fhem kriegt ... is halt wie amad, nur für win.

somit also google-software im inet - einen tot stirbst halt immer. aber wenigstens will ich nicht auch noch ein gerät hier stehen haben, von dem ich nicht weiß, was es so nebenher aufnimmt.

derzeit frag ich mich halt immer noch grundsätzlich: wie krieg ich über fhem spreche zu text an dieses wunderbare, neue modul hier? und ja, ich will fhem - ich will nicht noch 1000 andere sachen zusätzlich verwenden.
es ist ja sehr vermessen von mir folgendes zu sagen, aber ich tus mal *g*: ein perl-programmierer müsste doch theoretisch in 5 min ne schnittstelle zu google, amazon, ... geschaffen haben, in der er das empfangene als reading ablegt. ich weiß, sehr frech von einem, der gar nix liefert, aber ...
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 31 Dezember 2017, 11:12:00
Na, mal langsam. Das Problem ist, die Audiodaten aufzuzeichnen - dafür braucht man Hardware und ein standardisiertes Interface. Von Perl als interpretierter Sprache ist dabei wenig zu halten.

Insofern ist hier die beste Lösung derzeit wirklich: Ein altes Smartphone als Audioaufnahmegerät, darauf entweder Automagic/AMAD oder webviewcontrol. FHEM (und Perl) bekommen dann "nur noch" die textuellen Daten. Diese Dominanz rührt daher, dass derzeit nur Google, Amazon und ein paar andere Netzriesen über die entsprechenden Datenmengen verfügen, um die neuronalen Netze für die Spracherkennung zu trainieren. Fertig, basta, kein Weg drumherum.

Ein paar eingeschränkt nutzbare Projekte wie snowboy verfügen ebenfalls nicht über ein öffentlich verfügbares Modell, sind aber immerhin etwas kundenfreundlicher.

Es gibt eine neue Initiative der Mozilla Foundation, https://voice.mozilla.org/.

Damit sollen entsprechende Datenmengen für eine öffentliche Verfügbarkeit gesammelt werden. Ich kann jedem nur raten, sich daran zu beteiligen.

LG

pah

Edit: Hier die Dokumentation für die Abfrage einer Temperatur https://wiki.fhem.de/wiki/Modul_Babble#Temperatur_abfragen. Achtung: Bitte aktuellste Version des Moduls (heute 11:50) verwenden.
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: the ratman am 31 Dezember 2017, 13:25:34
nur, damits keine mißverständnisse gibt:
ich meine nicht, ne ganze spracherkennugssoftware abzubilden in perl (so blöd bin nicht mal ich), ich meine einfach ein modul zu basteln, dass auf googles oder amzons (hardwarefreier) spracherekennung oder andere zugreift, und die ergebnisse googles dann als reading abbildet oder besser gleich an module wie babbel sendet. wie gesagt: als bspl. will ich winconnect bringen, da stellst du ein, welche erkennung dir zusagt und gut is es. ich will nur nicht auch noch nen win-server am rennen haben für das ganze.
so hätte man ein modul, dass leicht um weitere spracherkennungssoftware erweiterbar und universell einsetzbar wäre.
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Ma_Bo am 31 Dezember 2017, 14:02:51
Zitat von: Prof. Dr. Peter Henning am 31 Dezember 2017, 06:02:39
Das ist geplant. Allerdings wird das eine ganze Weile dauern, denn ich will das eigentlich ebenso einfach konfigurierbar machen, wie den jetzigen Beginn des Babble-Frontends.
Ich lade hier mal die Seminararbeit eines meiner Studenten hoch - er hat ein paar Anwendungsbeispiele für RiveScript dokumentiert. Die Perl-Bindung für Rivescript wird also irgendwann in den nächsten Monaten (!) genau dieses leisten.

Das Modul Talk2Fhem ist ganz nett. Aber erfüllt eben weder das Kriterium der einfachen Bedienbarkeit, noch ist das wartbar. Geschmackssache also.

Über die Grammatik dieses Satzes muss ich mal grübeln, das entspricht nicht ganz den Regeln... Was aber bereits funktioniert ist


Das liefert Category=2.1.5: Gerät=temperatur Ort=wohnzimmer Verb=sagen Ziel=status

Ich werde nachher im Wiki dokumentieren, wie man damit eine Temperaturabfrage hinbekommen kann.

LG

pah

Wird es dann auch möglich sein, einen Status als Bedingung abzufragen.

Z.B.

Ich schalte meinen Fernseher per Funk Steckdose aus, wenn ich nun den Sender verstellen möchte und der Fernseher aus ist, soll nichts passieren, außer der Antworttext ,,dies ist mit abgeschaltetem Fernseher nicht möglich"

Wenn der Fernseher an ist und schon auf Sender x steht, (Steckdosen Status ist ein eigenes Device und Sender ist auch ein eigenes Device) dann auch nur Antworttext ,,der Fernseher steht schon auf Sender x"

Wenn der Fernseher an ist und der Sender geändert werden soll/kann, dann Sender ändern und Antworttext ,,auf Sender x umgestellt"

Grüße Marcel


Tapatalk iPhone, daher kurz gehalten.
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: MadMax-FHEM am 31 Dezember 2017, 14:10:30
Wenn man perl-Aufrufe (also z.B. eine Sub in myUtils) als "fhem-Befehle" eintragen kann/könnte und der Rückgabewert (ein Text sein kann) dann in der Antwort landet/landen würde...
...sollte das gehen ;)

Bin ja schon gespannt was man mit dem Modul so machen kann, wenn ich endlich wieder zuhause bin und damit "spielen" kann... :)

Gruß, Joachim
Titel: Natural Language User Interface 95_Babble.pm
Beitrag von: Ma_Bo am 31 Dezember 2017, 14:13:56
Zitat von: MadMax-FHEM am 31 Dezember 2017, 14:10:30
Wenn man perl-Aufrufe (also z.B. eine Sub in myUtils) als "fhem-Befehle" eintragen kann/könnte und der Rückgabewert (ein Text sein kann) dann in der Antwort landet/landen würde...
...sollte das gehen [emoji6]

Bin ja schon gespannt was man mit dem Modul so machen kann, wenn ich endlich wieder zuhause bin und damit "spielen" kann... [emoji4]

Gruß, Joachim
Schon klar, im Moment mache ich meine komplette Auswertung in myUtils, das funktioniert auch alles ohne Probleme, ist aber nicht so schön übersichtlich und lässt sich nicht so einfach konfigurieren wie es, bis jetzt, mit diesem Modul hier möglich ist.
Der Zeitaufwand mit meiner myUtils ist wesentlich höher, als mit dem Modul.

Grüße Marcel


Tapatalk iPhone, daher kurz gehalten.
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: the ratman am 01 Januar 2018, 11:49:09
hab eben mal schnell das neueste babble.pm und auch das js (weiß ja ned, ob da auch was neu is) auf den server geladen.
nach nem neustart ist alles babble-artige weg. im logfile kommt2018.01.01 11:45:17 1: ERROR evaluating {Babble_Html("babble")}: Undefined subroutine &main::Babble_Html called at (eval 1012) line 1.

2018.01.01 11:46:35 1: PERL WARNING: Subroutine Babble_Initialize redefined at ./FHEM/95_Babble.pm line 151.
2018.01.01 11:46:35 1: PERL WARNING: Subroutine Babble_Define redefined at ./FHEM/95_Babble.pm line 188.
2018.01.01 11:46:35 1: PERL WARNING: Subroutine Babble_Undef redefined at ./FHEM/95_Babble.pm line 263.
2018.01.01 11:46:35 1: PERL WARNING: Subroutine Babble_Attr redefined at ./FHEM/95_Babble.pm line 285.
2018.01.01 11:46:35 1: PERL WARNING: Subroutine Babble_CreateEntry redefined at ./FHEM/95_Babble.pm line 308.
2018.01.01 11:46:35 1: PERL WARNING: Subroutine Babble_Set redefined at ./FHEM/95_Babble.pm line 347.
2018.01.01 11:46:35 1: PERL WARNING: Subroutine Babble_Get redefined at ./FHEM/95_Babble.pm line 383.
2018.01.01 11:46:35 1: PERL WARNING: Subroutine Babble_save redefined at ./FHEM/95_Babble.pm line 403.
2018.01.01 11:46:35 1: PERL WARNING: Subroutine Babble_savename redefined at ./FHEM/95_Babble.pm line 415.
2018.01.01 11:46:35 1: PERL WARNING: Subroutine Babble_restore redefined at ./FHEM/95_Babble.pm line 429.
2018.01.01 11:46:35 1: PERL WARNING: Subroutine Babble_Test redefined at ./FHEM/95_Babble.pm line 461.
2018.01.01 11:46:35 1: PERL WARNING: Subroutine Babble_Normalize redefined at ./FHEM/95_Babble.pm line 572.
2018.01.01 11:46:35 1: PERL WARNING: Subroutine timecorrector redefined at ./FHEM/95_Babble.pm line 910.
2018.01.01 11:46:35 1: PERL WARNING: Subroutine Babble_TestIt redefined at ./FHEM/95_Babble.pm line 940.
2018.01.01 11:46:35 1: PERL WARNING: Subroutine Babble_DoIt redefined at ./FHEM/95_Babble.pm line 988.
2018.01.01 11:46:35 1: PERL WARNING: Subroutine Babble_ModPlace redefined at ./FHEM/95_Babble.pm line 1026.
2018.01.01 11:46:35 1: PERL WARNING: Subroutine Babble_ModVerb redefined at ./FHEM/95_Babble.pm line 1052.
2018.01.01 11:46:35 1: PERL WARNING: Subroutine Babble_ModCmd redefined at ./FHEM/95_Babble.pm line 1101.
2018.01.01 11:46:35 1: PERL WARNING: Subroutine Babble_RemCmd redefined at ./FHEM/95_Babble.pm line 1138.
2018.01.01 11:46:35 1: PERL WARNING: Subroutine Babble_getdevs redefined at ./FHEM/95_Babble.pm line 1169.
2018.01.01 11:46:35 1: PERL WARNING: Subroutine Babble_gethelp redefined at ./FHEM/95_Babble.pm line 1254.
2018.01.01 11:46:35 1: PERL WARNING: Subroutine Babble_getplaces redefined at ./FHEM/95_Babble.pm line 1270.
2018.01.01 11:46:35 1: PERL WARNING: Subroutine Babble_getverbs redefined at ./FHEM/95_Babble.pm line 1343.
2018.01.01 11:46:35 1: PERL WARNING: Subroutine Babble_getwords redefined at ./FHEM/95_Babble.pm line 1402.
2018.01.01 11:46:35 1: reload: Error:Modul 95_Babble deactivated:
Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at ./FHEM/95_Babble.pm line 1648.

2018.01.01 11:46:35 0: Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at ./FHEM/95_Babble.pm line 1648.


beim versuch, ein neues babble anzulegen kommt natürlichCannot load module Babble
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 01 Januar 2018, 12:23:01
Ups, habe ich gerade erst gefixt - die neue Version steht seit 30 Sekunden im ersten Post.

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: the ratman am 01 Januar 2018, 13:00:22
generell alles da wieder.
das kommt allerdings, sobald ich den weblink aufrufe, bzw. ins bubble-dir gehe. weiß leider ned, ob der neu is, oder früher schon kam ...2018.01.01 12:57:55 1: PERL WARNING: Use of uninitialized value $l in print at fhem.pl line 4862.
2018.01.01 12:57:55 1: eval: {Babble_Html("babble")}
2018.01.01 12:57:55 1: stacktrace:
2018.01.01 12:57:55 1:     main::__ANON__                      called by fhem.pl (4862)
2018.01.01 12:57:55 1:     main::FileWrite                     called by ./FHEM/95_Babble.pm (410)
2018.01.01 12:57:55 1:     main::Babble_save                   called by ./FHEM/95_Babble.pm (1322)
2018.01.01 12:57:55 1:     main::Babble_getplaces              called by ./FHEM/95_Babble.pm (1511)
2018.01.01 12:57:55 1:     main::Babble_Html                   called by (eval 909) (1)
2018.01.01 12:57:55 1:     (eval)                              called by fhem.pl (1074)
2018.01.01 12:57:55 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.01.01 12:57:55 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1849)
2018.01.01 12:57:55 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1031)
2018.01.01 12:57:55 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (520)
2018.01.01 12:57:55 1:     main::FW_Read                       called by fhem.pl (3488)
2018.01.01 12:57:55 1:     main::CallFn                        called by fhem.pl (687)
2018.01.01 12:57:55 1: PERL WARNING: Use of uninitialized value $l in print at fhem.pl line 4862.
2018.01.01 12:57:55 1: eval: {Babble_Html("babble")}
2018.01.01 12:57:55 1: stacktrace:
2018.01.01 12:57:55 1:     main::__ANON__                      called by fhem.pl (4862)
2018.01.01 12:57:55 1:     main::FileWrite                     called by ./FHEM/95_Babble.pm (410)
2018.01.01 12:57:55 1:     main::Babble_save                   called by ./FHEM/95_Babble.pm (1456)
2018.01.01 12:57:55 1:     main::Babble_getwords               called by ./FHEM/95_Babble.pm (1525)
2018.01.01 12:57:55 1:     main::Babble_Html                   called by (eval 909) (1)
2018.01.01 12:57:55 1:     (eval)                              called by fhem.pl (1074)
2018.01.01 12:57:55 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.01.01 12:57:55 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1849)
2018.01.01 12:57:55 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1031)
2018.01.01 12:57:55 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (520)
2018.01.01 12:57:55 1:     main::FW_Read                       called by fhem.pl (3488)
2018.01.01 12:57:55 1:     main::CallFn                        called by fhem.pl (687)
2018.01.01 12:57:55 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/95_Babble.pm line 1578.
2018.01.01 12:57:55 1: eval: {Babble_Html("babble")}
2018.01.01 12:57:55 1: stacktrace:
2018.01.01 12:57:55 1:     main::__ANON__                      called by ./FHEM/95_Babble.pm (1578)
2018.01.01 12:57:55 1:     main::Babble_Html                   called by (eval 909) (1)
2018.01.01 12:57:55 1:     (eval)                              called by fhem.pl (1074)
2018.01.01 12:57:55 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.01.01 12:57:55 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1849)
2018.01.01 12:57:55 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1031)
2018.01.01 12:57:55 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (520)
2018.01.01 12:57:55 1:     main::FW_Read                       called by fhem.pl (3488)
2018.01.01 12:57:55 1:     main::CallFn                        called by fhem.pl (687)
2018.01.01 12:57:55 1: PERL WARNING: Use of uninitialized value $cmd in concatenation (.) or string at ./FHEM/95_Babble.pm line 1640.
2018.01.01 12:57:55 1: eval: {Babble_Html("babble")}
2018.01.01 12:57:55 1: stacktrace:
2018.01.01 12:57:55 1:     main::__ANON__                      called by ./FHEM/95_Babble.pm (1640)
2018.01.01 12:57:55 1:     main::Babble_Html                   called by (eval 909) (1)
2018.01.01 12:57:55 1:     (eval)                              called by fhem.pl (1074)
2018.01.01 12:57:55 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.01.01 12:57:55 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1849)
2018.01.01 12:57:55 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1031)
2018.01.01 12:57:55 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (520)
2018.01.01 12:57:55 1:     main::FW_Read                       called by fhem.pl (3488)
2018.01.01 12:57:55 1:     main::CallFn                        called by fhem.pl (687)
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: sbiermann am 01 Januar 2018, 16:48:56
Das ganze klingt echt spannend, @pah erzählst du beim nächsten (afaik 5.) Usertreffen in Karlsruhe etwas dazu?
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Esjay am 03 Januar 2018, 14:55:14
Hallo zusammen,
kann mir mal kurz jemand sagen, wie ich den erkannten Text durch das Modul analysieren kann. Ich habe einen Dummy, der durch einen webhook gefüllt wird. Genauer gesagt, durch mein Google Home. Ich sehe allerdings die Verbindung zum Modul noch nicht ganz. Ist bei mir irgendwie ein "Running Gag"

Was mir auch aufgefallen ist, ist die Tatsache, dass ein Babble Test (zum Beispiel :,, Schalte das Licht im Wohnzimmer an.") kein Ergebnis liefert. Es ist eigentlich egal welchen Satz ich Testen will, keiner liefert ein Ergebnis. Ich erhalte auch keine Logausgabe.

Hier mal ein List meines Babble Device

Internals:
   NAME       Babble
   NR         275
   STATE      Initialized
   TYPE       Babble
   VERSION    0.35
   DATA:
     re_articles ((der)|(die)|(das)|(den)|(des)|(dem)|(zur))
     re_devs    ((licht))
     re_places  ((home)|(amad)|(abfall)|(arbeitszimmer)|(alarm)|(bad)|(at)|(alarmroom)|(callmonitor)|(cul)|(doif)|(dummys)|(fensterkontakt)|(flur)|(gaestewc)|(garage)|(it)|(kinderzimmer)|(licht)|(logging)|(notifys)|(residents)|(schlafzimmer)|(server)|(sonos)|(spielzimmer)|(spotify)|(steckdosen)|(system)|(tv-programm)|(telegram)|(waschküche)|(webhook)|(wetter)|(wohnzimmer)|(zwave)|(msg)|(wohnzimmer))
     re_prepos  ((von)|(vom)|(des)|(der)|(in)|(im)|(auf)|(bei)|(am))
     re_quests  ((wie)|(wo)|(wann))
     re_status  ((status)|(wert)|(wetter)|(zeit))
     re_times   ((heute)|(morgen)|(übermorgen)|(nacht))
     re_verbparts ((zu)|(auf)|(ent)|(wider)|(ein)|(an)|(aus)|(ab)|(um))
     re_verbsc  ((schalt)|(machen)|(machs)|(schalten)|(schließen)|(mach)|(öffnen)|(schalte)|(schließe)|(schließ)|(mache)|(öffne))
     re_verbsi  ((schalten)|(machen)|(öffnen)|(schließen))
     re_writes  ((status)|(wert)|(wetter)|(zeit))
     articles:
       der
       die
       das
       den
       des
       dem
       zur
     command:
       licht:
         none:
           none:
             none       
     devcontacts:
       licht:
         licht
         HUEDevice3
         0
     devs:
       licht
     places:
       Home
       AMAD
       Abfall
       Arbeitszimmer
       Alarm
       Bad
       AT
       AlarmRoom
       Callmonitor
       Cul
       Doif
       Dummys
       Fensterkontakt
       Flur
       GaesteWc
       Garage
       IT
       Kinderzimmer
       Licht
       Logging
       Notifys
       Residents
       Schlafzimmer
       Server
       Sonos
       Spielzimmer
       Spotify
       Steckdosen
       System
       TV-Programm
       Telegram
       Waschküche
       Webhook
       Wetter
       Wohnzimmer
       ZWave
       msg
       Wohnzimmer
     prepos:
       von
       vom
       des
       der
       in
       im
       auf
       bei
       am
     quests:
       wie
       wo
       wann
     rooms:
       Home
       AMAD
       Abfall
       Arbeitszimmer
       Alarm
       Bad
       AT
       AlarmRoom
       Callmonitor
       Cul
       Doif
       Dummys
       Fensterkontakt
       Flur
       GaesteWc
       Garage
       IT
       Kinderzimmer
       Licht
       Logging
       Notifys
       Residents
       Schlafzimmer
       Server
       Sonos
       Spielzimmer
       Spotify
       Steckdosen
       System
       TV-Programm
       Telegram
       Waschküche
       Webhook
       Wetter
       Wohnzimmer
       ZWave
       msg
     splaces:
       Wohnzimmer
     status:
       Status
       Wert
       Wetter
       Zeit
     times:
       heute
       morgen
       übermorgen
       nacht
     verbparts:
       zu
       auf
       ent
       wider
       ein
       an
       aus
       ab
       um
     verbs:
       mach       machen
       mache      machen
       machen     machen
       machs      machen
       schalt     schalten
       schalte    schalten
       schalten   schalten
       schließ   schließen
       schließe  schließen
       schließen schließen
       öffne     öffnen
       öffnen    öffnen
     verbsi:
       schalten
       machen
       öffnen
       schließen
     verbsicc:
       ARRAY(0x55bfde0)
       ARRAY(0x592acd0)
       ARRAY(0x55aafa8)
       ARRAY(0x5596250)
     writes:
       Status
       Wert
       Wetter
       Zeit
   READINGS:
     2018-01-03 13:16:59   lockstate       unlocked
     2018-01-03 14:45:55   savedate        Wed Jan  3 14:45:55 2018
     2018-01-03 13:09:41   state           Initialized
Attributes:
   babbleArticles der die das den des dem zur
   babblePlaces Wohnzimmer
   babblePrepos von vom des der in im auf bei am
   babbleQuests wie wo wann
   babbleStatus Status Wert Wetter Zeit
   babbleTimes heute morgen übermorgen nacht
   babbleVerbParts zu auf ent wider ein an aus ab um
   babbleVerbs schalt,schalte:schalten mach,machs,mache:machen öffne:öffnen schließe,schließ:schließen
   babbleWrites sagen senden hinzufügen entfernen ändern löschen
   room       babbleRoom
   verbose    5



Ansonsten ist mir noch aufgefallen, dass ein "set Babble test" folgende Warnungen im Log liefert.

2018.01.03 13:12:24 1: PERL WARNING: Use of uninitialized value $cmd in substitution (s///) at ./FHEM/95_Babble.pm line 953.
2018.01.03 13:12:24 1: PERL WARNING: Use of uninitialized value $cmd in string ne at ./FHEM/95_Babble.pm line 959.
2018.01.03 13:12:24 1: PERL WARNING: Use of uninitialized value $reserve in string eq at ./FHEM/95_Babble.pm line 899.
2018.01.03 13:12:24 1: PERL WARNING: Use of uninitialized value $verb in string eq at ./FHEM/95_Babble.pm line 885.
2018.01.03 13:12:24 1: PERL WARNING: Use of uninitialized value $verb in string eq at ./FHEM/95_Babble.pm line 889.
2018.01.03 13:12:24 1: PERL WARNING: Use of uninitialized value $verb in string eq at ./FHEM/95_Babble.pm line 893.
2018.01.03 13:12:24 1: PERL WARNING: Use of uninitialized value $reading in string eq at ./FHEM/95_Babble.pm line 895.
2018.01.03 13:12:24 1: PERL WARNING: Use of uninitialized value $reading in string eq at ./FHEM/95_Babble.pm line 899.
2018.01.03 13:12:24 1: PERL WARNING: Use of uninitialized value $verb in concatenation (.) or string at ./FHEM/95_Babble.pm line 946.
2018.01.03 13:12:24 1: PERL WARNING: Use of uninitialized value $reading in concatenation (.) or string at ./FHEM/95_Babble.pm line 946.
2018.01.03 13:12:24 1: PERL WARNING: Use of uninitialized value $verb in hash element at ./FHEM/95_Babble.pm line 951.
2018.01.03 13:12:24 1: PERL WARNING: Use of uninitialized value $reading in hash element at ./FHEM/95_Babble.pm line 951.
2018.01.03 13:12:24 1: PERL WARNING: Use of uninitialized value in pattern match (m//) at ./FHEM/95_Babble.pm line 702.
2018.01.03 13:12:24 1: PERL WARNING: Use of uninitialized value $device in pattern match (m//) at ./FHEM/95_Babble.pm line 725.
2018.01.03 13:12:24 1: PERL WARNING: Use of uninitialized value $device in pattern match (m//) at ./FHEM/95_Babble.pm line 731.
2018.01.03 13:12:24 1: PERL WARNING: Use of uninitialized value $device in string eq at ./FHEM/95_Babble.pm line 735.
2018.01.03 13:12:24 1: PERL WARNING: Use of uninitialized value $word[1] in string ne at ./FHEM/95_Babble.pm line 811.
2018.01.03 13:12:24 1: PERL WARNING: substr outside of string at ./FHEM/95_Babble.pm line 899.
2018.01.03 13:12:24 1: PERL WARNING: Use of uninitialized value $value in pattern match (m//) at ./FHEM/95_Babble.pm line 902.
2018.01.03 13:12:24 1: PERL WARNING: Use of uninitialized value $value in concatenation (.) or string at ./FHEM/95_Babble.pm line 946.


Falls ich noch irgendetwas nachliefern kann, einfach bescheid sagen.

Danke und Grüße
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 04 Januar 2018, 12:27:59
Zu 1: Wenn der Dummy gefüllt wurde, mit einem Notify das Programm {Babble_DoIt(<Babblename>,"<Value des Dummy>")} aufrufen lassen.

Zu 2: Kein Test ? => babble.js nicht korrekt installiert ?

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Esjay am 04 Januar 2018, 22:10:23
Zitat von: Prof. Dr. Peter Henning am 04 Januar 2018, 12:27:59
Zu 1: Wenn der Dummy gefüllt wurde, mit einem Notify das Programm {Babble_DoIt(<Babblename>,"<Value des Dummy>")} aufrufen lassen.

Zu 2: Kein Test ? => babble.js nicht korrekt installiert ?

LG

pah

Danke für die Hinweise. Ich habe wohl beim kopieren vergessen die Rechte richtig zu setzen. Daraufhin habe ich es korrigiert, allerdings gab es auch keine Besserung.Habe die Devices anschließend gelöscht, und wollte das Ganze nochmal erneut einrichten, allerdings erhalte ich nun die Meldung im Log.
Auch ein erneutes herunterladen der Datein, hat keine Änderung gebracht.


2018.01.04 22:02:33 1: PERL WARNING: Use of uninitialized value $place in lc at ./FHEM/95_Babble.pm line 1119.
2018.01.04 22:02:33 1: PERL WARNING: Use of uninitialized value $verb in lc at ./FHEM/95_Babble.pm line 1120.
2018.01.04 22:02:33 1: PERL WARNING: Use of uninitialized value $target in lc at ./FHEM/95_Babble.pm line 1121.
2018.01.04 22:02:33 1: PERL WARNING: Use of uninitialized value $cmd in string ne at ./FHEM/95_Babble.pm line 1124.
2018.01.04 22:02:33 1: PERL WARNING: Use of uninitialized value $l in print at fhem.pl line 4862.
2018.01.04 22:02:33 1: ERROR evaluating {Babble_Html("Babble")}: Can't use an undefined value as an ARRAY reference at ./FHEM/95_Babble.pm line 1380


Letzter wird auch beim Aufrufen vom Babble Raum angezeigt. Dementsprechend wird auch nichts angezeigt.

LG
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 05 Januar 2018, 13:05:03
Ups, ich habe gerade heute früh erst festgestellt, dass die aktuell im ersten Post vorhandene Babble.pm fehlerhaft ist - sauberes Abspeichern des babbleFile nicht möglich.

Muss ich reparieren, das wird aber erst morgen möglich sein, weil ich heute ohne Laptop-Netzteil auf einem Landesparteitag herumsitze.

Sorry für den Fehler, ist in Arbeit.

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Esjay am 05 Januar 2018, 13:14:14
Zitat von: Prof. Dr. Peter Henning am 05 Januar 2018, 13:05:03
Ups, ich habe gerade heute früh erst festgestellt, dass die aktuell im ersten Post vorhandene Babble.pm fehlerhaft ist - sauberes Abspeichern des babbleFile nicht möglich.

Muss ich reparieren, das wird aber erst morgen möglich sein, weil ich heute ohne Laptop-Netzteil auf einem Landesparteitag herumsitze.

Sorry für den Fehler, ist in Arbeit.

LG

pah



Danke für die Rückmeldung. Dann weiß ich zumindest jetzt schon, wofür ich mir morgen Zeit nehme.
Dann viel Erfolg!

LG
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 06 Januar 2018, 20:40:35
So, ist gefixt.

Mit neuem Usecase zur Abfrage der Wettervorhersage, siehe Wiki


Download aus dem ersten Post.

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Esjay am 06 Januar 2018, 20:58:46
Zitat von: Prof. Dr. Peter Henning am 06 Januar 2018, 20:40:35
So, ist gefixt.

Mit neuem Usecase zur Abfrage der Wettervorhersage, siehe Wiki


Download aus dem ersten Post.

LG

pah

Guten Abend
leider keine Besserung

2018.01.06 20:57:01 1: PERL WARNING: keys on reference is experimental at ./FHEM/95_Babble.pm line 1662.
2018.01.06 20:57:01 1: [Babble_Define] data hash restored from save file with date Sat Jan  6 20:57:01 2018
2018.01.06 20:57:07 1: [Babble_Html] No entry in command table for local FHEM device HUEDevice3 with attribute babbleDevice=licht
2018.01.06 20:57:07 1: PERL WARNING: Use of uninitialized value $place in lc at ./FHEM/95_Babble.pm line 1178.
2018.01.06 20:57:07 1: PERL WARNING: Use of uninitialized value $verb in lc at ./FHEM/95_Babble.pm line 1179.
2018.01.06 20:57:07 1: PERL WARNING: Use of uninitialized value $target in lc at ./FHEM/95_Babble.pm line 1180.
2018.01.06 20:57:07 1: PERL WARNING: Use of uninitialized value $cmd in string ne at ./FHEM/95_Babble.pm line 1185.
2018.01.06 20:57:07 1: PERL WARNING: Use of uninitialized value $l in print at fhem.pl line 4862.
2018.01.06 20:57:07 1: ERROR evaluating {Babble_Html("Babble")}: Can't use an undefined value as an ARRAY reference at ./FHEM/95_Babble.pm line 1439.


jump to the top


Grüße
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: shamanix am 06 Januar 2018, 21:00:06
Guten Abend pah,
liebes Forum,

wenn ich versuche, ein Babble Device zu definieren, erhalte ich Antwort: Cannot load module Babble

Im Logfile ist der Eintrag : Experimental keys on scalar is now forbidden at ./FHEM/95_Babble.pm line 1662.
Ich habe in einem anderen FHEm-Wiki Post etwas dazu gefunden, allerdings reichen meine Kenntnisse nicht aus, dies zu implementieren. (https://forum.fhem.de/index.php?topic=58924.0 (https://forum.fhem.de/index.php?topic=58924.0))
Falls noch andere Informationen zur Fehlersuche benötigt werden, einfach Bescheid sagen.

Einen schönen Abend,

Grüße aus Leipzig
Robert
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 07 Januar 2018, 04:38:25
@shamanik: Bei Logfile-Einträgen gibt man die komplette Logzeile an. Die Ursache der Meldung habe ich in der neuen Version (s. oben) abgefangen

@Esjay: Kann ich nicht nachvollziehen. sowohl mit einem komplett neuen Babble, als auch mit meiner existierenden Produktivumgebungen gibt es zwar ein paar Warnungen, aber nicht so etwas.

Schlussfolgerung: Attributwert babbleVerbs ist defekt. Bitte erst einmal ansehen, was in den entsprechenden Daten drinsteht:

{Dumper($defs{"Babble"}->{DATA}{"verbs"})}
{Dumper($defs{"Babble"}->{DATA}{"re_verbsi"})}
{Dumper($defs{"Babble"}->{DATA}{"re_verbsc"})}

Und dann einen sauberen Attributwert manuell definieren, BEVOR man die Babble-Seite aufruft

attr <babble> babbleVerbs  schalt,schalte:schalten sage,sage,mache:sagen mach,machs,mache:machen öffne,schließ:öffnen schließe,schließ:schließen stell,stelle:stellen weck,wecke:wecken

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Esjay am 07 Januar 2018, 06:25:36
Zitat von: Prof. Dr. Peter Henning am 07 Januar 2018, 04:38:25
@shamanik: Bei Logfile-Einträgen gibt man die komplette Logzeile an. Die Ursache der Meldung habe ich in der neuen Version (s. oben) abgefangen

@Esjay: Kann ich nicht nachvollziehen. sowohl mit einem komplett neuen Babble, als auch mit meiner existierenden Produktivumgebungen gibt es zwar ein paar Warnungen, aber nicht so etwas.

Schlussfolgerung: Attributwert babbleVerbs ist defekt. Bitte erst einmal ansehen, was in den entsprechenden Daten drinsteht:

{Dumper($defs{"Babble"}->{DATA}{"verbs"})}
{Dumper($defs{"Babble"}->{DATA}{"re_verbsi"})}
{Dumper($defs{"Babble"}->{DATA}{"re_verbsc"})}

Und dann einen sauberen Attributwert manuell definieren, BEVOR man die Babble-Seite aufruft

attr <babble> babbleVerbs  schalt,schalte:schalten sage,sage,mache:sagen mach,machs,mache:machen öffne,schließ:öffnen schließe,schließ:schließen stell,stelle:stellen weck,wecke:wecken

LG

pah

Mir ist nicht aufgefallen, dass überhaupt gar keine Attribute beim define angelegt wurden, außer babbleroom.Nach dem manuellen anlegen,ist der weblink aufrufbar/verfügbar. Auf einer frischen fhem Installation, wurden beim ersten define alle Attribute angelegt. Löscht man das Device, und legt es erneut an, scheinen die Attribute nicht angelegt zu werden.

Ich muss nochmal fragen, ob es beim Installieren von babble.js einen Schritt gibt, den ich irgendwie auslasse (auf den Server kopieren, Rechte anpassen, Server neustarten) da sowohl auf der neu Installierten Instanz, als auch auf der Hauptinstanz kein Ergebnis kommt, wenn ich den Test Button drücke. Habe auch schon verschiedene Browser getestet, allerdings auch dort kein Unterschied festgestellt.

Grüße
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 07 Januar 2018, 09:49:11
ZitatLöscht man das Device, und legt es erneut an, scheinen die Attribute nicht angelegt zu werden
Ah sie an, das sollt enicht sein. Mal sehen, ob ich dagegen irgendetwas machen kann.

Man kann zumindest prüfen, ob das babble.js richtig geladen wird. Wobei ich auch gerne wüsste, was das für ein Browser ist.

1. Im Browser mit der rechten Maustaste auf der Babble-Seite auswählen "Seitenquelltext anzeigen".
2. In der Anzeige des Quelltest scrollen bis zum Eintrag
<script type="text/javascript" src="/fhem/pgm2/babble.js"></script>
3. Den Link auf "/fhem/pgm2/babble.js" anklicken.

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Laffer72 am 07 Januar 2018, 11:51:43
Hallo,

erstmal danke für das interessante Modul.

Habe jetzt auch ne Zeit probiert das ganze zum Laufen zubringen, aber es hat nicht geklappt. Dachte ich stell mich zu dumm an und hab auch alles probiert mit Rechte und und und...

Ich habe jetzt in

attr FHEMWeb csfrToken none

gesetzt und siehe da es klappt.

Vielleicht ist das auch bei dem einen oder anderen das Problem-

Viele Grüße

Reinhard
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Newbie am 07 Januar 2018, 12:08:44
Hallo Laffer72,

kann ich bestätigen, funktioniert jetzt auch bei mir.


danke und vg Jens
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: marvin78 am 07 Januar 2018, 12:10:48
Nur weil es funktioniert, ist das noch keine Lösung des Problems. Bitte einmal damit beschäftigen, warum es den Token gibt und was er macht.
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Newbie am 07 Januar 2018, 12:15:58
Hallo marvin78,

das ist mir schon klar, das es nicht die Lösung des Problems ist. Aber immerhin ein Hinweis wo es klemmt und
ich kann das definitiv nicht korrigieren.  ;)


vg Jens
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Laffer72 am 07 Januar 2018, 12:31:50
Hallo marvin78,

sorry, ich wollte nur darauf hinweisen, daß ich ebenso Probleme in der Ausführung des Moduls hatte, und daß es durch setzt des Tokens auf none funktioniert.

Wenn ich das mit dem Token richtig verstanden habe, kann hier doch nur der Modul-Autor etwas ändern.
Also ist das als Hinweis und Hilfe an pah, den Modulautor zu verstehen, damit er nachvollziehen kann, wo es bei denen, die Probleme mit dem Modul haben, hakt.

kurz noch zur Ergänzung: Der Perlaufruf von Babble_DoIt funktioniert auch mit csrfToken, es scheint nur die Test-Funktion im Frontend zu hängen.

Viele Grüße

Reinhard
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 07 Januar 2018, 13:12:46
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
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: yrwyddfa am 07 Januar 2018, 19:45:33
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!
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: tiroso am 07 Januar 2018, 20:04:15
Babble finde ich als Name cool  :) *neid*  ;)
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 09 Januar 2018, 06:41:13
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
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: karl0123 am 10 Januar 2018, 20:25:17
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.

Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: refi am 10 Januar 2018, 20:41:03
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é
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: refi am 10 Januar 2018, 21:03:13
...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é
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: tiroso am 10 Januar 2018, 21:04:25
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
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 10 Januar 2018, 21:49:39
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
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: tiroso am 10 Januar 2018, 22:12:46
Aus Interesse:
Welches Ziel verfolgen Sie denn?
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: karl0123 am 12 Januar 2018, 13:35:07
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.
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 12 Januar 2018, 15:33:33
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
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: karl0123 am 12 Januar 2018, 16:10:48
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.
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 12 Januar 2018, 18:01:56
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
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: karl0123 am 12 Januar 2018, 20:07:25
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.
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: refi am 12 Januar 2018, 21:34:46
Hallo,
ich habe immer noch Schwierigkeiten mit der Input-Erkennung.

Siehe auch meine Antwort #50.

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

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

Sollten beide Varianten erkannt werden?

Danke!
Gruß
René
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: tiroso am 13 Januar 2018, 08:37:45
Ach kommt schon...ich würde ja sagen ladet euch auf ein bier ein und dann lernt man sich mal kennen. Dann gibt es auch keine Diskrepanzen weil man sich bestimmt nur falsch versteht.

Aber eine Frage würde ich gerne aufgreifen, pah, wenn das in Ordnung ist.
Was spricht dagegen wenn man mehreren Devices den gleichen Alias gibt? So rein von der Logik? Eine Deckenlampe gibts ja wirklich häufig nur im unterschiedlichen Räumen.
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: karl0123 am 13 Januar 2018, 08:40:24
Es gab hier keine Beleidigungen. Interessant, dass jemand, der angeblich Experte für Sprache ist, hier Beleidigungen erkannt haben möchte. Die Welt ist seltsam geworden.

Warum ich weg sein sollte, frage ich mich auch. Es gibt keinen Grund dafür. Hättest du meine Beiträge wirklich mal gelesen, hättest du festgestellt, dass ich zwar geschrieben habe, dass Dinge meiner Meinung nach anders sein sollten, ich aber niemals verlangt habe, dass du das Modul umprogrammierst. Mir ging es eher um eine fruchtbare Diskussion zu dem Thema. Aber leider bist du daran nicht interessiert. Statt deinen Standpunkt (der ggf. durchaus seinen Sinn haben mag) darzustellen, meldest du unbequeme Nachrichten lieber einem Moderator und empfiehlst, ein anderes Modul zu verwenden. Dabei habe ich nie gesagt, dass ich ein solches Modul überhaupt benötigen würde. Wie immer in diesem Forum, interessiert dich nicht, was andere denken. Das was du produzierst, ist aus deiner Sicht perfekt. Leider ist es das nicht im Ansatz, weil ggf. zwar mit wissenschaftlichem Hintergrund, aber in Teilen eben an der Praxis vorbei gedacht. Bei der Praxis sollte man als Entwickler immer (nicht vollständig natürlich) auch auf die Anwender hören und die Beispiele in seine Überlegugen einfließen lassen. Hier hast du die Gelegenheit zu sehen, was wirklich wichtig sein kann.

Folgendes zu Modul und zu den Meldungen hier (ich will nur behilflich sein, egal ob es dich interessiert oder nicht): Es haben dir jetzt mehrere User gesagt, dass die Erkennung nicht immer gemäß Beschreibung funktionert. Das liegt, wie ich festgestellt habe, an gewissen Konstellationen in der Gesamtkonfiguration (bspw. Räume in einer hirarchischen Struktur, weil man diese im Modul nicht effektiv einsetzen kann, hat man sich Plätze angelegt, die Bestandteile des Raumnamens haben, verwendet diese -> Erkennung läuft nicht korrekt- geraten aber es wäre EIN Muster). Statt darauf zu pochen, dass das was schon einige User berichten, nicht nachvollziehbar ist, solltest du diesen Hinweise mal nachgehen. Natürlich sollten die User von sich aus ggf. entsprechende Infos, wie lists posten, wenn ich du wäre, würde ich doch einmal gezielt nach den benötigten Informationen fragen. Irgendwo hier im Thread hast du geschrieben, dass die angestrebte Funktion des Moduls vor geht. Ich sehe das aktuell nicht. Das wirst du ggf. wieder als Beleidigung auffassen.

Und nochmal: Nein, du bist mich nicht los. Warum auch? Wenige Beiträge sind kein Hinweis aus dem man irgendwelche Rückschlüsse ziehen könnte. Auch nicht den, dass du einen User mit aspeisenden und ständig ausweichenden und inaltlich dürftigen Beiträgen, los werden kannst.

Das mit dem Bier finde ich gut. Ich sehe hier keine großen Differenzen.
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: the ratman am 13 Januar 2018, 09:10:08
eig. wollt ich ja jetzt popcorn verteilen ...

@pah - ungern sag ichs, aber ich würd mich auch sehr über eine "mehrfachbenennung" freuen. man kann dann ja, muß aber nicht *g*


und weil ich auch gern rumunke:
zum rest des gequassels ... karl0123 ... dich "kenn" ich nicht, aber pah "kenn" ich. wenn der was macht, hat das normal hand und fuß und meistens erfüllt er sogar sonderwünsche, wenn man lieb genug fragt und er nicht grad 1000 andere sachen für uns bastelt.
eines steht fest: du magst ja sicher n nettes und kompetentes kerlchen sein (ich gab gern vorschußlorbeeren), aber pah hat hier schon zeug abgeliefert, dass müssen andere erst mal nachmachen, bevors  den herrn prof. anspringen dürfen. sprich: mach mal so viele, so sinnvolle module wie pah, dann reden ma weiter ...
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: refi am 13 Januar 2018, 20:08:52
Hallo,
ich habe keine Idee mehr, wo ich den Fehler in meinem Testaufbau suchen soll.

wie beschrieben:
Mit "Schalte im Arbeitszimmer das Licht an" funktioniert alles wunderbar. Das Gerät wird auch wirklich angesprochen.
Mit "Schalte das Licht im Arbeitszimmer an" klappt die Erkennung nicht - sollte aber.

babble.version => 0.44

Ich habe nun alle Babble-Devices gelöscht (beim letzten kommt übrigens "babble.js line 208: ypeError: table.rows[rown] is undefined".
Danach im FHEM-Gerät das babble-Attribut gelöscht und neu gesetzt.
Ich habe jetzt nur noch ein Gerät mit dem Attribut "babbleDevice" = Licht und nur den einen Ort (Arbeitszimmer) als "Babble Orte" hinzugefügt.

Die Attribute im Babble-Device (Article, Prepos usw.) sind unverändert – werden ja auch im ersten Satz wie gewünscht verwendet.

Ich habe es mit und ohne Lightscene versucht und komme zum gleichen Ergebnis.

Für Ideen, wo und was ich (ver)suchen soll bin ich dankbar.

Gruß
René
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 15 Januar 2018, 07:58:39
Mysteriös.

bei mir funktioniert es mit derselben Version problemlos, 1. Person Singular ebenso wie infinitiv ("Das Licht im Arbeitszimmer anschalten"), siehe Screenshots.

Ich habe spaßeshalber meine Attributwerte ebenfalls gepostet.

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: refi am 15 Januar 2018, 16:56:36
Hallo pah,

ich habe jetzt alle Babble-Attribute kopiert, gelöscht (auf 1 gesetzt), angepasst/vervollständigt und wieder eingetragen. Alle sind nun identisch mit dem Screenshot. (außer helpFunc, remoteFHEM1, remoteFunc1 und TestParm0 – die brauche ich nicht (denke ich)).
Mein Problem besteht immer noch unverändert.

Gruß
René
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: refi am 16 Januar 2018, 10:12:24
Hallo pah,

mit dieser Version kann das Modul nicht geladen werden.
Nehme ich die 0.44 klappt es.
2018.01.16 10:02:07 1: configfile: Cannot load module Babble
./log/fhem.save: Please define Babble first


Gruß
René
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: refi am 16 Januar 2018, 10:48:54
dann muss da noch eins fehlen
2018.01.16 10:45:13 1: reload: Error:Modul 95_Babble deactivated:
Global symbol "@words" requires explicit package name at ./FHEM/95_Babble.pm line 647.
Global symbol "@words" requires explicit package name at ./FHEM/95_Babble.pm line 654.
Global symbol "@words" requires explicit package name at ./FHEM/95_Babble.pm line 659
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: refi am 16 Januar 2018, 12:51:22
ZitatNochmal probieren

Schalte im Arbeitszimmer das Licht an
2018.01.16 12:42:59 1 : ==========> 1.1 with schalte,das,licht,an,,
Ergebnis: Category=1.1.0: Gerät=licht Ort=arbeitszimmer Verb=schalten Ziel=an / ==> set ArbeitszimmerDeckenlampe on

Schalte das Licht im Arbeitszimmer an

2018.01.16 12:44:02  1: ==========> 1.2 with schalte,im,arbeitszimmer,an,,
2018.01.16 12:44:02 1 : =======> 1.2.4

Ergebnis: Category=1.2.4: Gerät=arbeitszimmer Ort=licht Verb=schalten Ziel=an /

Gruß
René
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: refi am 16 Januar 2018, 16:36:53
Attributes:
   babbleArticles der die das den des dem zur
   babblePlaces Arbeitszimmer
   babblePrepos von vom des der in im auf bei am
   babbleQuests wie wo wann welche welches welcher
   babbleStatus Status Wert Wetter Zeit
   babbleTimes heute morgen übermorgen nacht
   babbleVerbParts zu auf ent wider ein an aus ab um
   babbleVerbs schalt,schalte:schalten sage,sage,mache:sagen mach,machs,mache:machen öffne,schließ:öffnen schließe,schließ:schließen stell,stelle:stellen weck,wecke:wecken
   babbleWrites sagen senden hinzufügen entfernen ändern löschen
   room       babbleRoom


Gruß
René
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: refi am 16 Januar 2018, 19:16:02
2018.01.16 19:08:11 1: reload: Error:Modul 95_Babble deactivated:
Missing right curly or square bracket at ./FHEM/95_Babble.pm line 1979, at end of line
syntax error at ./FHEM/95_Babble.pm line 1979, at EOF

2018.01.16 19:08:11 0: Missing right curly or square bracket at ./FHEM/95_Babble.pm line 1979, at end of line
syntax error at ./FHEM/95_Babble.pm line 1979, at EOF


Gruß
René
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: refi am 17 Januar 2018, 05:13:50
2018.01.17 05:09:01 1: ERROR evaluating {Babble_Html("Babble")}: Can't use an undefined value as an ARRAY reference at ./FHEM/95_Babble.pm line 1683

Gruß
René
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: refi am 17 Januar 2018, 08:52:50
Der Fehler von heute morgen war nach einem FHEM-Restart weg. Vorher hatte ich das Modul nur per "reload" neu geladen – mein Fehler.
Habe trotzdem alles wie gefordert gelöscht (Device, Attribute, 95_Babble.pm, babble.js), FHEM neu gestartet, Modul installiert, FHEM erneut gestartet und Neudefinition durchgeführt.

Habe die Version 0.44a installiert.

schalte im arbeitszimmer das licht an

--> habe meine anderen Räume hier gelöscht - es gibt aber keinen weiteren Raum der "Arbeitszimmer" enthält)

2018.01.17 08:41:48 1 : ==========> Comparing schalte to ((arbeitszimmer))
2018.01.17 08:41:48 1 : =================> FALSE
2018.01.17 08:41:48 1 : ==========> Comparing im to ((arbeitszimmer))
2018.01.17 08:41:48 1 : =================> FALSE
2018.01.17 08:41:48 1 : ==========> Comparing arbeitszimmer to ((arbeitszimmer))
2018.01.17 08:41:48 1 : =================> TRUE
2018.01.17 08:41:48 1 : ==========> 1.1 with schalte,das,licht,an,,


schalte das Licht im Arbeitszimmer an
2018.01.17 08:43:00 1 : ==========> Comparing schalte to ((arbeitszimmer))
2018.01.17 08:43:00 1 : =================> FALSE
2018.01.17 08:43:00 1 : ==========> Comparing das to ((arbeitszimmer))
2018.01.17 08:43:00 1 : =================> FALSE
2018.01.17 08:43:00 1 : ==========> Comparing licht to ((arbeitszimmer))
2018.01.17 08:43:00 1 : =================> TRUE
2018.01.17 08:43:00 1 : ==========> 1.2 with schalte,im,arbeitszimmer,an,,
2018.01.17 08:43:00 1 : =======> 1.2.4


Gruß
René
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 17 Januar 2018, 11:04:40
Wie man leicht bei der Eingabe von
{("licht" =~ /((arbeitszimmer))/) ? "ja" : "nein"}
in die FHEM-Codezeile sieht, kann das nicht richtig sein.

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: refi am 17 Januar 2018, 11:54:19
Ich habe einen Raum "Licht" (ist aber nicht in Babble als Ort hinterlegt) – der ist wohl das Problem.
Nehme ich anstelle "Licht" = "Steckdose" als babbleDevice-Attribut  funktionieren beide Varianten.

Gruß
René
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 17 Januar 2018, 13:30:23
 ::) ::) ::) ::) ::) ::)
Natürlich kann die Kiste nicht erkennen, dass Licht einmal ein Device und einmal ein Raum ist.

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: refi am 17 Januar 2018, 14:25:23
wenn nicht eine Variante funktioniert hätte (da gab es ja auch Gerät und den Raum dem selben Namen), dann wäre das sicher früher aufgefallen

egal, entweder ich ändere meinen Raum um, oder nenne ab sofort alle Lampen "Steckdose" und nicht "Licht"  ;)
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: refi am 17 Januar 2018, 15:24:02
Kann ich solche Raumnamen für die Verwendung in Babble ausschließen oder nur bestimmte Räume festlegen?

Gruß
René
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 21 Januar 2018, 19:55:24
So, jetzt gibt es eine neue Version.

Mit dieser Version kann man jetzt unterschiedliche FHEM-Devices mit dem gleichen Begriff, z.B. "Licht" ansprechen. Die Eindeutigkeit des Babble-Devicenamen habe ich beibehalten - das bedeutet, dass jedes FHEM-Device genau einen Babble-Devicenamen haben darf. Allerdings werden Babble Devices gruppiert, die sich nur im angehängten String "_<ziffern>" unterscheiden.

Beispielsweise kann man definieren

Beleuchtung im Erdgeschoss => babbleDevice=Licht => Wird mit dem Substantiv "Licht" adressiert

Beleuchtung außen => babbleDevice=Licht_1 => Wird ebenfalls mit dem Substantiv "Licht" adressiert

Beleuchtung im Obergeschoss => babbleDevice=Licht_2 => Wird ebenfalls mit dem Substantiv "Licht" adressiert

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Hauswart am 23 Januar 2018, 08:56:13
Ich bekommen beim Definieren folgende Fehlermeldung:
ZitatCannot load module Babble
Im Log:

2018.01.23 08:54:08 1: reload: Error:Modul 95_Babble deactivated:
Experimental push on scalar is now forbidden at ./FHEM/95_Babble.pm line 1420, near "$ig)"
Experimental push on scalar is now forbidden at ./FHEM/95_Babble.pm line 1451, near "$ig)"

2018.01.23 08:54:08 0: Experimental push on scalar is now forbidden at ./FHEM/95_Babble.pm line 1420, near "$ig)"
Experimental push on scalar is now forbidden at ./FHEM/95_Babble.pm line 1451, near "$ig)"


(Version aus dem SVN)
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 23 Januar 2018, 12:07:45
Ah, ok, das liegt daran, dass ich manchmal gewagte Konstruktionen verwende. Habe gerade eine Version eingecheckt, die das vermeidet.

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Hauswart am 24 Januar 2018, 10:21:26
Danke, heute kam folgendes beim Definieren:
Zitat
2018.01.24 10:18:54 3: FHEMWEB WEB CSRF error: csrf_216981360842658 ne csrf_168970253654081 for client WEB_192.168.0.25_52511 / command shutdown restart. For details see the csrfToken FHEMWEB attribute.
2018.01.24 10:18:54 3: FHEMWEB WEB CSRF error: csrf_216981360842658 ne csrf_168970253654081 for client WEB_192.168.0.25_52533 / command define Babble Babble. For details see the csrfToken FHEMWEB attribute.


Beim 2. Versuch:
Zitat
2018.01.24 10:21:36 1: reload: Error:Modul 95_Babble deactivated: Experimental push on scalar is now forbidden at ./FHEM/95_Babble.pm line 1452, near "$ig)"
2018.01.24 10:21:36 0: Experimental push on scalar is now forbidden at ./FHEM/95_Babble.pm line 1452, near "$ig)"
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: nils_ am 24 Januar 2018, 10:33:36
Zitat von: Hauswart am 24 Januar 2018, 10:21:26
Beim 2. Versuch:
Zitat2018.01.24 10:21:36 1: reload: Error:Modul 95_Babble deactivated: Experimental push on scalar is now forbidden at ./FHEM/95_Babble.pm line 1452, near "$ig)"
2018.01.24 10:21:36 0: Experimental push on scalar is now forbidden at ./FHEM/95_Babble.pm line 1452, near "$ig)"

hast du heute morgen das modul geupdatet?
(oder gestern aus dem svn geholt?)
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Hauswart am 24 Januar 2018, 10:34:54
Zitat von: nils_ am 24 Januar 2018, 10:33:36


hast du heute morgen das modul geupdatet?
(oder gestern aus dem svn geholt?)
Habe es gerade aus dem offiziellen Update geholt.
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 24 Januar 2018, 16:53:30
Kann nicht sein, denn in der aktuell heute hochgeladenen Version ist nicht nur der push-Befehl korrigiert worden, sondern auch auf Zeile 1456 gewandert.

Betreffend die csrf-Token: Nach jedem Neustart einer entfernten FHEM-Instanz muss einmal get ... tokens ausgeführt werden. Den für die lokale FHEM-Instanz holt sich das Modul bei jedem reload der Webseite selbst.

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: scooty am 25 Januar 2018, 22:22:06
Hallo,

bei mir leider auch beim Versuch, ein babble-Device anzulegen:
define XXOG_BABBLE Babble
bringt im WebIF:
Cannot load module Babble
und im FHEM-Logfile:
2018.01.25 22:01:43.970 1: reload: Error:Modul 95_Babble deactivated:
Experimental push on scalar is now forbidden at /opt/fhem/FHEM/95_Babble.pm line 1456, near "$ig)"
2018.01.25 22:01:43.971 0: Experimental push on scalar is now forbidden at /opt/fhem/FHEM/95_Babble.pm line 1456, near "$ig)"

Ein
version 95_Babble.pm
zeigt
95_Babble.pm 15981 2018-01-24 16:51:19Z phenning
Die "www/pgm2/babble.js" hat im Header die Versionsangabe 1.06, also auch so wie im SVN.

update check
zeigt
fhem
nothing to do...


Bin etwas ratlos...

Andreas
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 26 Januar 2018, 09:09:53
Hm, bitte nochmal die aktuelle Version laden (1.07) - da war wirklich noch ein Fehler drin.

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 04 Februar 2018, 13:39:00
Anbei eine neue (Beta !)-Version mit integriertem Chatbot, basierend auf der Sprache RiveScript

Die beiden RiveScript Dateien bitte in /opt/fhem/rivescript, RiveScript-Anleitungen in http://www.rivescript.com

LG

pah

Update heute 20:16:

Rückwärtsverbindung des Chatbots zu FHEM funktioniert, es können also beliebige Daten aus FHEM in die Antwort des Chatbots eingebunden werden  :).


Mit den beiligenden Dateien kann man z.B. den folgenden Dialog führen:

User: "Hallo" => Babble: "Hallo, ich bin Jeannie. Wer bist Du ?"

User: "Ich bin Peter." => Babble: "Schoen, Dich kennenzulernen, Peter!"

User: "Was kannst Du für mich tun ?" => Babble: "Ich kann für Dich das Haus steuern."

User: "Was kannst Du steuern ?" => Babble: "Ich kenne die Geräte Licht, ....."

User: Wie kannst Du Licht steuern => Babble: "Sprich: Licht, gefolgt von einer Szenenbezeichnung und dem Wort an oder aus"
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: kjmEjfu am 08 Februar 2018, 16:22:25
Ich habe gerade zum ersten Mal ein Babble-Device angelegt

define Babble Babble

Wenn ich nun allerdings versuche den Weblink zu öffnen, bekomme ich

Can't use an undefined value as an ARRAY reference at ./FHEM/95_Babble.pm line 1496.

(babble.version => 1.08)
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 09 Februar 2018, 11:28:15
Sorry, ich dachte eigentlich, dass ich den herausgenommen hätte...

Version 1.09 wird soeben eingecheckt, die vermeidet diesen Fehler. Allerdings kennt sie noch nicht die Chatbot-Funktionalität - die ist nur in dem oben angehängten File zu finden (habe ich ebenfalls gleich upgedatet).

LG

pah

Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: ekur am 11 Februar 2018, 19:43:09
Ist die Chatbot Variante jetzt in der eingecheckten 1.09er Version? Bei mir wird in dem Post auf Seite 6 keine Datei mehr zum Download angezeigt.
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 12 Februar 2018, 05:09:14
Die Version im SVN ist 1.1, und, ja, das ist das Ding mit ChatBot. Die entsprechenden Rive-Script Dateien gibt es im Ordner contrib/Babble oder im ersten Post des Threads

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: ekur am 12 Februar 2018, 21:33:01
Danke für die Info. Bei mir wurde gestern Abend noch die 1.09 als aktuelle Version angezeigt.
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: geiercasi am 14 Februar 2018, 17:13:20
Hi René,

Zitat von: refi am 10 Januar 2018, 20:41:03
AMAD/Automagic → Spracheingabe via Widget → DOIF ruft Babble_DoIt auf → Babble führt Befehl aus
magst du dein define Dazu posten bitte ?

Gruß
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: refi am 15 Februar 2018, 16:18:44
Hallo,

so sieht mein DOIF aus:
(["AMADBridge:receiveVoiceCommand"]) ({Babble_DoIt("Babble",(ReadingsVal("AMADBridge","receiveVoiceCommand","")))})
Gruß René
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: ekur am 16 Februar 2018, 21:37:40
Ich habe jetzt mit dem Modul gespielt und bin sehr begeistert, einfache Bedienung, gute Dokumentation, chatbot integriert mit einfacher Sprache. Fast alles perfekt.
Ich habe nur Probleme das die Befehle für die Geräte nicht gesichert werden können. Bei mir wird eine Datei babbleFILE (ohne Endung) direkt in /opt/fhem angelegt, diese wird aber beim sichern (in Babble Device oder im hidden room) nicht gefüllt.
Ein Rechteproblem schliesse ich mal aus, da ich die Datei probeweiser mit voller Berechtigung für alle modifiziert habe.
Meine Frage: Ist die Datei dort an der richtigen Stelle? hat Sie den richtigen Namen?

Viele Grüße

Elmar Kurth
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 17 Februar 2018, 07:15:54
Ist sie. Kann es sein, dass das Reading lockstate den Wert "locked" hat ? Was sagt das Log ?

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: ekur am 18 Februar 2018, 10:14:15
Hallo,

ich habe es jetzt wie folgt getestet, Device auf locked gesetzt, versucht zu speichern:

Ausgabe EventMonitor:
2018-02-18 09:57:00.398 Babble Babble savedate: Sun Feb 18 09:57:00 2018
Ausgabe Logfile:
2018.02.18 09:57:00.400 1: [Babble] attempt to save data failed due to lockstate

Babble unlocked, dann gespeichert

Ausgabe EventMonitor:
2018-02-18 09:57:48.835 Babble Babble savedate: Sun Feb 18 09:57:48 2018
2018-02-18 09:57:48.847 Babble Babble savedate: Sun Feb 18 09:57:48 2018
2018-02-18 09:57:48.977 Babble Babble savedate: Sun Feb 18 09:57:48 2018
2018-02-18 09:57:48.984 Babble Babble savedate: Sun Feb 18 09:57:48 2018
2018-02-18 09:57:57.774 Babble Babble savedate: Sun Feb 18 09:57:57 2018

Warum versucht er fünfmal zu speichern?
EDIT: Beim Sichern über den Raum "Babble" (Click auf "Sichern") erfolgt der vierfache Eintrag in den Eventmonitor, Bei "set Babble save" ein Eintrag in den Eventmonitor.

Keine Ausgabe im Logfile, in der Datei babbleFILE ist ebenfalls nichts enthalten

Berechtigungen File in /opt/fhem
-rwxrwxrwx  1 fhem dialout      1 Feb 18 09:54 babbleFILE

In
list Babble
steht

     command:
       heizlüfter:
         keller:
           schalten:
             aus        set Keller_Zusatzheizung 0
             ein        set Keller_Zusatzheizung 1

   READINGS:
     2018-02-18 09:57:39   lockstate       unlocked
     2018-02-18 09:57:57   savedate        Sun Feb 18 09:57:57 2018
     2018-02-16 20:56:14   state           Initialized


Kann ich eine Musterdatei für babbleFiLE bekommen? Ich würde dann mal auf Dateiebene diese erstellen und sehen was dann passiert.
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 18 Februar 2018, 11:27:35
Mehrfaches Save ? Habe ich nicht im Event-Monitor.

Immer noch leer ? Was ergibt denn der Eintrag in die Kommandozeile
{FileWrite("babbleFILE","abcdefghijklmnopqrstuvwxyz")}

Manuelles babbleFILE: Davon rate ich dringend ab !

Auf eigene Gefahr - funktioniert wegen des "*" in dem Namen der Postme-Listen auch nicht uneingeschränkt (eine neue Version von Babble, die auch kompliziertere Devicenamen mit regulären Ausdrücken akzeptiert, ist in Arbeit).

{
    "verbsicc": [
        [
            "schalt",
            "schalte"
        ],
        [
            "sage",
            "sage",
            "mache"
        ],
        [
            "mach",
            "machs",
            "mache"
        ],
        [
            "öffne",
            "schlieÃ\u009f"
        ],
        [
            "schlieÃ\u009fe",
            "schlieÃ\u009f"
        ],
        [
            "stell",
            "stelle"
        ],
        [
            "weck",
            "wecke"
        ],
        [
            "sichere",
            "sicher"
        ],
        ["schütze"],
        ["wache"],
        ["korrigiere"],
        ["füge"],
        ["lösche"],
        ["sende"],
        ["entferne"]
    ],
    "devsalias": {
        "licht": [
            "8",
            "9"
        ],
        "zirkulation": ["2"],
        "wecker": ["1"],
        "gong": ["0"],
        "golf": ["3"],
        "temperatur": ["6"],
        "feuchte": ["5"],
        "wetter": ["7"],
        "zeit": ["10"],
        "*liste": ["12"],
        "haus": [
            "4",
            "11"
        ]
    },
    "verbs": {
        "schlieÃ\u009f": "schlieÃ\u009fen",
        "sagen": "sagen",
        "wachen": "wachen",
        "sicher": "sichern",
        "schütze": "schützen",
        "entfernen": "entfernen",
        "schalte": "schalten",
        "lösche": "löschen",
        "stelle": "stellen",
        "senden": "senden",
        "schuetzen": "schuetzen",
        "stellen": "stellen",
        "überwachen": "überwachen",
        "wecken": "wecken",
        "sende": "senden",
        "entsichere": "entsichern",
        "überwache": "überwachen",
        "stell": "stellen",
        "schlieÃ\u009fen": "schlieÃ\u009fen",
        "machs": "machen",
        "schalten": "schalten",
        "sichern": "sichern",
        "öffne": "öffnen",
        "korrigieren": "korrigieren",
        "löschen": "löschen",
        "korrigiere": "korrigieren",
        "schalt": "schalten",
        "wecke": "wecken",
        "mache": "machen",
        "entferne": "entfernen",
        "schuetze": "schuetzen",
        "sichere": "sichern",
        "entsichern": "entsichern",
        "sage": "sagen",
        "weck": "wecken",
        "wache": "wachen",
        "schlieÃ\u009fe": "schlieÃ\u009fen",
        "schützen": "schützen",
        "öffnen": "öffnen",
        "fügen": "fügen",
        "füge": "fügen",
        "mach": "machen",
        "machen": "machen"
    },
    "re_places": "((garderobe)|(gästebad)|(wohnzimmer)|(essgruppe)|(sitzgruppe)|(fernsehen)|(schlummern)|(auÃ\u009fen)|(hofeingang)|(terrasse)|(rasen)|(garage)|(vorgarten)|(hecke)|(baum)|(eingang)|(vorratskeller)|(zwischenkeller)|(kellerbad)|(werkstattkeller)|(heizungskeller)|(schlafzimmer)|(badezimmer)|(flur)|(bibliothek)|(gästezimmer)|(arbeitszimmer)|(dominiks_zimmer))",
    "devcontacts": {
        "wecker": [
            "Wecker",
            "Alexa.Weckzeit",
            0
        ],
        "gong": [
            "Gong",
            "Alexa.Dominic_Wecken",
            0
        ],
        "golf": [
            "Golf",
            "Golf.message",
            0
        ],
        "licht": [
            "Licht",
            "WZ.Scene",
            "1"
        ],
        "zirkulation": [
            "Zirkulation",
            "Alexa.Zirkulation",
            0
        ],
        "zeit": [
            "Zeit",
            "YYY",
            "1"
        ],
        "wetter": [
            "Wetter",
            "weather.Today",
            0
        ],
        "licht_1": [
            "Licht_1",
            "A.Scene",
            "1"
        ],
        "haus_1": [
            "Haus_1",
            "houseProfileC",
            0
        ],
        "*liste": [
            "*Liste",
            "PostIt",
            "2"
        ],
        "haus": [
            "Haus",
            "YYY",
            "1"
        ],
        "temperatur": [
            "Temperatur",
            "tempProfileC",
            0
        ],
        "feuchte": [
            "Feuchte",
            "humProfileC",
            0
        ]
    },
    "re_verbparts": "((zu)|(auf)|(ent)|(wider)|(ein)|(an)|(aus)|(ab)|(um)|(ver)|(be)|(über)|(hinzu))",
    "re_status": "((status)|(wert)|(wetter)|(zeit))",
    "re_verbsi": "(?P<verbsi>(schalten)|(sagen)|(machen)|(öffnen)|(schlieÃ\u009fen)|(stellen)|(wecken)|(sichern)|(schützen)|(wachen)|(korrigieren)|(fügen)|(löschen)|(senden)|(entfernen))",
    "re_quests": "((wie)|(wo)|(wann)|(welche)|(welches)|(welcher))",
    "help": {
        "zirkulation": "Bitte sprich: Zirkulation anschalten, um die Warmwasserzirkulation für zehn Minuten zu starten",
        "licht": "Bitte sprich: Licht, gefolgt von einer Ortsangabe, gefolgt von an oder aus",
        ".*liste": "Sprich: Listenname, gefolgt von ",
        "gong": "Bitte sprich: Gong anschalten, und Dominic wird geweckt",
        "golf": "Bitte sprich: Golf, und ich sage den Status des Golfplatzes Bruchsal",
        "peters_liste": "Sprich: Zu oder von Peters_Liste, gefolgt von hinzufügen oder entfernen, gefolgt von einer Bezeichnung, oder Peters Liste ansagen oder senden",
        "wecker": "Bitte sprich: Wecken, gefolgt von einer Uhrzeit, oder Wecker ausschalten",
        "feuchte": "Bitte sprich: Wie ist die Feuchte, gefolgt von einer Ortsangabe",
        "temperatur": "Bitte sprich: Wie ist die Temperatur, gefolgt von einer Ortsangabe",
        "haus": "Bitte sprich: Haus, gefolgt von sichern, entsichern, schützen oder überwachen",
        "*liste": "Bitte sprich: Listenname, gefolgt von ansagen, löschen oder hinzufügen, entfernen und einer Bezeichnung",
        "wetter": "Bitte sprich: Wetter, gefolgt von heute, morgen oder übermorgen",
        "haus_1": "Bitte sprich: Haus, gefolgt von einer Ortsangabe, gefolgt von ",
        "licht_1": "Bitte sprich: Licht, gefolgt von einer Ortsangabe, gefolgt von an oder aus",
        "zeit": "Bitte sprich: Guten Morgen oder Gute Nacht oder frage nach dem Status von Zeit"
    },
    "places": [
        "Garderobe",
        "Gästebad",
        "Wohnzimmer",
        "Essgruppe",
        "Sitzgruppe",
        "Fernsehen",
        "Schlummern",
        "AuÃ\u009fen",
        "Hofeingang",
        "Terrasse",
        "Rasen",
        "Garage",
        "Vorgarten",
        "Hecke",
        "Baum",
        "Eingang",
        "Vorratskeller",
        "Zwischenkeller",
        "Kellerbad",
        "Werkstattkeller",
        "Heizungskeller",
        "Schlafzimmer",
        "Badezimmer",
        "Flur",
        "Bibliothek",
        "Gästezimmer",
        "Arbeitszimmer",
        "Dominiks_Zimmer"
    ],
    "quests": [
        "wie",
        "wo",
        "wann",
        "welche",
        "welches",
        "welcher"
    ],
    "times": [
        "heute",
        "morgen",
        "übermorgen",
        "nacht"
    ],
    "devs": [
        "Gong",
        "Wecker",
        "Zirkulation",
        "Golf",
        "Haus_1",
        "Feuchte",
        "Temperatur",
        "Wetter",
        "Licht",
        "Licht_1",
        "Zeit",
        "Haus",
        "*Liste"
    ],
    "verbsi": [
        "schalten",
        "sagen",
        "machen",
        "öffnen",
        "schlieÃ\u009fen",
        "stellen",
        "wecken",
        "sichern",
        "schützen",
        "wachen",
        "korrigieren",
        "fügen",
        "löschen",
        "senden",
        "entfernen"
    ],
    "status": [
        "Status",
        "Wert",
        "Wetter",
        "Zeit"
    ],
    "prepos": [
        "von",
        "vom",
        "des",
        "der",
        "in",
        "im",
        "auf",
        "bei",
        "am"
    ],
    "writes": [
        "Status",
        "Wert",
        "Wetter",
        "Zeit"
    ],
    "re_verbsc": "((schlieÃ\u009f)|(sagen)|(wachen)|(sicher)|(schütze)|(entfernen)|(schalte)|(lösche)|(stelle)|(senden)|(schuetzen)|(stellen)|(überwachen)|(wecken)|(sende)|(entsichere)|(überwache)|(stell)|(schlieÃ\u009fen)|(machs)|(schalten)|(sichern)|(öffne)|(korrigieren)|(löschen)|(korrigiere)|(schalt)|(wecke)|(mache)|(entferne)|(schuetze)|(sichere)|(entsichern)|(sage)|(weck)|(wache)|(schlieÃ\u009fe)|(schützen)|(öffnen)|(fügen)|(füge)|(mach)|(machen))",
    "splaces": [
        "Garderobe",
        "Gästebad",
        "Wohnzimmer",
        "Essgruppe",
        "Sitzgruppe",
        "Fernsehen",
        "Schlummern",
        "AuÃ\u009fen",
        "Hofeingang",
        "Terrasse",
        "Rasen",
        "Garage",
        "Vorgarten",
        "Hecke",
        "Baum",
        "Eingang",
        "Vorratskeller",
        "Zwischenkeller",
        "Kellerbad",
        "Werkstattkeller",
        "Heizungskeller",
        "Schlafzimmer",
        "Badezimmer",
        "Flur",
        "Bibliothek",
        "Gästezimmer",
        "Arbeitszimmer",
        "Dominiks_Zimmer"
    ],
    "re_ids": "((hallo)|(jeannie))",
    "savedate": "Sun Feb 18 11:21:39 2018",
    "re_writes": "((status)|(wert)|(wetter)|(zeit))",
    "re_devs": "((gong)|(wecker)|(zirkulation)|(golf)|(haus_1)|(feuchte)|(temperatur)|(wetter)|(licht)|(licht_1)|(zeit)|(haus)|(*liste))",
    "command": {
        "zeit": {"none": {
            "sagen": {"status": "{speak('$PARM0',ReadingsVal('houseProfileC','tr_housetime',''))}"},
            "schalten": {"status": "{fhem('set YYY time '.(('$VALUE' eq 'morgen') ? 'wakeup' : (('$VALUE' eq 'nacht') ? 'sleep' : 'none')))} "},
            "stellen": {}
        }},
        "haus": {"none": {
            "sichern": {
                "ent": "set YYY state unsecured",
                "zu": "set YYY state secured"
            },
            "sagen": {},
            "wachen": {"über": "set YYY state guarded"},
            "korrigieren": {"status": "set YYY correctstate"},
            "schützen": {"be": "set YYY state protected"}
        }},
        "temperatur": {
            "gästebad": {"sagen": {"status": "{speak('$PARM0','Die Temperatur im Gästebad beträgt '.ReadingsVal('tempProfileC','GB.T','').' Grad')}"}},
            "schlafzimmer": {"sagen": {"status": "{speak('$PARM0','Die Temperatur im Schlafzimmer beträgt '.ReadingsVal('tempProfileC','SZ.T','').' Grad')}"}},
            "garderobe": {"sagen": {"status": "{speak('$PARM0','Die Temperatur in der Garderobe beträgt '.ReadingsVal('tempProfileC','EB.T','').' Grad')}"}},
            "vorratskeller": {"sagen": {"status": "{speak('$PARM0','Die Temperatur im Vorratskeller beträgt '.ReadingsVal('tempProfileC','VK.T','').' Grad')}"}},
            "badezimmer": {"sagen": {"status": "{speak('$PARM0','Die Temperatur im Badezimmer beträgt '.ReadingsVal('tempProfileC','BZ.T','').' Grad')}"}},
            "wohnzimmer": {"sagen": {"status": "{speak('$PARM0','Die Temperatur im Wohnzimmer beträgt '.ReadingsVal('tempProfileC','WZ.T','').' Grad')}"}},
            "dominiks_zimmer": {"sagen": {"status": "{speak('$PARM0','Die Temperatur in Dominiks Zimmer beträgt '.ReadingsVal('tempProfileC','DZ.T','').' Grad')}"}},
            "werkstattkeller": {"sagen": {"status": "{speak('$PARM0','Die Temperatur im Werkstattkeller beträgt '.ReadingsVal('tempProfileC','WK.T','').' Grad')}"}},
            "auÃ\u009fen": {"sagen": {"status": "{speak('$PARM0','Die AuÃ\u009fenemperatur beträgt '.ReadingsVal('climateProfileC','A.T','').' Grad')}"}},
            "kellerbad": {"sagen": {"status": "{speak('$PARM0','Die Temperatur im Kellerbad beträgt '.ReadingsVal('tempProfileC','BK.T','').' Grad')}"}},
            "bibliothek": {"sagen": {"status": "{speak('$PARM0','Die Temperatur in der Bibliothek beträgt '.ReadingsVal('tempProfileC','BI.T','').' Grad')}"}},
            "gästezimmer": {"sagen": {"status": "{speak('$PARM0','Die Temperatur im Gästezimmer beträgt '.ReadingsVal('tempProfileC','GZ.T','').' Grad')}"}},
            "arbeitszimmer": {"sagen": {"status": "{speak('$PARM0','Die Temperatur im Arbeitszimmer beträgt '.ReadingsVal('tempProfileC','AZ.T','').' Grad')}"}}
        },
        "wecker": {"none": {
            "": {},
            "sagen": {"status": "{speak('$PARM0','Die nächste Weckzeit ist: '.ReadingsVal('timeProfileC','waketime',''))}"},
            "schalten": {
                "aus": "set Alexa.Weckzeit off",
                "ein": "set Alexa.Weckzeit default",
                "an": "set Alexa.Weckzeit default"
            },
            "stellen": {"auf": "set Alexa.Weckzeit $VALUE"}
        }},
        "golf": {"none": {
            "schalten": {},
            "sagen": {
                "status": "{speak('$PARM0',Value('Golf.message'))}",
                "an": "{speak('$PARM0',Value('Golf.message'))}"
            }
        }},
        "zirkulation": {"none": {"schalten": {"an": "set Alexa.Zirkulation on"}}},
        "wetter": {"none": {"sagen": {
            "wetter": "{speak('$PARM0',ReadingsVal('wunderground',(('$VALUE' eq 'heute')?'fc0':(('$VALUE' eq 'morgen')?'fc1':'fc2')).'_message',''))}",
            "none": "{speak('$PARM0',ReadingsVal('wunderground',(('$VALUE' eq 'heute')?'fc0':(('$VALUE' eq 'morgen')?'fc1':'fc2')).'_message',''))}",
            "status": "{speak('$PARM0',ReadingsVal('wunderground',(('$VALUE' eq 'heute')?'fc0':(('$VALUE' eq 'morgen')?'fc1':'fc2')).'_message',''))}"
        }}},
        "haus_1": {"none": {
            "wachen": {},
            "entsichern": {},
            "sagen": {"status": "{speak('$PARM0',ReadingsVal('houseProfileC','message',''))}"},
            "korrigieren": {}
        }},
        "licht_1": {
            "baum": {"schalten": {"an": "set A.Scene scene Baum"}},
            "garage": {"schalten": {"an": "set A.Scene scene Garage "}},
            "terrasse": {"schalten": {"an": "set A.Scene scene Terrasse "}},
            "auÃ\u009fen": {"schalten": {
                "an": "set A.Scene scene Alle_An",
                "aus": "set A.Scene scene Zu_Dunkel"
            }},
            "hofeingang": {"schalten": {"an": "set A.Scene scene Hofeingang"}}
        },
        "*liste": {"none": {
            "sagen": {"status": "attr PostIt postmeTTSDev $PARM0;;get PostIt TTS $STARListe;;attr PostIt postmeTTSDev GalaxyTab.EG "},
            "entfernen": {"ent": "set PostIt remove $STARListe $VALUE"},
            "": {},
            "fügen": {"hinzu": "set PostIt add $STARListe $VALUE"},
            "löschen": {"none": "set PostIt clear $STARListe"}
        }},
        "feuchte": {
            "kellerbad": {"sagen": {"status": "{speak('$PARM0','Die Feuchte im Kellerbad beträgt '.ReadingsVal('humProfileC','BK.rH','').' Prozent')}"}},
            "auÃ\u009fen": {"sagen": {"status": "{speak('$PARM0','Die Feuchte im AuÃ\u009fenbereich beträgt '.ReadingsVal('climateProfileC','A.rH','').' Prozent')}"}},
            "dominiks_zimmer": {"sagen": {"status": "{speak('$PARM0','Die Feuchte in Dominics Zimmer beträgt '.ReadingsVal('humProfileC','DZ.rH','').' Prozent')}"}},
            "werkstattkeller": {"sagen": {"status": "{speak('$PARM0','Die Feuchte im Werkstattkeller beträgt '.ReadingsVal('humProfileC','WK.rH','').' Prozent')}"}},
            "badezimmer": {"sagen": {"status": "{speak('$PARM0','Die Feuchte im Badezimmer beträgt '.ReadingsVal('humProfileC','BZ.rH','').' Prozent')}"}},
            "wohnzimmer": {"sagen": {"status": "{speak('$PARM0','Die Feuchte im Wohnzimmer beträgt '.ReadingsVal('humProfileC','WZ.rH','').' Prozent')}"}},
            "vorratskeller": {"sagen": {"status": "{speak('$PARM0','Die Feuchte im Vorratskeller beträgt '.ReadingsVal('humProfileC','VK.rH','').' Prozent')}"}},
            "schlafzimmer": {"sagen": {"status": "{speak('$PARM0','Die Feuchte im Schlafzimmer beträgt '.ReadingsVal('humProfileC','SZ.rH','').' Prozent')}"}}
        },
        "gong": {"none": {"schalten": {"an": "set Alexa.Dominic_Wecken on"}}},
        "licht": {
            "schlummern": {"schalten": {"an": "set WZ.Scene scene Schlummern"}},
            "essgruppe": {"schalten": {"an": "set WZ.Scene scene Essgruppe"}},
            "sitzgruppe": {"schalten": {"an": "set WZ.Scene scene Lounge"}},
            "wohnzimmer": {"schalten": {
                "an": "set WZ.Scene scene Alle_An",
                "aus": "set WZ.Scene scene Zu_Dunkel"
            }},
            "auÃ\u009fen": {"schalten": {}},
            "fernsehen": {"schalten": {"an": "set WZ.Scene scene Fernsehen"}},
            "terrasse": {"schalten": {}}
        }
    },
    "verbparts": [
        "zu",
        "auf",
        "ent",
        "wider",
        "ein",
        "an",
        "aus",
        "ab",
        "um",
        "ver",
        "be",
        "über",
        "hinzu"
    ],
    "rooms": [],
    "articles": [
        "der",
        "die",
        "das",
        "den",
        "des",
        "dem",
        "zur"
    ],
    "re_prepos": "((von)|(vom)|(des)|(der)|(in)|(im)|(auf)|(bei)|(am))",
    "re_articles": "((der)|(die)|(das)|(den)|(des)|(dem)|(zur))",
    "re_times": "((heute)|(morgen)|(übermorgen)|(nacht))"
}


LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: ekur am 18 Februar 2018, 12:37:42
Zitat von: Prof. Dr. Peter Henning am 18 Februar 2018, 11:27:35

Immer noch leer ? Was ergibt denn der Eintrag in die Kommandozeile
{FileWrite("babbleFILE","abcdefghijklmnopqrstuvwxyz")}

Der ergibt ein babbleFILE mit dem Eintrag "abcdefghijklmnopqrstuvwxyz". Speichern ist also prinzipiell möglich, es wird die Datei nicht gefüllt. Das kann ich reproduzierbar wiederholen indem ich einen Inhalt in die die Datei babbleFILE schreibe und beim speichern diese Datei mit einer Datei ohne Inhalt überschreibt.

Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 18 Februar 2018, 12:59:11
Hm. Bitte mal im Modul die Prozedur Babble_save ersetzen durch

#########################################################################################
#
# Babble_save
#
# Parameter hash = hash of the babble device
#
#########################################################################################

sub Babble_save($) {
  my ($hash) = @_;
  my $date = localtime(time);
  my $name = $hash->{NAME};
  $hash->{DATA}{"savedate"} = $date;
  readingsSingleUpdate( $hash, "savedate", $hash->{DATA}{"savedate"}, 1 );
  my $json   = JSON->new->utf8;
  my $jhash0 = eval{ $json->encode( $hash->{DATA} ) };
  if( ReadingsVal($name,"lockstate","locked") ne "locked" ){
    my $error  = FileWrite("babbleFILE",$jhash0);
    Log3 $name, 1, "         ".Dumper($jhash0);
    #Log3 $name,1,"[Babble_save] error=$error";
  }else{
    Log3 $name, 1, "[Babble] attempt to save data failed due to lockstate";
    Log3 $name, 5, "         ".Dumper($jhash0);
  }
  return;
}


LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: ekur am 18 Februar 2018, 16:00:50
Nach Ersetzen und Neustart

Logfile:
2018.02.18 15:53:59.584 1: Including fhem.cfg
2018.02.18 15:54:00.988 1: HMLAN_Parse: HMLAN1 new condition disconnected
2018.02.18 15:54:07.487 1: [Babble] the RiveScript module has been imported successfully, chatbot functionality available
2018.02.18 15:54:07.502 1: [Babble] new RiveScript interpreter generated
2018.02.18 15:54:07.528 1: [Babble_restore] Data hash restored from save file with date Sun Feb 18 15:54:07 2018
2018.02.18 15:54:07.528 1: [Babble_Define] data hash restored from save file with date Sun Feb 18 15:54:07 2018
2018.02.18 15:54:07.529 1: [Babble] new RiveScript interpreter generated
2018.02.18 15:54:07.548 1: PERL WARNING: Subroutine RSOBJ_devices redefined at (eval 901) line 1.
2018.02.18 15:54:07.550 1: PERL WARNING: Subroutine RSOBJ_places redefined at (eval 902) line 1.
2018.02.18 15:54:07.552 1: PERL WARNING: Subroutine RSOBJ_devhelp redefined at (eval 903) line 1.
2018.02.18 15:54:07.576 1: Including ./log/fhem.save
2018.02.18 15:54:13.473 1: usb create starting
2018.02.18 15:54:14.079 1: usb create end
2018.02.18 15:54:14.081 0: Featurelevel: 5.8
2018.02.18 15:54:14.081 0: Server started with 173 defined entities (fhem.pl:16204/2018-02-17 perl:5.024001 os:linux user:fhem pid:11831)
2018.02.18 15:55:13.811 1: [Babble_getdevs] No entry in command table under heizung for local FHEM device BesuchKeller with attribute babbleDevice=Heizung
2018.02.18 15:55:13.814 1: [Babble_getdevs] No entry in command table under heizlüfter for local FHEM device Keller_Zusatzheizung with attribute babbleDevice=Heizlüfter
2018.02.18 15:55:13.815 1: [Babble_getdevs] No entry in command table under test for local FHEM device Testlevel with attribute babbleDevice=test
2018.02.18 15:55:13.830 1: PERL WARNING: Use of uninitialized value $l in print at fhem.pl line 4909.
2018.02.18 15:55:13.832 1:          $VAR1 = undef;

2018.02.18 15:55:14.302 1:          $VAR1 = undef;

2018.02.18 15:55:14.304 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/95_Babble.pm line 2015.
2018.02.18 15:55:14.305 1: PERL WARNING: Use of uninitialized value $cmd in concatenation (.) or string at ./FHEM/95_Babble.pm line 2102.
2018.02.18 15:55:14.442 1:          $VAR1 = undef;

2018.02.18 15:55:14.451 1:          $VAR1 = undef;

2018.02.18 15:56:40.628 1:          $VAR1 = undef;

2018.02.18 15:57:23.874 1:          $VAR1 = undef;

2018.02.18 15:57:57.932 1:          $VAR1 = undef;

2018.02.18 15:57:57.938 1:          $VAR1 = undef;

2018.02.18 15:57:58.113 1:          $VAR1 = undef;

2018.02.18 15:57:58.119 1:          $VAR1 = undef;

2018.02.18 15:58:07.883 1:          $VAR1 = undef;

2018.02.18 15:58:08.343 1:          $VAR1 = undef;

2018.02.18 15:58:08.517 1:          $VAR1 = undef;

2018.02.18 15:58:08.532 1:          $VAR1 = undef;

2018.02.18 15:58:12.562 1:          $VAR1 = undef;


Das
$VAR1 = undef;

schreibt er bei jedem Speichern. Datei ist immer noch ohne Inhalt.

Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 18 Februar 2018, 17:34:39
Offenbar geht irgendetwas schief bei der Erzeugung von JSON aus dem hash. Wenn ich davon ausgehe, dass der Name des Babble-Devices "Babble" ist - was liefert die folgende Eingabe in die Kommandozeile:
{my $json   = JSON->new->utf8;;my $jhash0 = eval{ $json->encode($defs{"Babble"}->{DATA}) };

Was sie liefern sollte ist der komplette Datenhash, also bei mir

$VAR1 = '{"verbsicc":[["schalt","schalte"],["sage","sage","mache"],["mach","machs","mache"],["öffne","schließ"],["schließe","schließ"],["stell","stelle"],["weck","wecke"],["sichere","sicher"],["schütze"],["wache"],["korrigiere"],["füge"],["lösche"],["sende"],["entferne"]],"devsalias":{"temperatur":["6"],"feuchte":["5"],"wetter":["7"],"zeit":["10"],"*liste":["12"],"haus":["4","11"],"licht":["8","9"],"zirkulation":["2"],"wecker":["1"],"gong":["0"],"golf":["3"]},"verbs":{"schließ":"schließen","sagen":"sagen","wachen":"wachen","sicher":"sichern","schütze":"schützen","entfernen":"entfernen","schalte":"schalten","lösche":"löschen","stelle":"stellen","senden":"senden","schuetzen":"schuetzen","stellen":"stellen","überwachen":"überwachen","wecken":"wecken","sende":"senden","entsichere":"entsichern","überwache":"überwachen","stell":"stellen","schließen":"schließen","machs":"machen","schalten":"schalten","sichern":"sichern","öffne":"öffnen","korrigieren":"korrigieren","löschen":"löschen","korrigiere":"korrigieren","schalt":"schalten","wecke":"wecken","mache":"machen","entferne":"entfernen","schuetze":"schuetzen","sichere":"sichern","entsichern":"entsichern","sage":"sagen","weck":"wecken","wache":"wachen","schließe":"schließen","schützen":"schützen","öffnen":"öffnen","fügen":"fügen","füge":"fügen","mach":"machen","machen":"machen"},"re_places":"((garderobe)|(gästebad)|(wohnzimmer)|(essgruppe)|(sitzgruppe)|(fernsehen)|(schlummern)|(außen)|(hofeingang)|(terrasse)|(rasen)|(garage)|(vorgarten)|(hecke)|(baum)|(eingang)|(vorratskeller)|(zwischenkeller)|(kellerbad)|(werkstattkeller)|(heizungskeller)|(schlafzimmer)|(badezimmer)|(flur)|(bibliothek)|(gästezimmer)|(arbeitszimmer)|(dominiks_zimmer))","devcontacts":{"feuchte":["Feuchte","humProfileC",0],"temperatur":["Temperatur","tempProfileC",0],"licht_1":["Licht_1","A.Scene","1"],"zeit":["Zeit","YYY","1"],"haus_1":["Haus_1","houseProfileC",0],"wetter":["Wetter","weather.Today",0],"haus":["Haus","YYY","1"],"*liste":["*Liste","PostIt","2"],"zirkulation":["Zirkulation","Alexa.Zirkulation",0],"licht":["Licht","WZ.Scene","1"],"wecker":["Wecker","Alexa.Weckzeit",0],"gong":["Gong","Alexa.Dominic_Wecken",0],"golf":["Golf","Golf.message",0]},"re_verbparts":"((zu)|(auf)|(ent)|(wider)|(ein)|(an)|(aus)|(ab)|(um)|(ver)|(be)|(über)|(hinzu))","re_status":"((status)|(wert)|(wetter)|(zeit))","re_verbsi":"(?P<verbsi>(schalten)|(sagen)|(machen)|(öffnen)|(schließen)|(stellen)|(wecken)|(sichern)|(schützen)|(wachen)|(korrigieren)|(fügen)|(löschen)|(senden)|(entfernen))","re_quests":"((wie)|(wo)|(wann)|(welche)|(welches)|(welcher))","help":{"zirkulation":"Bitte sprich: Zirkulation anschalten, um die Warmwasserzirkulation für zehn Minuten zu starten","licht":"Bitte sprich: Licht, gefolgt von einer Ortsangabe, gefolgt von an oder aus",".*liste":"Sprich: Listenname, gefolgt von ","gong":"Bitte sprich: Gong anschalten, und Dominic wird geweckt","golf":"Bitte sprich: Golf, und ich sage den Status des Golfplatzes Bruchsal","peters_liste":"Sprich: Zu oder von Peters_Liste, gefolgt von hinzufügen oder entfernen, gefolgt von einer Bezeichnung, oder Peters Liste ansagen oder senden","wecker":"Bitte sprich: Wecken, gefolgt von einer Uhrzeit, oder Wecker ausschalten","feuchte":"Bitte sprich: Wie ist die Feuchte, gefolgt von einer Ortsangabe","temperatur":"Bitte sprich: Wie ist die Temperatur, gefolgt von einer Ortsangabe","haus":"Bitte sprich: Haus, gefolgt von sichern, entsichern, schützen oder überwachen","*liste":"Bitte sprich: Listenname, gefolgt von ansagen, löschen oder hinzufügen, entfernen und einer Bezeichnung","wetter":"Bitte sprich: Wetter, gefolgt von heute, morgen oder übermorgen","haus_1":"Bitte sprich: Haus, gefolgt von einer Ortsangabe, gefolgt von ","licht_1":"Bitte sprich: Licht, gefolgt von einer Ortsangabe, gefolgt von an oder aus","zeit":"Bitte sprich: Guten Morgen oder Gute Nacht oder frage nach dem Status von Zeit"},"places":["Garderobe","Gästebad","Wohnzimmer","Essgruppe","Sitzgruppe","Fernsehen","Schlummern","Außen","Hofeingang","Terrasse","Rasen","Garage","Vorgarten","Hecke","Baum","Eingang","Vorratskeller","Zwischenkeller","Kellerbad","Werkstattkeller","Heizungskeller","Schlafzimmer","Badezimmer","Flur","Bibliothek","Gästezimmer","Arbeitszimmer","Dominiks_Zimmer"],"quests":["wie","wo","wann","welche","welches","welcher"],"times":["heute","morgen","übermorgen","nacht"],"devs":["Gong","Wecker","Zirkulation","Golf","Haus_1","Feuchte","Temperatur","Wetter","Licht","Licht_1","Zeit","Haus","*Liste"],"verbsi":["schalten","sagen","machen","öffnen","schließen","stellen","wecken","sichern","schützen","wachen","korrigieren","fügen","löschen","senden","entfernen"],"status":["Status","Wert","Wetter","Zeit"],"prepos":["von","vom","des","der","in","im","auf","bei","am"],"writes":["Status","Wert","Wetter","Zeit"],"re_verbsc":"((schließ)|(sagen)|(wachen)|(sicher)|(schütze)|(entfernen)|(schalte)|(lösche)|(stelle)|(senden)|(schuetzen)|(stellen)|(überwachen)|(wecken)|(sende)|(entsichere)|(überwache)|(stell)|(schließen)|(machs)|(schalten)|(sichern)|(öffne)|(korrigieren)|(löschen)|(korrigiere)|(schalt)|(wecke)|(mache)|(entferne)|(schuetze)|(sichere)|(entsichern)|(sage)|(weck)|(wache)|(schließe)|(schützen)|(öffnen)|(fügen)|(füge)|(mach)|(machen))","splaces":["Garderobe","Gästebad","Wohnzimmer","Essgruppe","Sitzgruppe","Fernsehen","Schlummern","Außen","Hofeingang","Terrasse","Rasen","Garage","Vorgarten","Hecke","Baum","Eingang","Vorratskeller","Zwischenkeller","Kellerbad","Werkstattkeller","Heizungskeller","Schlafzimmer","Badezimmer","Flur","Bibliothek","Gästezimmer","Arbeitszimmer","Dominiks_Zimmer"],"re_ids":"((hallo)|(jeannie))","savedate":"Sun Feb 18 17:15:28 2018","re_writes":"((status)|(wert)|(wetter)|(zeit))","re_devs":"((gong)|(wecker)|(zirkulation)|(golf)|(haus_1)|(feuchte)|(temperatur)|(wetter)|(licht)|(licht_1)|(zeit)|(haus)|(*liste))","command":{"temperatur":{"wohnzimmer":{"sagen":{"status":"{speak(\'$PARM0\',\'Die Temperatur im Wohnzimmer beträgt \'.ReadingsVal(\'tempProfileC\',\'WZ.T\',\'\').\' Grad\')}"}},"badezimmer":{"sagen":{"status":"{speak(\'$PARM0\',\'Die Temperatur im Badezimmer beträgt \'.ReadingsVal(\'tempProfileC\',\'BZ.T\',\'\').\' Grad\')}"}},"vorratskeller":{"sagen":{"status":"{speak(\'$PARM0\',\'Die Temperatur im Vorratskeller beträgt \'.ReadingsVal(\'tempProfileC\',\'VK.T\',\'\').\' Grad\')}"}},"gästebad":{"sagen":{"status":"{speak(\'$PARM0\',\'Die Temperatur im Gästebad beträgt \'.ReadingsVal(\'tempProfileC\',\'GB.T\',\'\').\' Grad\')}"}},"schlafzimmer":{"sagen":{"status":"{speak(\'$PARM0\',\'Die Temperatur im Schlafzimmer beträgt \'.ReadingsVal(\'tempProfileC\',\'SZ.T\',\'\').\' Grad\')}"}},"garderobe":{"sagen":{"status":"{speak(\'$PARM0\',\'Die Temperatur in der Garderobe beträgt \'.ReadingsVal(\'tempProfileC\',\'EB.T\',\'\').\' Grad\')}"}},"arbeitszimmer":{"sagen":{"status":"{speak(\'$PARM0\',\'Die Temperatur im Arbeitszimmer beträgt \'.ReadingsVal(\'tempProfileC\',\'AZ.T\',\'\').\' Grad\')}"}},"bibliothek":{"sagen":{"status":"{speak(\'$PARM0\',\'Die Temperatur in der Bibliothek beträgt \'.ReadingsVal(\'tempProfileC\',\'BI.T\',\'\').\' Grad\')}"}},"gästezimmer":{"sagen":{"status":"{speak(\'$PARM0\',\'Die Temperatur im Gästezimmer beträgt \'.ReadingsVal(\'tempProfileC\',\'GZ.T\',\'\').\' Grad\')}"}},"kellerbad":{"sagen":{"status":"{speak(\'$PARM0\',\'Die Temperatur im Kellerbad beträgt \'.ReadingsVal(\'tempProfileC\',\'BK.T\',\'\').\' Grad\')}"}},"außen":{"sagen":{"status":"{speak(\'$PARM0\',\'Die Temperatur im Außenbereich beträgt \'.ReadingsVal(\'climateProfileC\',\'A.T\',\'\').\' Grad\')}"}},"werkstattkeller":{"sagen":{"status":"{speak(\'$PARM0\',\'Die Temperatur im Werkstattkeller beträgt \'.ReadingsVal(\'tempProfileC\',\'WK.T\',\'\').\' Grad\')}"}},"dominiks_zimmer":{"sagen":{"status":"{speak(\'$PARM0\',\'Die Temperatur in Dominiks Zimmer beträgt \'.ReadingsVal(\'tempProfileC\',\'DZ.T\',\'\').\' Grad\')}"}}},"haus":{"none":{"korrigieren":{"status":"set YYY correctstate"},"schützen":{"be":"set YYY state protected"},"sichern":{"ent":"set YYY state unsecured","zu":"set YYY state secured"},"sagen":{},"wachen":{"über":"set YYY state guarded"}}},"zeit":{"none":{"schalten":{"status":"{fhem(\'set YYY time \'.((\'$VALUE\' eq \'morgen\') ? \'wakeup\' : ((\'$VALUE\' eq \'nacht\') ? \'sleep\' : \'none\')))} "},"stellen":{},"sagen":{"status":"{speak(\'$PARM0\',ReadingsVal(\'houseProfileC\',\'tr_housetime\',\'\'))}"}}},"zirkulation":{"none":{"schalten":{"an":"set Alexa.Zirkulation on"}}},"golf":{"none":{"schalten":{},"sagen":{"status":"{speak(\'$PARM0\',Value(\'Golf.message\'))}","an":"{speak(\'$PARM0\',Value(\'Golf.message\'))}"}}},"wecker":{"none":{"":{},"sagen":{"status":"{speak(\'$PARM0\',\'Die nächste Weckzeit ist: \'.ReadingsVal(\'timeProfileC\',\'waketime\',\'\'))}"},"schalten":{"aus":"set Alexa.Weckzeit off","ein":"set Alexa.Weckzeit default","an":"set Alexa.Weckzeit default"},"stellen":{"auf":"set Alexa.Weckzeit $VALUE"}}},"feuchte":{"schlafzimmer":{"sagen":{"status":"{speak(\'$PARM0\',\'Die Feuchte im Schlafzimmer beträgt \'.ReadingsVal(\'humProfileC\',\'SZ.rH\',\'\').\' Prozent\')}"}},"vorratskeller":{"sagen":{"status":"{speak(\'$PARM0\',\'Die Feuchte im Vorratskeller beträgt \'.ReadingsVal(\'humProfileC\',\'VK.rH\',\'\').\' Prozent\')}"}},"wohnzimmer":{"sagen":{"status":"{speak(\'$PARM0\',\'Die Feuchte im Wohnzimmer beträgt \'.ReadingsVal(\'humProfileC\',\'WZ.rH\',\'\').\' Prozent\')}"}},"badezimmer":{"sagen":{"status":"{speak(\'$PARM0\',\'Die Feuchte im Badezimmer beträgt \'.ReadingsVal(\'humProfileC\',\'BZ.rH\',\'\').\' Prozent\')}"}},"werkstattkeller":{"sagen":{"status":"{speak(\'$PARM0\',\'Die Feuchte im Werkstattkeller beträgt \'.ReadingsVal(\'humProfileC\',\'WK.rH\',\'\').\' Prozent\')}"}},"dominiks_zimmer":{"sagen":{"status":"{speak(\'$PARM0\',\'Die Feuchte in Dominics Zimmer beträgt \'.ReadingsVal(\'humProfileC\',\'DZ.rH\',\'\').\' Prozent\')}"}},"außen":{"sagen":{"status":"{speak(\'$PARM0\',\'Die Feuchte im Außenbereich beträgt \'.ReadingsVal(\'climateProfileC\',\'A.rH\',\'\').\' Prozent\')}"}},"kellerbad":{"sagen":{"status":"{speak(\'$PARM0\',\'Die Feuchte im Kellerbad beträgt \'.ReadingsVal(\'humProfileC\',\'BK.rH\',\'\').\' Prozent\')}"}}},"*liste":{"none":{"sagen":{"status":"attr PostIt postmeTTSDev $PARM0;;get PostIt TTS $STARListe;;attr PostIt postmeTTSDev GalaxyTab.EG "},"entfernen":{"ent":"set PostIt remove $STARListe $VALUE"},"":{},"fügen":{"hinzu":"set PostIt add $STARListe $VALUE"},"löschen":{"none":"set PostIt clear $STARListe"}}},"wetter":{"none":{"sagen":{"wetter":"{speak(\'$PARM0\',ReadingsVal(\'wunderground\',((\'$VALUE\' eq \'heute\')?\'fc0\':((\'$VALUE\' eq \'morgen\')?\'fc1\':\'fc2\')).\'_message\',\'\'))}","none":"{speak(\'$PARM0\',ReadingsVal(\'wunderground\',((\'$VALUE\' eq \'heute\')?\'fc0\':((\'$VALUE\' eq \'morgen\')?\'fc1\':\'fc2\')).\'_message\',\'\'))}","status":"{speak(\'$PARM0\',ReadingsVal(\'wunderground\',((\'$VALUE\' eq \'heute\')?\'fc0\':((\'$VALUE\' eq \'morgen\')?\'fc1\':\'fc2\')).\'_message\',\'\'))}"}}},"haus_1":{"none":{"schützen":{},"korrigieren":{},"wachen":{},"entsichern":{},"sagen":{"status":"{speak(\'$PARM0\',ReadingsVal(\'houseProfileC\',\'message\',\'\'))}"}}},"licht_1":{"terrasse":{"schalten":{"an":"set A.Scene scene Terrasse "}},"außen":{"schalten":{"an":"set A.Scene scene Alle_An","aus":"set A.Scene scene Zu_Dunkel"}},"hofeingang":{"schalten":{"an":"set A.Scene scene Hofeingang"}},"baum":{"schalten":{"an":"set A.Scene scene Baum"}},"garage":{"schalten":{"an":"set A.Scene scene Garage "}}},"dominics_zimmer":{"none":{"sagen":{}}},"licht":{"außen":{"schalten":{}},"fernsehen":{"schalten":{"an":"set WZ.Scene scene Fernsehen"}},"terrasse":{"schalten":{}},"schlummern":{"schalten":{"an":"set WZ.Scene scene Schlummern"}},"essgruppe":{"schalten":{"an":"set WZ.Scene scene Essgruppe"}},"sitzgruppe":{"schalten":{"an":"set WZ.Scene scene Lounge"}},"wohnzimmer":{"schalten":{"an":"set WZ.Scene scene Alle_An","aus":"set WZ.Scene scene Zu_Dunkel"}}},"gong":{"none":{"schalten":{"an":"set Alexa.Dominic_Wecken on"}}},"peters_liste":{"none":{"löschen":{}}}},"verbparts":["zu","auf","ent","wider","ein","an","aus","ab","um","ver","be","über","hinzu"],"rooms":[],"articles":["der","die","das","den","des","dem","zur"],"re_prepos":"((von)|(vom)|(des)|(der)|(in)|(im)|(auf)|(bei)|(am))","re_articles":"((der)|(die)|(das)|(den)|(des)|(dem)|(zur))","re_times":"((heute)|(morgen)|(übermorgen)|(nacht))"}';



LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: ekur am 18 Februar 2018, 18:38:50
Bei mir ergibt (Babblename ist Babblemarvin)

{my $json   = JSON->new->utf8;;my $jhash0 = eval{ $json->encode($defs{"Babblemarvin"}->{DATA}) };

mit der geänderten 95_Babble.pm

Missing right curly or square bracket at (eval 1266) line 1, at end of line syntax error at (eval 1266) line 1, at EOF

und mit der originalen

Missing right curly or square bracket at (eval 1046) line 1, at end of line syntax error at (eval 1046) line 1, at EOF
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: hoods am 18 Februar 2018, 23:12:37
Hallo zusammen,
ich lese mich gerade ein wie dieses Modul zu nutzen ist und habe meine ersten Gehversuche damit gemacht allerdings hänge ich an einer Stelle.

Ich habe versuchsweise 3 Device eingebunden. FBDECT2 und mqtt_Wohnzimmer_Panel sind auf dem rpi2, auf dem auch Babble eingerichtet ist, eingebunden. HUEDevice8 ist ein Device von einer entfernten Fhem Instanz auf einem odroid. Das Device mqtt_Wohnzimmer_Panel ist wie der Name vermuten lässt ein MQTT_DEVICE auf dem rpi2 und ein Replika des HUEDevice8 Devices auf dem odroid. FBDECT2 und mqtt_Wohnzimmer_Panel kann ich wie gewünscht über Babble steuern aber HUEDevice8 bereitet noch Probleme.

Lt. Doku sind mind. remoteFHEM und ggf. remoteToken zu setzen wenn man entfernte Fhem Instanzen einbinden möchte. Das csrf Token der odroid WEB Instanz habe ich zu testzwecken deaktiviert. Mittels Webbrowser vom Laptop lässt sich das HUEDevice8 ansteuern über "http://192.168.178.49:8083/fhem?cmd=set%20HUEDevice8%20on&XHR=1".


Internals:
   CFGFN     
   NAME       Babble
   NR         30398
   STATE      Initialized
   TYPE       Babble
   VERSION    1.1
   DATA:
     commands   
     re_articles ((der)|(die)|(das)|(den)|(des)|(dem)|(zur))
     re_devs    ((lampe)|(panel)|(deckenlampe))
     re_ids     ((hallo))
     re_places  ((batteriestatus)|(fritzbox)|(gateways)|(kalender)|(labor)|(multimedia)|(rolllaeden)|(saugroboter)|(sensoren)|(steckdosen)|(system)|(wetter)|(wohnzimmer)|(schlafzimmer)|(kinderzimmer)|(ole)|(erdgeschoss)|(obergeschoss)|(erster)|(stock)|(arbeitszimmer)|(badezimmer)|(bastelzimmer)|(esszimmer)|(küche))
     re_prepos  ((von)|(vom)|(des)|(der)|(in)|(im)|(auf)|(bei)|(am))
     re_quests  ((wie)|(wo)|(wann))
     re_status  ((status)|(wert)|(wetter)|(zeit))
     re_times   ((heute)|(morgen)|(übermorgen)|(nacht))
     re_verbparts ((zu)|(auf)|(ent)|(wider)|(ein)|(an)|(aus)|(ab)|(um))
     re_verbsc  ((schalte)|(schalten)|(schalt))
     re_verbsi  (?P<verbsi>(schalten))
     re_writes  ((status)|(wert)|(wetter)|(zeit))
     articles:
       der
       die
       das
       den
       des
       dem
       zur
     command:
       deckenlampe:
         wohnzimmer:
           schalten:
             an         set HUEDevice8 on
             aus        set HUEDevice8 off
             ein        set HUEDevice8 on
       lampe:
         wohnzimmer:
           schalten:
             an         set FBDECT2 on
             aus        set FBDECT2 off
             ein        set FBDECT2 on
       panel:
         wohnzimmer:
           schalten:
             an         set mqtt_Wohnzimmer_Panel Wohnzimmer_Panel on
             aus        set mqtt_Wohnzimmer_Panel Wohnzimmer_Panel off
             ein        set mqtt_Wohnzimmer_Panel Wohnzimmer_Panel on
     devcontacts:
       deckenlampe:
         Deckenlampe
         HUEDevice8
         1
       lampe:
         Lampe
         FBDECT2
         0
       panel:
         Panel
         mqtt_Wohnzimmer_Panel
         0
     devs:
       Lampe
       Panel
       Deckenlampe
     devsalias:
       deckenlampe:
         2
       lampe:
         0
       panel:
         1
     help:
       deckenlampe Sprich: Deckenlampe, gefolgt von
       huedevice8 Sprich: HUEDevice8, gefolgt von
       lampe      Sprich: Lampe, gefolgt von
       panel      Sprich: Panel, gefolgt von
       stehlampe  Sprich: Stehlampe, gefolgt von
     places:
       Batteriestatus
       Fritzbox
       Gateways
       Kalender
       Labor
       Multimedia
       Rolllaeden
       Saugroboter
       Sensoren
       Steckdosen
       System
       Wetter
       Wohnzimmer
       Schlafzimmer
       Kinderzimmer
       Ole
       Erdgeschoss
       Obergeschoss
       Erster
       Stock
       Arbeitszimmer
       Badezimmer
       Bastelzimmer
       Esszimmer
       Küche
     prepos:
       von
       vom
       des
       der
       in
       im
       auf
       bei
       am
     quests:
       wie
       wo
       wann
     rooms:
       Batteriestatus
       Fritzbox
       Gateways
       Kalender
       Labor
       Multimedia
       Rolllaeden
       Saugroboter
       Sensoren
       Steckdosen
       System
       Wetter
     splaces:
       Wohnzimmer
       Schlafzimmer
       Kinderzimmer
       Ole
       Erdgeschoss
       Obergeschoss
       Erster
       Stock
       Arbeitszimmer
       Badezimmer
       Bastelzimmer
       Esszimmer
       Küche
     status:
       Status
       Wert
       Wetter
       Zeit
     times:
       heute
       morgen
       übermorgen
       nacht
     verbparts:
       zu
       auf
       ent
       wider
       ein
       an
       aus
       ab
       um
     verbs:
       schalt     schalten
       schalte    schalten
       schalten   schalten
     verbsi:
       schalten
     verbsicc:
       ARRAY(0xa922c40)
     writes:
       Status
       Wert
       Wetter
       Zeit
   READINGS:
     2018-02-18 17:38:20   lockstate       unlocked
     2018-02-18 22:53:46   savedate        Sun Feb 18 22:53:46 2018
     2018-02-18 17:27:40   state           Initialized
   helper:
     bm:
       Babble_Define:
         cnt        1
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        18.02. 17:27:41
         max        0.405009984970093
         tot        0.405009984970093
         mAr:
           HASH(0x7892210)
           Babble Babble
       Babble_Get:
         cnt        50
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        18.02. 18:08:35
         max        0.00513815879821777
         tot        0.0274124145507812
         mAr:
           HASH(0x7892210)
           Babble
           tokens
       Babble_Set:
         cnt        682
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        18.02. 18:33:10
         max        0.0494551658630371
         tot        0.0962080955505371
         mAr:
           HASH(0x7892210)
           Babble
           test
Attributes:
   babbleArticles der die das den des dem zur
   babbleDevices Deckenlampe:HUEDevice8:1
   babblePlaces Wohnzimmer Schlafzimmer Kinderzimmer Ole Erdgeschoss Obergeschoss Erster Stock Arbeitszimmer Badezimmer Bastelzimmer Esszimmer Küche
   babblePrepos von vom des der in im auf bei am
   babbleQuests wie wo wann
   babbleStatus Status Wert Wetter Zeit
   babbleTimes heute morgen übermorgen nacht
   babbleVerbParts zu auf ent wider ein an aus ab um
   babbleVerbs schalt,schalte:schalten
   babbleWrites setzen ändern löschen
   remoteFHEM1 192.168.178.49:8083
   room       Labor,babbleRoom
   verbose    5



Offensichtlich übersehe ich irgendwas, hat jemand einen Tipp?
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 19 Februar 2018, 07:52:15
@hoods:
ZitatHUEDevice8 bereitet noch Probleme.

Sorry, aber das ist leider keine sinnvolle Beschreibung der Probleme. Wird das Steuerkommando nicht erkannt, ode rnicht ausgeführt ?


@ekur: Klar, da fehlte ein Teil des Kommandos

{my $json   = JSON->new->utf8;;my $jhash0 = eval{ $json->encode($defs{"Babble"}->{DATA}) };;Dumper($jhash0)}

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: hoods am 19 Februar 2018, 08:44:48
Hallo pah,

entschuldige, wollte gerade noch ein Update machen aber da hattest Du schon geantwortet. Gelobe Besserung.

Mein Babble Test Input lautet: "schalte die Deckenlampe im Wohnzimmer an"
Das Ergebnis ist: "Category=1.1.0: Gerät=deckenlampe Ort=wohnzimmer Verb=schalten Ziel=an / ==> set HUEDevice8 on"

Im Log ist zu finden ist nach der Ausführung:
2018.02.19 08:36:13 5: [Babble_getdevs] finds local FHEM device FBDECT2 with babbleDevice=Lampe
2018.02.19 08:36:13 5: [Babble_getdevs] local FHEM device FBDECT2 with babbleDevice=Lampe entered into hashes with ig=0
2018.02.19 08:36:13 5: [Babble_getdevs] finds local FHEM device mqtt_Wohnzimmer_Panel with babbleDevice=Panel
2018.02.19 08:36:13 5: [Babble_getdevs] local FHEM device mqtt_Wohnzimmer_Panel with babbleDevice=Panel entered into hashes with ig=1
2018.02.19 08:36:13 5: [Babble_getdevs] remote FHEM device HUEDevice8 with babbleDevice=Deckenlampe entered into hashes with ig=2
2018.02.19 08:36:13 5: [Babble_getdevs] finds local FHEM device FBDECT2 with babbleDevice=Lampe
2018.02.19 08:36:13 5: [Babble_getdevs] local FHEM device FBDECT2 with babbleDevice=Lampe entered into hashes with ig=0
2018.02.19 08:36:13 5: [Babble_getdevs] finds local FHEM device mqtt_Wohnzimmer_Panel with babbleDevice=Panel
2018.02.19 08:36:13 5: [Babble_getdevs] local FHEM device mqtt_Wohnzimmer_Panel with babbleDevice=Panel entered into hashes with ig=1
2018.02.19 08:36:13 5: [Babble_getdevs] remote FHEM device HUEDevice8 with babbleDevice=Deckenlampe entered into hashes with ig=2


Leider wird das Device HUEDevice8 auf dem odroid nicht an-/ausgeschlatet.

Danke für die Hilfe, Sven
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: hoods am 19 Februar 2018, 08:57:27
Habs gefunden:

ein "attr global verbose 5" zeigt:
2018.02.19 08:48:13 4: WEB_192.168.178.37_56172 GET /fhem?XHR=1&fwcsrf=null&cmd.Babble={Babble_TestIt(%22Babble%22,%22schalte%20die%20Deckenlampe%20im%20wohnzim
mer%20an%22,1)}; BUFLEN:0
2018.02.19 08:48:13 5: Cmd: >{Babble_TestIt("Babble","schalte die Deckenlampe im wohnzimmer an",1)}<
2018.02.19 08:48:13 5: HttpUtils url=http://192.168.178.49:8083/fhem?XHR=1&fwcsrf=&cmd.HUEDevice8=set%20HUEDevice8%20on
2018.02.19 08:48:13 5: IP: 192.168.178.49 -> 192.168.178.49
2018.02.19 08:48:13 4: WEB: /fhem?XHR=1&fwcsrf=null&cmd.Babble={Babble_TestIt(%22Babble%22,%22schalte%20die%20Deckenlampe%20im%20wohnzimmer%20an%22,1)} / RL:197
/ text/plain; charset=UTF-8 /  /
2018.02.19 08:48:13 5: HttpUtils request header:
GET /fhem?XHR=1&fwcsrf=&cmd.HUEDevice8=set%20HUEDevice8%20on HTTP/1.0
Host: 192.168.178.49:8083
User-Agent: fhem
Accept-Encoding: gzip,deflate

2018.02.19 08:48:13 4: http://192.168.178.49:8083/fhem?XHR=1&fwcsrf=&cmd.HUEDevice8=set%20HUEDevice8%20on: HTTP response code 401
2018.02.19 08:48:13 5: HttpUtils http://192.168.178.49:8083/fhem?XHR=1&fwcsrf=&cmd.HUEDevice8=set%20HUEDevice8%20on: Got data, length: 0
2018.02.19 08:48:13 5: HttpUtils response header:
HTTP/1.1 401 Authorization Required
WWW-Authenticate: Basic realm="FHEM: login required"
Content-Length: 0


   
Mit "attr Babble remoteFHEM1 <user>:<pw>@<IP>:<Port>" gehts.

Könntest Du das noch in die Doku aufnehmen?

Gruss Sven



Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 19 Februar 2018, 10:55:52
ZitatKönntest Du das noch in die Doku aufnehmen?
Wenn ich sonst nichts Anderes zu tun habe...

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: ekur am 19 Februar 2018, 19:26:05
Zitat von: Prof. Dr. Peter Henning am 19 Februar 2018, 07:52:15
@ekur: Klar, da fehlte ein Teil des Kommandos
{my $json   = JSON->new->utf8;;my $jhash0 = eval{ $json->encode($defs{"Babble"}->{DATA}) };;Dumper($jhash0)}

Ok, mit der originalen Version der 95_Babble.pm ergibt das

$VAR1 = undef;
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 20 Februar 2018, 00:51:27
Nun ja: Dass der Datenhash $defs{"Babble"}->{DATA} korrekt befüllt wird, haben wir oben schon getestet. Die Umwandlung in ein JSON-Konstrukt schlägt also fehl.

Das ist aber kein Problem, das ich nachstellen oder lösen kann - offenbar ist das JSON-Modul nicht korrekt installiert worden.

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: ekur am 20 Februar 2018, 08:34:29
Ich habe bisher kein Problem mit dem JSON Modul feststellen können. Ich werde es aber mal auf dem Raspberry deinstallieren und nochmals installieren, mal sehen ob sich etwas ändert.
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Phiolin am 20 Februar 2018, 11:00:14
Leider läuft das Babble Modul offenbar nicht unter Perl 5.26.x:

2018.02.20 10:58:28 1: reload: Error:Modul 95_Babble deactivated:
Experimental keys on scalar is now forbidden at ./FHEM/95_Babble.pm line 1123.
Type of arg 1 to keys must be hash or array (not hash element) at ./FHEM/95_Babble.pm line 1123, near "})"
Experimental keys on scalar is now forbidden at ./FHEM/95_Babble.pm line 1280.
Type of arg 1 to keys must be hash or array (not hash element) at ./FHEM/95_Babble.pm line 1280, near "})"

2018.02.20 10:58:28 0: Experimental keys on scalar is now forbidden at ./FHEM/95_Babble.pm line 1123.
Type of arg 1 to keys must be hash or array (not hash element) at ./FHEM/95_Babble.pm line 1123, near "})"
Experimental keys on scalar is now forbidden at ./FHEM/95_Babble.pm line 1280.
Type of arg 1 to keys must be hash or array (not hash element) at ./FHEM/95_Babble.pm line 1280, near "})"


Hier sind offenbar einige Code Teile in neueren Perl Versionen (offenbar schon seit 5.23) nicht mehr erlaubt.
Scheint mir aber wohl ein eher einfacheres Problem zu sein. Man muss wahrscheinlich nur dafür sorgen, dass der Typ der an keys übergebenen Variable passt (oder diese korrekt initialisieren?).

Fehlermeldungen sind von einem einfachen "define Babble Babble".
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 20 Februar 2018, 11:03:38
Versuchen wir doch noch mal ein paar Dinge.

Was liefert die Eingabe von {my $json   = JSON->new->utf8;;my $jhash0 = eval{ $json->encode( ["a","b"]  ) };;Dumper($jhash0)} in der Kommandozeile ?
Und was {my $json   = JSON->new->utf8;;my $jhash0 = eval{ $json->encode( ["a","b","c",["d","e"]]  ) };;Dumper($jhash0)}
Und was {Dumper($defs{"Babble"}->{DATA}{"verbsicc"})}
Und was {my $json   = JSON->new->utf8;;my $jhash0 = eval{ $json->encode($defs{"Babble"}->{DATA}{"verbsicc"}) };;Dumper($jhash0)}

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Phiolin am 20 Februar 2018, 11:12:47
Ich hatte hier gerade geantwortet, dann wurde mir aber klar, dass sich diese Fragen wohl auf das json Problem vom Posting über meinem beziehen.
Bei mir geht's natürlich um das Babble Modul selbst. JSON läuft prima. :)
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 20 Februar 2018, 11:17:28
@Phiolin:
ZitatHier sind offenbar einige Code Teile in neueren Perl Versionen (offenbar schon seit 5.23) nicht mehr erlaubt.
Das ist so nicht richtig - denn das sind experimentelle Erweiterungen von Perl.

Aber egal, ich habe diese Fallen aus der Version 1.22 entfernt und diese eingecheckt.

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Phiolin am 20 Februar 2018, 11:24:45
Jup, so läufts. Danke :)
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Phiolin am 20 Februar 2018, 12:24:56
In der Babble_DoIt Funktion fehlt im Bereich "no command found, but chatbot available" der Replacer für $PARAM0,$PARAM1 für die helpFunc. Gleiches gilt für die "OhKee" Standardantwort. Auch hier hätte ich gerne die PARAMs übergeben, damit ich weiß, wohin das OhKee geschickt werden muss.
Hintergrund: Ich sende vom TelegramBot die Nachrichten an Babble und hätte natürlich auch gerne die Antworten zurück. Dafür muss ich aber wissen, wer der Absender war, was ich über PARAM0 und PARAM1 in der helpFunc regle. Außerdem wäre es schön, wenn man das "OhKee" selber definieren könnte, denn für die Sprachausgabe ist das bestimmt phonetisch prima, im Chat liest sich das aber komisch. :)

diff 95_Babble.pm.orig 95_Babble.pm
1341a1342,1344
>       for(my $i=0;$i<int(@parms);$i++){
>         $func =~ s/\$PARM$i/$parms[$i]/g;
>       }


Außerdem hab ich es irgendwie geschafft, dass mein Babble jetzt wohl etwas verwirrt ist. Es loggt beim Aufruf der Babble UI immer "undef" im Log und beim list finde ich ein Devalias "0", das vielleicht dieses Problem verursacht. Wenn ich den Chatbot "was kannst du steuern" frage, sagt er dann auch immer:
Ich kenne die folgenden Geräte: und wetter
Da ist wohl irrtümlich irgendwie ein undef irgendwo in den Internals des Moduls abgelegt worden, dass als Gerät betrachtet wird. Wie auch immer ich das hinbekommen habe.
Es geht auf jeden Fall nicht mehr weg. ;)

2018.02.20 13:19:26 5: [Babble_getdevs] finds local FHEM device wu.Gladbeck with babbleDevice=Wetter
2018.02.20 13:19:26 5: [Babble_getdevs] local FHEM device wu.Gladbeck with babbleDevice=Wetter entered into hashes with ig=0
2018.02.20 13:19:26 1:          undef

2018.02.20 13:19:26 1:          undef


devcontacts:
       wetter:
         Wetter
         wu.Gladbeck
         0
     devs:
       Wetter
     devsalias:
       wetter:
         0


Glücklicherweise hab ich nur wenige Einstellungen bisher gemacht, so dass ich das Device einfach neu erstellen kann.
Ich bin mir relativ sicher, dass der Fehler kam, nachdem ich eine leere Gerätezeile über das UI eingefügt und das dann auch noch gespeichert habe. Versuche aber noch mal, dass zu reproduzieren. :)

Ein neu erstellen des Gerätes ändert da leider auch nichts. Sobald ich beim ersten Device das babbleDevice Attribut setze, sind die "undef" Logmeldungen wieder da und auch die Rivescript Funktion liefert wieder "Ich kenne die folgenden Geräte: und Wetter".

2018.02.20 13:46:35 1: [Babble_getdevs] No entry in command table under wetter for local FHEM device wu.Gladbeck with attribute babbleDevice=Wetter
2018.02.20 13:46:35 1: PERL WARNING: Use of uninitialized value $l in print at /opt/fhem/fhem.pl line 4924.
2018.02.20 13:46:35 3: eval: {Babble_Html("Babble")}
2018.02.20 13:46:35 1:          undef

2018.02.20 13:46:35 1:          undef

2018.02.20 13:46:35 1:          undef

2018.02.20 13:46:35 1:          undef

2018.02.20 13:46:35 1:          undef

2018.02.20 13:46:35 1:          undef



Was mir noch aufgefallen ist: Nicht durch Leerzeichen abgesetzte Satzzeichen, wie bei "Wie wird das Wetter morgen?" werden an $VALUE mit übergeben, was dann dazu führt, dass man z.B. bei dem Wetter Beispiel aus dem Wiki keinen Erfolg hat, da hier "morgen?" eq "morgen" verglichen wird.
Habe das jetzt mal über babblePreSubs gelöst, wo ich das ? dann einfach durch nichts ersetze. Aber vielleicht macht hier eine allgemeinere Lösung Sinn?

Und noch was: Wenn man beim Device Hilfe-Text Anführungszeichen verwendet (einfach oder doppelte, egal), wird der Text nicht an die helpFunc übergeben. Genau genommen wird in dem Fall bei mir die helpFunc nicht mal aufgerufen. Fehler sehe ich allerdings auch keine. Lasse ich die Anführungszeichen raus aus dem Hilfetext, klappt alles.
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 20 Februar 2018, 14:44:43
Sieh an, ein echter Unterstützer, danke. Ist behoben und eingecheckt.

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Phiolin am 20 Februar 2018, 15:17:26
Dann hätte ich gerne auch noch den hier:

diff 95_Babble.pm.orig 95_Babble.pm
186c186
<                          "babbleIds babblePreSubs babbleDevices babblePlaces babbleNotPlaces babbleVerbs babbleVerbParts babblePrepos babbleQuests babbleArticles babbleStatus babbleWrites babbleTimes";
---
>                          "babbleIds babblePreSubs babbleDevices babbleOkWord babblePlaces babbleNotPlaces babbleVerbs babbleVerbParts babblePrepos babbleQuests babbleArticles babbleStatus babbleWrites babbleTimes";
1176c1176,1183
<         $func =~ s/\$HELP/OhKee/g;
---
>         $func =~ s/\$DEV/$device/g;
>         $func =~ s/\$VALUE/$value/g;
>         for(my $i=0;$i<int(@parms);$i++){
>           $func =~ s/\$PARM$i/$parms[$i]/g;
>         }
>         my $okWord = AttrVal($name,"babbleOkWord","OhKee");
>         $func =~ s/\$HELP/$okWord/g;
>
1326c1333,1339
<       $func =~ s/\$HELP/OhKee/g;
---
>       $func =~ s/\$DEV/$device/g;
>       $func =~ s/\$VALUE/$value/g;
>       for(my $i=0;$i<int(@parms);$i++){
>         $func =~ s/\$PARM$i/$parms[$i]/g;
>       }
>       my $okWord = AttrVal($name,"babbleOkWord","OhKee");
>       $func =~ s/\$HELP/$okWord/g;
2297a2311,2312
>             <li><a name="babbleOkWord"><code>attr &lt;name&gt; babbleOkWord <text></code></a>
>                 <br />Word or phrase to be used as confirmation when a command is executed that has no other response. Default: OhKee</li>


Damit funktioniert die VALUE/DEV/PARM Ersetzung dann auch wenn die Standardantwort "OhKee" verwendet wird.

Außerdem führt es ein neues Attribut "babbleOkWord" ein, mit dem man das standardmäßige "OhKee" durch was eigenes ersetzen kann. :)
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Phiolin am 20 Februar 2018, 16:39:10
Ich habe übrigens ein paar Probleme, Umlaute als Trigger zum Rivescript Bot zu bekommen.

Wenn ich auf der Console über "rivescript --utf8 /opt/fhem/rivescript" den Interpreter starte, und den dann mit z.B. "mir ist heiß" füttere, kommt aus dem Rivescript die richtige Antwort.
Schicke ich aber aus Babble über das Eingabefeld (oder auch über Babble_DoIt) den gleichen String, kommt stattdessen die Standardantwort für "Keine Ahnung was du von mir willst".
Ich suche jetzt schon eine Weile im Skript herum, woran das liegen könnte, bin aber noch nicht fündig geworden. Die Strings scheinen mir bis zum Aufruf von $rs->reply noch korrekt zu sein.
Jetzt könnte ich natürlich einfach auf dem Weg die Umlaute durch ss/oe/ae/ue ersetzen, aber so richtig schön ist das ja nicht, vor allem da der Rivescript Interpreter damit ja scheinbar eigentlich klar kommt. Irgendeine Idee?
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 20 Februar 2018, 21:18:45
Das OK-Wort habe ich heute nachmittag herausgeworfen, das wird ein anderer Mechanismus.

Das Umlautproblem ist noch nicht ganz gelöst - denn obwohl ich den RiveScript-Interpreter mit
$rs = new RiveScript(utf8=>1);
starte, hat er Probleme mit einem UTF-8 codierten Umlaut.

Das hat mit dem Einlesen der *.rive-Dateien und deren Encoding zu tun.

Wenn man nämlich im Babble-Modul mit dem Codefragment
$rs->stream (q~
    + hello böt
    - Hello, hümän.
~);

eine triviale Antwort einbaue, antwortet der ChatBot auf "hello böt" ganz richtig mit "hello hümän".

In meinen Rivescript-Dateien habe ich wenigstens in Perl-Routinen die Ausgabe von Umlauten hinbekommen, indem ich diese explizit codiert habe (also z.B. ä=\xc3\xa4).


LG

pah


Edit: Ich habe das Problem zumindest mit einem Workaround gelöst. Mein Editor ist ein ziemlich schlaues Teil der aber die *.rive-Dateien (noch) nicht als UTF8 abspeichert. Wenn man die Datei general.rive aus dem contrib-Ordner Babble mittels
recode latin-1..utf-8 general.rive
explizit umcodiert, machen die Umlaute keine Probleme mehr.




Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Phiolin am 20 Februar 2018, 21:54:17
Bot Antworten mit Umlauten funktionieren bei mir interessanterweise. Nur für die Trigger-Phrasen klappt es nicht.

+ mir ist (warm|heiß|heiss)
- Wenn dir <star1> ist, kann ich die Heizung ausstellen. Oder du öffnest ein Fenster.

+ *
- Leider kann ich damit nichts anfangen.


Das ö in der Antwort kommt bei mir  durch.
Der ,,heiß" Trigger klappt jedoch nicht. Siehe Anhang.

Mit dem OK Wort bin ich auch nicht ganz glücklich, wenn sich da eine bessere Lösung findet, gerne.
Das Wort wird ja auch dann mitgeschickt, wenn ein ausgeführtes Kommando selber schon einen Output geliefert hat.
Beispiel im 2. Bild. Mein OhKee Wort hab ich hier auf ,,Erledigt" geändert.
Schön wäre, wenn man das unterdrücken könnte, wenn ein Kommando schon selber Output erzeugt. Wie auch immer man das feststellen oder festlegen kann...

Ansonsten finde ich das insgesamt mit dem angeflanschten TelegramBot schon ganz gut, Potential ist auf jeden Fall da. Am Ende hätte ich natürlich auch gerne eine einfache Methode zur Spracheingabe, bin mir aber nicht sicher, wie ich das am besten umsetzen kann.
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 22 Februar 2018, 20:54:10
Ich habe eine neue Version eingecheckt, bei der man für jeden Befehl konfigurieren kann, ob er bestätigt wird oder nicht.

Das Umlautproblem ist gelöst: Man benötigt wirklich einen Editor, der die UTF8-Codierung erzwingt. Als Hilfestellung sind dafür in der Datei general.rive die entsprechenden binären Sequenzen für die kleinen Umlaute vermerkt.

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: meddie am 23 Februar 2018, 12:52:18
Hallo zusammen,

ich wollte mal das Babble testen, stecke aber voll in den Anfangsschwierigkeiten, ich habe per Update 95_Babble und anschließend FHEM restart und define Babble Babble das Babble Moduil installiert bekommen. Aber wenn ich nun ein Test mit Hallo machen möchte bekomme ich folgende Fehlermeldung, mit de rich nicht viel Anfangen kann.

fhem?detail=Babble_weblink line 162:
Uncaught ReferenceError: babble_testit is not defined


Ich kann auch keine Verben anlegen oder den vorhanden editieren da bekomme ich dann sowas:

fhem?detail=Babble_weblink line 170:
Uncaught ReferenceError: babble_modverb is not defined


Könnt Ihr mir ein TTipp geben, wasich falsch gemacht habe?
Vielen Dank
Gruß Eddie
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Eisix am 23 Februar 2018, 15:00:41
Hallo,

habe gerade mal testen wollen, kriege aber einen error wenn ich Aktionen zusammen klicke und dann sichern will.

VERSION 1.24


babble.js line 290:
Uncaught TypeError: Cannot read property 'checked' of undefined



Wo liegt mein Fehler?

Gruß
Eisix



Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Eisix am 23 Februar 2018, 15:38:18
Bin etwas weiter gekommen. (siehe screenshot)
Die zwei unteren konnte ich sicheren, danach kommt die Fehlermeldung.

Gruß
Eisix

Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 23 Februar 2018, 15:49:17
@meddie: Sieht so aus, als ob babble.js nicht installiert ist.

@Eisix: Mein Fehler - es fehlte bei neuen Zeilen die Checkbox. Ist gefixt (beide Dateien) und eingecheckt.

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: ekur am 23 Februar 2018, 16:19:59
@pah

Ich hatte das JSON getestet und nochmals neuinstalliert, dazu habe ich ein paar andere Sachen in FHEM getestet bei dem JSON verwendet wird, da funktioniert es wunderbar.

Ich habe inzwischen aber etwas interessantes festgestellt:

Ich habe auf meinem Raspberry zwei FHEM Instanzen laufen um Prozesse die lange dauern in einem zweiten FHEM (Datensammler) auszuführen und mir meine Steuerungsinstanz nicht zu blockieren und im Module zu testen. Werte werden per FHEM2FHEM übergeben, in diesem Datensammler habe ich auch eine Erstinstallation von Babble gemacht um dieses zu testen. Erst zu einem späteren Zeitpunkt habe ich das Modul dort gelöscht und in meiner Steuerungsinstanz installiert.

Wenn ich jetzt in der Datensammlerinstanz wieder das  Babblemodul installiere werden dort angelegte devices in der BabbleFILE gespeichert. Die Übergabe an JSON funktioniert also. Ich kann jetzt mit der einen FHEM Instanz ein Babblefile mit Werten füllen, wenn ich in der normalen FHEM Instanz speichere wird wieder eine leere Datei erzeugt. Da beide FHEM Instanzen auf den gleichen Stand der Module zugreifen und auch auf die gleichen Bibliotheken ist mir das ein bisschen ein Rätsel.

Leider ist es nicht so dass die eine Instanz die andere sperrt, denn wenn ich die Datenloggerinstanz ausschalte kann ich immer noch keine gefüllte Datei generieren.

Irgendeine Ahnung woran das liegen könnte? Welche Dateien muss ich manuell löschen damit ich sicher alle Dateien von Babble entfernt habe?, nur die 95_Babble.pm und die BabbleFILE oder auch noch andere?
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: refi am 23 Februar 2018, 16:37:55
Hallo,
wie muss ich in der Version 1.24 das Perl-Unterprogramm Babble_DoIt aufrufen?
Mit Babble_DoIt("Babble","<zu analysierender Satz>") bekomme ich nun ein "[Babble_Normalize] Input: ... ".
Der Befehl wird analysiert aber nicht ausgeführt.
Gruß René
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 23 Februar 2018, 16:47:47
Ups, da habe ich doch glatt einen Fehler eingebaut ...

Habe die Korrektur schon eingecheckt - der Einfachheit halber hier direkt zum download.

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: refi am 23 Februar 2018, 17:04:31
Babble_DoIt läuft wieder - Danke!
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Eisix am 23 Februar 2018, 17:12:49
Checkbox geht auch wieder. Merci!
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 24 Februar 2018, 18:15:39
Tipp: Macht echt Spaß, Babble über einen Telegram-Client zu bedienen.

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Phiolin am 24 Februar 2018, 18:21:32
Sag ich ja.  :D
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Eisix am 24 Februar 2018, 20:45:44
Hallo,

Babble_DoIt fehlt!? Nur bei mir?

Version 1.25


Babble_DoIt("Babble","Fernsehen Wohnzimmer anschalten","")




Unknown command Babble_DoIt("Babble","Fernsehen, try help.


Gruß
Eisix
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 25 Februar 2018, 04:49:03
Das nicht. Aber vielleicht die {}-Klammern ?  ::)

LG

pah

Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Eisix am 25 Februar 2018, 14:10:57
Hallo,

Danke für den für dich wahrscheinlich offensichtlichen Tip.  :)
Damit komme ich einen Schritt weiter und kann über das fhem Kommandofeld Devices schalten.



{Babble_DoIt("Babble","Licht Aquarium anschalten","1")}



Bräuchte noch einen Tip  :D
Was noch nicht geht ist das von AMAD aus das Reading übergeben wird.

Nutze folgendes DOIF.

(["AMADBridge:receiveVoiceCommand"]) ({Babble_DoIt("Babble",(ReadingsVal("AMADBridge","receiveVoiceCommand","1")))})



Reading in der AMADBridge wird korrekt gefüllt.

Internals:
   BRIDGE     1
   CONNECTS   5954
   FD         82
   NAME       AMADBridge
   NR         457
   PORT       8090
   STATE      opened
   TYPE       AMADCommBridge
   VERSIONFLOWSET 4.0.13
   VERSIONMODUL 4.0.8
   Helper:
     DBLOG:
       receiveVoiceCommand:
         logdb:
           TIME       1519562475.5324
           VALUE      licht aquarium anschalten
       receiveVoiceDevice:
         logdb:
           TIME       1519562475.5324
           VALUE      TabletYoga
   READINGS:
     2018-02-22 22:24:25   energy          0
     2018-02-22 22:24:25   energy_begin    1519334665
     2018-02-22 22:25:44   fhemServerIP    192.168.1.1
     2018-02-22 22:24:25   power           0
     2018-02-25 13:41:15   receiveVoiceCommand licht aquarium anschalten
     2018-02-25 13:41:15   receiveVoiceDevice TabletYoga
     2018-02-24 20:31:56   state           opened
Attributes:
   room       AMAD

Aber es wird nichts ausgeführt !?

Gruß
Eisix
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 25 Februar 2018, 14:55:05
Wird denn da ein Event generiert ? Was sagt der Eventmonitor ?

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Eisix am 25 Februar 2018, 16:17:06
Der Eventmonitor zeigt nur:


2018-02-25 15:59:54.042 AMADDevice TabletYoga activateVoiceInput

2018-02-25 16:00:02.188 AMADCommBridge AMADBridge receiveVoiceCommand: licht aquarium anschalten
2018-02-25 16:00:02.188 AMADCommBridge AMADBridge receiveVoiceDevice: TabletYoga
2018-02-25 16:00:02.219 AMADDevice TabletYoga lastSetCommandState: setCmd_done


list des DOIF


Internals:
   DEF        (["AMADBridge:receiveVoiceCommand"]) ({Babble_DoIt("Babble",(ReadingsVal("AMADBridge","receiveVoiceCommand","1")))})
   NAME       AMADBABBLE
   NR         462
   NTFY_ORDER 50-AMADBABBLE
   STATE      cmd_1
   TYPE       DOIF
   Helper:
     DBLOG:
       cmd:
         logdb:
           TIME       1519562435.52197
           VALUE      1
       cmd_event:
         logdb:
           TIME       1519562435.52197
           VALUE      AMADBridge
       cmd_nr:
         logdb:
           TIME       1519562435.52197
           VALUE      1
       energy:
         logdb:
           TIME       1519562435.52197
           VALUE      0
       energy_begin:
         logdb:
           TIME       1519562435.52197
           VALUE      1519562435
       mode:
         logdb:
           TIME       1519562323.41687
           VALUE      enabled
       power:
         logdb:
           TIME       1519562435.52197
           VALUE      0.0
       state:
         logdb:
           TIME       1519562435.52197
           VALUE      1
   READINGS:
     2018-02-25 16:07:44   Device          AMADBridge
     2018-02-25 13:40:35   cmd             1
     2018-02-25 13:40:35   cmd_event       AMADBridge
     2018-02-25 13:40:35   cmd_nr          1
     2018-02-25 13:40:35   energy          0
     2018-02-25 13:40:35   energy_begin    1519562435
     2018-02-25 13:40:35   error           {Babble_DoIt("Babble",(ReadingsVal("AMADBridge","receiveVoiceCommand","1")))}: [Babble_Normalize] Input:  licht aquarium anschalten
                       Ergebnis: Category=3.4.7: Gerät=licht Ort=aquarium Verb=schalten Ziel=an / ==> set Weihnachtsbel_BUEZ on
     2018-02-25 13:38:43   mode            enabled
     2018-02-25 13:40:35   power           0
     2018-02-25 13:40:35   state           cmd_1
   Regex:
     cond:
       :
         0:
           "AMADBridge:receiveVoiceCommand" AMADBridge:receiveVoiceCommand
   condition:
     0          EventDoIf('AMADBridge',$hash,'receiveVoiceCommand',0)
   devices:
   do:
     0:
       0          {Babble_DoIt("Babble",(ReadingsVal("AMADBridge","receiveVoiceCommand","1")))}
     1:
   helper:
     DOIF_Readings_events
     DOIF_eventas
     event      receiveVoiceCommand: licht aquarium anschalten
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   AMADBridge
     timerevent receiveVoiceCommand: licht aquarium anschalten
     triggerDev AMADBridge
     timerevents:
       receiveVoiceCommand: licht aquarium anschalten
     timereventsState:
       receiveVoiceCommand: licht aquarium anschalten
     triggerEvents:
       receiveVoiceCommand: licht aquarium anschalten
     triggerEventsState:
       receiveVoiceCommand: licht aquarium anschalten
   internals:
   itimer:
   powerMap:
   readings:
   readingsDesc:
     energy:
       rtype      whr
     power:
       rtype      w
   trigger:
   uiState:
   uiTable:


Würde sagen der DOIF wird getriggert aber ich scheine einen Fehler im ausführen Teil vom CMD_1 zu haben.

Gruß
Eisix
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 25 Februar 2018, 16:34:11
Was liefert denn die Eingabe von
{Babble_DoIt("Babble",ReadingsVal("AMADBridge","receiveVoiceCommand",""),"testit",1)}

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Eisix am 25 Februar 2018, 16:44:16
Fhem Kommand line

2018.02.25 16:39:37.057 1: [Babble_DoIt] Command licht.aquarium.none.none/ undefined, reply = Bitte sprich: Licht, gefolgt von



Wenn ich den Satz in der Babble Oberfläche teste und ausführe

2018.02.25 16:41:44.593 1: [Babble_DoIt] Executing from hash: licht.aquarium.schalten.an/ 
2018.02.25 16:41:44.602 3: EnOcean set Weihnachtsbel_BUEZ on
2018.02.25 16:41:44.604 1: [Babble_DoIt] requesting confirmation, but no attribute confirmFunc defined
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 25 Februar 2018, 17:02:59
Sicher, dass das dieselben Sätze waren ?

In beiden Fällen arbeitet Babble den Satz ab, kommt aber zu unterschiedlichen Ergebnissen.

Die Warnung mit dem confirmFunc-Attribut kann man ignorieren (oder sollte es definieren. Bei mir steht darin

{speak('$PARM0','OK')}

Wenn das tatsächlich an ein TTS-Device gesendet wird, kann man noch eine Substitution OK -> Oukeeh vornehmen, das klingt besser.

LG

pah

Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Eisix am 25 Februar 2018, 17:14:32
Habe den Satz aus dem AMADBridge reading kopiert.
Tippe immer noch auf den Kommandoteil meines DOIF. Fehler mit dem exec Parameter oder sowas. Könntest du mir ein funktionierendes Beispiel zur Verfügung stellen?

Gruß
Eisix
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 26 Februar 2018, 07:54:48
Ich benutze nicht DOIF, das ist dafür viel zu mächtig. Außerdem habe ich webviewcontrol statt AMAD (ältere Tablets)

define VOICE notify .*voiceRecognitionLastResult.* {voiceRecognition($NAME,$EVENT)}

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: the ratman am 27 Februar 2018, 16:09:46
servs,

wollte eben babble auf meiner neuen hausautomatisation (win10pro --> oracle vm --> debian)
beim installieren passiert leider2018.02.27 16:01:04 1: logfile wurde von hand gelöscht
2018.02.27 16:01:19 1: PERL WARNING: Subroutine Babble_Initialize redefined at ./FHEM/95_Babble.pm line 178.
2018.02.27 16:01:19 1: PERL WARNING: Subroutine Babble_Define redefined at ./FHEM/95_Babble.pm line 220.
2018.02.27 16:01:19 1: PERL WARNING: Subroutine Babble_Undef redefined at ./FHEM/95_Babble.pm line 285.
2018.02.27 16:01:19 1: PERL WARNING: Subroutine Babble_Attr redefined at ./FHEM/95_Babble.pm line 307.
2018.02.27 16:01:19 1: PERL WARNING: Subroutine Babble_CreateEntry redefined at ./FHEM/95_Babble.pm line 330.
2018.02.27 16:01:19 1: PERL WARNING: Subroutine Babble_Set redefined at ./FHEM/95_Babble.pm line 369.
2018.02.27 16:01:19 1: PERL WARNING: Subroutine Babble_Get redefined at ./FHEM/95_Babble.pm line 411.
2018.02.27 16:01:19 1: PERL WARNING: Subroutine Babble_save redefined at ./FHEM/95_Babble.pm line 440.
2018.02.27 16:01:19 1: PERL WARNING: Subroutine Babble_savename redefined at ./FHEM/95_Babble.pm line 460.
2018.02.27 16:01:19 1: PERL WARNING: Subroutine Babble_restore redefined at ./FHEM/95_Babble.pm line 474.
2018.02.27 16:01:19 1: PERL WARNING: Subroutine Babble_Test redefined at ./FHEM/95_Babble.pm line 506.
2018.02.27 16:01:19 1: PERL WARNING: Subroutine Babble_Normalize redefined at ./FHEM/95_Babble.pm line 617.
2018.02.27 16:01:19 1: PERL WARNING: Subroutine Babble_timecorrector redefined at ./FHEM/95_Babble.pm line 1003.
2018.02.27 16:01:19 1: PERL WARNING: Subroutine Babble_createRive redefined at ./FHEM/95_Babble.pm line 1036.
2018.02.27 16:01:19 1: PERL WARNING: Subroutine Babble_getcsrf redefined at ./FHEM/95_Babble.pm line 1061.
2018.02.27 16:01:19 1: reload: Error:Modul 95_Babble deactivated:
Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at ./FHEM/95_Babble.pm line 1103.

2018.02.27 16:01:19 0: Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at ./FHEM/95_Babble.pm line 1103.
kann mir geholfen werden verona?
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 27 Februar 2018, 19:46:09
Hm, taucht bei mir nicht auf ...

Aber OK, einfach in Zeile 1103 den folgenden Code ersetzen

  if( @parms && $parms[0] eq "testit"){

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: the ratman am 27 Februar 2018, 21:01:56
rennt thx!

babble aus updates rausnehmen, oder gehts ab nun auch mit dem original babble?
btw - wo könnts problem den liegen? nur mal so über den daumen gepeilt.

nachtrag:2018.02.27 21:32:20 1: logfile wurde von hand gelöscht
2018.02.27 21:32:25 1: PERL WARNING: Use of uninitialized value $l in print at fhem.pl line 4925.
2018.02.27 21:32:25 1: eval: {Babble_Html("babble")}
2018.02.27 21:32:25 1: stacktrace:
2018.02.27 21:32:25 1:     main::__ANON__                      called by fhem.pl (4925)
2018.02.27 21:32:25 1:     main::FileWrite                     called by ./FHEM/95_Babble.pm (449)
2018.02.27 21:32:25 1:     main::Babble_save                   called by ./FHEM/95_Babble.pm (1695)
2018.02.27 21:32:25 1:     main::Babble_getplaces              called by ./FHEM/95_Babble.pm (1895)
2018.02.27 21:32:25 1:     main::Babble_Html                   called by (eval 370960) (1)
2018.02.27 21:32:25 1:     (eval)                              called by fhem.pl (1079)
2018.02.27 21:32:25 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.02.27 21:32:25 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1896)
2018.02.27 21:32:25 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1067)
2018.02.27 21:32:25 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (537)
2018.02.27 21:32:25 1:     main::FW_Read                       called by fhem.pl (3528)
2018.02.27 21:32:25 1:     main::CallFn                        called by fhem.pl (690)
2018.02.27 21:32:25 1: [Babble_save]
2018.02.27 21:32:25 1: [Babble] Baaaaah ! It is not a good idea to name a device wettervorhersage similar to a place in Babble
2018.02.27 21:32:25 1: PERL WARNING: Use of uninitialized value $l in print at fhem.pl line 4925.
2018.02.27 21:32:25 1: eval: {Babble_Html("babble")}
2018.02.27 21:32:25 1: stacktrace:
2018.02.27 21:32:25 1:     main::__ANON__                      called by fhem.pl (4925)
2018.02.27 21:32:25 1:     main::FileWrite                     called by ./FHEM/95_Babble.pm (449)
2018.02.27 21:32:25 1:     main::Babble_save                   called by ./FHEM/95_Babble.pm (1838)
2018.02.27 21:32:25 1:     main::Babble_getwords               called by ./FHEM/95_Babble.pm (1911)
2018.02.27 21:32:25 1:     main::Babble_Html                   called by (eval 370960) (1)
2018.02.27 21:32:25 1:     (eval)                              called by fhem.pl (1079)
2018.02.27 21:32:25 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.02.27 21:32:25 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1896)
2018.02.27 21:32:25 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1067)
2018.02.27 21:32:25 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (537)
2018.02.27 21:32:25 1:     main::FW_Read                       called by fhem.pl (3528)
2018.02.27 21:32:25 1:     main::CallFn                        called by fhem.pl (690)
2018.02.27 21:32:25 1: [Babble_save]
2018.02.27 21:32:25 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/95_Babble.pm line 1969.
2018.02.27 21:32:25 1: eval: {Babble_Html("babble")}
2018.02.27 21:32:25 1: stacktrace:
2018.02.27 21:32:25 1:     main::__ANON__                      called by ./FHEM/95_Babble.pm (1969)
2018.02.27 21:32:25 1:     main::Babble_Html                   called by (eval 370960) (1)
2018.02.27 21:32:25 1:     (eval)                              called by fhem.pl (1079)
2018.02.27 21:32:25 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.02.27 21:32:25 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1896)
2018.02.27 21:32:25 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1067)
2018.02.27 21:32:25 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (537)
2018.02.27 21:32:25 1:     main::FW_Read                       called by fhem.pl (3528)
2018.02.27 21:32:25 1:     main::CallFn                        called by fhem.pl (690)
2018.02.27 21:32:25 1: PERL WARNING: Use of uninitialized value $l in print at fhem.pl line 4925.
2018.02.27 21:32:25 1: eval: {Babble_Html("babble")}
2018.02.27 21:32:25 1: stacktrace:
2018.02.27 21:32:25 1:     main::__ANON__                      called by fhem.pl (4925)
2018.02.27 21:32:25 1:     main::FileWrite                     called by ./FHEM/95_Babble.pm (449)
2018.02.27 21:32:25 1:     main::Babble_save                   called by ./FHEM/95_Babble.pm (1695)
2018.02.27 21:32:25 1:     main::Babble_getplaces              called by ./FHEM/95_Babble.pm (1895)
2018.02.27 21:32:25 1:     main::Babble_Html                   called by (eval 370962) (1)
2018.02.27 21:32:25 1:     (eval)                              called by fhem.pl (1079)
2018.02.27 21:32:25 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.02.27 21:32:25 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1896)
2018.02.27 21:32:25 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1067)
2018.02.27 21:32:25 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (537)
2018.02.27 21:32:25 1:     main::FW_Read                       called by fhem.pl (3528)
2018.02.27 21:32:25 1:     main::CallFn                        called by fhem.pl (690)
2018.02.27 21:32:25 1: [Babble_save]
2018.02.27 21:32:25 1: [Babble] Baaaaah ! It is not a good idea to name a device wettervorhersage similar to a place in Babble
2018.02.27 21:32:25 1: PERL WARNING: Use of uninitialized value $l in print at fhem.pl line 4925.
2018.02.27 21:32:25 1: eval: {Babble_Html("babble")}
2018.02.27 21:32:25 1: stacktrace:
2018.02.27 21:32:25 1:     main::__ANON__                      called by fhem.pl (4925)
2018.02.27 21:32:25 1:     main::FileWrite                     called by ./FHEM/95_Babble.pm (449)
2018.02.27 21:32:25 1:     main::Babble_save                   called by ./FHEM/95_Babble.pm (1838)
2018.02.27 21:32:25 1:     main::Babble_getwords               called by ./FHEM/95_Babble.pm (1911)
2018.02.27 21:32:25 1:     main::Babble_Html                   called by (eval 370962) (1)
2018.02.27 21:32:25 1:     (eval)                              called by fhem.pl (1079)
2018.02.27 21:32:25 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.02.27 21:32:25 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1896)
2018.02.27 21:32:25 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1067)
2018.02.27 21:32:25 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (537)
2018.02.27 21:32:25 1:     main::FW_Read                       called by fhem.pl (3528)
2018.02.27 21:32:25 1:     main::CallFn                        called by fhem.pl (690)
2018.02.27 21:32:25 1: [Babble_save]
2018.02.27 21:32:25 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/95_Babble.pm line 1969.
2018.02.27 21:32:25 1: eval: {Babble_Html("babble")}
2018.02.27 21:32:25 1: stacktrace:
2018.02.27 21:32:25 1:     main::__ANON__                      called by ./FHEM/95_Babble.pm (1969)
2018.02.27 21:32:25 1:     main::Babble_Html                   called by (eval 370962) (1)
2018.02.27 21:32:25 1:     (eval)                              called by fhem.pl (1079)
2018.02.27 21:32:25 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.02.27 21:32:25 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1896)
2018.02.27 21:32:25 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1067)
2018.02.27 21:32:25 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (537)
2018.02.27 21:32:25 1:     main::FW_Read                       called by fhem.pl (3528)
2018.02.27 21:32:25 1:     main::CallFn                        called by fhem.pl (690)
2018.02.27 21:33:26 1: PERL WARNING: Use of uninitialized value $l in print at fhem.pl line 4925.
2018.02.27 21:33:26 1: eval: {Babble_Html("babble")}
2018.02.27 21:33:26 1: stacktrace:
2018.02.27 21:33:26 1:     main::__ANON__                      called by fhem.pl (4925)
2018.02.27 21:33:26 1:     main::FileWrite                     called by ./FHEM/95_Babble.pm (449)
2018.02.27 21:33:26 1:     main::Babble_save                   called by ./FHEM/95_Babble.pm (1695)
2018.02.27 21:33:26 1:     main::Babble_getplaces              called by ./FHEM/95_Babble.pm (1895)
2018.02.27 21:33:26 1:     main::Babble_Html                   called by (eval 371719) (1)
2018.02.27 21:33:26 1:     (eval)                              called by fhem.pl (1079)
2018.02.27 21:33:26 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.02.27 21:33:26 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1408)
2018.02.27 21:33:26 1:     main::FW_doDetail                   called by ./FHEM/01_FHEMWEB.pm (1068)
2018.02.27 21:33:26 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (537)
2018.02.27 21:33:26 1:     main::FW_Read                       called by fhem.pl (3528)
2018.02.27 21:33:26 1:     main::CallFn                        called by fhem.pl (690)
2018.02.27 21:33:26 1: [Babble_save]
2018.02.27 21:33:26 1: [Babble] Baaaaah ! It is not a good idea to name a device wettervorhersage similar to a place in Babble
2018.02.27 21:33:26 1: PERL WARNING: Use of uninitialized value $l in print at fhem.pl line 4925.
2018.02.27 21:33:26 1: eval: {Babble_Html("babble")}
2018.02.27 21:33:26 1: stacktrace:
2018.02.27 21:33:26 1:     main::__ANON__                      called by fhem.pl (4925)
2018.02.27 21:33:26 1:     main::FileWrite                     called by ./FHEM/95_Babble.pm (449)
2018.02.27 21:33:26 1:     main::Babble_save                   called by ./FHEM/95_Babble.pm (1838)
2018.02.27 21:33:26 1:     main::Babble_getwords               called by ./FHEM/95_Babble.pm (1911)
2018.02.27 21:33:26 1:     main::Babble_Html                   called by (eval 371719) (1)
2018.02.27 21:33:26 1:     (eval)                              called by fhem.pl (1079)
2018.02.27 21:33:26 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.02.27 21:33:26 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1408)
2018.02.27 21:33:26 1:     main::FW_doDetail                   called by ./FHEM/01_FHEMWEB.pm (1068)
2018.02.27 21:33:26 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (537)
2018.02.27 21:33:26 1:     main::FW_Read                       called by fhem.pl (3528)
2018.02.27 21:33:26 1:     main::CallFn                        called by fhem.pl (690)
2018.02.27 21:33:26 1: [Babble_save]
2018.02.27 21:33:26 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/95_Babble.pm line 1969.
2018.02.27 21:33:26 1: eval: {Babble_Html("babble")}
2018.02.27 21:33:26 1: stacktrace:
2018.02.27 21:33:26 1:     main::__ANON__                      called by ./FHEM/95_Babble.pm (1969)
2018.02.27 21:33:26 1:     main::Babble_Html                   called by (eval 371719) (1)
2018.02.27 21:33:26 1:     (eval)                              called by fhem.pl (1079)
2018.02.27 21:33:26 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.02.27 21:33:26 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1408)
2018.02.27 21:33:26 1:     main::FW_doDetail                   called by ./FHEM/01_FHEMWEB.pm (1068)
2018.02.27 21:33:26 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (537)
2018.02.27 21:33:26 1:     main::FW_Read                       called by fhem.pl (3528)
2018.02.27 21:33:26 1:     main::CallFn                        called by fhem.pl (690)
2018.02.27 21:33:26 1: PERL WARNING: Use of uninitialized value $l in print at fhem.pl line 4925.
2018.02.27 21:33:26 1: eval: {Babble_Html("babble")}
2018.02.27 21:33:26 1: stacktrace:
2018.02.27 21:33:26 1:     main::__ANON__                      called by fhem.pl (4925)
2018.02.27 21:33:26 1:     main::FileWrite                     called by ./FHEM/95_Babble.pm (449)
2018.02.27 21:33:26 1:     main::Babble_save                   called by ./FHEM/95_Babble.pm (1695)
2018.02.27 21:33:26 1:     main::Babble_getplaces              called by ./FHEM/95_Babble.pm (1895)
2018.02.27 21:33:26 1:     main::Babble_Html                   called by (eval 371721) (1)
2018.02.27 21:33:26 1:     (eval)                              called by fhem.pl (1079)
2018.02.27 21:33:26 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.02.27 21:33:26 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1408)
2018.02.27 21:33:26 1:     main::FW_doDetail                   called by ./FHEM/01_FHEMWEB.pm (1068)
2018.02.27 21:33:26 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (537)
2018.02.27 21:33:26 1:     main::FW_Read                       called by fhem.pl (3528)
2018.02.27 21:33:26 1:     main::CallFn                        called by fhem.pl (690)
2018.02.27 21:33:26 1: [Babble_save]
2018.02.27 21:33:26 1: [Babble] Baaaaah ! It is not a good idea to name a device wettervorhersage similar to a place in Babble
2018.02.27 21:33:26 1: PERL WARNING: Use of uninitialized value $l in print at fhem.pl line 4925.
2018.02.27 21:33:26 1: eval: {Babble_Html("babble")}
2018.02.27 21:33:26 1: stacktrace:
2018.02.27 21:33:26 1:     main::__ANON__                      called by fhem.pl (4925)
2018.02.27 21:33:26 1:     main::FileWrite                     called by ./FHEM/95_Babble.pm (449)
2018.02.27 21:33:26 1:     main::Babble_save                   called by ./FHEM/95_Babble.pm (1838)
2018.02.27 21:33:26 1:     main::Babble_getwords               called by ./FHEM/95_Babble.pm (1911)
2018.02.27 21:33:26 1:     main::Babble_Html                   called by (eval 371721) (1)
2018.02.27 21:33:26 1:     (eval)                              called by fhem.pl (1079)
2018.02.27 21:33:26 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.02.27 21:33:26 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1408)
2018.02.27 21:33:26 1:     main::FW_doDetail                   called by ./FHEM/01_FHEMWEB.pm (1068)
2018.02.27 21:33:26 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (537)
2018.02.27 21:33:26 1:     main::FW_Read                       called by fhem.pl (3528)
2018.02.27 21:33:26 1:     main::CallFn                        called by fhem.pl (690)
2018.02.27 21:33:26 1: [Babble_save]
2018.02.27 21:33:26 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/95_Babble.pm line 1969.
2018.02.27 21:33:26 1: eval: {Babble_Html("babble")}
2018.02.27 21:33:26 1: stacktrace:
2018.02.27 21:33:26 1:     main::__ANON__                      called by ./FHEM/95_Babble.pm (1969)
2018.02.27 21:33:26 1:     main::Babble_Html                   called by (eval 371721) (1)
2018.02.27 21:33:26 1:     (eval)                              called by fhem.pl (1079)
2018.02.27 21:33:26 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.02.27 21:33:26 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1408)
2018.02.27 21:33:26 1:     main::FW_doDetail                   called by ./FHEM/01_FHEMWEB.pm (1068)
2018.02.27 21:33:26 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (537)
2018.02.27 21:33:26 1:     main::FW_Read                       called by fhem.pl (3528)
2018.02.27 21:33:26 1:     main::CallFn                        called by fhem.pl (690)
babble ist gesprächig *g*
wat mach ich den falsch?
ich such übrigens im contrib-ordner nach dem babble-dir für die rivescripts und finde nix. fehlt mir da was, oder ist das aktuell so korrekt?
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 28 Februar 2018, 08:07:58
Die Babble-Fehlermeldungen kommen von genau dem, was in der Fehlermeldung steht: Ein Babble-Device hat denselben Namen wie ein Raum,

Zitat[Babble] Baaaaah ! It is not a good idea to name a device wettervorhersage similar to a place in Babble

Das geht nicht.

Der contrib-ordner wird nicht automatisch upgedatet, muss man manuell machen oder die beiden Dateien vom SVN holen.

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: the ratman am 28 Februar 2018, 08:13:28
das stimmt so nicht ganz - kein raum heißt "wettervorhersage" ich hab nur nen raum "wetter". das device "wetter_proplanta" hat den alias "wettervorhersage". das darf also nicht sein?

wie komm ich den an die daten im svn?
vom text her scheint im 1. beitrag mal ein link oder anhang gewesen zu sein, aber nu find ich nix ...
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 28 Februar 2018, 08:34:49
Das Problem ist, dass Babble-Devicenamen mit "irgendwas_ziffer" als Erweiterungsdevice zu "irgendwas" behandelt werden (um zu ermöglichen, das mehrere physikalisch unterschiedliche FHEM-Devices in der Sprachsteuerung als "irgendwas" angesprochen werden).

Das ist einerseits ganz nett, denn auf diese Weise kann man verschiedene Leuchten mit dem Babble-Devicenamen "Licht_1", "Licht_2" usw. versehen und die tatsächliche Auswahl bei der Analyse des Satzes "Mach das Licht im XY-Zimmer an" der Ortsbezeichnung "XY-Zimmer" überlassen.

Andererseits schafft das hier das Problem, dass "wetter_proplanta" als Erweiterungsdevice des generischen Babble-Device "wetter" behandelt wird - und das stimmt eben mit dem Raum "wetter" überein. Das muss also vermieden werden, z.B. ganz einfach dadurch dass dem FHEM-Device "wetter_proplanta" ein anderer Name gegeben wird. Allerdings kann man dann nicht mehr fragen "wie wird morgen das wetter" ? Also würde ich tatsächlich vorschlagen, den Raumnamen "Wetter" durch etwas Anderes zu ersetzen, und dem Proplanta-Dingens den Babble-Devicenamen "wetter" zu geben.

Ich habe gerade ein Update eingecheckt, das die oben angemoserte Benutzung von "defined(@parms)" vermeidet.

Die beiden rive-Dateien stehen hier: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/Babble

LG

pah

Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: the ratman am 28 Februar 2018, 10:21:32
so, jetzt hab ichs mal auf 0 gesetzt.
babble-device wetter gelöscht, im contrib alles reingeworfen mit passenden rechten, auch alles sonstige babble-artige gekilled.
nachdem im svn 95_Basbble.pm von 17:17 heute is, geh ich davon aus, das neueste zu haben.
define babble babble macht aber immer noch2018.02.28 08:14:45 1: logfile wurde von hand gelöscht
2018.02.28 10:18:17 1: PERL WARNING: Subroutine Babble_Initialize redefined at ./FHEM/95_Babble.pm line 178.
2018.02.28 10:18:17 1: PERL WARNING: Subroutine Babble_Define redefined at ./FHEM/95_Babble.pm line 220.
2018.02.28 10:18:17 1: PERL WARNING: Subroutine Babble_Undef redefined at ./FHEM/95_Babble.pm line 285.
2018.02.28 10:18:17 1: PERL WARNING: Subroutine Babble_Attr redefined at ./FHEM/95_Babble.pm line 307.
2018.02.28 10:18:17 1: PERL WARNING: Subroutine Babble_CreateEntry redefined at ./FHEM/95_Babble.pm line 330.
2018.02.28 10:18:17 1: PERL WARNING: Subroutine Babble_Set redefined at ./FHEM/95_Babble.pm line 369.
2018.02.28 10:18:17 1: PERL WARNING: Subroutine Babble_Get redefined at ./FHEM/95_Babble.pm line 411.
2018.02.28 10:18:17 1: PERL WARNING: Subroutine Babble_save redefined at ./FHEM/95_Babble.pm line 440.
2018.02.28 10:18:17 1: PERL WARNING: Subroutine Babble_savename redefined at ./FHEM/95_Babble.pm line 460.
2018.02.28 10:18:17 1: PERL WARNING: Subroutine Babble_restore redefined at ./FHEM/95_Babble.pm line 474.
2018.02.28 10:18:17 1: PERL WARNING: Subroutine Babble_Test redefined at ./FHEM/95_Babble.pm line 506.
2018.02.28 10:18:17 1: PERL WARNING: Subroutine Babble_Normalize redefined at ./FHEM/95_Babble.pm line 617.
2018.02.28 10:18:17 1: PERL WARNING: Subroutine Babble_timecorrector redefined at ./FHEM/95_Babble.pm line 1003.
2018.02.28 10:18:17 1: PERL WARNING: Subroutine Babble_createRive redefined at ./FHEM/95_Babble.pm line 1036.
2018.02.28 10:18:17 1: PERL WARNING: Subroutine Babble_getcsrf redefined at ./FHEM/95_Babble.pm line 1061.
2018.02.28 10:18:17 1: reload: Error:Modul 95_Babble deactivated:
Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at ./FHEM/95_Babble.pm line 1103.

2018.02.28 10:18:17 0: Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at ./FHEM/95_Babble.pm line 1103.



dumme idee:
vielleicht könnte man nicht auf einfach nur "wetter" bei deiner leutchen-bespaßung setzen, sondern tatsächlich was mit "_" verlangen bei "multibenennung"?
dann würde sowohl "wetter" als auch "wetterdödel" kein problem sein und babble erst auf babblenamen wie "wetter_xxx" abfahren, wenn ich das richtig verstehe.
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Hauswart am 28 Februar 2018, 10:56:24
Hallo pah,
habe heute mit dem aktuellsten Update folgenden Fehler:
define Babble Babble
Erhalte ich im Log:
Zitat
2018.02.28 10:52:55 1: reload: Error:Modul 95_Babble deactivated:
Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at ./FHEM/95_Babble.pm line 1103.

2018.02.28 10:52:55 0: Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at ./FHEM/95_Babble.pm line 1103.
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 28 Februar 2018, 12:55:45
In der heute um 7:17 Uhr aktuell eingecheckten Version ist das behoben, siehe: https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/95_Babble.pm

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Hauswart am 28 Februar 2018, 13:23:18
Super danke.
Zitat von: Prof. Dr. Peter Henning am 24 Februar 2018, 18:15:39
Tipp: Macht echt Spaß, Babble über einen Telegram-Client zu bedienen.
@Phiolin @pah möchte einer von euch mal seine Beispiel Definition von der Telegram Integration preisgeben?
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: the ratman am 28 Februar 2018, 13:23:58
hmmm ... mein log is gemein - sagt die ganze zeit folgendesfhem
nothing to do...

fhemabfall
nothing to do...
und was es zu nem define sagt, steht weiter oben.
bin a bissi ratlos ...

ich frag halt nochmal: in welche richtung würdest mich stoßen wegen der meldungen? hab ja leider keinen schimmer woher das kommen könnt, fals ich "schuld" bin.
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Hauswart am 28 Februar 2018, 13:27:54
Pah seine Version von heute morgen mit den fix wird noch nicht über das Update verteilt. Hast du die Datei manuell herunterladen und neu geladen?
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: the ratman am 28 Februar 2018, 13:46:51
aso, nö - thx für den hinweis.
dachte svn = aktuell, überhaupt, wenns vor 8 uhr war.

nachtrag:
babble aus svn, restart ...
nö, bleibt bei exakt der selben log-vermüllung *g*
hinzu kommt, um der langeweile entgegen zu wirken, in rauhen mengen zeug wie z.b.:
2018.02.28 13:50:13 0: syntax error at ./FHEM/95_Babble.pm line 8, near "<"
Unknown regexp modifier "/t" at ./FHEM/95_Babble.pm line 9, at end of line
Unknown regexp modifier "/t" at ./FHEM/95_Babble.pm line 9, at end of line
Unknown regexp modifier "/e" at ./FHEM/95_Babble.pm line 9, at end of line
syntax error at ./FHEM/95_Babble.pm line 15, near "-->"
syntax error at ./FHEM/95_Babble.pm line 34, near "$(".trac-autofocus""
syntax error at ./FHEM/95_Babble.pm line 35, near "$(".trac-target-new""
syntax error at ./FHEM/95_Babble.pm line 36, near ") {"
syntax error at ./FHEM/95_Babble.pm line 37, near "$(".trac-disable-on-submit""
syntax error at ./FHEM/95_Babble.pm line 40, near ""text/javascript" src"
./FHEM/95_Babble.pm has too many errors.
ich hoff, das is ned mein fehler - hab das ding einfach mit save file aus dem svn gestohlen ...
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 28 Februar 2018, 14:12:14
Zitatmein fehler
Aber doch. Das sichert nämlich die HTML-Datei, nicht die Perl-Datei.

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: nils_ am 28 Februar 2018, 14:29:11
Zitat von: the ratman am 28 Februar 2018, 13:46:51
ich hoff, das is ned mein fehler - hab das ding einfach mit save file aus dem svn gestohlen ...

wie pah schon sagte: doch!


scroll ganz runter, und dann rechts-klick auf "Ursprüngliches Format" und dann "save as"
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: the ratman am 28 Februar 2018, 15:30:27
oh ja !
da hab ich ja wiedermal einen beweis meiner geistigen fähigkeiten geliefert ...
wer noch was zu lachen will: die rive scripts hatte ich korrekt gesaugt. wer will, der darf nun lachen.

jetzt nur mehr kleinigkeiten. beim restart kam...
PERL WARNING: RiveScript::Warning: loadDirectory failed: ./rivescript is not a directory!
...
und beim aufruf des babble-rooms kommt2018.02.28 15:28:15 1: PERL WARNING: Use of uninitialized value $l in print at fhem.pl line 4925.
2018.02.28 15:28:15 1: eval: {Babble_Html("babble")}
2018.02.28 15:28:15 1: stacktrace:
2018.02.28 15:28:15 1:     main::__ANON__                      called by fhem.pl (4925)
2018.02.28 15:28:15 1:     main::FileWrite                     called by ./FHEM/95_Babble.pm (449)
2018.02.28 15:28:15 1:     main::Babble_save                   called by ./FHEM/95_Babble.pm (1705)
2018.02.28 15:28:15 1:     main::Babble_getplaces              called by ./FHEM/95_Babble.pm (1905)
2018.02.28 15:28:15 1:     main::Babble_Html                   called by (eval 5551) (1)
2018.02.28 15:28:15 1:     (eval)                              called by fhem.pl (1079)
2018.02.28 15:28:15 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.02.28 15:28:15 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1896)
2018.02.28 15:28:15 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1067)
2018.02.28 15:28:15 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (537)
2018.02.28 15:28:15 1:     main::FW_Read                       called by fhem.pl (3528)
2018.02.28 15:28:15 1:     main::CallFn                        called by fhem.pl (690)
2018.02.28 15:28:15 1: [Babble_save]
2018.02.28 15:28:15 1: PERL WARNING: Use of uninitialized value $l in print at fhem.pl line 4925.
2018.02.28 15:28:15 1: eval: {Babble_Html("babble")}
2018.02.28 15:28:15 1: stacktrace:
2018.02.28 15:28:15 1:     main::__ANON__                      called by fhem.pl (4925)
2018.02.28 15:28:15 1:     main::FileWrite                     called by ./FHEM/95_Babble.pm (449)
2018.02.28 15:28:15 1:     main::Babble_save                   called by ./FHEM/95_Babble.pm (1848)
2018.02.28 15:28:15 1:     main::Babble_getwords               called by ./FHEM/95_Babble.pm (1921)
2018.02.28 15:28:15 1:     main::Babble_Html                   called by (eval 5551) (1)
2018.02.28 15:28:15 1:     (eval)                              called by fhem.pl (1079)
2018.02.28 15:28:15 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.02.28 15:28:15 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1896)
2018.02.28 15:28:15 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1067)
2018.02.28 15:28:15 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (537)
2018.02.28 15:28:15 1:     main::FW_Read                       called by fhem.pl (3528)
2018.02.28 15:28:15 1:     main::CallFn                        called by fhem.pl (690)
2018.02.28 15:28:15 1: [Babble_save]
2018.02.28 15:28:15 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/95_Babble.pm line 1979.
2018.02.28 15:28:15 1: eval: {Babble_Html("babble")}
2018.02.28 15:28:15 1: stacktrace:
2018.02.28 15:28:15 1:     main::__ANON__                      called by ./FHEM/95_Babble.pm (1979)
2018.02.28 15:28:15 1:     main::Babble_Html                   called by (eval 5551) (1)
2018.02.28 15:28:15 1:     (eval)                              called by fhem.pl (1079)
2018.02.28 15:28:15 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.02.28 15:28:15 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1896)
2018.02.28 15:28:15 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1067)
2018.02.28 15:28:15 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (537)
2018.02.28 15:28:15 1:     main::FW_Read                       called by fhem.pl (3528)
2018.02.28 15:28:15 1:     main::CallFn                        called by fhem.pl (690)
2018.02.28 15:28:15 1: PERL WARNING: Use of uninitialized value $l in print at fhem.pl line 4925.
2018.02.28 15:28:15 1: eval: {Babble_Html("babble")}
2018.02.28 15:28:15 1: stacktrace:
2018.02.28 15:28:15 1:     main::__ANON__                      called by fhem.pl (4925)
2018.02.28 15:28:15 1:     main::FileWrite                     called by ./FHEM/95_Babble.pm (449)
2018.02.28 15:28:15 1:     main::Babble_save                   called by ./FHEM/95_Babble.pm (1705)
2018.02.28 15:28:15 1:     main::Babble_getplaces              called by ./FHEM/95_Babble.pm (1905)
2018.02.28 15:28:15 1:     main::Babble_Html                   called by (eval 5555) (1)
2018.02.28 15:28:15 1:     (eval)                              called by fhem.pl (1079)
2018.02.28 15:28:15 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.02.28 15:28:15 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1896)
2018.02.28 15:28:15 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1067)
2018.02.28 15:28:15 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (537)
2018.02.28 15:28:15 1:     main::FW_Read                       called by fhem.pl (3528)
2018.02.28 15:28:15 1:     main::CallFn                        called by fhem.pl (690)
2018.02.28 15:28:15 1: [Babble_save]
2018.02.28 15:28:15 1: PERL WARNING: Use of uninitialized value $l in print at fhem.pl line 4925.
2018.02.28 15:28:15 1: eval: {Babble_Html("babble")}
2018.02.28 15:28:15 1: stacktrace:
2018.02.28 15:28:15 1:     main::__ANON__                      called by fhem.pl (4925)
2018.02.28 15:28:15 1:     main::FileWrite                     called by ./FHEM/95_Babble.pm (449)
2018.02.28 15:28:15 1:     main::Babble_save                   called by ./FHEM/95_Babble.pm (1848)
2018.02.28 15:28:15 1:     main::Babble_getwords               called by ./FHEM/95_Babble.pm (1921)
2018.02.28 15:28:15 1:     main::Babble_Html                   called by (eval 5555) (1)
2018.02.28 15:28:15 1:     (eval)                              called by fhem.pl (1079)
2018.02.28 15:28:15 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.02.28 15:28:15 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1896)
2018.02.28 15:28:15 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1067)
2018.02.28 15:28:15 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (537)
2018.02.28 15:28:15 1:     main::FW_Read                       called by fhem.pl (3528)
2018.02.28 15:28:15 1:     main::CallFn                        called by fhem.pl (690)
2018.02.28 15:28:15 1: [Babble_save]
2018.02.28 15:28:15 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/95_Babble.pm line 1979.
2018.02.28 15:28:15 1: eval: {Babble_Html("babble")}
2018.02.28 15:28:15 1: stacktrace:
2018.02.28 15:28:15 1:     main::__ANON__                      called by ./FHEM/95_Babble.pm (1979)
2018.02.28 15:28:15 1:     main::Babble_Html                   called by (eval 5555) (1)
2018.02.28 15:28:15 1:     (eval)                              called by fhem.pl (1079)
2018.02.28 15:28:15 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.02.28 15:28:15 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1896)
2018.02.28 15:28:15 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1067)
2018.02.28 15:28:15 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (537)
2018.02.28 15:28:15 1:     main::FW_Read                       called by fhem.pl (3528)
2018.02.28 15:28:15 1:     main::CallFn                        called by fhem.pl (690)
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 28 Februar 2018, 15:33:10
Zitatmöchte einer von euch mal seine Beispiel Definition von der Telegram Integration preisgeben

In Auszügen - ist ziemlich komplexer Code


sub telegramRecognition($){
    my ($event)        = @_;
my $querypeer      = ReadingsVal("TelegramBot", "queryPeer", 0);
    my $msgpeer        = ReadingsVal("TelegramBot", "msgPeer", 0);
my $queryReplyMsgId= ReadingsVal("TelegramBot", "queryReplyMsgId", 0);
my $MsgId          = ReadingsVal("TelegramBot", "MsgId", 0);
    my $menuMsgId      = ReadingsVal("TelegramBot", "menuMsgId", $queryReplyMsgId);
my $calldata       = ReadingsVal("TelegramBot", "callData", "");
my $tg;
my $dp;
my $dm;
my $res;
my $tit;
my $cmd;
my $click=0;
my ($cb1,$cb2,$cb1raw);
my $person = "";

.....
       fhem("attr TelegramBot queryAnswerText Gerne zu Diensten!");
     

Der nachfolgende Teil nimmt eine Antwort vom Chatbot entgegen (event=botreply) und sendet diese an den Telegram-Empfänger als Nachricht mit erzwungener Antwort


    #-- receiving reply from bot to telegram
    if( $event =~ /botreply\:\s(.*)/ ){
      $cb1 = $1;
      fhem("set TelegramBot msgForceReply \@$querypeer $cb1");
      fhem("setreading TelegramBot prevCmd chatbot $cb1");


Dieser Teil sendet das anfängliche Keyboard

     
    #-- click event from inline keyboard
    }elsif( $event =~ /queryData\:\s(.*)/ ){
      ($cb1,$cb2) = split(/ /,$1,2);
      #Log 1,"[telegramRecognition] queryData $cb1";
      #-- Level 0/1 => new menuMsgId after start of Bot
      if( $cb1 =~ /(PostIt)|(Steuerung)|(ChatBot)/ ){
        $menuMsgId = $queryReplyMsgId;
        fhem("setreading TelegramBot menuMsgId $menuMsgId");
      }
     
      #-- Level 0
      if( $cb1 eq "Hauptmenü"){
          fhem("set TelegramBot queryInline \@$querypeer (PostIt) (Steuerung) (ChatBot) Hauptmenü");   
     
 

Dieser Teil empfängt die Message, die beim forced replay vom Telegram client gesendet wurde. Wenn die vorige Message an den client vom Chatbot stammte, wird geprüft, ob der Nachrichteninhalt "Stop" lautet. Wenn ja => Hauptmenü, wenn nein, leite den Nachrichteninhalt an den Chatbot weiter.

    #-- Process line from forced reply
    }elsif( $event =~ /msgReplyMsgId\:\s+(\d*)/ ){
      my $mn = $1;
      my $mo = ReadingsVal("TelegramBot", "prevMsgId", 0)+1;
      my $prev = ReadingsVal("TelegramBot","prevCmd","none");
     
    ....
       
      #-- ChatBot
      }elsif( $prev =~ /chatbot/ ){
        my $text = ReadingsVal("TelegramBot","msgText","");
        if( $text =~ /(s|S)top.*/ ){
           InternalTimer(gettimeofday()+1, "telegramRecognition","queryData: Hauptmenü",0);
        }else{
          fhem194Cmd("{Babble_DoIt('Babble','".$text."','Telegram')}");
        }
      }
    }
  }


LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 28 Februar 2018, 15:36:48
ZitatRiveScript::Warning: loadDirectory failed: ./rivescript is not a directory!

Na, da steht es doch. Die RiveScript-Dateien müssen in /opt/fhem/rivescript und werden vom Modul mit dem Präfix ./rivescript (steht für /opt/fhem/rivescript) geladen.


LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 28 Februar 2018, 15:48:44
Achtung: Babble enthält jetzt schon ein neues Attribut dnuFile = (Do not understand-File). Wird dieses auf einen Dateinamen gesetzt, schreibt Babble alle nicht verstandenen Sätze dort hinein.

So als eine Art RoadMap: Als Nächstes bekommt der ChatBot von Babble die Fähigkeit, bestimmte Dinge direkt an FHEM weiterzuleiten - ohne Umweg über die semantische Analyse von Babble. Etwa, ob ein bestimmtes Gerät vorhanden ist (Der Name soll ggf. buchstabierbar sein). Das Ziel ist dann, mit Hilfe des ChatBot ein neues Babble-Device anzulegen...

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: the ratman am 28 Februar 2018, 19:14:09
so, einmal nerv ich noch. nur, damits nicht untergeht:
die warnings beim aufrufen von babble sind immer noch da ... falls man da was tun könnte ...

das kommt bei jedem einzelnen aufruf:2018.02.28 16:10:05 1: logfile wurde von hand gelöscht
2018.02.28 19:12:24 1: [Babble_getdevs] No entry in command table under wetter for local FHEM device proplanta with attribute babbleDevice=wetter
2018.02.28 19:12:24 1: PERL WARNING: Use of uninitialized value $l in print at fhem.pl line 4925.
2018.02.28 19:12:24 1: eval: {Babble_Html("babble")}
2018.02.28 19:12:24 1: stacktrace:
2018.02.28 19:12:24 1:     main::__ANON__                      called by fhem.pl (4925)
2018.02.28 19:12:24 1:     main::FileWrite                     called by ./FHEM/95_Babble.pm (449)
2018.02.28 19:12:24 1:     main::Babble_save                   called by ./FHEM/95_Babble.pm (1705)
2018.02.28 19:12:24 1:     main::Babble_getplaces              called by ./FHEM/95_Babble.pm (1905)
2018.02.28 19:12:24 1:     main::Babble_Html                   called by (eval 81025) (1)
2018.02.28 19:12:24 1:     (eval)                              called by fhem.pl (1079)
2018.02.28 19:12:24 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.02.28 19:12:24 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1896)
2018.02.28 19:12:24 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1067)
2018.02.28 19:12:24 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (537)
2018.02.28 19:12:24 1:     main::FW_Read                       called by fhem.pl (3528)
2018.02.28 19:12:24 1:     main::CallFn                        called by fhem.pl (690)
2018.02.28 19:12:24 1: [Babble_save]
2018.02.28 19:12:24 1: PERL WARNING: Use of uninitialized value $l in print at fhem.pl line 4925.
2018.02.28 19:12:24 1: eval: {Babble_Html("babble")}
2018.02.28 19:12:24 1: stacktrace:
2018.02.28 19:12:24 1:     main::__ANON__                      called by fhem.pl (4925)
2018.02.28 19:12:24 1:     main::FileWrite                     called by ./FHEM/95_Babble.pm (449)
2018.02.28 19:12:24 1:     main::Babble_save                   called by ./FHEM/95_Babble.pm (1848)
2018.02.28 19:12:24 1:     main::Babble_getwords               called by ./FHEM/95_Babble.pm (1921)
2018.02.28 19:12:24 1:     main::Babble_Html                   called by (eval 81025) (1)
2018.02.28 19:12:24 1:     (eval)                              called by fhem.pl (1079)
2018.02.28 19:12:24 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.02.28 19:12:24 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1896)
2018.02.28 19:12:24 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1067)
2018.02.28 19:12:24 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (537)
2018.02.28 19:12:24 1:     main::FW_Read                       called by fhem.pl (3528)
2018.02.28 19:12:24 1:     main::CallFn                        called by fhem.pl (690)
2018.02.28 19:12:24 1: [Babble_save]
2018.02.28 19:12:24 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/95_Babble.pm line 1979.
2018.02.28 19:12:24 1: eval: {Babble_Html("babble")}
2018.02.28 19:12:24 1: stacktrace:
2018.02.28 19:12:24 1:     main::__ANON__                      called by ./FHEM/95_Babble.pm (1979)
2018.02.28 19:12:24 1:     main::Babble_Html                   called by (eval 81025) (1)
2018.02.28 19:12:24 1:     (eval)                              called by fhem.pl (1079)
2018.02.28 19:12:24 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.02.28 19:12:24 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1896)
2018.02.28 19:12:24 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1067)
2018.02.28 19:12:24 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (537)
2018.02.28 19:12:24 1:     main::FW_Read                       called by fhem.pl (3528)
2018.02.28 19:12:24 1:     main::CallFn                        called by fhem.pl (690)
2018.02.28 19:12:24 1: PERL WARNING: Use of uninitialized value $cmd in index at ./FHEM/95_Babble.pm line 2059.
2018.02.28 19:12:24 1: eval: {Babble_Html("babble")}
2018.02.28 19:12:24 1: stacktrace:
2018.02.28 19:12:24 1:     main::__ANON__                      called by ./FHEM/95_Babble.pm (2059)
2018.02.28 19:12:24 1:     main::Babble_Html                   called by (eval 81025) (1)
2018.02.28 19:12:24 1:     (eval)                              called by fhem.pl (1079)
2018.02.28 19:12:24 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.02.28 19:12:24 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1896)
2018.02.28 19:12:24 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1067)
2018.02.28 19:12:24 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (537)
2018.02.28 19:12:24 1:     main::FW_Read                       called by fhem.pl (3528)
2018.02.28 19:12:24 1:     main::CallFn                        called by fhem.pl (690)
2018.02.28 19:12:24 1: PERL WARNING: Use of uninitialized value $cmd in concatenation (.) or string at ./FHEM/95_Babble.pm line 2077.
2018.02.28 19:12:24 1: eval: {Babble_Html("babble")}
2018.02.28 19:12:24 1: stacktrace:
2018.02.28 19:12:24 1:     main::__ANON__                      called by ./FHEM/95_Babble.pm (2077)
2018.02.28 19:12:24 1:     main::Babble_Html                   called by (eval 81025) (1)
2018.02.28 19:12:24 1:     (eval)                              called by fhem.pl (1079)
2018.02.28 19:12:24 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.02.28 19:12:24 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1896)
2018.02.28 19:12:24 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1067)
2018.02.28 19:12:24 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (537)
2018.02.28 19:12:24 1:     main::FW_Read                       called by fhem.pl (3528)
2018.02.28 19:12:24 1:     main::CallFn                        called by fhem.pl (690)
2018.02.28 19:12:25 1: PERL WARNING: Use of uninitialized value $l in print at fhem.pl line 4925.
2018.02.28 19:12:25 1: eval: {Babble_Html("babble")}
2018.02.28 19:12:25 1: stacktrace:
2018.02.28 19:12:25 1:     main::__ANON__                      called by fhem.pl (4925)
2018.02.28 19:12:25 1:     main::FileWrite                     called by ./FHEM/95_Babble.pm (449)
2018.02.28 19:12:25 1:     main::Babble_save                   called by ./FHEM/95_Babble.pm (1705)
2018.02.28 19:12:25 1:     main::Babble_getplaces              called by ./FHEM/95_Babble.pm (1905)
2018.02.28 19:12:25 1:     main::Babble_Html                   called by (eval 81031) (1)
2018.02.28 19:12:25 1:     (eval)                              called by fhem.pl (1079)
2018.02.28 19:12:25 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.02.28 19:12:25 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1896)
2018.02.28 19:12:25 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1067)
2018.02.28 19:12:25 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (537)
2018.02.28 19:12:25 1:     main::FW_Read                       called by fhem.pl (3528)
2018.02.28 19:12:25 1:     main::CallFn                        called by fhem.pl (690)
2018.02.28 19:12:25 1: [Babble_save]
2018.02.28 19:12:25 1: PERL WARNING: Use of uninitialized value $l in print at fhem.pl line 4925.
2018.02.28 19:12:25 1: eval: {Babble_Html("babble")}
2018.02.28 19:12:25 1: stacktrace:
2018.02.28 19:12:25 1:     main::__ANON__                      called by fhem.pl (4925)
2018.02.28 19:12:25 1:     main::FileWrite                     called by ./FHEM/95_Babble.pm (449)
2018.02.28 19:12:25 1:     main::Babble_save                   called by ./FHEM/95_Babble.pm (1848)
2018.02.28 19:12:25 1:     main::Babble_getwords               called by ./FHEM/95_Babble.pm (1921)
2018.02.28 19:12:25 1:     main::Babble_Html                   called by (eval 81031) (1)
2018.02.28 19:12:25 1:     (eval)                              called by fhem.pl (1079)
2018.02.28 19:12:25 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.02.28 19:12:25 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1896)
2018.02.28 19:12:25 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1067)
2018.02.28 19:12:25 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (537)
2018.02.28 19:12:25 1:     main::FW_Read                       called by fhem.pl (3528)
2018.02.28 19:12:25 1:     main::CallFn                        called by fhem.pl (690)
2018.02.28 19:12:25 1: [Babble_save]
2018.02.28 19:12:25 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/95_Babble.pm line 1979.
2018.02.28 19:12:25 1: eval: {Babble_Html("babble")}
2018.02.28 19:12:25 1: stacktrace:
2018.02.28 19:12:25 1:     main::__ANON__                      called by ./FHEM/95_Babble.pm (1979)
2018.02.28 19:12:25 1:     main::Babble_Html                   called by (eval 81031) (1)
2018.02.28 19:12:25 1:     (eval)                              called by fhem.pl (1079)
2018.02.28 19:12:25 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.02.28 19:12:25 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1896)
2018.02.28 19:12:25 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1067)
2018.02.28 19:12:25 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (537)
2018.02.28 19:12:25 1:     main::FW_Read                       called by fhem.pl (3528)
2018.02.28 19:12:25 1:     main::CallFn                        called by fhem.pl (690)
2018.02.28 19:12:25 1: PERL WARNING: Use of uninitialized value $cmd in index at ./FHEM/95_Babble.pm line 2059.
2018.02.28 19:12:25 1: eval: {Babble_Html("babble")}
2018.02.28 19:12:25 1: stacktrace:
2018.02.28 19:12:25 1:     main::__ANON__                      called by ./FHEM/95_Babble.pm (2059)
2018.02.28 19:12:25 1:     main::Babble_Html                   called by (eval 81031) (1)
2018.02.28 19:12:25 1:     (eval)                              called by fhem.pl (1079)
2018.02.28 19:12:25 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.02.28 19:12:25 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1896)
2018.02.28 19:12:25 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1067)
2018.02.28 19:12:25 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (537)
2018.02.28 19:12:25 1:     main::FW_Read                       called by fhem.pl (3528)
2018.02.28 19:12:25 1:     main::CallFn                        called by fhem.pl (690)
2018.02.28 19:12:25 1: PERL WARNING: Use of uninitialized value $cmd in concatenation (.) or string at ./FHEM/95_Babble.pm line 2077.
2018.02.28 19:12:25 1: eval: {Babble_Html("babble")}
2018.02.28 19:12:25 1: stacktrace:
2018.02.28 19:12:25 1:     main::__ANON__                      called by ./FHEM/95_Babble.pm (2077)
2018.02.28 19:12:25 1:     main::Babble_Html                   called by (eval 81031) (1)
2018.02.28 19:12:25 1:     (eval)                              called by fhem.pl (1079)
2018.02.28 19:12:25 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.02.28 19:12:25 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1896)
2018.02.28 19:12:25 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1067)
2018.02.28 19:12:25 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (537)
2018.02.28 19:12:25 1:     main::FW_Read                       called by fhem.pl (3528)
2018.02.28 19:12:25 1:     main::CallFn                        called by fhem.pl (690)
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 28 Februar 2018, 20:37:31
Bin jetzt erst mal eine Woche weg.

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 10 März 2018, 07:36:52
OK, back again.

Bitte mal die komplette Definition von Babble posten, und idealerweise eine Kopie des BabbleFile.

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: the ratman am 10 März 2018, 08:07:19
der listInternals:
   NAME       babble
   NR         177
   STATE      Initialized
   TYPE       Babble
   VERSION    1.31
   DATA:
     re_articles ((der)|(die)|(das)|(den)|(des)|(dem)|(zur))
     re_devs    ((wetter))
     re_ids     ((hallo))
     re_places  ((start)|(frontends)|(fhem)|(fritzbox)|(computer)|(homematic)|(hue)|(harmony)|(kalender)|(umwelt)|(multimedia)|(logik und schalten)|(wohnzimmer)|(schlafzimmer)|(bad)|(gästezimmer)|(treibhaus)|(terrasse)|(draussen))
     re_prepos  ((von)|(vom)|(des)|(der)|(in)|(im)|(auf)|(bei)|(am))
     re_quests  ((wie)|(wo)|(wann))
     re_status  ((status)|(wert)|(wetter)|(zeit))
     re_times   ((heute)|(morgen)|(übermorgen)|(nacht)|(vormittag)|(nachmittag))
     re_verbparts ((zu)|(auf)|(ent)|(wider)|(ein)|(an)|(aus)|(ab)|(um))
     re_verbsc  ((mache)|(schalten)|(sagen)|(machen)|(machs)|(öffnen)|(schließe)|(schalte)|(sag)|(schließen)|(sags)|(schalt)|(öffne)|(mach)|(schließ))
     re_verbsi  (?P<verbsi>(schalten)|(machen)|(öffnen)|(schließen)|(sagen))
     re_writes  ((status)|(wert)|(wetter)|(zeit))
     articles:
       der
       die
       das
       den
       des
       dem
       zur
     command:
       wetter:
         none:
           none:
             none       
     devcontacts:
       wetter:
         wetter
         proplanta
         0
     devs:
       wetter
     devsalias:
       wetter:
         0
     help:
     places:
       start
       frontends
       fhem
       fritzbox
       computer
       homematic
       hue
       harmony
       kalender
       umwelt
       multimedia
       logik und schalten
       wohnzimmer
       schlafzimmer
       bad
       gästezimmer
       treibhaus
       terrasse
       draussen
     prepos:
       von
       vom
       des
       der
       in
       im
       auf
       bei
       am
     quests:
       wie
       wo
       wann
     rooms:
       start
       frontends
       fhem
       fritzbox
       computer
       homematic
       hue
       harmony
       kalender
       umwelt
       multimedia
       logik und schalten
     splaces:
       wohnzimmer
       schlafzimmer
       bad
       gästezimmer
       treibhaus
       terrasse
       draussen
     status:
       Status
       Wert
       Wetter
       Zeit
     times:
       heute
       morgen
       übermorgen
       nacht
       vormittag
       nachmittag
     verbparts:
       zu
       auf
       ent
       wider
       ein
       an
       aus
       ab
       um
     verbs:
       mach       machen
       mache      machen
       machen     machen
       machs      machen
       sag        sagen
       sagen      sagen
       sags       sagen
       schalt     schalten
       schalte    schalten
       schalten   schalten
       schließ   schließen
       schließe  schließen
       schließen schließen
       öffne     öffnen
       öffnen    öffnen
     verbsi:
       schalten
       machen
       öffnen
       schließen
       sagen
     verbsicc:
       ARRAY(0x55e4d05b9f10)
       ARRAY(0x55e4d0579bf0)
       ARRAY(0x55e4d05bfa90)
       ARRAY(0x55e4d055be90)
       ARRAY(0x55e4d0314a28)
     writes:
       Status
       Wert
       Wetter
       Zeit
   READINGS:
     2018-02-28 15:28:06   lockstate       unlocked
     2018-03-10 08:02:54   savedate        Sat Mar 10 08:02:54 2018
     2018-03-09 08:37:42   state           Initialized
Attributes:
   babbleArticles der die das den des dem zur
   babblePlaces wohnzimmer schlafzimmer bad gästezimmer treibhaus terrasse draussen
   babblePrepos von vom des der in im auf bei am
   babbleQuests wie wo wann
   babbleStatus Status Wert Wetter Zeit
   babbleTimes heute morgen übermorgen nacht vormittag nachmittag
   babbleVerbParts zu auf ent wider ein an aus ab um
   babbleVerbs schalt,schalte:schalten mach,machs,mache:machen öffne:öffnen schließe,schließ:schließen sag,sags:sagen
   babbleWrites sagen senden hinzufügen entfernen ändern löschen
   noChatBot  0
   room       babbleRoom
sicherheitshalber noch alles, was das log schreibt am weg von der startseite zum device2018.03.10 08:02:54 1: [Babble_getdevs] No entry in command table under wetter for local FHEM device proplanta with attribute babbleDevice=wetter
2018.03.10 08:02:54 1: PERL WARNING: Use of uninitialized value $l in print at fhem.pl line 4964.
2018.03.10 08:02:54 1: eval: {Babble_Html("babble")}
2018.03.10 08:02:54 1: stacktrace:
2018.03.10 08:02:54 1:     main::__ANON__                      called by fhem.pl (4964)
2018.03.10 08:02:54 1:     main::FileWrite                     called by ./FHEM/95_Babble.pm (449)
2018.03.10 08:02:54 1:     main::Babble_save                   called by ./FHEM/95_Babble.pm (1705)
2018.03.10 08:02:54 1:     main::Babble_getplaces              called by ./FHEM/95_Babble.pm (1905)
2018.03.10 08:02:54 1:     main::Babble_Html                   called by (eval 550647) (1)
2018.03.10 08:02:54 1:     (eval)                              called by fhem.pl (1095)
2018.03.10 08:02:54 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.03.10 08:02:54 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1901)
2018.03.10 08:02:54 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1072)
2018.03.10 08:02:54 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (538)
2018.03.10 08:02:54 1:     main::FW_Read                       called by fhem.pl (3546)
2018.03.10 08:02:54 1:     main::CallFn                        called by fhem.pl (706)
2018.03.10 08:02:54 1: [Babble_save]
2018.03.10 08:02:54 1: PERL WARNING: Use of uninitialized value $l in print at fhem.pl line 4964.
2018.03.10 08:02:54 1: eval: {Babble_Html("babble")}
2018.03.10 08:02:54 1: stacktrace:
2018.03.10 08:02:54 1:     main::__ANON__                      called by fhem.pl (4964)
2018.03.10 08:02:54 1:     main::FileWrite                     called by ./FHEM/95_Babble.pm (449)
2018.03.10 08:02:54 1:     main::Babble_save                   called by ./FHEM/95_Babble.pm (1848)
2018.03.10 08:02:54 1:     main::Babble_getwords               called by ./FHEM/95_Babble.pm (1921)
2018.03.10 08:02:54 1:     main::Babble_Html                   called by (eval 550647) (1)
2018.03.10 08:02:54 1:     (eval)                              called by fhem.pl (1095)
2018.03.10 08:02:54 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.03.10 08:02:54 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1901)
2018.03.10 08:02:54 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1072)
2018.03.10 08:02:54 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (538)
2018.03.10 08:02:54 1:     main::FW_Read                       called by fhem.pl (3546)
2018.03.10 08:02:54 1:     main::CallFn                        called by fhem.pl (706)
2018.03.10 08:02:54 1: [Babble_save]
2018.03.10 08:02:54 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/95_Babble.pm line 1979.
2018.03.10 08:02:54 1: eval: {Babble_Html("babble")}
2018.03.10 08:02:54 1: stacktrace:
2018.03.10 08:02:54 1:     main::__ANON__                      called by ./FHEM/95_Babble.pm (1979)
2018.03.10 08:02:54 1:     main::Babble_Html                   called by (eval 550647) (1)
2018.03.10 08:02:54 1:     (eval)                              called by fhem.pl (1095)
2018.03.10 08:02:54 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.03.10 08:02:54 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1901)
2018.03.10 08:02:54 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1072)
2018.03.10 08:02:54 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (538)
2018.03.10 08:02:54 1:     main::FW_Read                       called by fhem.pl (3546)
2018.03.10 08:02:54 1:     main::CallFn                        called by fhem.pl (706)
2018.03.10 08:02:54 1: PERL WARNING: Use of uninitialized value $cmd in index at ./FHEM/95_Babble.pm line 2059.
2018.03.10 08:02:54 1: eval: {Babble_Html("babble")}
2018.03.10 08:02:54 1: stacktrace:
2018.03.10 08:02:54 1:     main::__ANON__                      called by ./FHEM/95_Babble.pm (2059)
2018.03.10 08:02:54 1:     main::Babble_Html                   called by (eval 550647) (1)
2018.03.10 08:02:54 1:     (eval)                              called by fhem.pl (1095)
2018.03.10 08:02:54 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.03.10 08:02:54 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1901)
2018.03.10 08:02:54 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1072)
2018.03.10 08:02:54 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (538)
2018.03.10 08:02:54 1:     main::FW_Read                       called by fhem.pl (3546)
2018.03.10 08:02:54 1:     main::CallFn                        called by fhem.pl (706)
2018.03.10 08:02:54 1: PERL WARNING: Use of uninitialized value $cmd in concatenation (.) or string at ./FHEM/95_Babble.pm line 2077.
2018.03.10 08:02:54 1: eval: {Babble_Html("babble")}
2018.03.10 08:02:54 1: stacktrace:
2018.03.10 08:02:54 1:     main::__ANON__                      called by ./FHEM/95_Babble.pm (2077)
2018.03.10 08:02:54 1:     main::Babble_Html                   called by (eval 550647) (1)
2018.03.10 08:02:54 1:     (eval)                              called by fhem.pl (1095)
2018.03.10 08:02:54 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.03.10 08:02:54 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1901)
2018.03.10 08:02:54 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1072)
2018.03.10 08:02:54 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (538)
2018.03.10 08:02:54 1:     main::FW_Read                       called by fhem.pl (3546)
2018.03.10 08:02:54 1:     main::CallFn                        called by fhem.pl (706)
2018.03.10 08:02:54 1: PERL WARNING: Use of uninitialized value $l in print at fhem.pl line 4964.
2018.03.10 08:02:54 1: eval: {Babble_Html("babble")}
2018.03.10 08:02:54 1: stacktrace:
2018.03.10 08:02:54 1:     main::__ANON__                      called by fhem.pl (4964)
2018.03.10 08:02:54 1:     main::FileWrite                     called by ./FHEM/95_Babble.pm (449)
2018.03.10 08:02:54 1:     main::Babble_save                   called by ./FHEM/95_Babble.pm (1705)
2018.03.10 08:02:54 1:     main::Babble_getplaces              called by ./FHEM/95_Babble.pm (1905)
2018.03.10 08:02:54 1:     main::Babble_Html                   called by (eval 550649) (1)
2018.03.10 08:02:54 1:     (eval)                              called by fhem.pl (1095)
2018.03.10 08:02:54 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.03.10 08:02:54 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1901)
2018.03.10 08:02:54 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1072)
2018.03.10 08:02:54 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (538)
2018.03.10 08:02:54 1:     main::FW_Read                       called by fhem.pl (3546)
2018.03.10 08:02:54 1:     main::CallFn                        called by fhem.pl (706)
2018.03.10 08:02:54 1: [Babble_save]
2018.03.10 08:02:54 1: PERL WARNING: Use of uninitialized value $l in print at fhem.pl line 4964.
2018.03.10 08:02:54 1: eval: {Babble_Html("babble")}
2018.03.10 08:02:54 1: stacktrace:
2018.03.10 08:02:54 1:     main::__ANON__                      called by fhem.pl (4964)
2018.03.10 08:02:54 1:     main::FileWrite                     called by ./FHEM/95_Babble.pm (449)
2018.03.10 08:02:54 1:     main::Babble_save                   called by ./FHEM/95_Babble.pm (1848)
2018.03.10 08:02:54 1:     main::Babble_getwords               called by ./FHEM/95_Babble.pm (1921)
2018.03.10 08:02:54 1:     main::Babble_Html                   called by (eval 550649) (1)
2018.03.10 08:02:54 1:     (eval)                              called by fhem.pl (1095)
2018.03.10 08:02:54 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.03.10 08:02:54 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1901)
2018.03.10 08:02:54 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1072)
2018.03.10 08:02:54 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (538)
2018.03.10 08:02:54 1:     main::FW_Read                       called by fhem.pl (3546)
2018.03.10 08:02:54 1:     main::CallFn                        called by fhem.pl (706)
2018.03.10 08:02:54 1: [Babble_save]
2018.03.10 08:02:54 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/95_Babble.pm line 1979.
2018.03.10 08:02:54 1: eval: {Babble_Html("babble")}
2018.03.10 08:02:54 1: stacktrace:
2018.03.10 08:02:54 1:     main::__ANON__                      called by ./FHEM/95_Babble.pm (1979)
2018.03.10 08:02:54 1:     main::Babble_Html                   called by (eval 550649) (1)
2018.03.10 08:02:54 1:     (eval)                              called by fhem.pl (1095)
2018.03.10 08:02:54 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.03.10 08:02:54 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1901)
2018.03.10 08:02:54 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1072)
2018.03.10 08:02:54 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (538)
2018.03.10 08:02:54 1:     main::FW_Read                       called by fhem.pl (3546)
2018.03.10 08:02:54 1:     main::CallFn                        called by fhem.pl (706)
2018.03.10 08:02:54 1: PERL WARNING: Use of uninitialized value $cmd in index at ./FHEM/95_Babble.pm line 2059.
2018.03.10 08:02:54 1: eval: {Babble_Html("babble")}
2018.03.10 08:02:54 1: stacktrace:
2018.03.10 08:02:54 1:     main::__ANON__                      called by ./FHEM/95_Babble.pm (2059)
2018.03.10 08:02:54 1:     main::Babble_Html                   called by (eval 550649) (1)
2018.03.10 08:02:54 1:     (eval)                              called by fhem.pl (1095)
2018.03.10 08:02:54 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.03.10 08:02:54 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1901)
2018.03.10 08:02:54 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1072)
2018.03.10 08:02:54 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (538)
2018.03.10 08:02:54 1:     main::FW_Read                       called by fhem.pl (3546)
2018.03.10 08:02:54 1:     main::CallFn                        called by fhem.pl (706)
2018.03.10 08:02:54 1: PERL WARNING: Use of uninitialized value $cmd in concatenation (.) or string at ./FHEM/95_Babble.pm line 2077.
2018.03.10 08:02:54 1: eval: {Babble_Html("babble")}
2018.03.10 08:02:54 1: stacktrace:
2018.03.10 08:02:54 1:     main::__ANON__                      called by ./FHEM/95_Babble.pm (2077)
2018.03.10 08:02:54 1:     main::Babble_Html                   called by (eval 550649) (1)
2018.03.10 08:02:54 1:     (eval)                              called by fhem.pl (1095)
2018.03.10 08:02:54 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.03.10 08:02:54 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1901)
2018.03.10 08:02:54 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1072)
2018.03.10 08:02:54 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (538)
2018.03.10 08:02:54 1:     main::FW_Read                       called by fhem.pl (3546)
2018.03.10 08:02:54 1:     main::CallFn                        called by fhem.pl (706)


mit file meinste das "bubblefile" direkt im fhem root?
das besteht aus 2 leeren zeilen
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 10 März 2018, 10:53:45
Zitatdas besteht aus 2 leeren zeilen

Ich habe gerade eine neue Version eingecheckt, die dieses Problem hoffentlich endgültig löst.

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Raemsna am 10 März 2018, 11:43:59
Hallo zusammen,

ich versuche mich gerade auch an dem Modul Babble.
kurze Frage dazu: Ist es möglich / vorgesehen, auch Resident Devices mit Babble zu steuern (oder löst man das über die Benutzeroberfläche)?

z.B. Tochter ist eingeschlafen / aufgewacht, usw.

Vielen Dank und Grüße
Raemsna
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: the ratman am 10 März 2018, 11:46:01
ZitatIch habe gerade eine neue Version eingecheckt, die dieses Problem hoffentlich endgültig löst.
dank dir, dann schaun ma morgen nach 8 uhr weiter *g*

btw. werbung in eigener sache: schon gelesen? https://forum.fhem.de/index.php/topic,85479.msg778627.html#msg778627
vielleicht interessierts dich ja ...
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 10 März 2018, 13:07:58
Zitatkurze Frage dazu: Ist es möglich / vorgesehen, auch Resident Devices mit Babble zu steuern (oder löst man das über die Benutzeroberfläche)?

Das geht über die Benutzungsoberfläche, und es ist prinzipiell alles Steuerbare zu bedienen.

Allerdings weiß ich nicht, was an
ZitatTochter ist eingeschlafen / aufgewacht
steuerbar wäre.

Bitte das Problem etwas genauer beschreiben.

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Raemsna am 10 März 2018, 15:21:16
Zitat von: Prof. Dr. Peter Henning am 10 März 2018, 13:07:58
Das geht über die Benutzungsoberfläche, und es ist prinzipiell alles Steuerbare zu bedienen.

Allerdings weiß ich nicht, was ansteuerbar wäre.

Bitte das Problem etwas genauer beschreiben.

LG

pah

Ich würde gerne per Sprachsteuerung wenn meine Tochter eingeschlafen ist ihren state im Resident Device auf "asleep" setzen, wenn sie dann wieder aufwacht auf "awoken". Dann wird im Modul Schlafdauer usw. per Reading festgehalten...

Grüße
Raemsna
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 10 März 2018, 17:05:10
Ganz einfach.

1. Möglichkeit: Direkt das Resident Device setzen.


2. Möglichkeit:  Dummy einrichten, der den Schlafzustand der Tochter beschreibt. Dieser Dummy wird über Babble geschaltet.

Dann ein Notify, welches bei einer Änderung des Dummy das Resident Device schaltet.


Die zweite Möglichkeit eröffnet ziemlich weit gehende Auswertefunktionalitäten, gleitende Mittelwerte etc. Darin kann ich mich zwar täuschen (weil ich das eigentlich nicht verwende) - aber ich denke, dass dies mit einem Dummy einfacher geht, als direkt mit Resident Device.

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Raemsna am 10 März 2018, 19:30:10
Hallo pah,

vielen Dank für die prompte Antwort.

Ich habs jetzt so versucht siehe Anhang.

Device wird gefunden, Verb und Status konfiguriert (eingeschlafen / aufgewacht), aber wenn ich als Test "Annelie ist eingeschlafen" eingebe, kommt "undefined"...

Danke nochmal für einen Hinweis (ich finde die Idee dieses Moduls einfach nur super und versuche mich einzuarbeiten) :)

Grüße
Raemsna

Edit: Folgendes kommt im Log:
[Babble_DoIt] Command ist.none.none.eingeschlafen/ undefined, reply =

Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 11 März 2018, 04:57:05
Nun ja, das ist ja keine Anweisung an FHEM - sondern eine nicht-imperative Zustandsbeschreibung. Ich muss mal überlegen, wie man so etwas in die Semantik einbaut.

Was funktioniert ist: "Setze Amelie auf eingeschlafen".

Dazu muss bei den Verben "setzen" mit Konjugation "setze" hinzugefügt werden.

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: the ratman am 11 März 2018, 10:50:27
schade ...
immer noch beim aufrufen des babble-raums2018.03.11 09:00:00 1: logfile wurde automatisch gelöscht
2018.03.11 10:48:03 1: [Babble_getdevs] No entry in command table under wetter for local FHEM device proplanta with attribute babbleDevice=wetter
2018.03.11 10:48:03 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/95_Babble.pm line 1978.
2018.03.11 10:48:03 1: eval: {Babble_Html("babble")}
2018.03.11 10:48:03 1: stacktrace:
2018.03.11 10:48:03 1:     main::__ANON__                      called by ./FHEM/95_Babble.pm (1978)
2018.03.11 10:48:03 1:     main::Babble_Html                   called by (eval 58764) (1)
2018.03.11 10:48:03 1:     (eval)                              called by fhem.pl (1095)
2018.03.11 10:48:03 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.03.11 10:48:03 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1901)
2018.03.11 10:48:03 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1072)
2018.03.11 10:48:03 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (538)
2018.03.11 10:48:03 1:     main::FW_Read                       called by fhem.pl (3546)
2018.03.11 10:48:03 1:     main::CallFn                        called by fhem.pl (706)
2018.03.11 10:48:03 1: PERL WARNING: Use of uninitialized value $cmd in index at ./FHEM/95_Babble.pm line 2058.
2018.03.11 10:48:03 1: eval: {Babble_Html("babble")}
2018.03.11 10:48:03 1: stacktrace:
2018.03.11 10:48:03 1:     main::__ANON__                      called by ./FHEM/95_Babble.pm (2058)
2018.03.11 10:48:03 1:     main::Babble_Html                   called by (eval 58764) (1)
2018.03.11 10:48:03 1:     (eval)                              called by fhem.pl (1095)
2018.03.11 10:48:03 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.03.11 10:48:03 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1901)
2018.03.11 10:48:03 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1072)
2018.03.11 10:48:03 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (538)
2018.03.11 10:48:03 1:     main::FW_Read                       called by fhem.pl (3546)
2018.03.11 10:48:03 1:     main::CallFn                        called by fhem.pl (706)
2018.03.11 10:48:03 1: PERL WARNING: Use of uninitialized value $cmd in concatenation (.) or string at ./FHEM/95_Babble.pm line 2076.
2018.03.11 10:48:03 1: eval: {Babble_Html("babble")}
2018.03.11 10:48:03 1: stacktrace:
2018.03.11 10:48:03 1:     main::__ANON__                      called by ./FHEM/95_Babble.pm (2076)
2018.03.11 10:48:03 1:     main::Babble_Html                   called by (eval 58764) (1)
2018.03.11 10:48:03 1:     (eval)                              called by fhem.pl (1095)
2018.03.11 10:48:03 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.03.11 10:48:03 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1901)
2018.03.11 10:48:03 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1072)
2018.03.11 10:48:03 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (538)
2018.03.11 10:48:03 1:     main::FW_Read                       called by fhem.pl (3546)
2018.03.11 10:48:03 1:     main::CallFn                        called by fhem.pl (706)
2018.03.11 10:48:03 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/95_Babble.pm line 1978.
2018.03.11 10:48:03 1: eval: {Babble_Html("babble")}
2018.03.11 10:48:03 1: stacktrace:
2018.03.11 10:48:03 1:     main::__ANON__                      called by ./FHEM/95_Babble.pm (1978)
2018.03.11 10:48:03 1:     main::Babble_Html                   called by (eval 58766) (1)
2018.03.11 10:48:03 1:     (eval)                              called by fhem.pl (1095)
2018.03.11 10:48:03 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.03.11 10:48:03 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1901)
2018.03.11 10:48:03 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1072)
2018.03.11 10:48:03 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (538)
2018.03.11 10:48:03 1:     main::FW_Read                       called by fhem.pl (3546)
2018.03.11 10:48:03 1:     main::CallFn                        called by fhem.pl (706)
2018.03.11 10:48:03 1: PERL WARNING: Use of uninitialized value $cmd in index at ./FHEM/95_Babble.pm line 2058.
2018.03.11 10:48:03 1: eval: {Babble_Html("babble")}
2018.03.11 10:48:03 1: stacktrace:
2018.03.11 10:48:03 1:     main::__ANON__                      called by ./FHEM/95_Babble.pm (2058)
2018.03.11 10:48:03 1:     main::Babble_Html                   called by (eval 58766) (1)
2018.03.11 10:48:03 1:     (eval)                              called by fhem.pl (1095)
2018.03.11 10:48:03 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.03.11 10:48:03 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1901)
2018.03.11 10:48:03 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1072)
2018.03.11 10:48:03 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (538)
2018.03.11 10:48:03 1:     main::FW_Read                       called by fhem.pl (3546)
2018.03.11 10:48:03 1:     main::CallFn                        called by fhem.pl (706)
2018.03.11 10:48:03 1: PERL WARNING: Use of uninitialized value $cmd in concatenation (.) or string at ./FHEM/95_Babble.pm line 2076.
2018.03.11 10:48:03 1: eval: {Babble_Html("babble")}
2018.03.11 10:48:03 1: stacktrace:
2018.03.11 10:48:03 1:     main::__ANON__                      called by ./FHEM/95_Babble.pm (2076)
2018.03.11 10:48:03 1:     main::Babble_Html                   called by (eval 58766) (1)
2018.03.11 10:48:03 1:     (eval)                              called by fhem.pl (1095)
2018.03.11 10:48:03 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.03.11 10:48:03 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1901)
2018.03.11 10:48:03 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1072)
2018.03.11 10:48:03 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (538)
2018.03.11 10:48:03 1:     main::FW_Read                       called by fhem.pl (3546)
2018.03.11 10:48:03 1:     main::CallFn                        called by fhem.pl (706)
das file ist auch noch mit 2 leer zeilen. die rechte des files passen übrigens.


nachtrag:
trage ich mal für wetter was ein, kommt beim aufruf nur mehr2018.03.11 10:53:08 1: logfile wurde von hand gelöscht
2018.03.11 10:53:12 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/95_Babble.pm line 1978.
2018.03.11 10:53:12 1: eval: {Babble_Html("babble")}
2018.03.11 10:53:12 1: stacktrace:
2018.03.11 10:53:12 1:     main::__ANON__                      called by ./FHEM/95_Babble.pm (1978)
2018.03.11 10:53:12 1:     main::Babble_Html                   called by (eval 61127) (1)
2018.03.11 10:53:12 1:     (eval)                              called by fhem.pl (1095)
2018.03.11 10:53:12 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.03.11 10:53:12 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1901)
2018.03.11 10:53:12 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1072)
2018.03.11 10:53:12 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (538)
2018.03.11 10:53:12 1:     main::FW_Read                       called by fhem.pl (3546)
2018.03.11 10:53:12 1:     main::CallFn                        called by fhem.pl (706)
2018.03.11 10:53:12 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/95_Babble.pm line 1978.
2018.03.11 10:53:12 1: eval: {Babble_Html("babble")}
2018.03.11 10:53:12 1: stacktrace:
2018.03.11 10:53:12 1:     main::__ANON__                      called by ./FHEM/95_Babble.pm (1978)
2018.03.11 10:53:12 1:     main::Babble_Html                   called by (eval 61129) (1)
2018.03.11 10:53:12 1:     (eval)                              called by fhem.pl (1095)
2018.03.11 10:53:12 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.03.11 10:53:12 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1901)
2018.03.11 10:53:12 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1072)
2018.03.11 10:53:12 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (538)
2018.03.11 10:53:12 1:     main::FW_Read                       called by fhem.pl (3546)
2018.03.11 10:53:12 1:     main::CallFn                        called by fhem.pl (706)
nu hat der onkel auch mal das file gefüllt ... es wird ...
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: the ratman am 13 März 2018, 11:29:09
ach, ich seh grad, seit dem letzten update kommt wieder2018.03.13 11:26:17 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/95_Babble.pm line 1978.
2018.03.13 11:26:17 1: eval: {Babble_Html("babble")}
2018.03.13 11:26:17 1: stacktrace:
2018.03.13 11:26:17 1:     main::__ANON__                      called by ./FHEM/95_Babble.pm (1978)
2018.03.13 11:26:17 1:     main::Babble_Html                   called by (eval 88627) (1)
2018.03.13 11:26:17 1:     (eval)                              called by fhem.pl (1095)
2018.03.13 11:26:17 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.03.13 11:26:17 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1901)
2018.03.13 11:26:17 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1072)
2018.03.13 11:26:17 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (538)
2018.03.13 11:26:17 1:     main::FW_Read                       called by fhem.pl (3546)
2018.03.13 11:26:17 1:     main::CallFn                        called by fhem.pl (706)
2018.03.13 11:26:17 1: PERL WARNING: Use of uninitialized value $cmd in index at ./FHEM/95_Babble.pm line 2058.
2018.03.13 11:26:17 1: eval: {Babble_Html("babble")}
2018.03.13 11:26:17 1: stacktrace:
2018.03.13 11:26:17 1:     main::__ANON__                      called by ./FHEM/95_Babble.pm (2058)
2018.03.13 11:26:17 1:     main::Babble_Html                   called by (eval 88627) (1)
2018.03.13 11:26:17 1:     (eval)                              called by fhem.pl (1095)
2018.03.13 11:26:17 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.03.13 11:26:17 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1901)
2018.03.13 11:26:17 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1072)
2018.03.13 11:26:17 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (538)
2018.03.13 11:26:17 1:     main::FW_Read                       called by fhem.pl (3546)
2018.03.13 11:26:17 1:     main::CallFn                        called by fhem.pl (706)
2018.03.13 11:26:17 1: PERL WARNING: Use of uninitialized value $cmd in concatenation (.) or string at ./FHEM/95_Babble.pm line 2076.
2018.03.13 11:26:17 1: eval: {Babble_Html("babble")}
2018.03.13 11:26:17 1: stacktrace:
2018.03.13 11:26:17 1:     main::__ANON__                      called by ./FHEM/95_Babble.pm (2076)
2018.03.13 11:26:17 1:     main::Babble_Html                   called by (eval 88627) (1)
2018.03.13 11:26:17 1:     (eval)                              called by fhem.pl (1095)
2018.03.13 11:26:17 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.03.13 11:26:17 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1901)
2018.03.13 11:26:17 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1072)
2018.03.13 11:26:17 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (538)
2018.03.13 11:26:17 1:     main::FW_Read                       called by fhem.pl (3546)
2018.03.13 11:26:17 1:     main::CallFn                        called by fhem.pl (706)
2018.03.13 11:26:17 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/95_Babble.pm line 1978.
2018.03.13 11:26:17 1: eval: {Babble_Html("babble")}
2018.03.13 11:26:17 1: stacktrace:
2018.03.13 11:26:17 1:     main::__ANON__                      called by ./FHEM/95_Babble.pm (1978)
2018.03.13 11:26:17 1:     main::Babble_Html                   called by (eval 88631) (1)
2018.03.13 11:26:17 1:     (eval)                              called by fhem.pl (1095)
2018.03.13 11:26:17 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.03.13 11:26:17 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1901)
2018.03.13 11:26:17 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1072)
2018.03.13 11:26:17 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (538)
2018.03.13 11:26:17 1:     main::FW_Read                       called by fhem.pl (3546)
2018.03.13 11:26:17 1:     main::CallFn                        called by fhem.pl (706)
2018.03.13 11:26:17 1: PERL WARNING: Use of uninitialized value $cmd in index at ./FHEM/95_Babble.pm line 2058.
2018.03.13 11:26:17 1: eval: {Babble_Html("babble")}
2018.03.13 11:26:17 1: stacktrace:
2018.03.13 11:26:17 1:     main::__ANON__                      called by ./FHEM/95_Babble.pm (2058)
2018.03.13 11:26:17 1:     main::Babble_Html                   called by (eval 88631) (1)
2018.03.13 11:26:17 1:     (eval)                              called by fhem.pl (1095)
2018.03.13 11:26:17 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.03.13 11:26:17 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1901)
2018.03.13 11:26:17 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1072)
2018.03.13 11:26:17 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (538)
2018.03.13 11:26:17 1:     main::FW_Read                       called by fhem.pl (3546)
2018.03.13 11:26:17 1:     main::CallFn                        called by fhem.pl (706)
2018.03.13 11:26:17 1: PERL WARNING: Use of uninitialized value $cmd in concatenation (.) or string at ./FHEM/95_Babble.pm line 2076.
2018.03.13 11:26:17 1: eval: {Babble_Html("babble")}
2018.03.13 11:26:17 1: stacktrace:
2018.03.13 11:26:17 1:     main::__ANON__                      called by ./FHEM/95_Babble.pm (2076)
2018.03.13 11:26:17 1:     main::Babble_Html                   called by (eval 88631) (1)
2018.03.13 11:26:17 1:     (eval)                              called by fhem.pl (1095)
2018.03.13 11:26:17 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (99)
2018.03.13 11:26:17 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (1901)
2018.03.13 11:26:17 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1072)
2018.03.13 11:26:17 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (538)
2018.03.13 11:26:17 1:     main::FW_Read                       called by fhem.pl (3546)
2018.03.13 11:26:17 1:     main::CallFn                        called by fhem.pl (706)
wenn ich in den babble-raum gehe
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 13 März 2018, 11:59:44
Die Meldung aus Zeile 2076 kommet daher, dass ein Schaltkommando undefiniert ist.

Ich habe gerade Babble Version 1.33 eingecheckt, darin wird dieser Fehler abgefangen.

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Raemsna am 13 März 2018, 19:03:07
Zitat von: Prof. Dr. Peter Henning am 11 März 2018, 04:57:05
Nun ja, das ist ja keine Anweisung an FHEM - sondern eine nicht-imperative Zustandsbeschreibung. Ich muss mal überlegen, wie man so etwas in die Semantik einbaut.

Was funktioniert ist: "Setze Amelie auf eingeschlafen".

Dazu muss bei den Verben "setzen" mit Konjugation "setze" hinzugefügt werden.

LG

pah

Hallo pah,

das hab ich direkt mal ausprobiert. Geht mit den folgenden Einstellungen leider auch nicht:


babbleArticles
der die das den des dem zur

babblePlaces
1

babblePrepos
von vom des der in im auf bei am

babbleQuests
wie wo wann

babbleStatus
Status Wert Wetter Zeit

babbleTimes
heute morgen übermorgen nacht

babbleVerbParts
zu ent wider ein an aus ab um eingeschlafen aufgewacht

babbleVerbs
schalt,schalte:schalten ist:sein bin: sind: bin: bist: ist: seid: sind: setze:setzen gib:geben


Folgendes funktioniert nicht:

"Setze Tochter auf aufgewacht"
==> [Babble_DoIt] Command tochter.none.setzen.auf/aufgewacht undefined


Folgendes funktioniert:

"Setze Tochter aufgewacht"


Danke und Grüße
Raemsna
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 14 März 2018, 04:57:20
eingschlafen und aufgewacht sind auch keine Verbenteile=VerbParts.

Sondern
schlafen mit den Konjugationen schlafe, geschlafen
wachen mit den Konjugationen wache, gewacht

sind Verben=Verbs.in, auf

Allerdings ist das gar nicht nötig, weil "aufgewacht" oder "eingeschlafen" schon als Zustand erkannt werden. Es reicht vollkommen aus, eingeschlafen und aufgewacht aus den VerbParts herauszunehmen.


Der Satz "stelle Tochter auf XXX" wird dann erkannt mit device=Tochter, verb=stellen, target=auf, value=XXX. Man muss also für diese Kombination nur als Kommando definieren
set Amelie $VALUE
oder z.B.
{fhem('set Amelie '.(('$VALUE' eq 'eingeschlafen')?'asleep':'awake'))}


LG

pah


LG
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Raemsna am 14 März 2018, 20:10:32
Zitat von: Prof. Dr. Peter Henning am 14 März 2018, 04:57:20
eingschlafen und aufgewacht sind auch keine Verbenteile=VerbParts.

Sondern
schlafen mit den Konjugationen schlafe, geschlafen
wachen mit den Konjugationen wache, gewacht

sind Verben=Verbs.in, auf

Allerdings ist das gar nicht nötig, weil "aufgewacht" oder "eingeschlafen" schon als Zustand erkannt werden. Es reicht vollkommen aus, eingeschlafen und aufgewacht aus den VerbParts herauszunehmen.


Der Satz "stelle Tochter auf XXX" wird dann erkannt mit device=Tochter, verb=stellen, target=auf, value=XXX. Man muss also für diese Kombination nur als Kommando definieren
set Amelie $VALUE
oder z.B.
{fhem('set Amelie '.(('$VALUE' eq 'eingeschlafen')?'asleep':'awake'))}


LG

pah


LG

Hallo pah,

jetzt hab ichs verstanden! :)
Funktioniert einwandfrei und schlauer bin ich auch! Vielen Dank dafür!!! :D

Grüße
Raemsna
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: kilderman am 28 April 2018, 11:33:55
Hallo pah,

zuerst einmal herzlichen Dank für dein Modul.

Ich habe entsprechend deiner im Wiki eingestellten Beispiele ein bisschen damit herumgebastelt. Nun möchte ich gerne zwei unterschiedliche Wetterstandorte (Wohnen, Garten) in die Babble-Geräteliste aufnehmen. Daher habe ich im jeweiligen Wettermodul das Babbledevice mit dem Stadtnamen bezeichnet. Wenn ich nun im Babble-Test folgendes ausführe
wie wird das wetter heute bonn
erhalte ich die gewünschte Antwort
Ergebnis: Category=2.2.7: Gerät=bonn Ort=wetter Verb=sagen Ziel=status / heute==> {speak($PARM0,''.heute.' wird es bis '.ReadingsVal('moProplantaBonn','fc'.(('heute' eq 'übermorgen')?'2':(('heute' eq 'morgen')?'1':'0')).'_tempMax',' ').' Grad und '.ReadingsVal('moProplantaBonn','fc'.(('heute' eq 'übermorgen')?'2':(('heute' eq 'morgen')?'1':'0')).'_weatherDay',' ').'! ')}

Wenn ich nun aber dieselbe Frage, nur mit einer Präposition, stelle
wie wird das wetter heute in bonn
erhalte ich leider
Ergebnis: Category=2.2.6: Gerät=bonn Ort=wetter Verb=sagen Ziel=in / heute {speak('$PARM0','Es tut mir leid, das habe ich nicht verstanden')}
Schade...

Gibt es eine Möglichkeit, dass die Präposition 'in' nur als solche gewertet wird und das Ziel weiterhin 'heute' bleibt? Vielleicht habe ich bisher auch nur noch etwas vergessen?

Zur Vollständigkeit, falls erforderlich, noch das List von 'Babble'

Internals:
   NAME       Babble
   NR         822
   STATE      Initialized
   TYPE       Babble
   VERSION    1.35
   DATA:
     re_articles ((der)|(die)|(das)|(den)|(des)|(dem)|(zur))
     re_devs    ((temperatur_1)|(licht_4)|(licht_3)|(bonn))
     re_ids     ((hallo))
     re_places  ((flur)|(studio)|(arbeitszimmer)|(kinderzimmer)|(küche)|(wohnzimmer)|(keller)|(garage)|(garten)|(kalender)|(wetter))
     re_prepos  ((von)|(vom)|(des)|(der)|(in)|(im)|(auf)|(bei)|(am))
     re_quests  ((wie)|(wo)|(wann)|(welche)|(welches)|(welcher))
     re_status  ((status)|(wert)|(wetter)|(zeit))
     re_times   ((heute)|(morgen)|(übermorgen)|(nacht))
     re_verbparts ((zu)|(auf)|(ent)|(wider)|(ein)|(an)|(aus)|(ab)|(um))
     re_verbsc  ((mache)|(schließ)|(sag)|(öffnen)|(�ffnen)|(machen)|(sage)|(schalte)|(machs)|(schlie�e)|(�ffne)|(schlie�)|(schließe)|(schalt)|(öffne)|(schlie�en)|(schließen)|(mach)|(schalten)|(sagen))
     re_verbsi  (?P<verbsi>(schalten)|(machen)|(öffnen)|(schließen)|(sagen))
     re_writes  ((status)|(wert)|(wetter)|(zeit))
     savedate   2018-04-28 10:50:48
     articles:
       der
       die
       das
       den
       des
       dem
       zur
     command:
       bonn:
         wetter:
           sagen:
             status     {speak($PARM0,''.$VALUE.' wird es bis '.ReadingsVal('moProplantaBonn','fc'.(('$VALUE' eq 'übermorgen')?'2':(('$VALUE' eq 'morgen')?'1':'0')).'_tempMax',' ').' Grad und '.ReadingsVal('moProplantaBonn','fc'.(('$VALUE' eq 'übermorgen')?'2':(('$VALUE' eq 'morgen')?'1':'0')).'_weatherDay',' ').'! ')};;$CONFIRM
             wetter     {speak($PARM0,''.$VALUE.' wird es bis '.ReadingsVal('moProplantaBonn','fc'.(('$VALUE' eq 'übermorgen')?'2':(('$VALUE' eq 'morgen')?'1':'0')).'_tempMax',' ').' Grad und '.ReadingsVal('moProplantaBonn','fc'.(('$VALUE' eq 'übermorgen')?'2':(('$VALUE' eq 'morgen')?'1':'0')).'_weatherDay',' ').'! ')};;$CONFIRM
...
     devcontacts:
       bonn:
         Bonn
         moProplantaBonn
         0
...
     devs:
...
       Bonn
     devsalias:
       bonn:
         3
       remagen:
         1
...
     help:
       bonn       Bitte sprich: Wie wird das Wetter in Bonn, gefolgt von heute, morgen oder �bermorgen
...
     places:
       Flur
       Studio
       Arbeitszimmer
       Kinderzimmer
       Küche
       Wohnzimmer
       Keller
       Garage
       Garten
       Kalender
       Wetter
     prepos:
       von
       vom
       des
       der
       in
       im
       auf
       bei
       am
     quests:
       wie
       wo
       wann
       welche
       welches
       welcher
     rooms:
       Flur
       Studio
       Arbeitszimmer
       Kinderzimmer
       Küche
       Wohnzimmer
       Keller
       Garage
       Garten
       Kalender
       Wetter
     splaces:
     status:
       Status
       Wert
       Wetter
       Zeit
     times:
       heute
       morgen
       übermorgen
       nacht
     verbparts:
       zu
       auf
       ent
       wider
       ein
       an
       aus
       ab
       um
     verbs:
       mach       machen
       mache      machen
       machen     machen
       machs      machen
       sag        sagen
       sage       sagen
       sagen      sagen
       schalt     schalten
       schalte    schalten
       schalten   schalten
       schließ   schließen
       schließe  schließen
       schließen schließen
       schlie�    schlie�en
       schlie�e   schlie�en
       schlie�en  schlie�en
       öffne     öffnen
       öffnen    öffnen
       �ffne      �ffnen
       �ffnen     �ffnen
     verbsi:
       schalten
       machen
       öffnen
       schließen
       sagen
     verbsicc:
       ARRAY(0x562e7e2f3298)
       ARRAY(0x562e7e2f3310)
       ARRAY(0x562e7e2f3070)
       ARRAY(0x562e7e2f30e8)
       ARRAY(0x562e7e2f3148)
     writes:
       Status
       Wert
       Wetter
       Zeit
   READINGS:
     2018-04-10 19:07:26   lockstate       0
     2018-04-28 10:50:48   savedate        2018-04-28 10:50:48
     2018-04-28 09:56:08   state           Initialized
Attributes:
   babbleArticles der die das den des dem zur
   babbleNotPlaces Allgemeines Duofern EnOcean DBLog Nachrichten Logiken Everything
   babblePrepos von vom des der in im auf bei am
   babbleQuests wie wo wann welche welches welcher
   babbleStatus Status Wert Wetter Zeit
   babbleTimes heute morgen übermorgen nacht
   babbleVerbParts zu auf ent wider ein an aus ab um
   babbleVerbs schalt,schalte:schalten mach,mache:machen öffne:öffnen schließe,schließ:schließen sag,sage:sagen
   babbleWrites ändern hinzufügen löschen sagen senden setzen
   confirmFunc {speak('$PARM0','OK')}
   helpFunc   {speak('$PARM0','$HELP')}
   room       babbleRoom
   verbose    3


Nun kommt mir noch eine weitere Frage. Wäre es auch möglich, zu fragen 'Wie kalt/warm/heiß wird es heute in bonn'' bzw. "Wie kalt/warm/heiß ist es in der Küche"? Die Antwort dazu (wie warm wird es heute in Bonn) lautet gerade
Ergebnis: Category=2.2.6: Gerät=es Ort=none Verb=sagen Ziel=wird / {speak('$PARM0','Es tut mir leid, das habe ich nicht verstanden')}

Vielen Dank für deine Mühen und viele Grüße aus Bonn
Marco
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 28 April 2018, 13:26:31
Es ist ein wenig unbedacht, "bonn" unter die Devices aufzunehmen - das ist immer noch ein Ort.

Ebensowenig wie "warm" eine Größe ist.

Alle Orte also bitte unter Places einstellen - auch Garten.

Dann ein Device definieren - kann ein Dummy sein - mit babbleName "temperatur".

Und dann im Babble-Frontend für das Babble-Device "temperatur" jeweils Zeilen definieren

Bonn - sagen - Status => Und ein FHEM-Kommando, welches diese Angabe liefert
Garten - sagen - Status  => Und ein FHEM-Kommando, welches diese Angabe liefert

Dann werden Sätze erkannt wie

Wie ist die Temperatur in Bonn

Wie ist die Temperatur im Garten

"temperatur": {
            "arbeitszimmer": {"sagen": {"status": "{speak('$PARM0','Die Temperatur im Arbeitszimmer beträgt '.ReadingsVal('tempProfileC','AZ.T','').' Grad')}"}},
            "außen": {"sagen": {"status": "{speak('$PARM0','Die Außenemperatur beträgt '.ReadingsVal('climateProfileC','A.T','').' Grad')}"}},
            "badezimmer": {"sagen": {"status": "{speak('$PARM0','Die Temperatur im Badezimmer beträgt '.ReadingsVal('tempProfileC','BZ.T','').' Grad')}"}},
            "bibliothek": {"sagen": {"status": "{speak('$PARM0','Die Temperatur in der Bibliothek beträgt '.ReadingsVal('tempProfileC','BI.T','').' Grad')}"}},
            "dominics_zimmer": {"sagen": {"status": "{speak('$PARM0','Die Temperatur in Dominiks Zimmer beträgt '.ReadingsVal('tempProfileC','DZ.T','').' Grad')}"}},
            "garderobe": {"sagen": {"status": "{speak('$PARM0','Die Temperatur in der Garderobe beträgt '.ReadingsVal('tempProfileC','EB.T','').' Grad')}"}},
            "gästebad": {"sagen": {"status": "{speak('$PARM0','Die Temperatur im Gästebad beträgt '.ReadingsVal('tempProfileC','GB.T','').' Grad')}"}},
            "gästezimmer": {"sagen": {"status": "{speak('$PARM0','Die Temperatur im Gästezimmer beträgt '.ReadingsVal('tempProfileC','GZ.T','').' Grad')}"}},
            "kellerbad": {"sagen": {"status": "{speak('$PARM0','Die Temperatur im Kellerbad beträgt '.ReadingsVal('tempProfileC','BK.T','').' Grad')}"}},
            "schlafzimmer": {"sagen": {"status": "{speak('$PARM0','Die Temperatur im Schlafzimmer beträgt '.ReadingsVal('tempProfileC','SZ.T','').' Grad')}"}},
            "vorratskeller": {"sagen": {"status": "{speak('$PARM0','Die Temperatur im Vorratskeller beträgt '.ReadingsVal('tempProfileC','VK.T','').' Grad')}"}},
            "werkstattkeller": {"sagen": {"status": "{speak('$PARM0','Die Temperatur im Werkstattkeller beträgt '.ReadingsVal('tempProfileC','WK.T','').' Grad')}"}},
            "wohnzimmer": {"sagen": {"status": "{speak('$PARM0','Die Temperatur im Wohnzimmer beträgt '.ReadingsVal('tempProfileC','WZ.T','').' Grad')}"}}
        },



Oder z.B. wie ist die Feuchte Außen

  "feuchte": {
            "außen": {"sagen": {"status": "{speak('$PARM0','Die Feuchte im Außenbereich beträgt '.ReadingsVal('climateProfileC','A.rH','').' Prozent')}"}},
            "badezimmer": {"sagen": {"status": "{speak('$PARM0','Die Feuchte im Badezimmer beträgt '.ReadingsVal('humProfileC','BZ.rH','').' Prozent')}"}},
            "dominics_zimmer": {"sagen": {"status": "{speak('$PARM0','Die Feuchte in Dominics Zimmer beträgt '.ReadingsVal('humProfileC','DZ.rH','').' Prozent')}"}},
            "kellerbad": {"sagen": {"status": "{speak('$PARM0','Die Feuchte im Kellerbad beträgt '.ReadingsVal('humProfileC','BK.rH','').' Prozent')}"}},
            "schlafzimmer": {"sagen": {"status": "{speak('$PARM0','Die Feuchte im Schlafzimmer beträgt '.ReadingsVal('humProfileC','SZ.rH','').' Prozent')}"}},
            "vorratskeller": {"sagen": {"status": "{speak('$PARM0','Die Feuchte im Vorratskeller beträgt '.ReadingsVal('humProfileC','VK.rH','').' Prozent')}"}},
            "werkstattkeller": {"sagen": {"status": "{speak('$PARM0','Die Feuchte im Werkstattkeller beträgt '.ReadingsVal('humProfileC','WK.rH','').' Prozent')}"}},
            "wohnzimmer": {"sagen": {"status": "{speak('$PARM0','Die Feuchte im Wohnzimmer beträgt '.ReadingsVal('humProfileC','WZ.rH','').' Prozent')}"}}
        },


LG

Merke: "Ziel" ist ein Zielwert für die Einstellung. Bei Abfragen lässt man das leer, oder fragt nach dem Status

  "wetter": {"none": {"sagen": {
            "none": "{speak('$PARM0',ReadingsVal('wunderground',(('$VALUE' eq 'heute')?'fc0':(('$VALUE' eq 'morgen')?'fc1':'fc2')).'_message',''))}",
            "status": "{speak('$PARM0',ReadingsVal('wunderground',(('$VALUE' eq 'heute')?'fc0':(('$VALUE' eq 'morgen')?'fc1':'fc2')).'_message',''))}",
            "wetter": "{speak('$PARM0',ReadingsVal('wunderground',(('$VALUE' eq 'heute')?'fc0':(('$VALUE' eq 'morgen')?'fc1':'fc2')).'_message',''))}"
        }}},


pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: milode am 10 Mai 2018, 13:11:29
Hallo zusammen,
ich versuche gerade mit dem Modul Babble zu experimentieren. Leider scheitere ich bereits an der Bedienung der Oberfläche.
beim Löschen eine Zeile bekomme ich folgende Fehlermeldung:
2018.05.10 12:15:39 1: ERROR evaluating {Babble_RemCmd("MyBabble","Wetter","","sagen","Status")}: Not enough arguments for main::Babble_RemCmd at (eval 4580) line 1, near ""Status")"

hier meine Umgebung:

Browser: Firefox 60.0, Chrome 66.0.3359.139, aktueller Edge
$Id: 95_Babble.pm 16665 2018-04-27 13:28:29Z phenning $
/opt/fhem/www/pgm2/babble.js: Version 1.25
Details zur Definition von MyBabble Device siehe unten
Meine Perl Version: v5.26.0



Habe in babble.js, in function babble_remrow(name, devx, rowx)
(bei mir Zeile 234)    cmd = '{Babble_RemCmd("' + name + '","' + bdev + '","' + place + '","' + verb + '","' + target + '")}'; ##-> 5 Parameter?
gefunden.
In  95_Babble.pm wartet anscheinend die sub Babble_RemCmd($$$$$$) auf 6 Parameter.

Frage: Habe ich die richtigen/passenden Versionen von 95_Babble.pm und babble.js?

Sorry wenn ich falsch liege, bin leider nur copy&paste möchte-gern-Hobby-Programmierer.

Vielen Dank und viele Grüße
Michael

Internals:
   CFGFN     
   CHANGED   
   NAME       MyBabble
   NR         1974
   STATE      Initialized
   TYPE       Babble
   VERSION    1.35
   DATA:
     commands   
     re_articles ((der)|(die)|(das)|(den)|(des)|(dem)|(zur))
     re_devs    ((wetter))
     re_ids     ((hallo))
     re_places  ((100_overview)|(150_alarmanlage)|(200_system_overview)|(250_music)|(300_camera)|(300_doorbird)|(300_hikvision)|(300_instar)|(300_syn_surveillance)|(400_weather_plots)|(401_weather_plots_l)|(402_weather_statis)|(420_roomtemp_plots)|(500_fhem)|(500_fritzbox)|(510_anwesenheit)|(600_heizung)|(605_stromzaehler)|(610_tv)|(620_wetter)|(630_gewaechshaus)|(800_wartung)|(810_akku_status)|(820_system_details)|(830_wasser)|(855_telegram)|(860_text2speech)|(900_hue)|(900_owdevice)|(910_cul_0_fht)|(920_cul_0_fhttk)|(930_cul_1_hm(s))|(940_cul_2_trx)|(950_cul_3_max)|(960_plcbus)|(970_eth-rly16)|(980_mqtt)|(990_raspi_sensors)|(991_raspi)|(995_tabletmode)|(999_messages))
     re_prepos  ((von)|(vom)|(des)|(der)|(in)|(im)|(auf)|(bei)|(am))
     re_quests  ((wie)|(wo)|(wann))
     re_status  ((status)|(wert)|(wetter)|(zeit))
     re_times   ((heute)|(morgen)|(übermorgen)|(nacht))
     re_verbparts ((zu)|(auf)|(ent)|(wider)|(ein)|(an)|(aus)|(ab)|(um))
     re_verbsc  ((sagen)|(schalt)|(schalten)|(schalte))
     re_verbsi  (?P<verbsi>(schalten)|(sagen))
     re_writes  ((status)|(wert)|(wetter)|(zeit))
     savedate   2018-05-08 21:46:49
     articles:
       der
       die
       das
       den
       des
       dem
       zur
     command:
       wetter:
         610_tv:
           sagen:
         dorfen:
           sagen:
             status     set Babble_test_dummy München
             wetter     set Babble_test_dummy München
         münchen:
           sagen:
             wetter     set Babble_test_dummy München
         status:
           sagen:
     devcontacts:
       wetter:
         Wetter
         Wettervorhersage_for_TTS_dummy
         0
     devs:
       Wetter
     devsalias:
       wetter:
         0
     help:
       wetter     Please speak: Wetter, followed by
       wetter_1   Please speak: Wetter, followed by a place specification, followed by
       wettervorhersage Please speak: Wettervorhersage, followed by
     places:
       100_Overview
       150_Alarmanlage
       200_System_Overview
       250_Music
       300_Syn_Surveillance
       400_Weather_Plots
       420_RoomTemp_Plots
       500_FHEM
       500_Fritzbox
       510_Anwesenheit
       600_Heizung
       605_StromZaehler
       610_TV
       620_WETTER
       630_GewaechsHaus
       800_WARTUNG
       810_Akku_Status
       820_SYSTEM_Details
       830_WASSER
       855_Telegram
       860_Text2Speech
       900_Hue
       900_OWDevice
       910_CUL_0_FHT
       920_CUL_0_FHTTK
       930_CUL_1_HM(S)
       940_CUL_2_TRX
       950_CUL_3_MAX
       970_ETH-RLY16
       980_MQTT
       990_RasPi_Sensors
       995_TabletMode
       999_MESSAGES
     prepos:
       von
       vom
       des
       der
       in
       im
       auf
       bei
       am
     quests:
       wie
       wo
       wann
     rooms:
       100_Overview
       150_Alarmanlage
       200_System_Overview
       250_Music
       300_Camera
       300_DoorBird
       300_HikVision
       300_INSTAR
       300_Syn_Surveillance
       400_Weather_Plots
       401_Weather_Plots_L
       402_Weather_Statis
       420_RoomTemp_Plots
       500_FHEM
       500_Fritzbox
       510_Anwesenheit
       600_Heizung
       605_StromZaehler
       610_TV
       620_WETTER
       630_GewaechsHaus
       800_WARTUNG
       810_Akku_Status
       820_SYSTEM_Details
       830_WASSER
       855_Telegram
       860_Text2Speech
       900_Hue
       900_OWDevice
       910_CUL_0_FHT
       920_CUL_0_FHTTK
       930_CUL_1_HM(S)
       940_CUL_2_TRX
       950_CUL_3_MAX
       960_PLCBUS
       970_ETH-RLY16
       980_MQTT
       990_RasPi_Sensors
       991_RasPi
       995_TabletMode
       999_MESSAGES
       CUL_TX
       FS20
       OWDevice
       TRX_WEATHER
     splaces:
     status:
       Status
       Wert
       Wetter
       Zeit
     times:
       heute
       morgen
       übermorgen
       nacht
     verbparts:
       zu
       auf
       ent
       wider
       ein
       an
       aus
       ab
       um
     verbs:
       sagen      sagen
       schalt     schalten
       schalte    schalten
       schalten   schalten
     verbsi:
       schalten
       sagen
     verbsicc:
       ARRAY(0x55567e38c300)
       ARRAY(0x55567e5da2f0)
     writes:
       Status
       Wert
       Wetter
       Zeit
   READINGS:
     2018-05-10 12:11:27   lockstate       0
     2018-05-10 12:00:02   savedate        2018-05-08 21:46:49
     2018-05-10 12:00:02   state           Initialized
Attributes:
   DbLogExclude 1
   babbleArticles der die das den des dem zur
   babblePrepos von vom des der in im auf bei am
   babbleQuests wie wo wann
   babbleStatus Status Wert Wetter Zeit
   babbleTimes heute morgen übermorgen nacht
   babbleVerbParts zu auf ent wider ein an aus ab um
   babbleVerbs schalt,schalte:schalten
   babbleWrites setzen ändern löschen
   noChatBot  1
   room       babbleRoom
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 10 Mai 2018, 14:12:51
ZitatHabe ich die richtigen/passenden Versionen von 95_Babble.pm und babble.js?
Nein. Aktuelle Version von babble.js ist 1.4, siehe Anhang.

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: milode am 10 Mai 2018, 15:25:19
Danke!
jetzt funktioniert es.

Viele Grüße
Michael
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 10 Mai 2018, 16:57:17
Natürlich - was denn sonst ?  ::)

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Neuhier am 12 August 2018, 22:41:55
2018.08.12 22:34:48 1: [Babble_DoIt] Command ..none.none/ undefined, reply = Es tut mir leid, das habe ich nicht verstanden
Im Test habe ich eingegeben:
Vent0 Steuerung schalten aus

In der Zeile unter dem Device steht:
Steuerung | schalten | aus | set Vent0 off

Bekomme aber nur "undefined" als Ausgabe.

Ähnliche Log-Einträge kommen, egal, in welcher Reihenfolge ich den Teststring eingebe.
Es steht immer mindestens einmal "none" darin.


Edit: habe den "Fehler" gefunden.
Der Hilfetext Bitte sprich: Vent0, gefolgt von ist zu 100% irreführend, denn es muß so eingegeben werden:
schalte Steuerung Vent0 aus
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 18 August 2018, 11:36:26
Der Hilfetext ist keineswegs "irreführend". Das Babble-Device kann nur entweder Vent0 oder Steuerung heißen - das zusätzliche Substantiv "Steuerung" ist obsolet.

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Neuhier am 18 August 2018, 20:26:05
Danke, habe ich auch gemerkt.
Muß noch bischen üben, dann bekomme ich das schon hin.
Geht ja nix kaputt.  :)
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 29 Oktober 2018, 19:09:34
Achtung:

Der Fehler "leerer Raum" wird derzeit beim Update eingebaut. Wenn er auftritt, bitte auf die alte Version von 01_FHEMWEB zurückgehen.

Problem ist in Arbeit.

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 30 Oktober 2018, 12:45:14
Rudi König hat die Änderung wieder rückgängig gemacht, das Problem ist für den Moment behoben. Er möchte sie aber doch wieder einführen. Bitte deshalb hier an der

Abstimmung beteiliigen:

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

LG

pah

Edit: Ist erledigt, eine andere Lösung wurde gefunden.
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: MBHG am 27 Januar 2019, 20:35:27
Tolles Modul aber irgendwie stehe ich auf dem Schlauch. Ich probiere es jetut seit ein paar Stunden.

Die Kommandos werden nicht umgesetzt. Zb

schalte Licht im Wohnzimmer an

ist undefined

Logfile
[Babble_DoIt] Command licht.wohnzimmer.schalten.an/ undefined, reply = Bitte sprich: Licht, gefolgt von gefolgt von einer Ortsangabe und dem Wort an oder aus


List babble

Internals:
   CHANGED   
   FUUID      xxxxxc
   NAME       Babble
   NR         162
   STATE      Initialized
   TYPE       Babble
   VERSION    1.35
   DATA:
     commands   
     re_articles ((der)|(die)|(das)|(den)|(des)|(dem)|(zur))
     re_devs    ((licht))
     re_ids     ((hallo))
     re_places  ((light)|(alarm)|(cinema)|(garden)|(radio)|(switches)|(residents)|(voice)|(sensors)|(system)|(cul_hm)|(weather)|(dashboardroom)|(flur)|(gang)|(kamin)|(wohnzimmer)|(gästezimmer)|(garten))
     re_prepos  ((von)|(vom)|(des)|(der)|(in)|(im)|(auf)|(bei)|(am))
     re_quests  ((wie)|(wo)|(wann))
     re_status  ((status)|(wert)|(wetter)|(zeit))
     re_times   ((heute)|(morgen)|(übermorgen)|(nacht))
     re_verbparts ((zu)|(auf)|(ent)|(wider)|(ein)|(an)|(aus)|(ab)|(um))
     re_verbsc  ((schließen)|()|(mache)|(schalte)|(machs)|(öffne)|(öffnen)|(schließe)|(mach)|(schalt)|(schließ)|(machen)|(schalten))
     re_verbsi  (?P<verbsi>(schalten)|(machen)|(öffnen)|(schließen))
     re_writes  ((status)|(wert)|(wetter)|(zeit))
     savedate   2019-01-27 20:17:15
     articles:
       der
       die
       das
       den
       des
       dem
       zur
     command:
       licht:
         wohnzimmer:
           machen:
             an         set Power_Outlet_4 on
             aus        set Power_Outlet_4 off
           schalten:
             aus        set Power_Outlet_4 off
             ein        set Power_Outlet_4 on
     devcontacts:
       licht:
         Licht
         Power_Outlet_4
         0
     devs:
       Licht
     devsalias:
       licht:
         0
     help:
       licht      Bitte sprich: Licht, gefolgt von gefolgt von einer Ortsangabe und dem Wort an oder aus
       power_outlet_4 Bitte sprich: Licht, gefolgt von einer Ortsangabe, gefolgt von
     places:
       Light
       Alarm
       Cinema
       Garden
       Radio
       Switches
       Residents
       Voice
       Sensors
       System
       CUL_HM
       Weather
       DashboardRoom
       Flur
       Gang
       Kamin
       Wohnzimmer
       Gästezimmer
       Garten
     prepos:
       von
       vom
       des
       der
       in
       im
       auf
       bei
       am
     quests:
       wie
       wo
       wann
     rooms:
       Light
       Alarm
       Cinema
       Garden
       Radio
       Switches
       Residents
       Voice
       Sensors
       System
       CUL_HM
       Weather
       DashboardRoom
     splaces:
       Flur
       Gang
       Kamin
       Wohnzimmer
       Gästezimmer
       Garten
     status:
       Status
       Wert
       Wetter
       Zeit
     times:
       heute
       morgen
       übermorgen
       nacht
     verbparts:
       zu
       auf
       ent
       wider
       ein
       an
       aus
       ab
       um
     verbs:
                 
       mach       machen
       mache      machen
       machen     machen
       machs      machen
       schalt     schalten
       schalte    schalten
       schalten   schalten
       schließ   schließen
       schließe  schließen
       schließen schließen
       öffne     öffnen
       öffnen    öffnen
     verbsi:
       schalten
       machen
       öffnen
       schließen
     verbsicc:
       ARRAY(0x55da17b18b78)
       ARRAY(0x55da17b19220)
       ARRAY(0x55da17b191a8)
       ARRAY(0x55da17b18a28)
     writes:
       Status
       Wert
       Wetter
       Zeit
   READINGS:
     2019-01-27 10:23:15   lockstate       0
     2019-01-27 20:23:13   savedate        2019-01-27 20:17:15
     2019-01-27 20:23:13   state           Initialized
Attributes:
   babbleArticles der die das den des dem zur
   babblePlaces Flur Gang Kamin Wohnzimmer Gästezimmer Garten
   babblePrepos von vom des der in im auf bei am
   babbleQuests wie wo wann
   babbleStatus Status Wert Wetter Zeit
   babbleTimes heute morgen übermorgen nacht
   babbleVerbParts zu auf ent wider ein an aus ab um
   babbleVerbs schalt,schalte:schalten mach,machs,mache:machen öffne:öffnen schließe,schließ:schließen
   babbleWrites setzen ändern löschen
   room       babbleRoom
61% 



Hat jemand einen Tipp für mich?

Lieben Dank
Marc
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 28 Januar 2019, 07:49:51
Kann erst Ende der Woche etwas dazu sagen.

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: MBHG am 28 Januar 2019, 17:47:08
Zitat von: Prof. Dr. Peter Henning am 28 Januar 2019, 07:49:51
Kann erst Ende der Woche etwas dazu sagen.

Danke. Ich habs mal mit "Mach das Licht im Wohnzimmer aus." Das klappt. Hat sich also erledigt.

Danke Marc
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: MBHG am 01 Februar 2019, 08:40:49
Update: so scheint die Telegram Integration für mich ganz gut zu funktionieren.

https://youtu.be/J5G9S1VFnDg (https://youtu.be/J5G9S1VFnDg)


list n_telbot
Internals:
   DEF        teleBot:((queryData)|(msgReplyMsgId)).* {telegramRecognition("$EVENT")}
   FUUID      xxxxxxxxxxxxxxxxxxxxxxxxxxxx
   NAME       n_telbot
   NR         158
   NTFY_ORDER 50-n_telbot
   REGEXP     teleBot:((queryData)|(msgReplyMsgId)).*
   STATE      2019-01-31 22:09:52
   TRIGGERTIME 1548968992.16767
   TYPE       notify
   READINGS:
     2019-01-31 19:33:05   state           active
Attributes:
   room       Voice



list Babble
Internals:
   FUUID      xxxxxxxxxxxxxxxxxxxxxxxxxxx
   NAME       Babble
   NR         156
   STATE      Initialized
   TYPE       Babble
   VERSION    1.35
   DATA:
     commands   
     re_articles ((der)|(die)|(das)|(den)|(des)|(dem)|(zur))
     re_devs    ((wortuhr)|(stehlampe))
     re_ids     ((hallo))
     re_places  ((light)|(alarm)|(cinema)|(garden)|(radio)|(switches)|(residents)|(voice)|(sensors)|(system)|(cul_hm)|(weather)|(flur)|(gang)|(kamin)|(wohnzimmer)|(gästezimmer)|(garten)|(haus))
     re_prepos  ((von)|(vom)|(des)|(der)|(in)|(im)|(auf)|(bei)|(am))
     re_quests  ((wie)|(wo)|(wann))
     re_status  ((status)|(wert)|(wetter)|(zeit))
     re_times   ((heute)|(morgen)|(übermorgen)|(nacht))
     re_verbparts ((zu)|(auf)|(ent)|(wider)|(ein)|(an)|(aus)|(ab)|(um))
     re_verbsc  ((schließ)|(schalten)|(schließen)|(öffnen)|(schalt)|(mache)|()|(schalte)|(machs)|(schließe)|(mach)|(öffne)|(machen))
     re_verbsi  (?P<verbsi>(schalten)|(machen)|(öffnen)|(schließen))
     re_writes  ((status)|(wert)|(wetter)|(zeit))
     savedate   2019-01-31 20:11:16
     articles:
       der
       die
       das
       den
       des
       dem
       zur
     command:
         stehlampe:
         gang:
           machen:
             an         set Switch_Hallway on;;$CONFIRM
             aus        set Switch_Hallway off;;$CONFIRM
           schalten:
             an         set Switch_Hallway on;;$CONFIRM
             aus        set Switch_Hallway off;;$CONFIRM
             ein        set Switch_Hallway on;;$CONFIRM
         wohnzimmer:
           machen:
             aus        set Power_Outlet_4 off;;$CONFIRM
           schalten:
             an         set Power_Outlet_4 on;;$CONFIRM
             aus        set Power_Outlet_4 off;;$CONFIRM
             ein        set Power_Outlet_4 on;;$CONFIRM
       wortuhr:
         none:
           none:
             none       undefined
     devcontacts:
       stehlampe:
         Stehlampe
         Power_Outlet_4
         0
       wortuhr:
         Wortuhr
         Power_Outlet_1
         0
     devs:
       Wortuhr
       Stehlampe
     devsalias:
       stehlampe:
         4
       wortuhr:
         3
     help:
       licht      Bitte sprich: Licht, gefolgt von gefolgt von einer Ortsangabe und dem Wort an oder aus
       power_outlet_4 Bitte sprich: Licht, gefolgt von einer Ortsangabe, gefolgt von
       stehlampe  Bitte sprich: Stehlampe, gefolgt von einer Ortsangabe, gefolgt von
       wortuhr    Bitte sprich: Wortuhr, gefolgt von
     places:
       Light
       Alarm
       Cinema
       Garden
       Radio
       Switches
       Residents
       Voice
       Sensors
       System
       CUL_HM
       Weather
       Flur
       Gang
       Kamin
       Wohnzimmer
       Gästezimmer
       Garten
       Haus
     prepos:
       von
       vom
       des
       der
       in
       im
       auf
       bei
       am
     quests:
       wie
       wo
       wann
     rooms:
       Light
       Alarm
       Cinema
       Garden
       Radio
       Switches
       Residents
       Voice
       Sensors
       System
       CUL_HM
       Weather
     splaces:
       Flur
       Gang
       Kamin
       Wohnzimmer
       Gästezimmer
       Garten
       Haus
     status:
       Status
       Wert
       Wetter
       Zeit
     times:
       heute
       morgen
       übermorgen
       nacht
     verbparts:
       zu
       auf
       ent
       wider
       ein
       an
       aus
       ab
       um
     verbs:
                 
       mach       machen
       mache      machen
       machen     machen
       machs      machen
       schalt     schalten
       schalte    schalten
       schalten   schalten
       schließ   schließen
       schließe  schließen
       schließen schließen
       öffne     öffnen
       öffnen    öffnen
     verbsi:
       schalten
       machen
       öffnen
       schließen
     verbsicc:
       ARRAY(0x5575d1f12768)
       ARRAY(0x5575d1f127c8)
       ARRAY(0x5575d1f12840)
       ARRAY(0x5575d1f12960)
     writes:
       Status
       Wert
       Wetter
       Zeit
   READINGS:
     2019-01-27 10:23:15   lockstate       0
     2019-01-31 20:11:16   savedate        2019-01-31 20:11:16
     2019-01-31 19:33:05   state           Initialized
Attributes:
   babbleArticles der die das den des dem zur
   babblePlaces Flur Gang Kamin Wohnzimmer Gästezimmer Garten Haus
   babblePrepos von vom des der in im auf bei am
   babbleQuests wie wo wann
   babbleStatus Status Wert Wetter Zeit
   babbleTimes heute morgen übermorgen nacht
   babbleVerbParts zu auf ent wider ein an aus ab um
   babbleVerbs schalt,schalte:schalten mach,machs,mache:machen öffne:öffnen schließe,schließ:schließen
   babbleWrites setzen ändern löschen
   confirmFunc {fhem("set teleBot message \@Marc_Boettinger Ok!")}
   helpFunc   {fhem("set teleBot message \@Marc_Boettinger $HELP")}
   noChatBot  0
   room       babbleRoom






#############################################################################
#
#  TelegramInlineKeyboard
#
#############################################################################
sub telegramRecognition($){
   my ($event)    = @_;
   my $querypeer      = ReadingsVal("teleBot", "queryPeer", 0);
   my $msgpeer        = ReadingsVal("teleBot", "msgPeer", 0);
   my $queryReplyMsgId= ReadingsVal("teleBot", "queryReplyMsgId", 0);
   my $MsgId          = ReadingsVal("teleBot", "MsgId", 0);
   my $menuMsgId      = ReadingsVal("teleBot", "menuMsgId", $queryReplyMsgId);
   my $calldata       = ReadingsVal("teleBot", "callData", "");
   my $tg;
   my $dp;
   my $dm;
   my $res;
   my $cmd;
   my $click;
   my ($cb1,$cb2,$cb1raw);
   


   #-- Hier kann man - ggf. für jeden $querypeer anders ! - einstellen, welcher Bestätigungstext vom Bot
   #    gesendet wird, und ob es eine nicht-klickbare Liste (linke Spalte oben) oder eine klickbare Liste
   #    (rechte Spalte oben) sein soll
   if( $querypeer eq "Marc_Boettinger"){
      fhem("attr teleBot queryAnswerText Gerne zu Diensten, Meister !");
      $click=1;
   }elsif( $querypeer eq "Ramona_Boettinger"){
      fhem("attr teleBot queryAnswerText Gerne zu Diensten, Ramona !");
      $click=0;
   }else{
      fhem("attr teleBot queryAnswerText Gerne zu Diensten!");
      $click=0;
   }
         

    #-- receiving reply from bot to telegram
    if( $event =~ /botreply\:\s(.*)/ ){
      $cb1 = $1;
      fhem("set teleBot msg \@$msgpeer $cb1");
      fhem("setreading teleBot prevCmd ChatBot $cb1");
     #-- click event from inline keyboard
    }elsif( $event =~ /queryData\:\s(.*)/ ){
      ($cb1,$cb2) = split(/ /,$1,2);
      #Log 1,"[telegramRecognition] queryData $cb1";
      #-- Level 0/1 => new menuMsgId after start of Bot
      if( $cb1 =~ /(Steuerung)|(ChatBot)/ ){
        $menuMsgId = $queryReplyMsgId;
        fhem("setreading teleBot menuMsgId $menuMsgId");
fhem("setreading teleBot prevCmd $cb1");
      }
 
}


if( $event =~ /menuData\:\s*(.*)\s*(.*)/ ){
     my $cb1 = $1;
     my $cb2 = $2;
     if( $cb1 eq "Hauptmenü"){
       if( $msgpeer eq "Marc_Boettinger"){
         fhem("set teleBot queryInline \@$msgpeer (ChatBot) Hauptmenü");
       }elsif( $msgpeer eq "Ramona_Boettinger"){
         fhem("set teleBot queryInline \@$msgpeer (ChatBot) Hauptmenü");
       }else{
         fhem("set teleBot queryInline \@$msgpeer (ChatBot) Hauptmenü");
       }
     }
   
     
     #-- Process line from forced reply
  }elsif( $event =~ /msgReplyMsgId\:\s+(\d*)/ ){
  my $mn = $1;
  my $mo = ReadingsVal("teleBot", "prevMsgId", 0)+1;
  my $prev = ReadingsVal("teleBot","prevCmd","none");


#-- ChatBot
  if( $prev =~ /ChatBot/ ){
        my $text = ReadingsVal("teleBot","msgText","");
if( $text =~ /(s|S)top.*/ ){
   fhem("setreading teleBot prevCmd 0");
   InternalTimer(gettimeofday()+1, "telegramRecognition","queryData: Hauptmenü",0);
}else{
  fhem("{Babble_DoIt('Babble','".$text."','teleBot')}");
}
  }
    }
  }

Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Adimarantis am 01 Februar 2021, 10:57:18
Hallo,

Ich habe gestern Babble ausprobiert, da ich überlege das mit meinem Signalbot zu verknüpfen. Dabei sind mir eine Reihe von Fehlermeldungen im Logfile aufgefallen. Das ist wahrscheinlich noch niemandem aufgefallen, da sie nur kommen wenn global->stacktrace=1 gesetzt ist. Scheint die Funktion auch nicht zu beinträchtigen, doch irgendwie bleibt das Gefühl, das hier was nicht rund läuft.

Jedesmal wenn ich das Webinterface aufrufe kommt:

2021.02.01 10:42:56 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/95_Babble.pm line 2038.
2021.02.01 10:42:56 1: eval: {Babble_Html("Babble")}
2021.02.01 10:42:56 1: stacktrace:
2021.02.01 10:42:56 1:     main::__ANON__                      called by ./FHEM/95_Babble.pm (2038)
2021.02.01 10:42:56 1:     main::Babble_Html                   called by (eval 47018) (1)
2021.02.01 10:42:56 1:     (eval)                              called by fhem.pl (1146)
2021.02.01 10:42:56 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (106)
2021.02.01 10:42:56 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (2055)
2021.02.01 10:42:56 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1169)
2021.02.01 10:42:56 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (596)
2021.02.01 10:42:56 1:     main::FW_Read                       called by fhem.pl (3818)
2021.02.01 10:42:56 1:     main::CallFn                        called by fhem.pl (759)
2021.02.01 10:42:56 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/95_Babble.pm line 2038.
2021.02.01 10:42:56 1: eval: {Babble_Html("Babble")}
2021.02.01 10:42:56 1: stacktrace:
2021.02.01 10:42:56 1:     main::__ANON__                      called by ./FHEM/95_Babble.pm (2038)
2021.02.01 10:42:56 1:     main::Babble_Html                   called by (eval 47019) (1)
2021.02.01 10:42:56 1:     (eval)                              called by fhem.pl (1146)
2021.02.01 10:42:56 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (106)
2021.02.01 10:42:56 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (2055)
2021.02.01 10:42:56 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1169)
2021.02.01 10:42:56 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (596)
2021.02.01 10:42:56 1:     main::FW_Read                       called by fhem.pl (3818)
2021.02.01 10:42:56 1:     main::CallFn                        called by fhem.pl (759)


Wenn ich "set Babble test" laufen lassen kommen bei ca. 10-20% der Tests Stacktraces - die meisten mehrfach: Hier alle Unterschiedlichen:

2021.02.01 10:43:59 1: [Babble_DoIt] Command wetter.none.sagen.wetter/morgen undefined, reply = Es tut mir leid, das habe ich nicht verstanden
2021.02.01 10:43:59 1: PERL WARNING: Use of uninitialized value in pattern match (m//) at ./FHEM/95_Babble.pm line 768.
2021.02.01 10:43:59 1: stacktrace:
2021.02.01 10:43:59 1:     main::__ANON__                      called by ./FHEM/95_Babble.pm (768)
2021.02.01 10:43:59 1:     main::Babble_Normalize              called by ./FHEM/95_Babble.pm (1111)
2021.02.01 10:43:59 1:     main::Babble_DoIt                   called by ./FHEM/95_Babble.pm (548)
2021.02.01 10:43:59 1:     main::Babble_Test                   called by ./FHEM/95_Babble.pm (395)
2021.02.01 10:43:59 1:     main::Babble_Set                    called by fhem.pl (3813)
2021.02.01 10:43:59 1:     main::CallFn                        called by fhem.pl (1919)
2021.02.01 10:43:59 1:     main::DoSet                         called by fhem.pl (1951)
2021.02.01 10:43:59 1:     main::CommandSet                    called by fhem.pl (1251)
2021.02.01 10:43:59 1:     main::AnalyzeCommand                called by ./FHEM/01_FHEMWEB.pm (2721)
2021.02.01 10:43:59 1:     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (991)
2021.02.01 10:43:59 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (596)
2021.02.01 10:43:59 1:     main::FW_Read                       called by fhem.pl (3818)
2021.02.01 10:43:59 1:     main::CallFn                        called by fhem.pl (759)

2021.02.01 10:43:59 1: PERL WARNING: Use of uninitialized value $device in string eq at ./FHEM/95_Babble.pm line 834.
2021.02.01 10:43:59 1: stacktrace:
2021.02.01 10:43:59 1:     main::__ANON__                      called by ./FHEM/95_Babble.pm (834)
2021.02.01 10:43:59 1:     main::Babble_Normalize              called by ./FHEM/95_Babble.pm (1111)
2021.02.01 10:43:59 1:     main::Babble_DoIt                   called by ./FHEM/95_Babble.pm (549)
2021.02.01 10:43:59 1:     main::Babble_Test                   called by ./FHEM/95_Babble.pm (395)
2021.02.01 10:43:59 1:     main::Babble_Set                    called by fhem.pl (3813)
2021.02.01 10:43:59 1:     main::CallFn                        called by fhem.pl (1919)
2021.02.01 10:43:59 1:     main::DoSet                         called by fhem.pl (1951)
2021.02.01 10:43:59 1:     main::CommandSet                    called by fhem.pl (1251)
2021.02.01 10:43:59 1:     main::AnalyzeCommand                called by ./FHEM/01_FHEMWEB.pm (2721)
2021.02.01 10:43:59 1:     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (991)
2021.02.01 10:43:59 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (596)
2021.02.01 10:43:59 1:     main::FW_Read                       called by fhem.pl (3818)
2021.02.01 10:43:59 1:     main::CallFn                        called by fhem.pl (759)

Der Patternmatch kommt meist mehrfach hintereinander und der $device dann am Schluss der Serie.

Sicher nichts dringendes, aber wer weiß, vielleicht entsteht daraus ja doch das ein oder andere undeterministische Verhalten.

Gruß,
Jörg
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 01 Februar 2021, 14:55:55
Bitte welche Version? (get version)

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Adimarantis am 01 Februar 2021, 17:17:23
babble.version => 1.42

Gruß
Jörg
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Adimarantis am 07 Februar 2021, 14:35:13
Ich hätte auch noch ein Anwendungsfrage:

Intuitiv habe ich "Wie ist die Temperatur Draußen?" (mit Fragezeichen) geschrieben. Auch mit Leerzeichen dazwischen mag er das nicht. Kann man Babble das beibringen?
Alternativ überlege ich in der Babble Integration meines Signalbot (https://forum.fhem.de/index.php/topic,118370.0.html) eventuelle Fragezeichen einfach wegzufiltern. Sauberer wäre es aber in der Babble Config.

Gruß,
Jörg
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 07 Februar 2021, 15:30:11
Fragezeichen filtere ich bewusst nicht heraus - das benötige ich für meine Eliza-Komponente im Chatbot.

ZitatAlternativ überlege ich in der Babble Integration meines Signalbot

So sollte es m.E. sein. Edit: Allerdings lässt sich das auch bequem in der Babble-Attribut "presubs" unterbringen.

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Jamo am 09 Februar 2021, 22:00:04
Hallo Pah,
ich habe Babble gerade installiert, bekomme aber kein kein ergebnis beim Babble Test.  Zum Beispiel :"Schalte das Licht im Wohnzimmer an" liefert ein "result undefined". Es ist egal welchen Satz ich Testen will, keiner liefert ein Ergebnis. Ich erhalte folgende Logausgabe:
2021.02.09 21:46:53 1: [Babble_DoIt] Command licht.none.schalten.im/ undefined, reply =

Liegt das evtl an den room definitionen: allrooms->schlafzimmer?

Zur info:libjson-perl is already the newest version (4.02000-1).
Debian 10.7 Buster
attr WEB JavaScripts www/pgm2/babble.js ist gesetzt
babble.version => 1.42
reboot nach der Installation habe ich auch gemacht

Was kann ich noch an info liefern?
Hier im list sind die room definitionen etwas zusammengestrichen.
Internals:
   FUUID      61234-1234-1234-1234-56c123212348b8a2
   NAME       Babble
   NR         3289
   STATE      Initialized
   TYPE       Babble
   VERSION    1.42
   DATA:
     commands   
     re_articles ((der)|(die)|(das)|(den)|(des)|(dem)|(zur))
     re_devs    ((beleuchtung))
     re_ids     ((hallo))
     re_places  ((favourites)|(media)|(alarme)||(allrooms->schlafzimmer)|(schlafzimmer))
     re_prepos  ((von)|(vom)|(des)|(der)|(in)|(im)|(auf)|(bei)|(am))
     re_quests  ((wie)|(wo)|(wann))
     re_status  ((status)|(wert)|(wetter)|(zeit))
     re_times   ((heute)|(morgen)|(übermorgen)|(nacht))
     re_verbparts ((zu)|(auf)|(ent)|(wider)|(ein)|(an)|(aus)|(ab)|(um))
     re_verbsc  ((schalten)|(schalt)|(schalte))
     re_verbsi  (?P<verbsi>(schalten))
     re_writes  ((status)|(wert)|(wetter)|(zeit))
     savedate   2021-02-09 21:53:09
     articles:
       der
       die
       das
       den
       des
       dem
       zur
     command:
       beleuchtung:
         none:
           schalten:
         schalter:
           schalten:
         schlafzimmer:
           schalten:
     devcontacts:
       beleuchtung:
         Beleuchtung
         Schalter_USBett
         0
     devs:
       Beleuchtung
     devsalias:
       beleuchtung:
         0
     help:
       beleuchtung Bitte sprich: Beleuchtung, gefolgt von anschalten, ausschalten
     places:
       Favourites
       Media
       Alarme
       Schlafzimmer
     prepos:
       von
       vom
       des
       der
       in
       im
       auf
       bei
       am
     quests:
       wie
       wo
       wann
     rooms:
       Favourites
       Media
       Alarme
   AllRooms->Schlafzimmer
       deCONZ
     splaces:
       Schlafzimmer
     status:
       Status
       Wert
       Wetter
       Zeit
     times:
       heute
       morgen
       übermorgen
       nacht
     verbparts:
       zu
       auf
       ent
       wider
       ein
       an
       aus
       ab
       um
     verbs:
       schalt     schalten
       schalte    schalten
       schalten   schalten
     verbsi:
       schalten
     verbsicc:
       ARRAY(0x55d25ed80a00)
     writes:
       Status
       Wert
       Wetter
       Zeit
   READINGS:
     2021-02-09 21:53:10   cmd             none => Help text =
     2021-02-09 21:03:25   lockstate       0
     2021-02-09 21:53:09   savedate        2021-02-09 21:53:09
     2021-02-09 21:05:47   state           Initialized
     2021-02-09 21:53:10   text            Schalte das Licht im Wohnzimmer an
Attributes:
   babbleArticles der die das den des dem zur
   babblePlaces Schlafzimmer
   babblePrepos von vom des der in im auf bei am
   babbleQuests wie wo wann
   babbleStatus Status Wert Wetter Zeit
   babbleTimes heute morgen übermorgen nacht
   babbleVerbParts zu auf ent wider ein an aus ab um
   babbleVerbs schalt,schalte:schalten
   babbleWrites setzen ändern löschen


Danke!
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 10 Februar 2021, 04:29:34
ZitatLiegt das evtl an den room definitionen: allrooms->schlafzimmer?
Ja, zumindest ist das ein Fehler. Die Menüstruktur des FHEM-Hauptmenüs gehört dort nicht hinein.

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Jamo am 10 Februar 2021, 08:55:07
Hallo Pah,
danke, ja die wurden vom BabbleDevice automatisch angelegt, weil ich die so definiert hatte um eine übersichtlichere Menuestruktur im FHEM WEB zu erhalten. Wird ja auch von FHEM so unterstützt. Allerdings erhalte ich beim testen auch kein Ergebnis, wenn ich gar keinen Raum angebe. Also ein Test mit "Schalte das Licht an" liefert ebenfalls ein "result undefined".

Ich hatte das Babbledevice auch schon gelöscht und neu angelegt, und auch die Language Settings von EN -> DE umgestellt. Aber das betrifft ja nur die Ausgabe. Rive habe ich nicht installiert, laut Anleitung ist das auch nicht nötig.

Kann ich sonst nochwas machen? Das babble.js muss nur im Verzeichnis vorhanden sein, oder muss man das noch irgendwie installieren (ausser "attr WEB JavaScripts www/pgm2/babble.js")?

Beste Grüsse, Jamo
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 10 Februar 2021, 12:56:15
Wundert mich. Ich habe gerade eben auf einem Testsystem ein neues Babble-Device erstellt, ging problemlos. Bitte mal einen Screenshot, nicht des Devices, sondern der Babble-Seite (FHEM Hauptmenü links).

LG

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Jamo am 10 Februar 2021, 14:08:35
Hallo Pah,
gerne, Screenshot anbei.
Danke und Grüsse.
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Prof. Dr. Peter Henning am 10 Februar 2021, 14:50:02
Na, da fehlen ja auch die Hauptsachen. Schließlich muss man Babble sagen, was es tun soll!

Bitte den Button "Add" betätigen, dann dort Einträge vornehmen und am Ende "Save".

Anbei ein paar Beispiele

pah
Titel: Antw:Natural Language User Interface 95_Babble.pm
Beitrag von: Jamo am 10 Februar 2021, 15:40:00
Hallo Pah,
kaum macht man es richtig, gehts.
Allerdings hatte ich irgendwie verstanden, das der Test auch geht wenn man noch keine Devices angelegt hat.
Funktioniert jetzt, dank an Dich!
Beste Grüsse!