50_SSChatBot - Integration des Synology Chat Servers

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

Vorheriges Thema - Nächstes Thema

marvin78

Eine andere Frage.

Der TelegramBot gibt einem die Möglichkeit, Nachrichten zu ändern bzw. zu löschen, wenn sie schon versendet sind.

Beispielanwendungen:


  • Versenden von Wifi-QR-Code - man möchte nicht, dass der länger als x Sekunden angezeigt wird
  • Tür öffnen ja/nein: Auch hier sollten die Schaltflächen nicht länger als x Sekunden sichtbar sein um zu verhindern, dass sie versehentlich zu einem falschen Zeitpunkt betätigt werden

Gibt das die API her?

DS_Starter

#211
Morgen Marvin,

wegen der Datei "/tmp/login_fail.list" könntest du evtl. eine Message an den Support schreiben.
Bei mir hat diese Datei z.Z. einen einzigen (nicht lesbaren) Eintrag. Hat aber keine erkennbaren negativen Performanceauswirkungen.

ZitatGibt das die API her?
Syno hat für den ChatServer keine API-Doku veröffentlicht. Es gibt lediglich eine Beschreibung zur Integration unter https://kb.synology.com/de-de/DSM/help/Chat/chat_integration?version=6.
Das ist die Grundlage für das Modul. Sollte dir/mir/uns eine komplette API-Beschreibung auffallen .... gerne mal den Finger heben.

PS: die sonstigen (kompletten) API-Dokus findet man hier: https://www.synology.com/de-de/support/developer#tool

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

benz_freak

#212
Hallo zusammen und DANKE an DS_Starter fürs Modul,
bin gerade dabei von Telegram umzuziehen. Der WMann hat ne Diskstation gebracht :D

Mich Stört aktuell noch die 30 Sekunden die vergehen bis die Meldung ankommt, ist auch egal ob ich http oder https mache.

2022.01.02 09:54:25 5: SynChatBot - Add Item to queue - Index 14:
$VAR1 = {
          'method' => 'chatbot',
          'attachment' => '',
          'fileUrl' => '',
          'retryCount' => 0,
          'userid' => 4,
          'text' => 'Hallo das ist ein Test',
          'channel' => '',
          'opmode' => 'sendItem'
        };

2022.01.02 09:54:25 4: SynChatBot - ####################################################
2022.01.02 09:54:25 4: SynChatBot - ###         start Chat operation sendItem   
2022.01.02 09:54:25 4: SynChatBot - ####################################################
2022.01.02 09:54:25 4: SynChatBot - API hashvalues already set - ignore get apisites
2022.01.02 09:54:25 4: SynChatBot - botToken read from RAM: ********
2022.01.02 09:54:25 4: SynChatBot - start SendQueue entry index "14" (sendItem) for operation.
2022.01.02 09:54:25 5: SynChatBot - HTTP-Call will be done with httptimeout: 60 s
2022.01.02 09:54:25 4: SynChatBot - Call-Out: http://192.168.5.5:5000/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="<secret>"&payload={"text": "Hallo das ist ein Test","user_ids": [4]}
2022.01.02 09:54:55 5: SynChatBot - JSON returned: $VAR1 = {
          'data' => {
                      'succ' => {
                                  'user_id_post_map' => {
                                                          '4' => '34359738399'
                                                        }
                                },
                      'fail' => undef
                    },
          'success' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )
        };

2022.01.02 09:54:55 4: SynChatBot - Opmode "sendItem" finished successfully, Sendqueue index "14" deleted.


2022.01.02 10:05:27 5: SynChatBot - Add Item to queue - Index 3:
$VAR1 = {
          'retryCount' => 0,
          'fileUrl' => '',
          'method' => 'chatbot',
          'attachment' => '',
          'text' => 'Hallo das ist ein Test mit https',
          'opmode' => 'sendItem',
          'channel' => '',
          'userid' => 4
        };

2022.01.02 10:05:27 4: SynChatBot - ####################################################
2022.01.02 10:05:27 4: SynChatBot - ###         start Chat operation sendItem   
2022.01.02 10:05:27 4: SynChatBot - ####################################################
2022.01.02 10:05:27 4: SynChatBot - API hashvalues already set - ignore get apisites
2022.01.02 10:05:27 4: SynChatBot - botToken read from RAM: ********
2022.01.02 10:05:27 4: SynChatBot - start SendQueue entry index "3" (sendItem) for operation.
2022.01.02 10:05:27 5: SynChatBot - HTTP-Call will be done with httptimeout: 60 s
2022.01.02 10:05:27 4: SynChatBot - Call-Out: https://192.168.5.5:8443/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="<secret>"&payload={"text": "Hallo das ist ein Test mit https","user_ids": [4]}
2022.01.02 10:05:57 5: SynChatBot - JSON returned: $VAR1 = {
          'success' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
          'data' => {
                      'succ' => {
                                  'user_id_post_map' => {
                                                          '4' => '34359738400'
                                                        }
                                },
                      'fail' => undef
                    }
        };

2022.01.02 10:05:57 4: SynChatBot - Opmode "sendItem" finished successfully, Sendqueue index "3" deleted.


Richtung SSChat --> FHEM ist es sofort da.

Das ist doch bestimmt ein Problem bei meiner Infrastruktur oder Einstellung auf der Diskstation. Habt ihr Tips für mich?

PS: Fhem(192.168.6.20 Debian Linux 11) und die Diskstation(192.168.5.5 DSM 7.0.1-42218) sind nicht im selben Subnet. Dazwisch hängt ne Sophos FW. Den Timeout musste ich auch hochdrehen sonst kam nur Error Meldung

DS_Starter

