[gelöst][TALKTOME] <call> Object not found: Fhemdevices werden nicht gefunden

Begonnen von yrwyddfa, 01 Mai 2017, 15:55:56

Vorheriges Thema - Nächstes Thema

yrwyddfa

Hallo zusammen,

Die Übersetzung von Talktofhem zu telegram und zurück läuft bei mir ganz gut, allerdings mit einer Einschränkung: Er findet sämtliche Devices nicht, wenn ich sie über Talktome respektive RiveScript anspreche. Der Direkte Aufruf über das Triggerword (also mit Umgehung von Talktome) funktioniert hingegen:


Telegram-Chat:

Me> Sarah, wie warm ist es in der Küche?
bot> Die Temperatur in der Küche beträgt [ERR: Object Not Found] °C ([ERR: Object Not Found])

Me> *Triggerword* set MAX_Thermostat_Kch desiredTemperature 20
bot>  TelegramBot FHEM:
                 Befehl: set MAX_Thermostat_Kch desiredTemperature 20:
              Ergebnis:
          OK


List des Bots in Fhem:



Internals:
   FAILS      0
   NAME       SarahSends
   NR         377
   OLD_POLLING 176
   POLLING    176
   SNAME      SarahSends
   STATE      Polling
   TYPE       TelegramBot
   UPDATER    0
   WAIT       0
   me         *zensus*:SarahBot:@MessageFromSarahBot
   offset_id  7034479
   sentLastResult SUCCESS
   sentMsgId  219
   sentMsgPeer *zensus*
   sentMsgPeerId *zensus*
   sentMsgResult SUCCESS
   sentMsgText TelegramBot FHEM : \n    Befehl:set Einkaufsliste addTask Unobtanium:\n  Ergebnis:\nOK
   Contacts:
     232422868  *zensus*:*zensus*:
   Hu_do_params:
     NAME
     addr       https://api.telegram.org:443
     boundary   TelegramBot_boundary-x0123
     buf
     code       200
     conn
     data
     displayurl <hidden>
     header     agent: TelegramBot/1.0

User-Agent: TelegramBot/1.0

Accept: application/json

Accept-Charset: utf-8

Content-Type: multipart/form-data; boundary=TelegramBot_boundary-x0123
     hideurl    1
     host       api.telegram.org
     httpheader HTTP/1.1 200 OK

Server: nginx/1.10.0

Date: Mon, 01 May 2017 11:30:30 GMT

Content-Type: application/json

Content-Length: 319

Connection: close

Access-Control-Allow-Origin: *

Access-Control-Allow-Methods: GET, POST, OPTIONS

Access-Control-Expose-Headers: Content-Length,Content-Type,Date,Server,Connection

Strict-Transport-Security: max-age=31536000; includeSubdomains
     hu_blocking 0
     hu_filecount 9
     hu_portSfx
     loglevel   4
     method     POST
     path       /bot249301559:AAEjy_SfGgpFQ4cF1pMPdUo-BjdIVIy9OfY/sendMessage
     protocol   https
     redirects  0
     timeout    30
     url        https://api.telegram.org/bot*zensus*:*zensus*/sendMessage
     args:
      *zensus*
       TelegramBot FHEM : \n    Befehl:set Einkaufsliste addTask Unobtanium:\n  Ergebnis:\nOK
       undef
       0
       undef
       2
     Hash:
     Sslargs:
   Hu_upd_params:
     FD         4
     NAME
     addr       https://api.telegram.org:443
     buf
     code       200
     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_filecount 2215
     hu_portSfx
     isPolling  update
     loglevel   4
     method     GET
     offset     7034479
     path       /bot*zensus*:*zensus*/getUpdates?offset=7034479&limit=5&timeout=120
     protocol   https
     redirects  0
     timeout    245
     url        https://api.telegram.org/bot*zensus*:*zensus*/getUpdates?offset=7034479&limit=5&timeout=120
     Hash:
     Sslargs:
   Readings:
     2017-04-13 22:27:17   Contacts        *zensus*:*zensus*:
     2017-05-01 00:00:46   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-05-01 13:30:27   StoredCommands  *Triggerword* set ITSwitch 6 on
*Triggerword* set ITSwitch_6 on
Mach im Schlafzimmer den Strom an
Schalte im Schlafzimmer den Strom aus
Schalte im schlafzimmer steckdose aus
Setze almigurt auf die einkaufsliste
Mach die Kaffeemaschine an
Packe unobtanium auf die liste
*Triggerword* set Einkaufsliste addTask Unobtanium

     2017-05-01 13:30:27   msgChat         *zensus*
     2017-05-01 13:30:27   msgChatId       *zensus*
     2017-05-01 13:30:27   msgFileId
     2017-05-01 13:30:27   msgId           217
     2017-05-01 13:30:27   msgPeer         *zensus*
     2017-05-01 13:30:27   msgPeerId       *zensus*
     2017-05-01 13:30:27   msgReplyMsgId
     2017-05-01 13:30:27   msgText         *Triggerword* set Einkaufsliste addTask Unobtanium
     2017-05-01 13:30:27   prevMsgChat     *zensus*
     2017-05-01 13:30:27   prevMsgFileId
     2017-05-01 13:30:27   prevMsgId       214
     2017-05-01 13:30:27   prevMsgPeer     *zensus*
     2017-05-01 13:30:27   prevMsgPeerId   *zensus*
     2017-05-01 13:30:27   prevMsgReplyMsgId
     2017-05-01 13:30:27   prevMsgText     *Triggerword* set Einkaufsliste addtask Unobtanium
     2017-05-01 13:30:30   sentMsgId       219
     2017-05-01 13:30:30   sentMsgPeerId   *zensus*
     2017-05-01 13:30:30   sentMsgResult   SUCCESS
   sentQueue:
Attributes:
   cmdKeyword *Triggerword*
   cmdRestrictedPeer *zensus*
   defaultPeer *zensus*
   pollingTimeout 120
   room       xSarah
   talktouserModSourceDev %DEVICE%:@%%msgPeerId%%
   talktouserMonitorReading msgText
   userattr   talktouserMonitorReading talktouserModSourceDev


List von Talktofhem:



Internals:
   NAME       FHEMTALKTOME
   NR         380
   STATE      Reply sent to TALKTOUSER_ME
   TYPE       TALKTOME
   Readings:
     2017-05-01 13:30:27   state           Reply sent to TALKTOUSER_ME
Attributes:
   disable    0
   room       xSarah,xconf
   rsbraindir ./FHEM/rive


List Talktouser_me



Internals:
   FHEMTALKTOME_MSGCNT 5
   FHEMTALKTOME_TIME 2017-05-01 13:30:27
   FHEMTALKTOME_answer Tut mir leid, ich weiß nicht, was du von mir möchtest!
   FHEMTALKTOME_answertype REPLY
   FHEMTALKTOME_device FHEMTALKTOME
   FHEMTALKTOME_modSourceDeviceName @SarahSends:@*zensus*
   FHEMTALKTOME_sourceDeviceName SarahSends
   IODev      FHEMTALKTOME
   LASTInputDev FHEMTALKTOME
   MSGCNT     5
   NAME       TALKTOUSER_ME
   NR         381
   NTFY_ORDER 50-TALKTOUSER_ME
   STATE      Query sent
   TYPE       TALKTOUSER
   Readings:
     2017-05-01 13:30:27   lastprocessedquery *Triggerword* set Einkaufsliste addTask Unobtanium
     2017-04-25 19:08:06   lastquery       msgText: Hiho
     2017-04-25 19:08:06   reply           Bitte rede verständlich mit mir, ich hatte noch keinen Kaffee
     2017-05-01 13:30:27   state           Query sent
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



Das "Tut mir leid, ich weiß nicht was du von mir möchtest" kommt darüber zustande, dass ich über das Triggerword einen direkten Befehl an Fhem gesendet hat - der ist in keiner Rivedatei drin, demnach ist das vollkommen korrekt, dass er diese Antwort bringt.

Ich glaube, ich habe den falschen Filter vor den Augen, ich finde zumindest nirgendwo einen Ansatz dieses Problem zu lösen - reden tun ja alle miteinander, warum also zum Teufel erkennt Talktome die (korrekt benannten) Devices nicht?
If every day has its number, Monday would be a zero division.

yrwyddfa

If every day has its number, Monday would be a zero division.

yrwyddfa

Auch ganz einfache Dummies, also solche, wo nur ein Wert übergeben wird, werden nicht gefunden. Irgendwas muss ich wahrscheinlich in der Talktofhem falsch gesetzt haben, aber ich glaube, ich sehe den Wald vor lauter Bäumen nicht *kopfkratz*
If every day has its number, Monday would be a zero division.

yrwyddfa

Hat niemamd eine Ahnung? Ich hab auch noch mal geprüft, ob alle Dateien auf OS-Ebene die richtige Berechtigung haben und habe sicherheitshalber noch mal ein

cd /
sudo chown -R fhem:dialout /opt/fhem/*


gemacht, um alle Dateien im Verzeichnis die Berechtigung zu erteilen. Aber auch das ändert nichts, mir gehen echt die Ideen aus, jede Hilfe wäre hochwillkommen ...
If every day has its number, Monday would be a zero division.

yrwyddfa

Ich habe die Lösung gefunden.

Wenn man Fhem - Calls machen möchte, MUSS die TALKTOME.rive im Verzeichnis ./FHEM liegen. Ich hatte einen eigenen Unterordner angelegt, in den ich die Rive-files hineingelegt habe. Da funktioniert RS zwar einwandfrei, aber so lange die TALKTOME.rive nicht im ./FHEM-Verzeichnis liegt, findet er auch keinerlei Fhem-Devices.

Wenn man also mehr als eine Rive-Datei nutzen möchte, muss alle rive-Dateien ebenfalls direkt im ./FHEM-Verzeichnis ablegen und dieses dann beim attr braindir setzen:
attr FHEMTALKTOME rsbraindir ./FHEM

(set FHEMTALKTOME reload nicht vergessen!)

Ich hoffe, die Lösung war klar genug formuliert, ansonsten lade ich nachfolgende mit dem selben Problem gern ein noch mal nachzufragen :)
If every day has its number, Monday would be a zero division.