ChatBot - Senden der Anfrage an den Bot-Server fehlgeschlagen

Begonnen von Wiesenfreund, 24 August 2023, 16:21:27

Vorheriges Thema - Nächstes Thema

Wiesenfreund

Bei Benutzung des ChatBot erhalte ich beim Senden von Nachrichten an fhem aus der Anwendung Synology Chat die Anzeige: Senden der Anfrage an den Bot-Server fehlgeschlagen. Bitte kontaktieren Sie den Bot-Besitzer. Das Versenden von Nachrichten über den Bot an die in defautlPeer eigetragenen Anwender funktioniert.

Der Bot hat seit es ihn gibt funktioniert. Token ist richtig eingetragen. Ich habe versuchsweise einem der Anwendernamen auch Admin-Rechte verpasst, keine Wirkung.

Was hat sich verändert gegenüber vor einigen Wochen: Update in fhem und auf der DS918.

Ich suche jetzt schon mehrere Tage und finde keinen Weg den Fehler zu finden.

Kann mir jemand einen Tip geben??



 
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

Ein paar mehr Infos braucht man schon.
Welche Version des Moduls und des Syno DSM setzt du ein? SSChatBot wurde im Mai das letzte mal geupdated.
Ich tippe ganz stark auf dein Syno DSM.
Setze im SSChatBot Device bzw. dem zugeordneten FHEMWEB Device (WEBSSChatBot) verbose 4 oder gar 5, je nachdem wann hilfreiche Infos ausgeschrieben werden.
Proxmox+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

DS918 mit DSM 7.1.1-42962 Update 6.
Die Modulversionen siehe Anhänge.
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

Wiesenfreund

Folgendes wurde ins Log geschrieben (ich hoffe, damit ist was anzufangen):

2023.08.24 18:47:06.920 5:  SynChatBot - Add Item to queue - Index 22:
$VAR1 = {
          'retryCount' => 0,
          'method' => '',
          'postid' => undef,
          'opmode' => 'apiInfo',
          'userid' => '',
          'channel' => '',
          'text' => '',
          'attachment' => '',
          'fileUrl' => ''
        };

2023.08.24 18:47:06.922 4:  SynChatBot - ####################################################
2023.08.24 18:47:06.922 4:  SynChatBot - ###         start Chat operation apiInfo   
2023.08.24 18:47:06.923 4:  SynChatBot - ####################################################
2023.08.24 18:47:06.923 5:  SynChatBot - HTTP-Call will be done with httptimeout: 20 s
2023.08.24 18:47:06.924 4:  SynChatBot - API imported:
$VAR1 = {
          'INFO' => {
                      'mk' => 1,
                      'VER' => 1,
                      'PATH' => 'query.cgi',
                      'NAME' => 'SYNO.API.Info'
                    },
          'POST' => {
                      'mk' => 1,
                      'NAME' => 'SYNO.Chat.Post'
                    },
          'EXTERNAL' => {
                          'NAME' => 'SYNO.Chat.External',
                          'mk' => 1
                        }
        };

2023.08.24 18:47:06.924 4:  SynChatBot - Call-Out: https://192.168.178.92:5001/webapi/query.cgi?api=SYNO.API.Info&method=Query&version=1&query=SYNO.API.Info,SYNO.Chat.Post,SYNO.Chat.External
2023.08.24 18:47:07.040 5:  SynChatBot - JSON returned: $VAR1 = {
          'data' => {
                      'SYNO.API.Info' => {
                                           'minVersion' => 1,
                                           'requestFormat' => 'JSON',
                                           'maxVersion' => 1,
                                           'path' => 'entry.cgi'
                                         },
                      'SYNO.Chat.External' => {
                                                'minVersion' => 1,
                                                'path' => 'entry.cgi',
                                                'requestFormat' => 'JSON',
                                                'maxVersion' => 2
                                              },
                      'SYNO.Chat.Post' => {
                                            'path' => 'entry.cgi',
                                            'maxVersion' => 8,
                                            'requestFormat' => 'JSON',
                                            'minVersion' => 1
                                          }
                    },
          'success' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )
        };

2023.08.24 18:47:07.051 4:  SynChatBot - API completed:
$VAR1 = {
          'PARSET' => 1,
          'INFO' => {
                      'PATH' => 'entry.cgi',
                      'MOD' => 'no',
                      'NAME' => 'SYNO.API.Info',
                      'mk' => 1,
                      'VER' => 1
                    },
          'POST' => {
                      'VER' => 8,
                      'mk' => 1,
                      'PATH' => 'entry.cgi',
                      'NAME' => 'SYNO.Chat.Post',
                      'MOD' => 'no'
                    },
          'EXTERNAL' => {
                          'MOD' => 'no',
                          'NAME' => 'SYNO.Chat.External',
                          'PATH' => 'entry.cgi',
                          'VER' => 2,
                          'mk' => 1
                        }
        };