Da war es aber ein netter Weihnachtsmann.  :)
Lies dir mal weiter vorn die Beiträge ab #166 durch. Der User Wiesel hatte ein ähnliches Prob und auch einen Lösungsweg.
Möglicherweise ein Prob mit DSM 7. Ich habe aus verschiedenen Gründen weiterhin DSM 6.
Evtl. auch eine Mitteilung an Syno aufmachen wenn die Ursache genauso wie bei Wiesel ist.

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

benz_freak

Hi Heiko,
Danke für die schnelle Antwort und schande über mich das hätte ich auch selber finden können soviel Seiten sind es ja noch nicht.

MailPlus hab ich am laufen nutze ich auch. Ein Stop der beiden Dienste für MailPlus hat bei mir leider keine Besserung gebracht.

Hab jetzt auch noch ein Ticket bei Synology auf gemacht. Mal schauen ob ich die gleiche Info mit verwies auf die DSM7.1 bekomme.
Oder ob der Supporter den ich erwische ein workaround hat.

Ich lasse es euch wissen.

LG Benny

DS_Starter

Ja interessiert mich auch. Mailplus nutze ich auch und bei läufts schnell und flüssig.
Du kannst dem support den Logauszug mit dem call out string geben. Da sieht man ja auch die Zeit.

Lg,
Jeiko
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

DS_Starter

Lösche doch mal die Datei

/tmp/login_fail.list

Sofern vorhanden.
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

benz_freak

#217
nach löschen der login_fail.list geht es wie es soll, die Frage ist nur wie lange

2022.01.02 12:39:17 5: SynChatBot - Add Item to queue - Index 11:
$VAR1 = {
          'attachment' => '',
          'method' => 'chatbot',
          'fileUrl' => '',
          'retryCount' => 0,
          'userid' => 4,
          'channel' => '',
          'opmode' => 'sendItem',
          'text' => 'test mit löschen der login_fail_list'
        };

2022.01.02 12:39:17 4: SynChatBot - ####################################################
2022.01.02 12:39:17 4: SynChatBot - ###         start Chat operation sendItem   
2022.01.02 12:39:17 4: SynChatBot - ####################################################
2022.01.02 12:39:17 4: SynChatBot - API hashvalues already set - ignore get apisites
2022.01.02 12:39:17 4: SynChatBot - botToken read from RAM: ********
2022.01.02 12:39:17 4: SynChatBot - start SendQueue entry index "11" (sendItem) for operation.
2022.01.02 12:39:17 5: SynChatBot - HTTP-Call will be done with httptimeout: 60 s
2022.01.02 12:39:17 4: SynChatBot - Call-Out: https://192.168.5.5:8443/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="<secret>"&payload={"text": "test mit löschen der login_fail_list","user_ids": [4]}
2022.01.02 12:39:17 5: SynChatBot - JSON returned: $VAR1 = {
          'data' => {
                      'fail' => undef,
                      'succ' => {
                                  'user_id_post_map' => {
                                                          '4' => '34359738408'
                                                        }
                                }
                    },
          'success' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )
        };

2022.01.02 12:39:17 4: SynChatBot - Opmode "sendItem" finished successfully, Sendqueue index "11" deleted.

DS_Starter

Das ist dann aber eine wichtige Info für den Syno Support !
Dann sollten die Kollegen gleich wissen wo sich das Prob verstecken könnte.
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

benz_freak

Das hab ich auch so gesehen und über den Syno Account im Ticket nachgetrgen mit dem Logauszug

benz_freak

Reproduzierbarkeit ist auch gegeben.

löscht man die rm login_fail.list geht es 1A.

Wenn man sich dann extra falsch an der DSM anmeldet wird die Datei wieder angelegt und sofort sind die 30 Sekunden wieder da.

Es ist auch egal welche IP in der login_fail steht ob Intern oder Extern, sobald die Datei da ist wird es langsam.

marvin78

Zitat von: benz_freak am 02 Januar 2022, 13:20:39
Reproduzierbarkeit ist auch gegeben.

löscht man die rm login_fail.list geht es 1A.

Wenn man sich dann extra falsch an der DSM anmeldet wird die Datei wieder angelegt und sofort sind die 30 Sekunden wieder da.

Es ist auch egal welche IP in der login_fail steht ob Intern oder Extern, sobald die Datei da ist wird es langsam.

Deckt sich mit meiner Beobachtung. Ich lösche die Datei als Workaround nun alle paar Sekunden.

ThomasMagnum

Zitat von: DS_Starter am 12 Juli 2020, 20:34:15
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.

Hallo Heiko,

ich habe in den letzten Tagen mein FHEM erfolgreich auf meine Synology in einem Docker Container umgezogen. Soweit läuft alles, inklusive dem SSChatBot.
Einzig der Versand von Grafiken funktioniert nicht, da das Device immer versucht über die Adresse im "OUTDEF" auf die Grafik zuzugreifen, was aber nicht gehen kann (http://fhem.fritz.box:8082/sschat/outchat?botname=SynChatBot&fwcsrf=...). Von daher würde ich mich sehr freuen wenn es eine Möglichkeit geben könnte den Pfad des Feldes "OUTDEF" manuel anpassen zu können.

Vielen Dank vorab.

Gruß, Thomas

DS_Starter

Hallo Thomas,

schaue ich mir gerne an.
(Oh man, schon lange nichts mehr am ChatBot geändert).

LG
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

DS_Starter

Hallo Thomas,

ich habe dir eine Testversion in mein contrib geladen.
Es enthält die Attribute spareHost, sparePort um die ermittelten Werte in OUTDEF übershreiben zu können.

Probiers mal aus.
Nach dem Laden des Moduls aus dem contrib ist ein Restart notwendig.

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