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
Wie kommen die Sprachbefehle ins fhem?
AMADNG? TtsMsg?
Gruß Sascha
Gesendet von meinem...... was auch immer
Soll unabhängig davon funktionieren. Tut es bei mir auch schon.
LG
pah
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.
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
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
Ist gefixt, Download oben im ersten Post.
LG
pah
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 ...
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
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
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/
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
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
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
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... ::)
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=statusIch werde nachher im Wiki dokumentieren, wie man damit eine Temperaturabfrage hinbekommen kann.
LG
pah
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*!
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
@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
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 ...
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.
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.
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.
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
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.
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
Ups, habe ich gerade erst gefixt - die neue Version steht seit 30 Sekunden im ersten Post.
LG
pah
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)
Das ganze klingt echt spannend, @pah erzählst du beim nächsten (afaik 5.) Usertreffen in Karlsruhe etwas dazu?
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
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
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
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
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
So, ist gefixt.
Mit neuem Usecase zur Abfrage der Wettervorhersage, siehe Wiki
Download aus dem ersten Post.
LG
pah
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
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
@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
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
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
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
Hallo Laffer72,
kann ich bestätigen, funktioniert jetzt auch bei mir.
danke und vg Jens
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.
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
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
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
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!
Babble finde ich als Name cool :) *neid* ;)
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
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.
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é
...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é
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
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
Aus Interesse:
Welches Ziel verfolgen Sie denn?
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.
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
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.
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
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.
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é
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.
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.
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 ...
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é
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
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é
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é
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
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é
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é
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é
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é
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é
Wie man leicht bei der Eingabe von
{("licht" =~ /((arbeitszimmer))/) ? "ja" : "nein"}
in die FHEM-Codezeile sieht, kann das nicht richtig sein.
pah
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é
::) ::) ::) ::) ::) ::)
Natürlich kann die Kiste nicht erkennen, dass Licht einmal ein Device und einmal ein Raum ist.
pah
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" ;)
Kann ich solche Raumnamen für die Verwendung in Babble ausschließen oder nur bestimmte Räume festlegen?
Gruß
René
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
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)
Ah, ok, das liegt daran, dass ich manchmal gewagte Konstruktionen verwende. Habe gerade eine Version eingecheckt, die das vermeidet.
LG
pah
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)"
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?)
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.
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
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
Hm, bitte nochmal die aktuelle Version laden (1.07) - da war wirklich noch ein Fehler drin.
LG
pah
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"
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)
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
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.
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
Danke für die Info. Bei mir wurde gestern Abend noch die 1.09 als aktuelle Version angezeigt.
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ß
Hallo,
so sieht mein DOIF aus:
(["AMADBridge:receiveVoiceCommand"]) ({Babble_DoIt("Babble",(ReadingsVal("AMADBridge","receiveVoiceCommand","")))})
Gruß René
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
Ist sie. Kann es sein, dass das Reading lockstate den Wert "locked" hat ? Was sagt das Log ?
LG
pah
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.
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
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.
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
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.
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
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
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?
@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
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
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
ZitatKönntest Du das noch in die Doku aufnehmen?
Wenn ich sonst nichts Anderes zu tun habe...
LG
pah
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;
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
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.
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".
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
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. :)
@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
Jup, so läufts. Danke :)
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.
Sieh an, ein echter Unterstützer, danke. Ist behoben und eingecheckt.
LG
pah
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 <name> 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. :)
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?
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.
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.
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
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
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
Bin etwas weiter gekommen. (siehe screenshot)
Die zwei unteren konnte ich sicheren, danach kommt die Fehlermeldung.
Gruß
Eisix
@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
@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?
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é
Ups, da habe ich doch glatt einen Fehler eingebaut ...
Habe die Korrektur schon eingecheckt - der Einfachheit halber hier direkt zum download.
LG
pah
Babble_DoIt läuft wieder - Danke!
Checkbox geht auch wieder. Merci!
Tipp: Macht echt Spaß, Babble über einen Telegram-Client zu bedienen.
LG
pah
Sag ich ja. :D
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
Das nicht. Aber vielleicht die {}-Klammern ? ::)
LG
pah
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
Wird denn da ein Event generiert ? Was sagt der Eventmonitor ?
LG
pah
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
Was liefert denn die Eingabe von
{Babble_DoIt("Babble",ReadingsVal("AMADBridge","receiveVoiceCommand",""),"testit",1)}
LG
pah
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
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
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
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
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?
Hm, taucht bei mir nicht auf ...
Aber OK, einfach in Zeile 1103 den folgenden Code ersetzen
if( @parms && $parms[0] eq "testit"){
LG
pah
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?
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
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 ...
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
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.
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.
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
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?
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.
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?
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 ...
Zitatmein fehler
Aber doch. Das sichert nämlich die HTML-Datei, nicht die Perl-Datei.
LG
pah
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"
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)
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
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
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
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)
Bin jetzt erst mal eine Woche weg.
LG
pah
OK, back again.
Bitte mal die komplette Definition von Babble posten, und idealerweise eine Kopie des BabbleFile.
LG
pah
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
Zitatdas besteht aus 2 leeren zeilen
Ich habe gerade eine neue Version eingecheckt, die dieses Problem hoffentlich endgültig löst.
LG
pah
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
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 ...
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
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
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
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 =
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
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 ...
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
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
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
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
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
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
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
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
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
Danke!
jetzt funktioniert es.
Viele Grüße
Michael
Natürlich - was denn sonst ? ::)
LG
pah
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
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
Danke, habe ich auch gemerkt.
Muß noch bischen üben, dann bekomme ich das schon hin.
Geht ja nix kaputt. :)
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
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.
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
Kann erst Ende der Woche etwas dazu sagen.
LG
pah
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
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')}");
}
}
}
}
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
Bitte welche Version? (get version)
LG
pah
babble.version => 1.42
Gruß
Jörg
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
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
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!
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
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
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
Hallo Pah,
gerne, Screenshot anbei.
Danke und Grüsse.
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
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!