Module: TALKTOME & TALKTOUSER - Sprachverarbeitung für Nutzerinteraktionen

Begonnen von SirUli, 21 Juni 2016, 22:21:13

Vorheriges Thema - Nächstes Thema

SirUli

Hi zusammen,

sorry der Urlaub hatte meine Antwortgeschwindigkeit etwas negativ beeinflusst.

Zitat von: andreas13 am 21 August 2016, 12:12:40
Warum steht vor jeder meiner Antwort meines Bots "TALKTOUSER_ANDI 0 | | "
Interessant - ich habe gerade mal wieder ein FHEM update gemacht und bekomme das nun auch. Ich mache mich mal auf die Suche...

Zitat von: hartenthaler am 28 August 2016, 04:23:56Es scheint irgendetwas mit der UTF8-Codierung schief zu gehen.

Checke ich mal.

thats

Hallo,
ich hab mir das Modul angesehen und bin richtig begeistert davon (:
Leider hab ich ein kleines Problem, dass die Antworten nicht so recht raus wollen. TALKTOME empfängt sie, verarbeitet sie, kann sie aber offenbar nicht via Telegram weiter geben.

Ich hab das wie folgt konfiguriert. Ist da ein Fehler?

define TelegramBot TelegramBot 267XXXXX:AAFHcXXXXX
attr TelegramBot userattr talktouserMonitorReading talktouserModSourceDev
attr TelegramBot allowUnknownContacts 0
attr TelegramBot cmdFavorites /cmd
attr TelegramBot cmdKeyword MXXXX
attr TelegramBot favorites [BadHzg]=setXXXX
attr TelegramBot pollingTimeout 180
attr TelegramBot room Zentrale
attr TelegramBot talktouserModSourceDev %DEVICE%:@%%msgPeerId%%
attr TelegramBot talktouserMonitorReading msgText

define TelegramSVGsend notify TelegramBot:msgText:./SVG {TelegramBot_ExecuteCommand($defs{"TelegramBot"}, 74789398, '{plotAsPng("Grafik_Temperatur_Bad")}');; return;;}

define globalMsg msgConfig
attr globalMsg comment FHEM Global Configuration for command 'msg'
attr globalMsg group Global
attr globalMsg stateFormat fhemMsgState
attr globalMsg verbose 3

define FHEMTALKTOME TALKTOME
attr FHEMTALKTOME room Zentrale
attr FHEMTALKTOME rsbrainfile ./FHEM/TALKTOME.rive
attr FHEMTALKTOME rspunctuation .,!?;;:¡¿/
define TALKTOUSER_Christoph TALKTOUSER
attr TALKTOUSER_Christoph IODev FHEMTALKTOME
attr TALKTOUSER_Christoph nomatch Ich konnte leider keine gute Antwort finden!
attr TALKTOUSER_Christoph noreply Ich weiss leider nicht was ich darauf sagen soll!
attr TALKTOUSER_Christoph realname TALKTOUSER_Christoph
attr TALKTOUSER_Christoph room Zentrale

Trotzdem bekomme ich immer diesen Fehler im Log:
2016.09.26 11:02:58 3: msg TALKTOUSER_Christoph 0 | | Sorry, ich habe das nicht verstanden. Ein paar Beispiele für Kommandos:"Wie warm ist es in der Küche?""Wie ist das Wetter heute?" : ERROR: Could not find any Push or Mail contact for device globalMsg - set attributes: msgContactPush | msgContactMail | msgContactText | msgRecipientPush | msgRecipientMail | msgRecipientText | msgRecipient

Was mach ich hier falsch?
Danke für die Hilfe!

Christoph

hartenthaler

Hallo @SirUli!
Ich weiß: bei den ToDos ist noch offen, dass mehrere Nutzer unterstützt werden. Ich selber rede schon länger mit meinem Chatbot und hole mir so Infos und lasse ihn fhem steuern. Nun wollte ich das heute auch für meine Frau einrichten. Ich habe sie in meinem TelegramBot im Attribut cmdRestrictedPeer als berechtigten zweiten Nutzer hinzugefügt. Nun kann sie Chat-Nachrichten an meinen Rivescript-Chatbot schicken, der auch brav antwortet; allerdings gehen - verständlicherweise - die Antworten aber an den mir zugeordneten Telegram-Chat und meine Frau bekommt keine Antworten. Ideal wäre natürlich: sie chattet unabhängig von mir, so ja wohl das Konzept mit dem Modul TALKTOUSER. Akzeptabel wäre aber auch, dass die Chatbot-Antworten immer an beide Nutzer (also mich und meine Frau) rausgehen würden. Geht das?

Oder kann ich alternativ einfach alles doppelt aufsetzen, also zwei mal Telegram, zwei mal TALKOTOME, zwei mal TALKTOUSER und ? zwei mal msg?
fhem 5.8 auf RaspberryPi 3 mit HMLAN und CCU2, ZWave, JeeLink, FHZ1000 für FS20, HMS, Fritz!Box, Fritz!DECT200, Harmony, Sonos, hue, netatmo, SSCam, Wetter- und Verkehrsmodule, Chat-Bot mit RiveScript/Telegram, IFTTT, pushover, ...

McUles

Zitat von: thats am 26 September 2016, 11:14:47
Trotzdem bekomme ich immer diesen Fehler im Log:
2016.09.26 11:02:58 3: msg TALKTOUSER_Christoph 0 | | Sorry, ich habe das nicht verstanden. Ein paar Beispiele für Kommandos:"Wie warm ist es in der Küche?""Wie ist das Wetter heute?" : ERROR: Could not find any Push or Mail contact for device globalMsg - set attributes: msgContactPush | msgContactMail | msgContactText | msgRecipientPush | msgRecipientMail | msgRecipientText | msgRecipient

Hast du das Problem lösen können? Sitze gerade über der selben Meldung ^^
FHEM @Proxmox, 27" Touchscreen@PI3
1xZME_UZB1@PI2, 1xZME_RAZ_EU@PI2, 1xZME_WALLC-S, 1xFIBEFGS-222, 2xFIBEFGS-212, 6xFIB_FGMS-001, 4xZME_05467
1xMAXCube, 12xMAX! Heizkörper-Thermostat+
1xHM-LGW-O-TW-W-EU, 5xHM-CC-RT-DN, 2xHM-TC-IT-WM-W-EU, 1xHM-LC-Sw4-DR, 1xKeymatic, 3xHM-ES-PMSw1-Pl
Liste zu lang...

thats

Zitat von: McUles am 27 November 2016, 11:00:55
Hast du das Problem lösen können? Sitze gerade über der selben Meldung ^^

Leider nein.. Warte selbst noch auf Hilfe.. Hab's auch versucht alles nochmal von Neuem aufzubauen, allerdings ohne Erfolg. Zwischenzeitlich hatte ich auch einen Wechsel von Raspi1 auf Raspi2, leider auch hier selbes Problem.

hartenthaler

@thats und @McUles: Die Fehlermeldung ist doch sehr präzise: "Could not find any Push or Mail contact for device globalMsg - set attributes: msgContactPush", d.h. es fehlt ein Eintrag im Attribut msgContactPush. Bei mir steht dort:
attr globalMsg msgContactPush Telegram.James.Bot
Also die Telegram-Instanz, die für den Chat verantwortlich ist.
fhem 5.8 auf RaspberryPi 3 mit HMLAN und CCU2, ZWave, JeeLink, FHZ1000 für FS20, HMS, Fritz!Box, Fritz!DECT200, Harmony, Sonos, hue, netatmo, SSCam, Wetter- und Verkehrsmodule, Chat-Bot mit RiveScript/Telegram, IFTTT, pushover, ...

fhemhurz

So jetzt kommt nach thats und McUles der Nächste mit dem msContactPush-Problem. Auch ich hatte die Fehlermeldung ""Could not find any Push or Mail contact for device globalMsg..." erhalten. Beim Versuch msgContactPush zu setzen, wird in der Attribut-Liste jedoch kein msgContact<Type> (also auch kein msgContactPush) angeboten. Schreibe ich das Attribut direkt per Editor in die fhem.cfg

define globalMsg msgConfig
attr globalMsg comment FHEM Global Configuration for command 'msg'
attr globalMsg group Global
attr globalMsg msgContactPush Telegram
attr globalMsg stateFormat fhemMsgState
attr globalMsg verbose 3


bekomme ich nach dem erneuten Einlesen der Konfiguration den Fehler

globalMsg: unknown attribute msgContactPush. Type 'attr globalMsg ?' for a detailed list.

Die "detailed list" sieht dann so aus:

globalMsg: unknown attribute ?, choose one of
alias comment eventMap group room suppressReading userReadings verbose msgCmdAudio msgCmdAudioShort
msgCmdAudioShortPrio msgCmdLight msgCmdLightHigh msgCmdLightLow msgCmdMail msgCmdMailHigh
msgCmdMailLow msgCmdPush msgCmdPushHigh msgCmdPushLow msgCmdScreen msgCmdScreenHigh
msgCmdScreenLow msgFwPrioAbsentAudio msgFwPrioAbsentLight msgFwPrioAbsentScreen
msgFwPrioEmergencyAudio msgFwPrioEmergencyLight msgFwPrioEmergencyPush msgFwPrioEmergencyScreen
msgFwPrioGoneAudio msgFwPrioGoneLight msgFwPrioGoneScreen msgLocationDevs msgPriorityAudio msgPriorityLight
msgPriorityMail msgPriorityPush msgPriorityScreen msgPriorityText msgResidentsDev msgSwitcherDev msgThPrioHigh
msgThPrioNormal msgThPrioAudioEmergency msgThPrioAudioHigh msgThPrioTextEmergency msgThPrioTextNormal
msgThPrioGwEmergency msgTitleAudio msgTitleAudioShort msgTitleAudioShortPrio msgTitleLight msgTitleLightHigh
msgTitleLightLow msgTitleMail msgTitleMailHigh msgTitleMailLow msgTitlePush msgTitlePushHigh msgTitlePushLow
msgTitleScreen msgTitleScreenHigh msgTitleScreenLow msgTitleText msgTitleTextHigh msgTitleTextLow msgType
event-on-change-reading event-on-update-reading event-aggregator event-min-interval stateFormat
timestamp-on-change-reading cmdIcon devStateIcon devStateStyle icon onOffDevice sortby webCmd widgetOverride
userattr


Da bei anderen Anwendern das Zusammenspiel zwischen Msg und Telegram zu klappen scheint, sind wir Drei wohl an dasselbe (Konfigurations-)Problem geraten...

CUL 868, CUL 433, Signalduino, HUE, deCONZ, ESPEasy, Intertechno, Siro, FritzBox 7490, Raspberry Pi 1 2 3

SalvadoreXXL

Hi,

ich habe auch das Problem hier. Hab gestern TALKTOME für Telegram bei mir eingerichtet. Antworten bekomme ich nur mit


attr globalMsg msgContactPush MeinBot


Habe einige Stunden damit zugebracht, den Fehler zu suchen. Bei jeder Antwort erscheint nun am Anfang der Zeile der Devicename von TALKTOUSER. Ist das normal und kann man das abstellen?

hartenthaler

Zitat von: fhemhurz am 14 Januar 2017, 16:26:23
Da bei anderen Anwendern das Zusammenspiel zwischen Msg und Telegram zu klappen scheint, sind wir Drei wohl an dasselbe (Konfigurations-)Problem geraten...

Ich verstehe erst jetzt Dein Problem - obwohl es offensichtlich war: Du kannst kein Attribut msgContactPush für globalMsg angeben. Das muss als User-Attribut definiert werden!

Bei mir steht in global (! nicht globalMsg) als userattr u.a. folgendes

attr global userattr alarmDevice ... icon msgContactAudio msgContactLight msgContactMail msgContactPush msgContactScreen msgRecipient msgRecipientAudio msgRecipientLight msgRecipientMail msgRecipientPush msgRecipientScreen msgRecipientText ...

so dass ich das msgContactPush problemlos definieren konnte (wird im FHEM wiki für Msg https://wiki.fhem.de/wiki/Msg im Abschnitt "Attribute für alle FHEM Devices" beschrieben).
fhem 5.8 auf RaspberryPi 3 mit HMLAN und CCU2, ZWave, JeeLink, FHZ1000 für FS20, HMS, Fritz!Box, Fritz!DECT200, Harmony, Sonos, hue, netatmo, SSCam, Wetter- und Verkehrsmodule, Chat-Bot mit RiveScript/Telegram, IFTTT, pushover, ...

hartenthaler

Ich weiß nicht, wer hier überhaupt einen Chatbot mit RiveScript am laufen hat. Ich habe einiges ausprobiert und finde es spannend so etwas im Kleinen auszuprobieren, was Siri oder Alexa im Großen zu Stande bringen. Zu Beginn meiner Ausbildung, vor Jahrzehnten, hatte ich mal Kontakt mit einem in BASIC programmierten Programm namens ELIZA und seither finde ich Chatbots äußerst spannend. Anbei sind ein paar Files, die ich erstellt habe. Nicht alles wird für jeden interessant sein, aber vielleicht sind ein paar spannende Bausteine für einige von Euch dabei. Die Files begin.rive und standard.rive braucht man in irgendeiner Weise auf jeden Fall, der Rest ist Kür und muss natürlich auf die eigenen Bedingungen angepasst werden. Ich habe meine persönlichen Daten jeweils durch xxx ersetzt. Natürlich würde mich auch sehr dafür interessieren was ihr so umgesetzt habt. Super fände ich es, wenn mein Chatbot sich mit Rezepten und Kochen auskennen würde, wenn er auf Wolfram Alpha oder wikipedia zugreifen könnte oder wenn er Schach spielen könnte. Als nächstes möchte ich noch etwas mehr für die Sicherheit tun, etwa beim Öffnen der Garage eine Zwei-Faktor-Authentifizierung einbauen. Bleibt also noch einiges zu tun.
Viele Grüße Hermann
fhem 5.8 auf RaspberryPi 3 mit HMLAN und CCU2, ZWave, JeeLink, FHZ1000 für FS20, HMS, Fritz!Box, Fritz!DECT200, Harmony, Sonos, hue, netatmo, SSCam, Wetter- und Verkehrsmodule, Chat-Bot mit RiveScript/Telegram, IFTTT, pushover, ...

ripper

Hallo Hermann

ich hatte Taltktome in Verbindung mit einem TelegramBot vor einiger Zeit (eig. als das Modul hier vorgestellt wurde) einmal ausprobiert. Allerdings hatte ich da gerade erst mit Fhem angefangen, und konnte die Beispiele nicht nachbauen um bei mir auch effektiv etwas zu schalten.
Mittlerweile, kann ich zwar immer noch nicht programmieren, aber mit Vorlage bekomme ich doch die ein oder andere if else abfrage zusammen. Ich habe mir mit Hilfe des Forums eine kleine Menüsteuerung zusammengebaut, wollte aber eig. schon gerne nocheinmal einen Versuch mit RiveScript starten.
Hast du eine Lösung, dass zwei Telegram User mit dem Bot sprechen können?? Die Antworten sollten natürlich nur an den Schreibenden gehn...wenn ich da an den WAF denke..der würde ganz schön in den Keller gehen wenn meine Frau jedes mal die Antworten von dem Bot bekommen würde, wenn ich ihn anschreibe.

Viele Grüsse
Flo

djfflow

Hallo,
ich habe das Modul nach einigen Versuchen auch mit Telegram am laufen.
Super Arbeit.
Was mich etwas stört ist, dass wenn ich die .rive Datei änder ich jedesmall FHEM neustarten muss. Ist dies einfacher möglich?

JoeALLb

FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

hartenthaler

Ich habe mir dazu extra ein Kommando "reloadrs" definiert, das noch einmal ein paar Tastendrücke einspart.
defmod c_reloadrs cmdalias reloadrs AS set TalkToMe reload
attr c_reloadrs group Systembefehle
attr c_reloadrs room System
fhem 5.8 auf RaspberryPi 3 mit HMLAN und CCU2, ZWave, JeeLink, FHZ1000 für FS20, HMS, Fritz!Box, Fritz!DECT200, Harmony, Sonos, hue, netatmo, SSCam, Wetter- und Verkehrsmodule, Chat-Bot mit RiveScript/Telegram, IFTTT, pushover, ...

yrwyddfa

Hallo Hartenthaler,

vielen Dank für deine rivescript-Dateien! Rivescript macht ja echt super viel Spaß (will mich daran probieren, unterschiedliche Antworten auszugeben, je nach dem, wie der bot gelaunt ist  ;D ). Wie ich sehe, nutzt du (ganz rivescript-konform auch mehrere Dateien in einem separaten Verzeichnis. Sehe ich das richtig, dass man das Verzeichnis mit rsbraindir definiert? Und wo legst du das ab? Kann man das gefahrenlos in das ./FHEM als Unterverzeichnis legen oder läuft man da Gefahr, dass es beim Update wegrationalisiert wird?

Danke schon mal für den tollen Input!
If every day has its number, Monday would be a zero division.