50_SSChatBot - Integration des Synology Chat Servers

Begonnen von DS_Starter, 25 November 2019, 07:56:56

Vorheriges Thema - Nächstes Thema

Helmuth

Hallo Heiko

danke für Deinen Test und die schnelle Antwort.

Das das so einfach umzustellen ist hätte ich nicht gedacht. Asche über mein Haupt.

Habe es getestet und funktioniert auf Anhieb. Somit kann ich mich wieder ein wenig
der öffentlichen Daten hin und her Schieberei entziehen.

Das ist es was fhem ausmacht, einfach neue Wege gehen.

Also vielen Dank nochmal für die Hilfe.

Grüße
Helmuth
Wer einen Tippfehler findet darf ihn behalten.

Wiesenfreund

Hallo,
ich versuche auf einer Synology DS918 unter fhem im Docker SSChatBot in Betrieb zu nehmen. Auf den Client erhalte ich beim Senden folgende Meldung:
Senden der Anfrage an den Bot-Server fehlgeschlagen. Bitte kontaktieren Sie den Bot-Besitzer.

Im der LOG-Datei in fhem finde ich folgenden Eintrag (verbose=5):

2020.07.12 09:28:35.232 4: Connection accepted from WEBSSChatBot_127.0.0.1_33448
2020.07.12 09:28:35.233 5: GET /sschat/healthcheck HTTP/1.1
Host: localhost:8082
User-Agent: FHEM-Docker/1.0 Health Check
Accept: */*
2020.07.12 09:28:35.233 4: WEBSSChatBot_127.0.0.1_33448 GET /sschat/healthcheck; BUFLEN:0
2020.07.12 09:28:35.241 4: WEBSSChatBot: /sschat/healthcheck / RL:6176 / text/html; charset=UTF-8 /  / Cache-Control: no-cache, no-store, must-revalidate


Dieser Eintrag wird im Abstand von ca. 20 Sekunden ständig wiederholt. Leider verstehe ich die Meldung nicht und weiß nicht, wie ich die Meldung verhindern könnte, bzw. was ich machen könnte, um die Clients zu Laufen zu bringen.

Von fhem aus lassen sich Nachrichten versenden, aber es kommen keine der in den Clients gesendeten Nachrichten in fhem an. Die Clients erhalten die Nachricht.

Die Benutzerliste im fhem-Gerät SSChatBot wird angezeigt und der Status ist "aktive".

Auf einem Raspberry mit fhem funktioniert alles!

Kann mir bitte jemand mitteilen, ob SSChatBot im Docker auf der DS918 genutzt werden kann und was ich ggf. machen müsste.

Grüße,
Eberhard
Raspberry 4 mit fhem, Raspberry 3 mit fhem (FS20-, MAX-Schnittstellen), RaspiMatic Raspberry 3B, HM und HMW-Geräte (Heizung, Wetterstation, Fensterkontakte), Shellys (Rollladen, MQTT), ESPEasy (Energiezähler, MQTT), MAX-Taster (CUL),  FS20 Taster  (CUL), Synology NAS (Mosquitto,Chat

DS_Starter

Hallo Eberhard,

muß vorweg sagen, dass ich FHEM auf Docker nicht einsetze und nur bedingt helfen kann.
Grundsätzlich sollte SSChatBot auf Docker-FHEM auch funktionieren.

Die Meldung

Zitat
Senden der Anfrage an den Bot-Server fehlgeschlagen. Bitte kontaktieren Sie den Bot-Besitzer.
wird nicht vom Modul generiert, sondern muß von der Syno kommen.

Wenn ich dich richtig verstanden habe, klappt die Sendung von Mitteilungen von FHEM zum Synology Chat-Server, aber wenn du vom Browser/App aus eine Mitteilung über den Chatserver an den SSChatBot in FHEM senden willst, klappt das nicht und es kommt die obige Meldung, richtig ?

Du müsstest uns mal noch ein list von deinem SSChatBot und vom  WEBSSChatBot posten. Weiterhin ist interessant wie du die Integration des Bots im Chatserver angegeben hast. Das Token bitte verfälschen !

Grüße,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Wiesenfreund

Hallo Heiko,
genau so ist es, von fhem zum Server geht es, von einem Client zu fhem nicht.

Hier das List von SSChatBot:
Internals:
   DEF        192.168.178.92 5001 https
   FUUID      5f0ab6c5-f33f-9611-cc9a-99fafaaa9266b58b
   FVERSION   50_SSChatBot.pm:v1.8.0-s20534/2019-11-18
   FW         WEBSSChatBot
   INADDR     192.168.178.92
   INPORT     5001
   INPROT     https
   MODEL      ChatBot
   NAME       synoChatBot
   NR         162
   OPMODE     chatUserlist
   OUTDEF     http://fhem.fritz.box:8082/sschat/outchat?botname=synoChatBot&fwcsrf=5f0ab6c5
   RESEND     next planned SendQueue start: immediately by next entry
   STATE      active
   TOKEN      Set
   TYPE       SSChatBot
   HELPER:
     APIINFO    SYNO.API.Info
     APIPARSET  1
     CHATEXTERNAL SYNO.Chat.External
     CHATEXTERNALMAXVER 2
     CHATEXTERNALPATH entry.cgi
     INFIX      outchat
     PACKAGE    main
     TOKEN      XsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssiK
YX[Y\YSJdy>F

     USERFETCHED 1
     VERSION    1.8.0
     USERS:
       Buero:
         email      123456@online.de
         id         11
         nickname   
         status     offline
       Eberhard:
         email      432156@online.de
         id         9
         nickname   
         status     offline
       Mobiltelefon:
         email      123456@online.de
         id         6
         nickname   
         status     offline
       admin:
         email      ztrewq@online.de
         id         4
         nickname   
         status     online
       fhem:
         email      trewqwe@online.de
         id         16
         nickname   
         status     offline
       pi:
         email     
         id         5
         nickname   
         status     offline
   READINGS:
     2020-07-12 09:16:47   Error           none
     2020-07-12 09:08:16   Errorcode       none
     2020-07-12 09:18:56   QueueLenth      0
     2020-07-12 09:09:51   sendPostId      261993005058
     2020-07-12 09:09:51   sendUserId      9
     2020-07-12 09:18:56   state           active
Attributes:
   defaultPeer pi,Buero,admin,Mobiltelefon,fhem,Eberhard
   room       Chat
   verbose    5


Hier das List vom WEBSSChatBot:
Internals:
   BYTES_READ 193879
   BYTES_WRITTEN 12018601
   CONNECTS   1715
   CSRFTOKEN  5f0ab6c5
   DEF        8082 global
   FD         38
   FUUID      5f0ab6c5-f33f-9611-f6a9-3dd2d5152c2ffff0
   FVERSION   01_FHEMWEB.pm:0.222440/2020-06-23
   NAME       WEBSSChatBot
   NR         163
   NTFY_ORDER 50-WEBSSChatBot
   PORT       8082
   STATE      Initialized
   TYPE       FHEMWEB
   READINGS:
     2020-07-12 09:15:16   state           Initialized
Attributes:
   closeConn  1
   comment    WEB Instance for SSChatBot devices.
It catches outgoing messages from Synology Chat server.
Don't edit this device manually (except such attributes like "room", "icon") !
   csrfToken  5f0ab6c5
   room       Chat
   stylesheetPrefix default
   verbose    5
   webname    sschat


Die Einbindungseinstellungen enthalten die Ausgehende URL aus dem SSChatBot-Gerät, die Eingehende URL kann ja von mir nicht beeinflusst werden und enhält:
https://192.168.178.92:5001/webapi/entry.cgi?api=SYNO.Chat.External&method=chatbot&version=2&token=%22Sxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx9BwA7MWDYdWaCCk%22
Bei den Einbindungseinstellungen des Bot habe ich die aktuellen Daten genommen, Token usw. wurde durch probieren verändert. Du kannst sicher sein, dass ich die richtigen Daten beim Token und der URL kopiert hatte.

Ansonsten gibt es nichts einzustellen. Wie gesagt, mit fhem auf dem Raspberry ist die Einrichtung kein Problem.

Gruß
Eberhard
Raspberry 4 mit fhem, Raspberry 3 mit fhem (FS20-, MAX-Schnittstellen), RaspiMatic Raspberry 3B, HM und HMW-Geräte (Heizung, Wetterstation, Fensterkontakte), Shellys (Rollladen, MQTT), ESPEasy (Energiezähler, MQTT), MAX-Taster (CUL),  FS20 Taster  (CUL), Synology NAS (Mosquitto,Chat

DS_Starter

Hallo Eberhard,

Vermutung ....

Im SSChatBot-Device wird der Wert von OUTDEF automatisch durch das Modul ermittelt. OUTDEF beschreibt unter anderem  den Host/Port unter dem der SSChatBot erreichbar sein soll. In einem normalen Umfeld gehe ich davon aus, dass diese automatische Ermittlung gut funktioniert.

Dein FHEM/SSChatBot läuft aber jetzt auf dem Docker der Synology und müsste meiner Meinung nach die gleiche IP-Adresse wie die Syno haben, aber natürlich einem anderen Port. 8082 kann stimmen, muss aber nicht bei evtl. Portumleitung.

Also gehe ich momentan davon aus, dass dein OUTDEF:

http://fhem.fritz.box:8082/sschat/outchat?botname=synoChatBot&fwcsrf=5f0ab6c5

nicht stimmt und das Modul hier irrt.
Wie sprichst du dein Docker-FHEM vom Browser aus denn an, sicherlich nicht unter "http://fhem.fritz.box:8082", oder ?

Grüße,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Wiesenfreund

Heiko, das stimmt, ich benutze die IP-Adresse 192.168.178.92 der Diskstation mit dem Port 8085. In Docker wird der fhem-Port 8083 auf den Port 8085 umgeleitet. Warum das so ist, verstehe ich nicht, aber es ist notwendig und funktioniert. 

Kann OUTDEF angepasst werden?

Gruß
Eberhard
Raspberry 4 mit fhem, Raspberry 3 mit fhem (FS20-, MAX-Schnittstellen), RaspiMatic Raspberry 3B, HM und HMW-Geräte (Heizung, Wetterstation, Fensterkontakte), Shellys (Rollladen, MQTT), ESPEasy (Energiezähler, MQTT), MAX-Taster (CUL),  FS20 Taster  (CUL), Synology NAS (Mosquitto,Chat

DS_Starter

#66
ZitatKann OUTDEF angepasst werden?
Nein, das ist auch nicht nötig. Es ist eigentlich nur eine Hilfe für den User, der im normalen Umfeld den dort stehenden String einfach nur als "Ausgehende URL" bei der ChatBot-Einbindung reinkopieren muss.

Du müsstest also bei dir in der ChatBot Einbindung (in den Client-Einstellungen) anstatt dem String aus OUTDEF eine angepasste Adresse eintragen. D.h. in "Ausgehende URL".
Wenn ich mich jetzt nicht täusche müsste es so passen:


http://192.168.178.92:8085/sschat/outchat?botname=synoChatBot&fwcsrf=5f0ab6c5


Woher das Modul "fhem.fritz.box:8082" nimmt, erschließt sich mir momentan nicht.

EDIT: Es gibt allerdings auch einen Fall, in dem ich OUTDEF auswerte zur Versendung von SVG-Grafiken. In diesem Fall bin ich darauf angewiesen, dass OUTDEF mit den tatsächlichen Gegebenheiten übereinstimmt. Wenn also meine Vermutung richtig ist, braucht man wahrscheinlich doch eine manuelle Anpassungsmöglichkeit falls die automatische Adressermittlung in Docker nicht funktioniert.
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Wiesenfreund

Vielen Dank für die Hilfe,
ich habe in den Einbindungseinstellungen die ausgehende URL nach deinem Vorschlag angepasst und erhalte jetzt im Bot-Client keine Fehlermeldung mehr. In fhem kommt jedoch leider der über den Client gesendete Text nicht an. Keine Fehlermeldung in fhem und keine Reaktion in den Readings. Im Log der bereits gepostete Eintrag.

2020.07.12 20:57:11.556 4: Connection accepted from WEBSSChatBot_127.0.0.1_52510
2020.07.12 20:57:11.556 5: GET /sschat/healthcheck HTTP/1.1
Host: localhost:8082
User-Agent: FHEM-Docker/1.0 Health Check
Accept: */*
2020.07.12 20:57:11.556 4: WEBSSChatBot_127.0.0.1_52510 GET /sschat/healthcheck; BUFLEN:0
2020.07.12 20:57:11.565 4: WEBSSChatBot: /sschat/healthcheck / RL:6912 / text/html; charset=UTF-8 /  / Cache-Control: no-cache, no-store, must-revalidate


