Hallo zusammen,
das ist gerade wie bei meiner Frau und mir: Wir reden beide, aber verstehen einander nicht ;)
Nein, Spaß beiseite, ich mach wahrscheinlich einen total doofen Denkfehler oder hab irgendwo etwas falsch gemacht, find aber die Lösung nicht, weder mit Google noch mit Anstarren meiner Konfigurationen. Ich hoffe, mir kann jemand helfen:
Talktome interpretiert die eingegebenen Werte korrekt nach meinem gebasteltem rivescript und gibt den richtigen Wert aus. TelegramBot redet mit Fhem und fhem mit Telegram (bis auf die SVG-Darstellung, aber das ist ein anderes Thema, denke ich).
Aber irgendwie gibt TelegramBot die Werte nicht an talktome weiter und umgekehrt auch nicht. Ein Notbehelf, indem ich beide Richtungen mit einem notify versucht habe zu überbrücken schlug auch fehl (Talktome hat die Werte von TelegramBot aufgenommen, sie auch verarbeitet, aber offensichtlich nicht verstanden - wie auch immer, ich weiß dass diese Notify-Geschichte sicherlich nicht Sinn der Sache ist).
Entweder also stimmt etwas mit meiner Konfiguration nicht, etwas fehlt oder es funktioniert nicht so wie ich glaube dass es sollte.
Hier sind meine relevanten Daten (hoffe, die reichen?):
relevanter Fhemlog-Ausschnitt nach Absetzen (keine Einträge über die anderen hier genannten Devices vorhanden)
2017.04.23 22:30:07 3: TelegramBot_ReadHandleCommand SarahSends: cmd found :hallo sarah:
2017.04.23 22:31:50 3: TelegramBot_ReadHandleCommand SarahSends: cmd found :set TALKTOME_ME query hallo sarah:
2017.04.23 22:32:17 3: TelegramBot_ReadHandleCommand SarahSends: cmd found :set TALKTOUSER_ME query hallo sarah:
list TALKTOUSER_ME
Internals:
FHEMTALKTOME_MSGCNT 8
FHEMTALKTOME_TIME 2017-04-24 08:18:24
FHEMTALKTOME_answer Bitte rede verständlich mit mir, ich hatte noch keinen Kaffee
FHEMTALKTOME_answertype REPLY
FHEMTALKTOME_device FHEMTALKTOME
FHEMTALKTOME_modSourceDeviceName TALKTOUSER_ME
FHEMTALKTOME_sourceDeviceName TALKTOUSER_ME
IODev FHEMTALKTOME
LASTInputDev FHEMTALKTOME
MSGCNT 8
NAME TALKTOUSER_ME
NR 370
NTFY_ORDER 50-TALKTOUSER_ME
STATE Reply received
TYPE TALKTOUSER
Readings:
2017-04-24 08:18:24 lastprocessedquery $
2017-04-24 08:18:24 lastquery $
2017-04-24 08:18:24 reply Bitte rede verständlich mit mir, ich hatte noch keinen Kaffee
2017-04-24 08:18:24 state Reply received
Attributes:
IODev FHEMTALKTOME
nomatch Ich konnte leider keine gute Antwort finden!
noreply Ich weiss leider nicht was ich darauf sagen soll!
realname TALKTOUSER_ME
room xSarah,xconf
list FHEMTALKTOME
Internals:
NAME FHEMTALKTOME
NR 369
STATE Reply sent to TALKTOUSER_ME
TYPE TALKTOME
Readings:
2017-04-24 08:18:24 state Reply sent to TALKTOUSER_ME
Attributes:
disable 0
room xSarah,xconf
rsbraindir ./FHEM/rive
rsbrainfile ./FHEM/rive/TALKTOME.rive
list global
Internals:
DEF no definition
NAME global
NR 1
STATE no definition
TYPE Global
currentlogfile ./log/fhem-2017-04.log
logfile ./log/fhem-%Y-%m.log
Attributes:
autoload_undefined_devices 1
configfile fhem.cfg
latitude 49.990717
logfile ./log/fhem-%Y-%m.log
longitude 7.969208
modpath .
motd none
room xconf
sendStatistics 1
statefile ./log/fhem.save
updateInBackground 1
userattr cmdIcon devStateIcon devStateStyle fm_fav fm_groups fm_name fm_order fp_FlurDisplay icon msgContactAudio msgContactLight msgContactMail msgContactPush msgContactScreen msgParams msgPriority msgRecipient msgRecipientAudio msgRecipientLight msgRecipientMail msgRecipientPush msgRecipientScreen msgRecipientText msgTitle msgTitleShrt msgType:text,push,mail,screen,light,audio,queue sortby structexclude webCmd widgetOverride
verbose 3
version fhem.pl:14046/2017-04-20
list SarahSends
// mein TelegramBot
Internals:
FAILS 0
NAME SarahSends
NR 366
POLLING 1
SNAME SarahSends
STATE Polling
TYPE TelegramBot
UPDATER 0
WAIT 0
me 249301559:SarahBot:@MessageFromSarahBot
Contacts:
232422868 232422868:Heiko_Hartmann:
Hu_do_params:
header agent: TelegramBot/1.0
User-Agent: TelegramBot/1.0
Accept: application/json
Accept-Charset: utf-8
hideurl 1
method GET
timeout 30
url
Hu_upd_params:
FD 30
NAME
addr https://api.telegram.org:443
buf
displayurl <hidden>
header agent: TelegramBot/1.0
User-Agent: TelegramBot/1.0
Accept: application/json
Accept-Charset: utf-8
hideurl 1
host api.telegram.org
hu_blocking 0
hu_portSfx
isPolling update
loglevel 4
method GET
offset 0
path /bottyyyyyyyyyyyyy:XXXXXXXXXXXXXXXXXXXXxx/getUpdates?offset=0&limit=5&timeout=120
protocol https
redirects 0
timeout 245
url https://api.telegram.org/botyyyyyyyyyyyyyyyy:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/getUpdates?offset=0&limit=5&timeout=120
Hash:
Sslargs:
Readings:
2017-04-13 22:27:17 Contacts XXXXXXXXXX:Thats_me:
2017-04-24 00:00:31 PollingErrCount 0
2017-04-22 04:09:32 PollingLastError Callback returned no valid JSON: malformed JSON string, neither array, object, number, string or atom, at character offset 0 (before "<html>\r\n<head><tit...") at ./FHEM/50_TelegramBot.pm line 1986.
2017-04-24 08:18:24 StoredCommands Sarah, set aufEinkaufsliste Duschgel
Sarah, zeigesvg VerlaufImBad
Sarah, zeigesvg SVG_Filelog_Temp_WZ_1
Sarah, zeigesvg SVG_Filelog_Temp_WZ_1.svg
Sarah, zeigesvg VerlaufDraussen
Sarah, hallo sarah
Sarah, guten morgen sarah
Sarah, set TALKTOME_ME query hallo sarah
Sarah, set TALKTOUSER_ME query hallo sarah
Sarah, set MAX_Thermostat_BD desiredTemperature 23
2017-04-24 08:18:24 msgChat Thats_me
2017-04-24 08:18:24 msgChatId XXXXXXXXX
2017-04-24 08:18:24 msgFileId
2017-04-24 08:18:24 msgId 100
2017-04-24 08:18:24 msgPeer Thats_me
2017-04-24 08:18:24 msgPeerId XXXXXXXXX
2017-04-24 08:18:24 msgReplyMsgId
2017-04-24 08:18:24 msgText Sarah, set MAX_Thermostat_BD desiredTemperature 23
2017-04-24 08:18:24 prevMsgChat Thats_me
2017-04-24 08:18:24 prevMsgFileId
2017-04-24 08:18:24 prevMsgId 98
2017-04-24 08:18:24 prevMsgPeer Thats_me
2017-04-24 08:18:24 prevMsgPeerId XXXXXXXXX
2017-04-24 08:18:24 prevMsgReplyMsgId
2017-04-24 08:18:24 prevMsgText Sarah, set TALKTOUSER_ME query hallo sarah
2017-04-24 08:18:24 sentMsgId 101
2017-04-24 08:18:24 sentMsgPeerId XXXXXXXXX
2017-04-24 08:18:24 sentMsgResult SUCCESS
Attributes:
cmdKeyword Sarah,
cmdRestrictedPeer XXXXXXXX
defaultPeer XXXXXXXX
pollingTimeout 120
room xSarah
userattr talktouserMonitorReading talktouserModSourceDev
Ich pushe nochmal umd nutz ihn um die Definitionen der fhem.cfg zu ergänzen (auch noch mal.mit fen beiden notify, ohne die nicht mal eine Übergabe der Texte stattfindet):
define SarahSends TelegramBot
attr SarahSends userattr talktouserMonitorReading talktouserModSourceDev
attr SarahSends cmdKeyword Sarah,
attr SarahSends cmdRestrictedPeer XXXXXXXXXX
attr SarahSends defaultPeer XXXXXXXXXX
attr SarahSends pollingTimeout 120
attr SarahSends room xSarah
define FHEMTALKTOME TALKTOME
attr FHEMTALKTOME disable 0
attr FHEMTALKTOME room xSarah,xconf
attr FHEMTALKTOME rsbraindir ./FHEM/rive
attr FHEMTALKTOME rsbrainfile ./FHEM/rive/TALKTOME.rive
define TALKTOUSER_ME TALKTOUSER
attr TALKTOUSER_ME IODev FHEMTALKTOME
attr TALKTOUSER_ME nomatch Ich konnte leider keine gute Antwort finden!
attr TALKTOUSER_ME noreply Ich weiss leider nicht was ich darauf sagen soll!
attr TALKTOUSER_ME realname TALKTOUSER_ME
attr TALKTOUSER_ME room xSarah,xconf
#händische Verknüpfung TALKTOME und SarahSends
define n_TG2RIVE notify SarahSends:msgText:.* set TALKTOUSER_ME query $EVENT
define n_RIVE2TG notify TALKTOUSER_ME_answer:.* set SarahSends message $EVENT
Hi,
ich hab mit TALKTOME nur mal "gespielt" und es aktuell nicht wirklich produktiv im Einsatz. Aber was mir aufgefallen ist, du hast im Telegrambot Device die beiden userattr definiert aber sie dann nicht gesetzt. Im Wiki steht:
ZitatWas heissen die Attribute?
talktouserMonitorReading: Bezeichnet das Reading welches überwacht werden soll, im falle von Telegram ist dies auf "msgText" zu setzen
talktouserModSourceDev: Lässt eine Änderung des Quell Devices zu. So muss beispielsweise für Telegram, damit eine Antwort machbar ist, das Quelldevice verändert werden. Lokale Readings (also vom Quelldevice) werden mit %%readingname%% angegeben, das device selbst ist %DEVICE%. Für Telegram muss beispielsweise %DEVICE%:@%%msgPeerId%% gesetzt werden, damit die Antworten ankommen.
Gruss
Flo
Hi Flo,
Danke Dir für Deine Antwort. Ehrlich gesagt muss ich aber gestehen, dass ich keinen blassen schimmer habe wo ich das hinterlegen soll. Würde das für Telegram heißen, ich setze
attr SarahSends talktouserMonitorReading talktouserModSourceDev %DEVICE%:@%%msgPeerId%%
?
Ich steh hier gerade echt auf dem Schlauch :/
ich muss jetzt auch ein bisschen raten:
attr SarahSends talktouserMonitorReading msgText
attr SarahSends talktouserModSourceDev %DEVICE%:@%%msgPeerId%%
wie gesagt ich glaube so sollte es gehen. so versteh ich das Wiki.
Gruß
Flo
Hmmm, als attr bietet er mir talktouserMonitorReading gar nicht an (manuell in der cfg klappt das auch nicht).
Ich habe es nun mit
attr SarahSends userattr talktouserMonitorReanding msgText
attr SarahSends talktouserModSourceDev %DEVICE%:@%%msgPeerId%%
und auch über
attr SarahSends talktouserMonitorReanding msgText talktouserModSourceDev %DEVICE%:@%%msgPeerId%%
sowie via
attr SarahSends talktouserMonitorReanding talktouserModSourceDev %DEVICE%:@%%msgPeerId%%
versucht, alles jedoch leider ohne Reaktion. Das Readlng bleibt beim TelegramModul und dringt gar nicht erst bis zu TALKTOME durch. Ich bin verwirrt. ???
du musst eintragen
attr SarahSends userattr talktouserMonitorReading talktouserModSourceDev
dann bietet er dir die attr auch in der Auswahl an. Ich dachte dass hast du schon so. Im List in deinem ersten Post hattest du die userattr schon drin gehabt.
*lach*
Schon sinnvoll zu wissen, was userattr macht *grins*
Danke schon mal dafür, das hab ich nun begriffen. Und der Weg hin geht nun auch, talktome erhält die Textnachrichten von telegram, ich habe folgende Werte gesetzt:
attr SarahSends userattr talktouserMonitorReading talktouserModSourceDev
attr SarahSends talktouserModSourceDev %DEVICE%:@%%msgPeerId%%
attr SarahSends talktouserMonitorReading msgText
Rivescript antwortet auch korrekt, der Input bei TALKTOME stimmt. Nur gelangt es von dort noch nicht nach Telegram. Muss es tatsächlich %DEVICE% heißen oder muss hier eine individuelle Einstellung des (welches) Devices vorgenommen werden? Mit SarahSends oder den telegraminternen Botnamen geht es zumindest schon mal nicht. Mannmannmann, ich fühl mich gerade wie ein verdammter Frischling *lach*
Wenn ich mit meinen müden Augen richtig gelesen habe, wird hier das gleiche Problem beschrieben
https://forum.fhem.de/index.php/topic,54863.msg569959.html#msg569959
vielleicht hilft dir das weiter.
Wenn ich heute Abend dazukomme reaktiviere ich das ganze Konstrukt bei mir mal wieder (wollte ich eh schon länger mal machen) und schau mal was bei mir rauskommt.
Gruss
Flo
so nachdem ich die TALKTOME und TALKTOUSER Devices wieder aktiviert hatte und im "globalmsg" Device noch das attr msgContactPush gesetzt hatte gings bei mir auf Anhieb. Wobei am Anfang jeder Meldung noch der Name des Talktouser Devices mitkommt. Ich weis dass dies im Thread über das Modul schon mal diskutiert wurde, aber nicht ob es eine Lösung dafür gab.
Angenommen dein globalmsg Device heißt globalmsg dann musst du so tun:
attr globalMsg msgContactPush SarahSends
Gruß
Flo
Du bist brilliant! Das war es!
Ich hatte den Thread sogar gelesen - aber hab diesen Abschnitt irgendwie gar nicht mit meiner Thematik in Verbindung gebracht. Jetzt wird auch korrekt durchgeschleift, nur mit
TALKTOUSER_ME 0 | | <text>
Das werde ich aber in dem von Dir verlinkten Thread anpingen - da ist es ja schon mal beschrieben worden.
Tausend Dank!
yr
Zitat von: yrwyddfa am 27 April 2017, 21:05:31
Du bist brilliant! Das war es!
Ich hatte den Thread sogar gelesen - aber hab diesen Abschnitt irgendwie gar nicht mit meiner Thematik in Verbindung gebracht. Jetzt wird auch korrekt durchgeschleift, nur mit
TALKTOUSER_ME 0 | | <text>
Das werde ich aber in dem von Dir verlinkten Thread anpingen - da ist es ja schon mal beschrieben worden.
Tausend Dank!
yr
Tip top
Freut mich wenns geht[emoji3]
Gesendet von meinem Moto G 2014 mit Tapatalk