2023.08.24 18:47:07.052 4:  SynChatBot - Opmode "apiInfo" finished successfully, Sendqueue index "22" deleted.
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

Ja sieht alles gut aus. Vermutlich ist es hilfreich in dem zugeordneten Web Device wie oben geschrieben das verbose zu setzen, eine Anfrage an FHEM zu starten und dann zu schauen was im Log sinnvolles steht.
Proxmox+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

Ich hatte im web-Device und im ChatBot verbose = 5 gesetzt und beim Senden einer Anfrage den vorhin genannten Eintrag erhalten.
Nochmals eine Anfrage eines anderen Anwenders gesendet. Folgender neuer Eintrag im Log:

2023.08.24 18:47:06.920 5:  SynChatBot - Add Item to queue - Index 22:
$VAR1 = {
          'retryCount' => 0,
          'method' => '',
          'postid' => undef,
          'opmode' => 'apiInfo',
          'userid' => '',
          'channel' => '',
          'text' => '',
          'attachment' => '',
          'fileUrl' => ''
        };

2023.08.24 18:47:06.922 4:  SynChatBot - ####################################################
2023.08.24 18:47:06.922 4:  SynChatBot - ###         start Chat operation apiInfo   
2023.08.24 18:47:06.923 4:  SynChatBot - ####################################################
2023.08.24 18:47:06.923 5:  SynChatBot - HTTP-Call will be done with httptimeout: 20 s
2023.08.24 18:47:06.924 4:  SynChatBot - API imported:
$VAR1 = {
          'INFO' => {
                      'mk' => 1,
                      'VER' => 1,
                      'PATH' => 'query.cgi',
                      'NAME' => 'SYNO.API.Info'
                    },
          'POST' => {
                      'mk' => 1,
                      'NAME' => 'SYNO.Chat.Post'
                    },
          'EXTERNAL' => {
                          'NAME' => 'SYNO.Chat.External',
                          'mk' => 1
                        }
        };

2023.08.24 18:47:06.924 4:  SynChatBot - Call-Out: https://192.168.178.92:5001/webapi/query.cgi?api=SYNO.API.Info&method=Query&version=1&query=SYNO.API.Info,SYNO.Chat.Post,SYNO.Chat.External
2023.08.24 18:47:07.040 5:  SynChatBot - JSON returned: $VAR1 = {
          'data' => {
                      'SYNO.API.Info' => {
                                           'minVersion' => 1,
                                           'requestFormat' => 'JSON',
                                           'maxVersion' => 1,
                                           'path' => 'entry.cgi'
                                         },
                      'SYNO.Chat.External' => {
                                                'minVersion' => 1,
                                                'path' => 'entry.cgi',
                                                'requestFormat' => 'JSON',
                                                'maxVersion' => 2
                                              },
                      'SYNO.Chat.Post' => {
                                            'path' => 'entry.cgi',
                                            'maxVersion' => 8,
                                            'requestFormat' => 'JSON',
                                            'minVersion' => 1
                                          }
                    },
          'success' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )
        };

2023.08.24 18:47:07.051 4:  SynChatBot - API completed:
$VAR1 = {
          'PARSET' => 1,
          'INFO' => {
                      'PATH' => 'entry.cgi',
                      'MOD' => 'no',
                      'NAME' => 'SYNO.API.Info',
                      'mk' => 1,
                      'VER' => 1
                    },
          'POST' => {
                      'VER' => 8,
                      'mk' => 1,
                      'PATH' => 'entry.cgi',
                      'NAME' => 'SYNO.Chat.Post',
                      'MOD' => 'no'
                    },
          'EXTERNAL' => {
                          'MOD' => 'no',
                          'NAME' => 'SYNO.Chat.External',
                          'PATH' => 'entry.cgi',
                          'VER' => 2,
                          'mk' => 1
                        }
        };

2023.08.24 18:47:07.052 4:  SynChatBot - Opmode "apiInfo" finished successfully, Sendqueue index "22" deleted.

Fehlt das irgend etwas?
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

#6
Wenn du dir dein SSChatBot Device anschaust, siehst du im Internal "FW" das zugehörige FHEMWEB Device (siehe Anhang). Dieses Device ist relevant wenn du im Synology Chat, entweder im Browser oder der Mobil App, eine Message an FHEM schreibst.

Stellst du verbose 5 in diesem Device ein (in meinem Fall heißt es WEBSSChatBot) und sendest eine Nachricht an FHEM, siehst du im Log eine solche Ausgabe:

2023.08.24 20:23:46.567 4: Connection accepted from WEBSSChatBot_192.168.2.10_38578
2023.08.24 20:23:46.569 5: POST /sschat/outchat?botname=SynChatBot&fwcsrf=5de1859f HTTP/1.1
Host: fhemtest.myds.me:8086
User-Agent: SynologyChatBot/1.0
Accept: */*
Content-Length: 170
Content-Type: application/x-www-form-urlencoded
2023.08.24 20:23:46.570 4: WEBSSChatBot_192.168.2.10_38578 POST /sschat/outchat?botname=SynChatBot&fwcsrf=797789&token=U6FOMH9IgT22ECJceaIW0fNwEi7VfqWXXXXXXXXXXXXXXXXXXXXXXXX&user_id=4&username=Heiko&post_id=34359741707&thread_id=0×tamp=1692901426270&text=Testnachricht; BUFLEN:0
2023.08.24 20:23:46.728 4: WEBSSChatBot: /sschat/outchat?botname=SynChatBot&fwcsrf=797789&token=U6FOMH9IgT22ECJceaIW0fNwEi7VfqWXXXXXXXXXXXXXXXXXXXXXXXX&user_id=4&username=Heiko&post_id=34359741707&thread_id=0×tamp=1692901426270&text=Testnachricht / RL:7 / text/plain; charset=utf-8 /  / Cache-Control: no-cache, no-store, must-revalidate

Wenn dieses Nachricht nicht kommt, musst du dein Setup im Synology Chat bzgl. der Bot-Einstellung überprüfen.
Kommen Fehler, dann kann man da schauen was evtl. los ist.
Proxmox+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

Danke für den Hinweis.
Ein entsprechender Eintrag fehlt im Log vollständig. Schau ich mir morgen nochmal an.
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

Wiesenfreund

Hallo DS_Starter,
wie gesagt, im Log fehlt jeder Eintrag vom FHEMWEB-Device. verbose 5 ist gesetzt.

Was habe ich gemacht:
1. In Fhem SSChatBot und WEBSSChatBot gelöscht.

2. Bot auf der DS918 gelöscht.

3. Bot neu auf der DS918 angelegt. Mit einem Benutzer der Admin-Rechte hat. Kontrolliert, ob das chat-Verzeichnis und die Anwendung Chat die Rechte gesetzt sind.

4. SSChatBot-Device in fhem mit den Paramtern 5001 https angelegt.

5. Bot-Token aus Chat-Bot im SSChatBot eingetragen und kontrolliert.

6. OUTDEF im Chat-Bot eingetragen und kontrolliert: "http://raspberrypi4.fritz.box:8082/sschat/outchat?botname=SynChatBot&fwcsrf=64xxxx63

7. In SSChatBot in fhem defaultPeer ausgewählt. STATE ist acitve.

8. In Chat den Bot aktiviert.

8. Mit set asyncSendItem eine Nachricht verschicht, kommt im Chat-Bot an. Im fhem-Log ist ein passender Eintrag zu finden.

9. Im Chat-Bot einen Text gesendet und erhalten: "Senden der Anfrage an den Bot-Server fehlgeschlagen. Bitte kontaktieren Sie den Bot-Besitzer."

10. Im der Chat-Admin-Konsole im Protokoll folgender Eintrag: "User Buero chatbot webhook outgoing excuted, id: 25, channel_id: 44, url: http://raspberrypi4.fritz.box:8082/sschat/outchat?botname=SynChatBot&fwcsrf=64xxxx63"

Muss ich an irgend einer Stelle auf der DS918 noch entwas einstellen/konfigurieren????

Ich finde den Fehler nicht.

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,

du verwendest https, hast aber OUTDEF im Chat-Bot nur mit http eingetragen (bei mir auch so).
Möglicherweise arbeitet dein Chat-Bot nur mit https und du müsstest dort auch https hinterlegen.
Weiterhin muss die Synology den Servernamen raspberrypi4.fritz.box auflösen können (DNS).
Vllt. kann sie es nicht und du könntest statt dessen die entsprechende IP verwenden.

Du kannst aber auch mal eine Meldung bei Synology mit diesem Fehler aufmachen da die Situation nach dem Synology Update aufgetreten ist. Vllt. gibt dort ja einen Bug.
Proxmox+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

In Outdef hatte ich auch schon https probiert, ohne Erfolg.
Der Servername wird offensichtlich aufgelöst, da ich bei der Anlage des Modul eine IP-Adresse im Standardformat angegeben hatte.

Danke für die Hilfe, ich gebe auf, da ich zwischenzeitlich schon viele Stunden mit der Fehlersuche verbracht habe.

Nochmals DANKE.
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