Der Eintrag im Log entsteht aber auch, ohne dass eine Nachricht an fhem gesendet wird.

Solltest du die Ursache nicht kennen, dann lösche ich morgen die komplette Konfiguration und lege alles neu an. Wäre das sinnvoll??

Gruß Eberhard
Raspberry 4 mit fhem, Raspberry 3 mit fhem (FS20-, MAX-Schnittstellen), RaspiMatic Raspberry 3B, HM und HMW-Geräte (Heizung, Wetterstation, Fensterkontakte), Shellys (Rollladen, MQTT), ESPEasy (Energiezähler, MQTT), MAX-Taster (CUL),  FS20 Taster  (CUL), Synology NAS (Mosquitto,Chat

DS_Starter

Habe momentan auch keine weitere Idee. Diese Meldungen kenne ich so bei mir nicht. Sieht etwas anders aus, z.B.POST statt GET und auch "healthcheck" sagt mir nichts.
Neu konfigurieren ist in dem Fall keine schlechte Idee, geht ja auch schnell. Die Docker Spezifika sind wohl doch manchmal nicht so ganz trivial...

LG,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Wiesenfreund

Hallo Heiko,
auch die Neueinrichtung des Bot hat leider nicht geholfen. Ich warte mal noch ein paar Tage ab, vielleicht hat jemand eine Idee, was abhelfen könnte.

Danke für die Hilfe,
Eberhard
Raspberry 4 mit fhem, Raspberry 3 mit fhem (FS20-, MAX-Schnittstellen), RaspiMatic Raspberry 3B, HM und HMW-Geräte (Heizung, Wetterstation, Fensterkontakte), Shellys (Rollladen, MQTT), ESPEasy (Energiezähler, MQTT), MAX-Taster (CUL),  FS20 Taster  (CUL), Synology NAS (Mosquitto,Chat

DS_Starter

Hallo Eberhard,

hast du es schon mal so probiert ?


http://127.0.0.1:8082/sschat/outchat?botname=synoChatBot&fwcsrf=5f0ab6c5
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Wiesenfreund

Hallo Heiko,
auch die Kombination 127.0.0.1:8082 und 127.0.0.1:8085 und auch 127.0.0.1:8083 funktionieren nicht, mit dem Unterschied, dass in der erstgenannten und letztgenannten Version die bekannte Fehlermeldung im Synology-Client "Sender Anfrage...fehlgeschlagen" angezeigt wird, in der Version mit dem auf 8085 geänderten Port kommt keine Fehlermeldung im Clinet, aber auch keine Nachricht im SSChatBot-Gerät an.

Hat es eventuell mit dem zu tun, dass im Docker fhem mit dem Container-Port 8083 läuft aber SSChatBot auf 8082 ausgelegt ist? Laienhaft ausgedrückt!

Gruß Eberhard

Raspberry 4 mit fhem, Raspberry 3 mit fhem (FS20-, MAX-Schnittstellen), RaspiMatic Raspberry 3B, HM und HMW-Geräte (Heizung, Wetterstation, Fensterkontakte), Shellys (Rollladen, MQTT), ESPEasy (Energiezähler, MQTT), MAX-Taster (CUL),  FS20 Taster  (CUL), Synology NAS (Mosquitto,Chat

DS_Starter

Moin Eberhard,

ja, mir fällt es gerade wie Schuppen von den Augen.
Es ist nicht SSChatBot, aber das WEBSSChatBot Device läuft auf 8082.
Du brauchst also im Docker eine weitere Portumleitung von z.B. 9082 auf 8082.

Dann würdest du in der Integration angeben


http://192.168.178.92:9082/sschat/outchat?botname=synoChatBot&fwcsrf=5f0ab6c5


weil dasWeb Device unter diesem Port für den Syno Chatserver verfügbar wäre.
Prima Eberhard, manchmal hat man einfach einen Knoten im Hirn. :o

LG,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Wiesenfreund

Hallo Heiko,
vielen Dank, das war es. WEBSSChatBot ist quasi das Einfallstor für Nachrichten aus dem Client. Wieder was gelernt.

Nachmals DANKE für die Hilfe.

Viele Grüße
Eberhard
Raspberry 4 mit fhem, Raspberry 3 mit fhem (FS20-, MAX-Schnittstellen), RaspiMatic Raspberry 3B, HM und HMW-Geräte (Heizung, Wetterstation, Fensterkontakte), Shellys (Rollladen, MQTT), ESPEasy (Energiezähler, MQTT), MAX-Taster (CUL),  FS20 Taster  (CUL), Synology NAS (Mosquitto,Chat

DS_Starter

Hallo zusammen,

wie ihr eventuell in den Ankündigungen gelesen habt, habe ich mich entschieden nun auch das SSChatBot-Modul offiziell in das Repo einzuchecken.
Das ist nach entsprechenden Finalisierungen soeben passiert.
Das Modul wird ab morgen früh im Standard-Update mit ausgeliefert. Um die Kompatibilität zu gewährleisten, ist das SSCam-Modul ebenfalls mit angepasst (nur von Interesse für SSCam-User).

Restart ist auf jeden Fall nötig, aber das ist ja Standard bei einem Update.

Grüße,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter