FHEM Forum

FHEM => Sonstiges => Thema gestartet von: DS_Starter am 25 November 2019, 07:56:56

Titel: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 25 November 2019, 07:56:56
Ich bin dabei ein neues Modul zur Integration des Synology Chat Servers zu erstellen.

Ziel ist es, ähnlich wie bei Telegram, Nachrichten zwischen FHEM und Synology Chat auszutauschen.

Vorteil dieser Lösung ist, dass man als Synology Besitzer auf keine public Cloud mehr angewiesen ist, sondern FHEM diesbezüglich wieder in seiner privaten Cloudumgebung integriert, so wie es bei dem SSCam-Kameramodul auch der Fall ist.
Dadurch bleiben die Daten "zu Hause". Mit der von Synology verfügbaren App für mobile Devices lässt sich die Kommunikation mit dem Server von unterwegs aufrecht erhalten.

Der aktuelle Entwicklungsstand kann einfach per Download mit diesem Befehl in der FHEM Kommandozeile bezogen werden. Bitte so komplett mit den Ausführungszeichen am Anfang und Ende eingeben:

"wget -qO ./FHEM/50_SSChatBot.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/50_SSChatBot.pm"

Danach FHEM restarten. 

Die Dokumentation findet man zur Zeit erstmal nur im Wiki. Wenn der initiale Releasestand zum Einchecken erreicht ist, erstelle ich eine entsprechende Commandref.

Wiki: https://wiki.fhem.de/wiki/SSChatBot_-_Integration_des_Synology_Chat_Servers

Ich hoffe, dass dieses Modul weitere Anhänger findet. Ideengeber und Unterstützer bei der Weiterentwicklung sind immer willkommen.

LG,
Heiko   
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 02 Dezember 2019, 13:14:32
Das Modul ist bereits fortgeschritten. Es können Nachrichten in beiden Richtungen zwischen FHEM und Synology Chat ausgetauscht werden.
Außerdem ist es möglich, set- und get-Befehle auszuführen oder Perl-Code bzw. Subroutinen in FHEM auszuführen. In allen Fällen wird das Ausführungsergebnis zurück gesendet, sofern die ausgeführte Funktion es liefert.

Genaueres ist im Wiki beschrieben.
Über Testergebnisse weiterer (Synology)User würde ich mich freuen.

Grüße,
Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 06 Dezember 2019, 14:03:20
Das Modul und das Wiki sind nun auch noch um die Definition User spezifischer Slash-Befehle (z.B. /Termine ...) ergänzt worden.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: Wiesenfreund am 11 Januar 2020, 20:46:33
Hallo,
vielen Dank für das Modul. Bei mir funktioniert die Kommunikation zwischen der Diskstation und fhem einwandfrei. Weiter bin ich allerdings noch nicht gekommen.

Ich freue mich jedenfalls, dass es dieses Modul gibt. Damit kann man ggf. die gesamte Kommunikation, die ich bisher auf einem anderen Bot laufen hatte, auf meinem eigenen sicheren Server abwickeln.

Danke auch für die sehr gute Beschreibung der Installation und Einrichtung, sie hat mir sehr geholfen.

Gruß
Eberhard
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 12 Januar 2020, 13:06:59
Hallo Eberhard,

ich freue mich, dass dieses Modul dir nützlich ist.
Die Ablösung von public Cloudkomponenten war auch für mich der Antreiber zur Synology Chat Integration.
Wenn dir etwas auffallen sollte, zögere nicht es hier schreiben.

Grüße,
Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: rohlande am 11 März 2020, 21:50:19
Hallo Heiko,

Super geiles Modul. Vielen Vielen Vielen Dank dafür! Habe ich schon sehnlichst drauf gewartet.
Wenn ich in irgendeiner Art und Weise helfen kann, dann lasse es mich wissen.
Bin zwar kein Software Entwickler aber gern bereit dazu zu lernen.
Eine Frage habe ich: Ich verwende seither Telegram inkl. "interaktiver" Kommunikation.
Laut Synology soll so etwas auch mit dem Chatbot in einer stark vereinfachten "Button" Interaktion möglich sein.
https://www.synology.com/de-de/knowledgebase/DSM/help/Chat/chat_integration (https://www.synology.com/de-de/knowledgebase/DSM/help/Chat/chat_integration)
siehe Payload!
Kannst Du das irgendwann auch noch integrieren?

VG denny
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 11 März 2020, 21:59:57
Hallo Denny,

freue mich wenn es noch ein paar User gibt.  :)
Der Vorteil ist eben die Konzentration auf die private Cloud. Ich hoffe auch sehr, dass Synology die Möglichkeiten dieser Anwendung noch erweitert.
Du meinst bestimmt den dargestellten payload mit dem Smiley  :)
Ja, kann ich gerne mal demnächst tun. Wenn noch weitere User das Modul einsetzen, nehme ich es auch gerne in das offizielle Repository auf.

Grüße,
Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: rohlande am 12 März 2020, 18:43:41
Hallo Heiko,

Das wäre echt super wenn die [Payload] Kommando Struktur für die JSON Formatierung möglich wäre.
Der Hintergrund: Bisher verwende ich wie erwähnt Telegram für die Interaktion. Das mach ich nur sehr ungern.
Meine Daten behalte ich gern bei mir. :-) und Dein Ansatz bringt mich fast auf 100% in Kommunikation mit Fhem und dem Thema Homeautomation.
Und nun versuche ich das auf dem Chat umzuziehen.
Meinen Arbeitskollege habe ich auch schon überzeugt. :-)
Er liest sich gerade in Dein Kalender Modul ein.
Das ist auch absolut super!.

Vg Denny
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 12 März 2020, 19:55:12
Na bei soviel Lob und Enthusiasmus kann ich dich/euch ja garnicht so lange warten lassen.  :D Vielen Dank dafür, freut mich !
Ich nehme die Erweiterung mal auf meine short ToDo Liste. Melde mich wenn ich was zum Testen entwickelt habe.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 14 März 2020, 12:08:51
Hallo zusammen,

es steht die Version 1.3.0 zum Test bereit.

Neu ist:

* der set Befehl sendItem ist in 1_sendItem umbenannt jetzt asyncSendItem umbenannt
  Grund: es ist mir schon oft passiert dass ich ungewollt den botToken zerschossen habe weil der Eintrag ganz oben auf der
  Liste steht/stand. Jetzt ist es immer 1_sendItem asyncSendItem.

* es können interaktive Schaltflächen versendet und die Antwort des Users ausgewertet werden.

Beschreibung ist im Wiki unter https://wiki.fhem.de/wiki/SSChatBot_-_Integration_des_Synology_Chat_Servers#verschiedene_Arten_Nachrichten_an_Chatempf.C3.A4nger_senden

bzw.
https://wiki.fhem.de/wiki/SSChatBot_-_Integration_des_Synology_Chat_Servers#Interaktionen_mit_Schaltfl.C3.A4chen

zu finden.

Der Download ist auch im Wikiartikel gleich zu beginn beschrieben.

Viel Spaß beim Testen  :)

Grüße,
Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 14 März 2020, 19:42:08
Ich habe noch das Reading recActionsValue eingeführt.
Es enthält die Extraktion des Wertes von value aus Reading recActions. D.h. dieses Reading enthält direkt den Antwortwert wenn der Chatuser einen zugesendeten Button drückt.
Dadurch kann man einfacher auf Tastendrücke reagieren und davon Steuervorgänge ableiten.

Grüße,
Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 15 März 2020, 13:29:59
Hallo miteinander,

ich weiß nicht warum, aber mich hat der Eintrag 1_sendItem rein ästhetisch derart gestört, dass ich über Alternativen nachgedacht habe.

Nun habe ich 1_sendItem nach asyncSendItem umbenannt. Damit bin ich nun sehr zufrieden, zumal der Name auch die interne Verfahrensweise zum Versand abbildet und immernoch auf Platz eins der set-Liste steht.  :)

Sorry für die Umstände, aber so ist das manchmal mit der Entwicklung ...

Das Wiki passe ich auch noch an. -> erledigt.

LG,
Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: rohlande am 15 März 2020, 18:57:55
Hallo Heiko,
Super Klasse Erweiterung.
Habe etwas gespielt.
1. Frage oder Anmerkung habe ich: Besteht die Möglichkeit, das "value" auch direkt mit einem Inhalt für "recCommand" zu füllen?
Damit wäre es dann möglich ein Slash Command direkt in Fhem auszulösen ohne noch über den Inhalt z.b eines Notify oder DOIF zu gehen!
Ich hoffe ich verstehe das nicht falsch!

Vg Denny
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 15 März 2020, 19:25:38
Hallo Denny,

ich denke sowas könnte ich vorsehen. Ich schaue es mir an, weiß momentan noch nicht ob man dort "/" unterbringen kann oder ob die API dann streikt.

Melde mich ...
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: rohlande am 15 März 2020, 19:47:52
Hallo Heiko,

Habe gerade mal ein DOIF gebastelt. Das scheint zu funktionieren.
Das mit dem Own Command muss ich noch verstehen und testen!

VG denny
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 15 März 2020, 20:12:57
Hi Denny,

es war recht einfach umzusetzen und funktioniert sehr gut.
Man kann nun ein Slash Kommando direkt mit einer Schaltfläche an den Chat senden, z.B.:


text="Bitte bestätigen !"
attachments="[
              {
              "callback_id": "Bestaetigung", "text": "Drücke um Wetterdaten zu bekommen",
              "actions":[
                         {"type": "button", "name": "response", "value": "/Wetter", "text": "Wetter", "style": "green"}
                        ]
              }
             ]"


Es muss "/Wetter" natürlich vorher als ownCommand definiert sein. Es geht auch sowas:


text="Bitte bestätigen !"
attachments="[
              {
              "callback_id": "Bestaetigung", "text": "Drücke um Lampe eionzschalten",
              "actions":[
                         {"type": "button", "name": "response", "value": "/set Lampe on", "text": "Lampe an", "style": "green"}
                        ]
              }
             ]"


Deine Frage oben ist mir noch nicht klar.
Willst du auf einen Event von recActionsValue und dessen Wert per Notify reagieren und dann wiederum eine Schalterstruktur an den Chat senden ? Oder habe ich es falsch verstanden ...

Denn recActionsValue bringt ja als Reaktion auf den Tastendruck des Chatusers nur einen solchen Event:

2020-03-15 20:10:19.566 SSChatBot SynChatBot recActionsValue: Yes
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 15 März 2020, 21:13:38
Ich habe auch mal ein notify definiert:


defmod N.sendButton notify user:change:.ein set SynChatBot asyncSendItem \
text="Hallo ich bin Dein ChatBot! Was kann ich für Dich tun?" \
attachments="[{\
              "callback_id": "menue", "text": "Wähle ein Menü aus!",\
              "actions":[\
                         {"type": "button", "name": "responseHM", "value": "hm", "text": "Haputmenü", "style": "orange"},\
                         {"type": "button", "name": "responseBCK", "value": "bck", "text": "Zurück", "style": "orange"},\
                         {"type": "button", "name": "responseON", "value": "/set SW_TV on", "text": "TV An", "style": "green"},\
                         {"type": "button", "name": "responseOFF", "value": "/set SW_TV off", "text": "TV Aus", "style": "green"}\
                        ]\
             }]"
attr N.sendButton room Chat


Das reagiert auf "user:change:.ein" und sendet an den Chat die diversen Schaltflächen wie im Anhang.
Klappt  :D

Grüße,
Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: rohlande am 15 März 2020, 22:10:28
Hallo Heiko,

Sau Gut. Das macht den DOIF Code viel einfacher und leichter anwendbar. Spart einiges an Zwischenschritten.
Damit hast DU die globale (set / get) direkt zur Verfügung gestellt. Klasse Arbeit. Bin echt dankbar.
Morgen gehts weiter.
Hier ein kleiner Anfnag.
1.Menü, 2. Schalter betätigen, 3. Sensoren abfragen
DEF

([SynChatBot:"^recText:./start$"]) (set SynChatBot asyncSendItem text="Hallo ich bin Dein ChatBot! Was kann ich für Dich tun?"
attachments="[
              {
              "callback_id": "menue", "text": "Wähle ein Menü aus!",
              "actions":[
                         {"type": "button", "name": "responseHM", "value": "hm", "text": "Hauptmenü", "style": "orange"},
                         {"type": "button", "name": "responseSW", "value": "SW_MN", "text": "Schalter", "style": "green"},
                         {"type": "button", "name": "responseMS", "value": "SNS", "text": "Sensoren", "style": "green"},
                         {"type": "button", "name": "responseINF", "value": "INF", "text": "Info", "style": "green"}
                         ]
              }
             ]")
DOELSEIF
([SynChatBot:"^recActionsValue:.hm$"]) (set SynChatBot asyncSendItem text="Hallo ich bin Dein ChatBot! Was kann ich für Dich tun?"
attachments="[
              {
              "callback_id": "menue", "text": "Wähle ein Menü aus!",
              "actions":[
                         {"type": "button", "name": "responseHM", "value": "hm", "text": "Hauptmenü", "style": "orange"},
                         {"type": "button", "name": "responseSW", "value": "SW_MN", "text": "Schalter", "style": "green"},
                         {"type": "button", "name": "responseMS", "value": "SNS", "text": "Sensoren", "style": "green"},
                         {"type": "button", "name": "responseINF", "value": "INF", "text": "Info", "style": "green"}
                         ]
              }
             ]")
DOELSEIF
([SynChatBot:"^recActionsValue:.bck$"]) (set SynChatBot asyncSendItem text="Wie kann ich Dir helfen?"
attachments="[
              {
              "callback_id": "menue", "text": "Wähle ein Menü aus!",
              "actions":[
                         {"type": "button", "name": "responseHM", "value": "hm", "text": "Hauptmenü", "style": "orange"},
                         {"type": "button", "name": "responseSW", "value": "SW_MN", "text": "Schalter", "style": "green"},
                         {"type": "button", "name": "responseMS", "value": "SNS", "text": "Sensoren", "style": "green"},
                         {"type": "button", "name": "responseINF", "value": "INF", "text": "Info", "style": "green"}
                        ]
              }
             ]")
DOELSEIF
([SynChatBot:"^recActionsValue:.SW_MN$"]) (set SynChatBot asyncSendItem text="Schalter Auswahl!"
attachments="[
              {
              "callback_id": "menue", "text": "Was möchtest Du schalten",
              "actions":[
                         {"type": "button", "name": "responseBCK", "value": "bck", "text": "Zurück", "style": "orange"},
                         {"type": "button", "name": "responseON", "value": "/set SW_Test on", "text": "TV An", "style": "green"},
                         {"type": "button", "name": "responseOFF", "value": "/set SW_Test off", "text": "TV Aus", "style": "green"}
                         ]
              }
             ]")
DOELSEIF
([SynChatBot:"^recActionsValue:.SNS$"]) (set SynChatBot asyncSendItem text="Sensor Werte lesen!"
attachments="[
              {
              "callback_id": "menue", "text": "Welchen Sensor möchtest Du abfragen?",
              "actions":[
                         {"type": "button", "name": "responseBCK", "value": "bck", "text": "Zurück", "style": "orange"},
                         {"type": "button", "name": "responseMS_SNS", "value": "/SNS", "text": "Sensor1", "style": "green"},
                         {"type": "button", "name": "responseMS_SNS1", "value": "/SNS1", "text": "Sensor2", "style": "green"}
                         ]
              }
             ]")


Schönen Abend noch und vielen Dank!

VG Denny
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 15 März 2020, 22:19:53
Sieht gut aus  :)
Habe die Möglichkeit noch im Wiki abgelegt:

https://wiki.fhem.de/wiki/SSChatBot_-_Integration_des_Synology_Chat_Servers#mehrere_Schaltfl.C3.A4chen_versenden_und_eine_Auswahl_empfangen

Dir auch noch einen schönen Abend !
Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: rohlande am 08 April 2020, 18:18:32
Hallo Heiko,

Wie gehts? Alle noch gesund? Die aktuelle Lage ist ja gnz schön angespannt. Passt auf Euch auf!

so bin gerade wieder am basteln und stoße gerade auf das Problem mit dem Versand von Bildern, Videos.
Im Wiki des Moduls und auch bei Synology ist nur folgendes angegeben:
set <Name> asyncSendItem text="letzte Aufnahme von Kamera" fileUrl="http://sdcam.myds.me:8081/surveillance/Hauseingang/20191124AM/Hauseingang-20191124-103741-1574588261.mp4"
Dabei wird immer die URL verwendet, also http.
Kann man das auch direkt von einem angegeben Ordner heraus versenden?
Ich möchte ungern extra einen Webserver Bereich nach außen aufmachen um die Daten an den Bot zu übergeben.
Dann wäre der Sinn diese Moduls nicht mehr der gleiche. Die Daten gehören ja mir.

Was mich allerdings wundert ist folgendes:
text="a fun image" fileUrl="https://user:passwd@192.168.178.44/web_images/HOFCAM_get_PIC_snapshot.jpg"
funktioniert auch nicht.
Da kommt eine Fehlermeldung:
illegal file name or path
   
2020-04-08 18:16:37
Errorcode
   
117

Vg Denny
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 08 April 2020, 20:47:47
Hallo Denny,

gesundheitlich ist alles ok., aber die Instabilität meiner Internetverbindungen bei Konferenzen macht mir echt schwer zu schaffen.  :(

Zitat
Kann man das auch direkt von einem angegeben Ordner heraus versenden?
Ich möchte ungern extra einen Webserver Bereich nach außen aufmachen um die Daten an den Bot zu übergeben.
Meines Wissens und lt. Doku geht nur eine Web-Adresse. Aber einen Zugang musst du von außen deswegen nicht aufmachen. Du musst deine zu versendenen Bilder/Dateien nur für die Synology ! (den Chat-Server) zugreifbar machen.

Zum Beispiel zu den Schnappschüssen der Surveillance Station -> https://wiki.fhem.de/wiki/SSCAM_-_Steuerung_von_Kameras_in_Synology_Surveillance_Station#Vorbereitung_-_Erstellung_eines_virtuellen_Hosts_auf_Synology

Bezüglich deiner Fehlermeldung ... stimmt denn die Adresse ?

Wenn du das testest, wird ein Buchtitel (Bild) vom Chatserver geholt, eingebunden und an den Empfänger versendet:


text="a fun image" fileUrl="https://images-na.ssl-images-amazon.com/images/I/51hwjVziNJL._SX382_BO1,204,203,200_.jpg"


Klappt das bei dir ?
Unbekannt ist allerdings auch, ob der Chatserver die Mitgabe von User:Passwort in dieser Form unterstützt. Ist nirgends dokumentiert.

LG,
Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: rohlande am 08 April 2020, 22:21:48
Hallo Heiko,

oh blöd. Ich habe das Glück hier mit vollem Power am Netz zu hängen.
1Gbit von Vodafone. Bin sehr zufrieden und habe täglich ca. 10-15 Meetings.
Dazu arbeite ich 100% Remote an HIL Systemen für Software Tests.
Das klappt seither sehr gut sogar GLOBAL.

So der Link funktioniert. Ebenso mein LINK wenn ich die vorgelagerten Benutzerdaten am Webserver der Synology wieder raus nehme.
Nun muss ich mir überlegen wie ich einen reinen internen Webserver betreiben kann. Denn den der Synology benötige ich ja für alle Dienste die darauf laufen.
Ich möchte den ungern ohne password Schutz am laufen halten.

Danke Dir Heiko.

Vg Denny
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 08 April 2020, 22:34:29
Du kannst dir doch in der Webstation beliebige virtuelle Hosts einrichten. Das klappt für den Zweck ...
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: rohlande am 13 April 2020, 23:40:54
Danke Heiko.
Habe es so gelöst. VH angelegt der nach außen nicht erreichbar ist. URL wird sauber ausgelesen und Bilder kommen via BOT zu mir nachdem diese im DOIF angetriggert wurden.
Jetzt gehts an die Integration Deines SSCam Modul.

VG Denny
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: coolcat am 21 Mai 2020, 11:46:35
Hi,

super Modul, gefällt mir und habe auch direkt rumgespielt und auch direkt ne Frage.
in einem DOIF habe ich folgenden Zweig:
DOELSEIF
([Chat:"^recActionsValue:.SW_LI$"]) (set Chat asyncSendItem text="Schalter Auswahl!"
attachments="[
              {
              "callback_id": "menue", "text": "Was möchtest Du schalten",
              "actions":[
                         {"type": "button", "name": "responseBCK", "value": "bck", "text": "Zurück", "style": "orange"},
                         {"type": "button", "name": "responseON", "value": "/set Licht on", "text": "Licht An", "style": "green"},
                         {"type": "button", "name": "responseOFF", "value": "/set Licht off", "text": "Licht Aus", "style": "green"}
                        ]
              }
             ]")

das Device Licht ist nur zum Test eingesetzt, ich wollte damit eigentlich mein Licht im Zimmer steuern, das den Namen HUEDevice1 hat.
setzte ich diesen Name ein, reagiert das Menü nicht mehr, also so:
{"type": "button", "name": "responseON", "value": "/set HUEDevice1 on", "text": "Licht An", "style": "green"},

bisher hat alles super geklappt, aber sobald ich ein Hue Device einsetze, klappt es nicht.

Natürlich könnte ich ein dummy und ein notify oder ähnlich benutzen, aber es ist schon komisch, das bisher alle anderen Devices (z.B. eine Ikea Lampe/Birne mit der Huebridge gekoppelt) funktionieren, das mit einem Huedevice aber nicht klappt.

ist das ein Bug?
Was braucht Ihr?
Freue mich auf jede Hilfe

Gruß
Ralf
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 21 Mai 2020, 12:22:31
Hallo Ralf,

ja, das ist ein Bug der mit dem Leerzeichen vor einem großen "H" zu tun hat.
Das ist eine mysteriöse Sache die ich mit Rudi noch klären wollte.
Bislang habe ich einen Workaround für normalen Text (mit "H") eingebaut. Für attchements habe ich es vergessen, sorry.

Du kannst mal versuchen den String so aufzubauen:
{"type": "button", "name": "responseON", "value": "/set%20HUEDevice1 on", "text": "Licht An", "style": "green"},

oder du benennst HUEDevice1 um in z.B. WoZiHUEDevice1. Hauptsache kein führendes "H".  ;)

Morgen nach dem Feiertag baue ich noch den Bugfix für attachements ein.

LG,
Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: coolcat am 21 Mai 2020, 12:39:52
  :D :D
ja wie cool ist denn der Bug? hahaha, ich probiers mit %20 mal

Daaaaanke :)

Gruß Ralf


--- getestet und für funktionsfähig befunden :) ---
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 21 Mai 2020, 12:50:43
Ja der ist nicht schlecht, oder ? Was meinst du wie lange ich gebraucht habe diesen Zusammenhang rauszufinden ?  :D  :D
Edit: und vor allem ein kleines "h" ist kein Problem  8) :o

Schönen Feiertag !
Morgen stelle ich eine gefixte Version bereit. Kannst dann ja mal Tester sein.  :)

LG,
Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 22 Mai 2020, 11:53:13
Hallo Ralf,

ich habe die neue Version des SSChatBot in mein contrib geladen.
Bitte restarten wenn du das File heruntergeladen hast.

Und auch nicht vergessen das %20 wieder herauszunehmen.
Das macht jetzt das Modul (sollte es  :) )

Grüße,
Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: coolcat am 22 Mai 2020, 12:02:22
Hallo Heiko,

habe es direkt getestet sieht gut aus, siehe Dateianhang.
Kann irgendwie das Bild nicht anders einfügen

Auf jeden Fall klappt es jetzt

Gruß
Ralf
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: Laffer72 am 22 Mai 2020, 15:24:08
Hallo Heiko,

tolles Modul, funktioniert sehr gut und ist einfach einzurichten.

Lassen sich damit eigentlich auch plots verschicken? Ich habe das in Telegram genutzt um mir Temperatur-Verläufe schicken zu lassen.
Dabei habe ich immer die Funktion {plotAsPng()} verwendet.

Danke schonmal für die Antwort.

Reinhard
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 22 Mai 2020, 15:44:06
Hallo Reinhard,

Synology hat es bisher so implementiert, dass man einen Link zu einer Datei/Bild angeben kann. Diese Datei/Biild wird dann vom Chat-Server an den User gesendet. D.h. die Datei muß vom Chat-Server auf der Syno per http Webseitenaufruf zugreifbar sein.

Zum Beispiel sendet dieser Aufruf:

text="Perl Buch" fileUrl="https://images-na.ssl-images-amazon.com/images/I/51ysOJaF3WL._SX301_BO1,204,203,200_.jpg"

das Cover eines Buches an den Empfänger.

Man müsste also dafür sorgen, dass die durch plotAsPng() enstandenene Datei per Link erreichbar ist.
Ich muß mal überlegen ob/wie das möglich wäre. Hatte mir bis jetzt dazu keine Gedanken gemacht.
Ideen sind jederzeit willkommen.

LG,
Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: coolcat am 22 Mai 2020, 16:27:36
Hallo Reihard,

ich kenne dieses plotAsPng()  nicht und weiss auch nicht, wo es läuft. Man könnte aber entweder in das plotAsPng() - Script ein ssh Befehl zum kopieren der fertiggestellten Bilddatei anfügen, das dieses Bild auf die Diskstation kopiert. Wenn keine Historie der Bilder gewünscht wird, kann es immer den gleichen Namen haben und sich selbst überschreiben.

Gruß
Ralf
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: Laffer72 am 22 Mai 2020, 17:11:05
Hallo,

das hab ich mir auch überlegt. Hab da mal ein Code-Schnipsel von Betateilchen gefunden:

sub test {
open(my $out, '>:raw', './log/test.png') or die "Unable to open: $!";
print $out plotAsPng('SVG_dbLog_2');
close($out);
}


Das soll die erzeugte Grafik speichern. Muss das mal nachher in Ruhe ausprobieren, ob das klappt.

Vielen Dank schonmal für die Hinweise.


Reinhard
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 22 Mai 2020, 17:24:21
Ich denke auch mal ein bisschen drüber nach.

Aber Reinhard, das die in dem Code

open(my $out, '>:raw', './log/test.png') or die "Unable to open: $!";

unbedingt  nicht verwenden. Damit schießt du die u.U. dein FHEM ab.
An der Stelle lieber eine Logausgabe und return.

Grüße,
Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: Laffer72 am 22 Mai 2020, 22:11:05
Hab jetzt mal eine Funktion in die 99myutils angefügt:

sub PNGFile
{
my $FileName = shift;
my $Plot = shift;

open FILE, "> /tmp/$FileName";
binmode FILE;
print FILE $Plot;
close FILE;
}


mit dem Aufruf


{PNGFile("Dateiname.png",plotAsPng("<Name des Plots>"))]

wird eine PNG-Datei ins tmp-Verzeichnis geschrieben.
Jetzt muss ich die nur noch irgendwie als URL aufrufbar machen...???
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 22 Mai 2020, 22:27:58
Das ist doch schon nicht schlecht
Schau dir mal das Modul https://fhem.de/commandref.html#HTTPSRV  an. Damit kannst du eine FHEMWEB-Instanz auf ein bestimmtes Verzeichnis zeigen lassen und die darin befindlichen Dateien aufrufen.

Ich hab das mal zur Anzeige von Kameraaufnahmen hier beschrieben: https://wiki.fhem.de/wiki/SSCAM_-_Steuerung_von_Kameras_in_Synology_Surveillance_Station#Nutzung_des_FHEM-internen_HTTPSRV_Plug-In
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: Laffer72 am 22 Mai 2020, 22:52:26
Also im Prinzip funktioniert es schon mit dem Aufruf:

fileUrl = "<ip-fhem>:8083/fhem/www/images/<Dateiname>

klappt der Aufruf (die Datei muss natürlich dann nicht im tmp-Verzeichnis, sondern im images-Verzeichnis erzeugt werden)

Leider funktioniert das aber nicht so schön wie in Telegram, da sehe ich gleich im Chat eingebettet das Bild.
Hier muss ich erst noch den Link anklicken. Schade
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 22 Mai 2020, 23:06:10
Habe es gerade mal bei mir probiert.
Klappt einwandfrei und das Bild wird gleich dargestellt.
Der Aufruf war:

text="Bild" fileUrl="http://User:Passwort@<IP>:8083/fhem/www/images/Carport-20200522-1147234626.jpg"

Im Anhang siehst du ...
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: Laffer72 am 22 Mai 2020, 23:13:52
Yepp, danke jetzt klappts bei mir auch...der Fehler sitzt doch meist vor dem Computer  ;)

ich habe text und fileUrl immer auf zwei Zeilen aufgeteilt. In einer Zeile funktioniert es so wie es soll.

Vielen Dank für Deine Hilfe und Deine Geduld.

Schönen Abend noch

Reinhard
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 22 Mai 2020, 23:20:58
Das klappt auch mit Verteilung über mehrere Zeilen.
Wichtig ist nur "fileUrl="http.." und nicht "fileUrl = "http..."

Dir auch schönen Abend !

Grüße,
Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 22 Mai 2020, 23:26:47
Aber deine Vorgehensweise werde ich mal im Wiki zu SSChatBot hinterlegen.

LG
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: Laffer72 am 22 Mai 2020, 23:59:43
Hallo Heiko,

habe die Sub nochmal etwas optimiert:

sub PNGFile
{
my $FileName = shift;
my $Plot = shift;

open FILE, "> /opt/fhem/www/images/$FileName";
        binmode FILE;
        print FILE plotAsPng($Plot);
        close FILE;

        return;
}


Aufruf der Sub erfolgt mit:

{PNGFile("<Name-des-PNG-Files>.png","<Name-des-SVG-Plots>")}
[/code]

So jetzt geht's dann ins Bett...gute Nacht

Reinhard
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 23 Mai 2020, 14:21:59
Hallo Reinhard,

ich habe noch eine Variante gefunden mit der man unter Verwendung des  WEBSSChatBot-Devices das Plotfile hochladen kann.
Dieses Device wird ja bei der Definition des ChatBots mit angelegt und ist gleich mit einem CSRF-Token geschützt.

Dein Script habe ich noch geringfügig angepasst:


####################################################################################
#       Ausgabe der SVG-Funktion "plotAsPng" in eine Datei schreiben
#       Die Datei wird im Verzeichnis "/opt/fhem/www/images" erstellt
#
#       Aufruf mit: {PlotToFile('<Filename>.png','<Name-SVG-Device>')}
#
####################################################################################
sub PlotToFile {
    my $file = shift;
    my $plot = shift;
    my $dir  = "/opt/fhem/www/images";

    open FILE, "> $dir/$file" or do {
                                                   Log (1, ">PlotToFile< can't open $dir/$file for write access !");
                                                   return;
                                                 };
    binmode FILE;
    print FILE plotAsPng($plot);
    close FILE;

return;
}


Das folgende Notify versendet des erstellte Plotfile wenn der Event ".... user sendPng <SVG-Device>" auftritt:


user:sendPng.*
{
  my $server = "xxx.xxx.xxx.xxx:8086/sschat";   # <IP>:<Port> des WEBSSChatBot-Devices (Internal FW des SSChatBot)
  my $file   = "PlotToChat.png";                  # Filename
  my $path   = "www/images";                      # Pfad
  my $csrf   = "xxxxxxx";                        # CSRF-Token des WEBSSChatBot-Devices (Internal CSRFTOKEN)
  my $prot   = "http";
  PlotToFile($file, $EVTPART1);
  CommandSet (undef, "SynChatBot asyncSendItem text=\"aktueller Plot $EVTPART1\" fileUrl=\"$prot://$server/$path/$file?%26fwcsrf=$csrf\" ");
}
}


Das Regex user:sendPng.*  muss natürlich angepasst werden.

LG,
Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 24 Mai 2020, 14:12:45
Das Versenden eines Plotfiles ist jetzt im Wiki (https://wiki.fhem.de/wiki/SSChatBot_-_Integration_des_Synology_Chat_Servers#Versenden_von_SVG-Plots) beschrieben.
Wenn ich dazu komme, werde ich dem Modul einen integrierten Befehl spendieren mit dem das Versenden einfach und bequem durchgeührt werden kann.

Grüße,
Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 26 Mai 2020, 16:00:02
In meinem contrib liegt eine neue Version 1.7.0.
Mit dieser Version ist nun der Versand von Plots integriert möglich.

*  eine SVG Plot-Datei [an user1 und user2] senden. Nach dem Keywort svg ist der Name des SVG Devices anzugeben dessen Plot als Image versendet werden soll (Perl Modul Image::LibRSVG muß installiert sein).

    set <name> syncSendItem text="<Text>" svg="<SVG-Device>" [users="user1,user2"]


    Die Empfänger [users=] sind optional falls der/die Empfänger im Attribut "defaultPeer" bereits angegeben wurden.
    Ein im "asyncSendItem" angegebener Empfänger hat immer Vorrang vor einem eventuell gesetzem Attribut "defaultPeer".
    Ist kein text="..." angegeben, wird per default der Name des SVG Devices eingesetzt und als Text versendet.

Wiki ist ergänzt.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: Laffer72 am 27 Mai 2020, 10:35:52
Hallo Heiko,

super, klappt wirklich gut.

Kann ich eigentlich noch weitere Parameter für plotAsPng übergeben?

plotAsPng("<SVG-Device>","week")

liefert den Plot für eine Woche zum Beispiel.
Habs zwar schon probiert mit

svg="<SVG-Device>","week"
oder
svg=""<SVG-Device>","week""
oder
svg="'<SVG-Device>','week'"

Klappt leider alles nicht, Fehlermeldung ist immer, daß das Device nicht existiert.

Viele Grüße

Reinhard
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 27 Mai 2020, 11:01:18
Hallo Reinhard,

ZitatKann ich eigentlich noch weitere Parameter für plotAsPng übergeben?

Momentan nicht, hatte ich einfach nicht auf dem Schirm dass es noch weitere Aufrufoptionen für plotAsPng gibt.
Ist aber kein Problem das zu erweitern.

Wenn ich im Code richtig gesehen habe, wäre das maximal:

plotAsPng("<SVG-Device>","<zoom>","<off>")

Wobei ich momentan nicht einschätzen kann was der letzte mögliche Paramer "off" bedeuten könnte.
Vllt. weißt du das.

Ich erweitere das Modul zunächst mal um "zoom" und melde mich.

Grüße,
Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: Laffer72 am 27 Mai 2020, 11:17:59
Hallo Heiko,

mit dem off-Wert, kann man den Plot verschieben.
plotAsPng("<SVG-Device>","week",-1)
generiert dir den Plot der letzten Woche.



Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 27 Mai 2020, 11:23:44
Ah, means "offset"  ;)
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 27 Mai 2020, 11:48:31
Neue Version ist hochgeladen.
Damit geht nun:

set <name> syncSendItem text="<Text>" svg="<SVG-Device>[,<Zoom>][,<Offset>]" [users="user1,user2"]
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: Laffer72 am 28 Mai 2020, 18:22:45
Super, funktioniert jetzt für mich in vollem Umfang.

Vielen Dank nochmal für das tolle Modul und die schnelle Reaktion.

Ein schönes Pfingstwochenende

Reinhard
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 28 Mai 2020, 18:34:07
Hallo Reinhard,

gern geschehen.
Was mir noch durch den Kopf gegangen ist....
Wenn man einen Plot erstellt mit einem großen Zoom bzw. Offset, kann es m.M. nach passieren dass FHEM während der Bilderstellung blockiert weil die Daten erst aus der DB oder Filelog extrahiert werden müssen.

Wie sind da deine Erfahrungen ?

Wünsche dir auch schöne Pfingsten !

Grüße,
Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: Thargor am 02 Juni 2020, 22:45:24
Hallo Heiko,

dank deines Moduls will ich meinen Telegram Bot auf Synology umstellen. Allerdings scheitere ich direkt Befehle abzusetzen.
Das Beispiel aus dem Wiki funktioniert:
Zitat
set <Name> asyncSendItem
text="Hallo ich bin Dein ChatBot! Was kann ich für Dich tun?"
attachments="[{
        "callback_id": "menue", "text": "Wähle ein Menü aus!",
        "actions":[
                  {"type": "button", "name": "responseHM", "value": "hm", "text": "Hauptmenü", "style": "orange"},
                  {"type": "button", "name": "responseBCK", "value": "bck", "text": "Zurück", "style": "orange"},
                  {"type": "button", "name": "responseON", "value": "/set SW_TV on", "text": "TV An", "style": "green"},
                  {"type": "button", "name": "responseOFF", "value": "/set SW_TV off", "text": "TV Aus", "style": "green"}
                  ]
             }]"

Ändere ich aber nur den Devicename auf ein Device, dass es in meiner Installation gibt, z.B. HUEDevice12, dann wird der Befehl erst gar nicht geschickt.  Ein "ListSendQueue" zeigt:
Zitat
1 => userid=>7, text=>Hallo ich bin Dein ChatBot! Was kann ich für Dich tun?, retryCount=>1, opmode=>sendItem, method=>chatbot, forbidSend=>malformed JSON string received from Synology Chat Server, fileUrl=>, channel=>, attachment=>[{ "callback_id": "menue", "text": "Wähle ein Menü aus!", "actions":[ {"type": "button", "name": "responseHM", "value": "hm", "text": "Hauptmenü", "style": "orange"}, {"type": "button", "name": "responseBCK", "value": "bck", "text": "Zurück", "style": "orange"}, {"type": "button", "name": "responseON", "value": "/set SW_TV on", "text": "TV An", "style": "green"}, {"type": "button", "name": "responseOFF", "value": "/set HUEDevice12 off", "text": "TV Aus", "style": "green"} ] }]

Bei einem FS20 Device mit Namen FS20_a81a03 klappt es. Auch hueDevice12 funktioniert (gibt es bei mir aber nicht). Mache ich noch irgendwas falsch, oder liegt es wirklich am Devicenamen HUEDevice12 ? Und wenn ja, wieso?

Vielen Dank!
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 02 Juni 2020, 22:51:02
Hallo Thargor,

dann hast du nicht die aktuellste Modulversion.
Das Problem habe ich schon gefixt. Schau mal in den Post #24 ff.

LG,
Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: Thargor am 02 Juni 2020, 23:24:15
 ::)
Oh Mann ... und dabei sind das hier noch nichtmal 80 Seiten ....

Vielen Dank!
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: Helmuth am 07 Juni 2020, 16:54:04
Hallo tolles Modul danke dafür.

Ich hatte bisher den teleBot in Verbindung mit msg in Betrieb.

Hat schon jemand versucht den SSChatBot mit msg zu betreiben?

Ich hab es leider bisher nicht hinbekommen und wäre für ein paar Tipps dankbar.

Grüße

Helmuth
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 08 Juni 2020, 20:29:21
Hallo Helmuth,

ich benutze msg zwar nicht, aber zeig uns doch mal bitte was du schon probiert hast.

LG,
Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: Helmuth am 10 Juni 2020, 16:25:40
Hallo Heiko

Im globalMsg Modul gibt es ja zum einen das Attribut msgContactPush wo der teleBot sprich Telegram eingetragen ist.

Dort müsste jetzt der SSChatBot hin. Dann gibt es noch die routeCmd wo drin steht wie msg den SSChatBot ansteuern soll. Für Telegram, Pushover und Whatsapp u.s.w sind die Informationnen schon hinterlegt. Für den SSChatBot müsste man die über drei Attribute selber setzen und das ist mein Problem.
Vielleicht sollte man den Maintainer des msg Modul mit ins Boot holen und das Modul entsprechend erweitern. Es sind ja vielleicht mehrer Leute die das nutzen würden.

Grüße

Helmuth
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 10 Juni 2020, 17:57:14
Hallo Helmuth,

ich habe das jetzt mal schnell durchgelesen und ausprobiert.
Ich habe das globalMsg Device angelegt und dort:


attr globalMsg msgCmdPush set %DEVICE% asyncSendItem %MSG%
attr globalMsg msgContactPush SynChatBot


gesetzt, wobei SynChatBot mein Chatbot-Device ist.

Dann konnte ich schon mit


msg das ist ein einfacher Text


den Text versenden. Komplexere Strukturen habe ich jetzt nicht probiert, aber sollten auch so einfach abzusetzen sein.
Im msg Forum mache ich eine Meldung bzgl. Integration. Vlt. reagiert Loredo darauf.

Grüße,
Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: Helmuth am 12 Juni 2020, 17:23:29
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
Titel: Frage:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: Wiesenfreund am 12 Juli 2020, 09:39:49
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
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 12 Juli 2020, 10:16:53
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
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: Wiesenfreund am 12 Juli 2020, 19:18:49
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
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 12 Juli 2020, 19:39:19
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
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: Wiesenfreund am 12 Juli 2020, 20:24:30
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
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 12 Juli 2020, 20:34:15
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.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: Wiesenfreund am 12 Juli 2020, 20:59:47
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
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 12 Juli 2020, 21:12:58
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
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: Wiesenfreund am 13 Juli 2020, 07:12:56
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
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 13 Juli 2020, 22:13:30
Hallo Eberhard,

hast du es schon mal so probiert ?


http://127.0.0.1:8082/sschat/outchat?botname=synoChatBot&fwcsrf=5f0ab6c5
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: Wiesenfreund am 14 Juli 2020, 07:43:07
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

Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 14 Juli 2020, 09:02:50
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
Titel: Gelöst:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: Wiesenfreund am 14 Juli 2020, 10:08:33
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
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 17 August 2020, 23:58:21
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
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: Cobra am 06 Oktober 2020, 14:52:28
Hey Heiko,

vielen Dank erstmal für das tolle Modul. Wieder einen Schritt mehr weg von Telegramm :-D

Gibt es Bestrebungen SSChat auch im globalMsg-Modul als Attribut bei msgContactPush zu definieren?

Gruß Cobra
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 06 Oktober 2020, 15:13:15
Hallo Cobra,

ob der msg Maintainer es auf dem Plan hat weiß ich nicht, aber lies mal den Beitrag #59 hier im Thread. Da haben wir deinen Fall erfolgreich eingebaut und beschrieben.

Probier mal.  Freut mich dass dir das Modul gute Dienste leistet.   :)

Grüße,
Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: Cobra am 06 Oktober 2020, 15:48:20
Hey Heiko,

perfekt, so klappt es ohne Probleme.
Dann lassen wir das mal so bis der Maintainer es evtl. mit aufnimmt.

Danke dir
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 06 Oktober 2020, 16:09:15
ZitatDann lassen wir das mal so bis der Maintainer es evtl. mit aufnimmt.
Kannst ihm ja eine Mitteilung schreiben, hatte ich auch schon getan. Gemeldet hat er sich bis jetzt leider noch nicht dazu.

LG
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: carlos am 07 Oktober 2020, 17:17:37
Hallo,
Habe dein Chat module jetzt auch mal getestet und habe ein Problem mit der /get Funktion.

Ich mache z.B. ein /get myDeconz lights, das funktioniert und liefert im Chat die Antwort:

2020.10.07 17:02:19 4: mySSChatBot - ####################################################
2020.10.07 17:02:19 4: mySSChatBot - ###          start Chat operation Receive
2020.10.07 17:02:19 4: mySSChatBot - ####################################################
2020.10.07 17:02:19 5: mySSChatBot - raw data received (urlDecoded):
$VAR1 = 'botname="mySSChatBot" fwcsrf="5f703ed4" token="xxx" text="/get myDeconz lights" user_id="4" username="yyy"';

2020.10.07 17:02:19 4: mySSChatBot - received data decoded:
$VAR1 = {
          'botname' => 'mySSChatBot',
          'fwcsrf' => '5f703ed4',
          'text' => '/get myDeconz lights',
          'token' => 'xxx',
          'user_id' => '4',
          'username' => 'yyy'
        };

2020.10.07 17:02:19 4: mySSChatBot - Synology Chat user "yyy" execute FHEM command: get myDeconz lights
2020.10.07 17:02:19 4: mySSChatBot - FHEM command return: ID  NAME                      FHEM            TYPE
2  Abstellraumlicht          deconz.abstellraum.licht Color temperature light
3  Configuration tool 3      myDeconz_HUEDevice3 Configuration tool
4  Range extender 4          myDeconz_HUEDevice4 Range extender
5  Schlafzimmerlicht         myDeconz_HUEDevice1 Extended color light
6  Rollo Tür                myDeconz_HUEDevice6 Window covering device
7  Rollo Fenster             myDeconz_HUEDevice7 Window covering device

2020.10.07 17:02:19 5: mySSChatBot - Add Item to queue - Index 31:
$VAR1 = {
          'attachment' => '',
          'channel' => '',
          'fileUrl' => '',
          'method' => 'chatbot',
          'opmode' => 'sendItem',
          'retryCount' => 0,
          'text' => "ID NAME FHEM TYPE \\n 2 Abstellraumlicht deconz.abstellraum.licht Color temperature light \\n 3 Configuration tool 3 myDeconz_HUEDevice3 Configuration tool \\n 4 Range extender 4 myDeconz_HUEDevice4 Range extender \\n 5 Schlafzimmerlicht myDeconz_HUEDevice1 Extended color light \\n 6 Rollo T\x{c3}\x{bc}r myDeconz_HUEDevice6 Window covering device \\n 7 Rollo Fenster myDeconz_HUEDevice7 Window covering device \\n",
          'userid' => '4'
        };

2020.10.07 17:02:20 4: mySSChatBot - ####################################################
2020.10.07 17:02:20 4: mySSChatBot - ###         start Chat operation sendItem
2020.10.07 17:02:20 4: mySSChatBot - ####################################################
2020.10.07 17:02:20 4: mySSChatBot - API hashvalues already set - ignore get apisites
2020.10.07 17:02:20 4: mySSChatBot - botToken read from RAM: ********
2020.10.07 17:02:20 4: mySSChatBot - start SendQueue entry index "31" (sendItem) for operation.
2020.10.07 17:02:20 5: mySSChatBot - HTTP-Call will be done with httptimeout: 20 s
2020.10.07 17:02:20 4: mySSChatBot - Call-Out: http://192.168.178.9:5000/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="<secret>"&payload={"text": "ID NAME FHEM TYPE \n 2 Abstellraumlicht deconz.abstellraum.licht Color temperature light \n 3 Configuration tool 3 myDeconz_HUEDevice3 Configuration tool \n 4 Range extender 4 myDeconz_HUEDevice4 Range extender \n 5 Schlafzimmerlicht myDeconz_HUEDevice1 Extended color light \n 6 Rollo Tür myDeconz_HUEDevice6 Window covering device \n 7 Rollo Fenster myDeconz_HUEDevice7 Window covering device \n","user_ids": [4]}
2020.10.07 17:02:20 5: mySSChatBot - JSON returned: $VAR1 = {
          'data' => {
                      'fail' => undef,
                      'succ' => {
                                  'user_id_post_map' => {
                                                          '4' => '21474836506'
                                                        }
                                }
                    },
          'success' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )
        };

2020.10.07 17:02:20 4: mySSChatBot - Opmode "sendItem" finished successfully, Sendqueue index "31" deleted.


Mache ich  ein /get myDeconz sensors, funktioniert das nicht  und liefert im Chat keine Antwort:


2020.10.07 17:06:18 4: mySSChatBot - ####################################################
2020.10.07 17:06:18 4: mySSChatBot - ###          start Chat operation Receive
2020.10.07 17:06:18 4: mySSChatBot - ####################################################
2020.10.07 17:06:18 5: mySSChatBot - raw data received (urlDecoded):
$VAR1 = 'botname="mySSChatBot" fwcsrf="5f703ed4" token="xxx" text="/get myDeconz sensors" user_id="4" username="yyy"';

2020.10.07 17:06:18 4: mySSChatBot - received data decoded:
$VAR1 = {
          'botname' => 'mySSChatBot',
          'fwcsrf' => '5f703ed4',
          'text' => '/get myDeconz sensors',
          'token' => 'xxx',
          'user_id' => '4',
          'username' => 'yyy'
        };

2020.10.07 17:06:18 4: mySSChatBot - Synology Chat user "yyy" execute FHEM command: get myDeconz sensors
2020.10.07 17:06:18 4: mySSChatBot - FHEM command return: ID  NAME            FHEM            TYPE
1: Daylight                        Daylight
2: Transmitter 2-gang deconz.FB.2gang ZHASwitch
3: TRÅDFRI remote control deconz.Ikea.FB.E1810 ZHASwitch
4: Bewegungsmelder deconz.pir      ZHAPresence
5: Bewegungsmelder deconz.temp     ZHATemperature
6: Bewegungsmelder deconz.light    ZHALightLevel
9: TRADFRI on/off switch  deconz.Ikea.FB.E1743 ZHASwitch
10: BMEingang       deconz.pir1     ZHAPresence
11: BMEingang       deconz.temp1    ZHATemperature
12: BMEingang       deconz.light1   ZHALightLevel
13: TRÅDFRI Motion sensor deconz.ikea.pir ZHAPresence
14: TRÅDFRI Motion sensor (2) deconz.ikea.pir2 ZHAPresence
15: Rollo Schalter SZ deconz.rollo.remote ZHASwitch
16: FYRTUR block-out roller blind  deconz.rollo1.bat ZHABattery
17: FYRTUR block-out roller blind  deconz.rollo2.bat ZHABattery

2020.10.07 17:06:18 5: mySSChatBot - Add Item to queue - Index 32:
$VAR1 = {
          'attachment' => '',
          'channel' => '',
          'fileUrl' => '',
          'method' => 'chatbot',
          'opmode' => 'sendItem',
          'retryCount' => 0,
          'text' => "ID NAME FHEM TYPE \\n 1: Daylight Daylight \\n 2: Transmitter 2-gang deconz.FB.2gang ZHASwitch \\n 3: TR\x{c3} DFRI remote control deconz.Ikea.FB.E1810 ZHASwitch \\n 4: Bewegungsmelder deconz.pir ZHAPresence \\n 5: Bewegungsmelder deconz.temp ZHATemperature \\n 6: Bewegungsmelder deconz.light ZHALightLevel \\n 9: TRADFRI on/off switch deconz.Ikea.FB.E1743 ZHASwitch \\n10: BMEingang deconz.pir1 ZHAPresence \\n11: BMEingang deconz.temp1 ZHATemperature \\n12: BMEingang deconz.light1 ZHALightLevel \\n13: TR\x{c3} DFRI Motion sensor deconz.ikea.pir ZHAPresence \\n14: TR\x{c3} DFRI Motion sensor (2) deconz.ikea.pir2 ZHAPresence \\n15: Rollo Schalter SZ deconz.rollo.remote ZHASwitch \\n16: FYRTUR block-out roller blind deconz.rollo1.bat ZHABattery \\n17: FYRTUR block-out roller blind deconz.rollo2.bat ZHABattery \\n",
          'userid' => '4'
        };

2020.10.07 17:06:19 4: mySSChatBot - ####################################################
2020.10.07 17:06:19 4: mySSChatBot - ###         start Chat operation sendItem
2020.10.07 17:06:19 4: mySSChatBot - ####################################################
2020.10.07 17:06:19 4: mySSChatBot - API hashvalues already set - ignore get apisites
2020.10.07 17:06:19 4: mySSChatBot - botToken read from RAM: ********
2020.10.07 17:06:19 4: mySSChatBot - start SendQueue entry index "32" (sendItem) for operation.
2020.10.07 17:06:19 5: mySSChatBot - HTTP-Call will be done with httptimeout: 20 s
2020.10.07 17:06:19 4: mySSChatBot - Call-Out: http://192.168.178.9:5000/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="<secret>"&payload={"text": "ID NAME FHEM TYPE \n 1: Daylight Daylight \n 2: Transmitter 2-gang deconz.FB.2gang ZHASwitch \n 3: TR▒ DFRI remote control deconz.Ikea.FB.E1810 ZHASwitch \n 4: Bewegungsmelder deconz.pir ZHAPresence \n 5: Bewegungsmelder deconz.temp ZHATemperature \n 6: Bewegungsmelder deconz.light ZHALightLevel \n 9: TRADFRI on/off switch deconz.Ikea.FB.E1743 ZHASwitch \n10: BMEingang deconz.pir1 ZHAPresence \n11: BMEingang deconz.temp1 ZHATemperature \n12: BMEingang deconz.light1 ZHALightLevel \n13: TR▒ DFRI Motion sensor deconz.ikea.pir ZHAPresence \n14: TR▒ DFRI Motion sensor (2) deconz.ikea.pir2 ZHAPresence \n15: Rollo Schalter SZ deconz.rollo.remote ZHASwitch \n16: FYRTUR block-out roller blind deconz.rollo1.bat ZHABattery \n17: FYRTUR block-out roller blind deconz.rollo2.bat ZHABattery \n","user_ids": [4]}
2020.10.07 17:06:19 5: mySSChatBot - JSON returned: $VAR1 = {
          'data' => {
                      'fail' => {
                                  'user_ids' => [
                                                  4
                                                ]
                                },
                      'succ' => undef
                    },
          'success' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )
        };

2020.10.07 17:06:19 4: mySSChatBot - Opmode "sendItem" finished successfully, Sendqueue index "32" deleted.


Wo ist da das Problem ist doch eigentlich der gleiche Befehl, nur die Daten sind andere.
Liegt es evtl. an den Daten? Sonderzeichen?

Gruß

Carlos
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 07 Oktober 2020, 17:34:27
Hallo carlos,

ich denke solche Zeichen:

Zitat
...ight \\n 6 Rollo T\x{c3}\x{bc}r myDeconz_HU...

sind das Problem. Und weiter unten :
  Switch \n 3: TR▒ DFRI remo
 
Das sieht mir nach Umlauten aus. Wobei man im Chatbot Textteil problemlos Umlaute mitgeben kann.
Könnte mit utf8 zusammenhängen. Woher kommen die Texte ?


Grüße,
Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 07 Oktober 2020, 17:41:37
Habe mal einen Test gemacht. Im ChatBot Device ein own Command angelegt:


attr <> ownCommand5 /offen {return "die Tür ist offen"}


Dann im Chat Client im entsprechenden Kanal "/offen" an den Bot gesendet,prompt kam

     die Tür ist offen

zurück.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 07 Oktober 2020, 17:52:07
Erstaunlich, jetzt habe ich den Gegentest gemacht mit:


attr <> ownCommand5 /offen {return "die T\x{c3}\x{bc}r ist offen"}


Funktioniert genauso. Hier die Antwort:


2020.10.07 17:48:43.407 4: SynChatBot - ####################################################
2020.10.07 17:48:43.408 4: SynChatBot - ###          start Chat operation Receive           
2020.10.07 17:48:43.409 4: SynChatBot - ####################################################
2020.10.07 17:48:43.409 5: SynChatBot - raw data received (urlDecoded):
'botname="SynChatBot" fwcsrf="5de1859f" token="....................." user_id="4" username="Heiko" post_id="34359740189" thread_id="0" timestamp="1602085723364" text="/offen"'

2020.10.07 17:48:43.410 4: SynChatBot - received data decoded:
{
  'botname' => 'SynChatBot',
  'user_id' => '4',
  'username' => 'Heiko',
  'thread_id' => '0',
  'post_id' => '34359740189',
  'text' => '/offen',
  'fwcsrf' => '5de1859f',
  'token' => '.......................',
  'timestamp' => '2020-10-07 17:48:43'
}

2020.10.07 17:48:43.411 4: SynChatBot - Synology Chat user "Heiko" execute FHEM command: {return "die  T\x{c3}\x{bc}r  ist offen"}
2020.10.07 17:48:43.412 4: SynChatBot - FHEM command return: die  Tür  ist offen
2020.10.07 17:48:43.413 5: SynChatBot - Add Item to queue - Index 5:
{
  'fileUrl' => '',
  'text' => 'die Tür ist offen',
  'userid' => '4',
  'method' => 'chatbot',
  'channel' => '',
  'opmode' => 'sendItem',
  'attachment' => '',
  'retryCount' => 0
}

2020.10.07 17:48:43.542 4: WEBSSChatBot: /sschat/outchat?botname=SynChatBot&fwcsrf=5de1859f&token=.................&user_id=4&username=Heiko&post_id=34359740189&thread_id=0×tamp=1602085723364&text=%2Foffen / RL:7 / text/plain; charset=utf-8 /  / Cache-Control: no-cache, no-store, must-revalidate

2020.10.07 17:48:44.411 4: SynChatBot - ####################################################
2020.10.07 17:48:44.412 4: SynChatBot - ###         start Chat operation sendItem   
2020.10.07 17:48:44.412 4: SynChatBot - ####################################################
2020.10.07 17:48:44.413 4: SynChatBot - API hashvalues already set - ignore get apisites
2020.10.07 17:48:44.414 4: SynChatBot - botToken read from RAM: ********
2020.10.07 17:48:44.414 4: SynChatBot - start SendQueue entry index "5" (sendItem) for operation.
2020.10.07 17:48:44.415 5: SynChatBot - HTTP-Call will be done with httptimeout: 10 s
2020.10.07 17:48:44.415 4: SynChatBot - Call-Out: https://192.168.2.10:5001/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="<secret>"&payload={"text": "die Tür ist offen","user_ids": [4]}
2020.10.07 17:48:44.515 5: SynChatBot - JSON returned: {
  'success' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
  'data' => {
              'succ' => {
                          'user_id_post_map' => {
                                                  '4' => '34359740190'
                                                }
                        },
              'fail' => undef
            }
}

2020.10.07 17:48:44.538 4: SynChatBot - Opmode "sendItem" finished successfully, Sendqueue index "5" deleted.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 07 Oktober 2020, 18:00:33
Habe es auch mit TRÅDFRI getestet, klappt auch:



2020.10.07 17:58:22.457 4: SynChatBot - ####################################################
2020.10.07 17:58:22.457 4: SynChatBot - ###         start Chat operation sendItem   
2020.10.07 17:58:22.458 4: SynChatBot - ####################################################
2020.10.07 17:58:22.459 4: SynChatBot - API hashvalues already set - ignore get apisites
2020.10.07 17:58:22.460 4: SynChatBot - botToken read from RAM: ********
2020.10.07 17:58:22.460 4: SynChatBot - start SendQueue entry index "6" (sendItem) for operation.
2020.10.07 17:58:22.461 5: SynChatBot - HTTP-Call will be done with httptimeout: 10 s
2020.10.07 17:58:22.462 4: SynChatBot - Call-Out: https://192.168.2.10:5001/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="<secret>"&payload={"text": "die TRÅDFRI ist offen","user_ids": [4]}
2020.10.07 17:58:22.571 5: SynChatBot - JSON returned: {
  'data' => {
              'fail' => undef,
              'succ' => {
                          'user_id_post_map' => {
                                                  '4' => '34359740192'
                                                }
                        }
            },
  'success' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )
}

2020.10.07 17:58:22.595 4: SynChatBot - Opmode "sendItem" finished successfully, Sendqueue index "6" deleted.


Hmmm...
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: carlos am 07 Oktober 2020, 18:08:07
Das geht bei mir auch alles.
Aber mach mal das:

attr mySSChatBot ownCommand1 /offen {return "ID NAME FHEM TYPE \\n 1: Daylight Daylight \\n 2: Transmitter 2-gang deconz.FB.2gang ZHASwitch \\n 3: TR\x{c3} DFRI remote control deconz.Ikea.FB.E1810 ZHASwitch \\n 4: Bewegungsmelder deconz.pir ZHAPresence \\n 5: Bewegungsmelder deconz.temp ZHATemperature \\n 6: Bewegungsmelder deconz.light ZHALightLevel \\n 9: TRADFRI on/off switch deconz.Ikea.FB.E1743 ZHASwitch \\n10: BMEingang deconz.pir1 ZHAPresence \\n11: BMEingang deconz.temp1 ZHATemperature \\n12: BMEingang deconz.light1 ZHALightLevel \\n13: TR\x{c3} DFRI Motion sensor deconz.ikea.pir ZHAPresence \\n14: TR\x{c3} DFRI Motion sensor (2) deconz.ikea.pir2 ZHAPresence \\n15: Rollo Schalter SZ deconz.rollo.remote ZHASwitch \\n16: FYRTUR block-out roller blind deconz.rollo1.bat ZHABattery \\n17: FYRTUR block-out roller blind deconz.rollo2.bat ZHABattery \\n"}


Und es passiert nix.
Gruß

Carlos
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: carlos am 07 Oktober 2020, 18:19:28
Hab jetzt mal alle Sonderzeichen raus, dann gehts.
Jedoch folgendes geht wieder nicht:
"ID NAME FHEM TYPE  1: Daylight Daylight  2: Transmitter 2-gang deconz.FB.2gang ZHASwitch  3: TR\x{c3} DFRI remote control deconz.Ikea.FB.E1810 ZHASwitch  4: Bewegungsmelder deconz.pir ZHAPresence  5: Bewegungsmelder deconz.temp ZHATemperature  6: Bewegungsmelder deconz.light ZHALightLevel  9: TRADFRI on/off switch deconz.Ikea.FB.E1743 ZHASwitch 10: BMEingang deconz.pir1 ZHAPresence 11: BMEingang deconz.temp1 ZHATemperature 12: BMEingang deconz.light1 ZHALightLevel 13:  DFRI Motion sensor deconz.ikea.pir ZHAPresence 14: TR\x{c3} DFRI Motion sensor (2) deconz.ikea.pir2 ZHAPresence 15: Rollo Schalter SZ deconz.rollo.remote ZHASwitch 16: FYRTUR block-out roller blind deconz.rollo1.bat ZHABattery 17: FYRTUR block-out roller blind deconz.rollo2.bat ZHABattery "
Ist nur ein Sonderzeichen drin.
Ist vielleicht der Text dann insgesamt zu lang?
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 07 Oktober 2020, 18:28:39
Nein, ich habe es jetzt hinbekommen mit den Sonderzeichen. Und zwar passt es so:


/offen {return "ID NAME FHEM TYPE \\n 1: Daylight Daylight \\n 2: Transmitter 2-gang deconz.FB.2gang ZHASwitch \\n 3: TR\x{c3}\x{85}DFRI remote control deconz.Ikea.FB.E1810 ZHASwitch \\n 4: Bewegungsmelder deconz.pir ZHAPresence \\n 5: Bewegungsmelder deconz.temp ZHATemperature \\n 6: Bewegungsmelder deconz.light ZHALightLevel \\n 9: TRADFRI on/off switch deconz.Ikea.FB.E1743 ZHASwitch \\n10: BMEingang deconz.pir1 ZHAPresence \\n11: BMEingang deconz.temp1 ZHATemperature \\n12: BMEingang deconz.light1 ZHALightLevel \\n13: TR\x{c3}\x{85}DFRI Motion sensor deconz.ikea.pir ZHAPresence \\n14: TR\x{c3}\x{85}DFRI Motion sensor (2) deconz.ikea.pir2 ZHAPresence \\n15: Rollo Schalter SZ deconz.rollo.remote ZHASwitch \\n16: FYRTUR block-out roller blind deconz.rollo1.bat ZHABattery \\n17: FYRTUR block-out roller blind deconz.rollo2.bat ZHABattery \\n"}


Wenn du mal schaust bei deinem Original ist das TRÅDFRI so kodiert:
    TR\x{c3} DFRI

mit einem Leerzeichen nach \x{3}. Ich habe in die Unicode Tabelle geschaut und das  Å würde man so kodieren:

   \x{c3}\x{85}

Das habe ich im Attribut ergänzt und damit sieht es gut aus:


2020.10.07 18:23:31.874 4: SynChatBot - ####################################################
2020.10.07 18:23:31.875 4: SynChatBot - ###         start Chat operation sendItem   
2020.10.07 18:23:31.875 4: SynChatBot - ####################################################
2020.10.07 18:23:31.876 4: SynChatBot - API hashvalues already set - ignore get apisites
2020.10.07 18:23:31.877 4: SynChatBot - botToken read from RAM: ********
2020.10.07 18:23:31.877 4: SynChatBot - start SendQueue entry index "11" (sendItem) for operation.
2020.10.07 18:23:31.878 5: SynChatBot - HTTP-Call will be done with httptimeout: 10 s
2020.10.07 18:23:31.879 4: SynChatBot - Call-Out: https://192.168.2.10:5001/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="<secret>"&payload={"text": "ID NAME FHEM TYPE \n 1: Daylight Daylight \n 2: Transmitter 2-gang deconz.FB.2gang ZHASwitch \n 3: TRÅDFRI remote control deconz.Ikea.FB.E1810 ZHASwitch \n 4: Bewegungsmelder deconz.pir ZHAPresence \n 5: Bewegungsmelder deconz.temp ZHATemperature \n 6: Bewegungsmelder deconz.light ZHALightLevel \n 9: TRADFRI on/off switch deconz.Ikea.FB.E1743 ZHASwitch \n10: BMEingang deconz.pir1 ZHAPresence \n11: BMEingang deconz.temp1 ZHATemperature \n12: BMEingang deconz.light1 ZHALightLevel \n13: TRÅDFRI Motion sensor deconz.ikea.pir ZHAPresence \n14: TRÅDFRI Motion sensor (2) deconz.ikea.pir2 ZHAPresence \n15: Rollo Schalter SZ deconz.rollo.remote ZHASwitch \n16: FYRTUR block-out roller blind deconz.rollo1.bat ZHABattery \n17: FYRTUR block-out roller blind deconz.rollo2.bat ZHABattery \n","user_ids": [4]}
2020.10.07 18:23:32.166 5: SynChatBot - JSON returned: {
  'success' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
  'data' => {
              'fail' => undef,
              'succ' => {
                          'user_id_post_map' => {
                                                  '4' => '34359740199'
                                                }
                        }
            }
}

2020.10.07 18:23:32.194 4: SynChatBot - Opmode "sendItem" finished successfully, Sendqueue index "11" deleted.


Frage ist jetzt wie/wo kommen die Originaldaten her ?
 
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: carlos am 07 Oktober 2020, 19:24:18
Die kommen von der Phoscon api von deconz uber meinen conbe 2 stick.
Als HUEBridge angelegt.
Keine Ahnung wo man hier ansetzen kann.
Beim HUEBridge entwickler vielleicht.
Gruß

Carlos

Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 07 Oktober 2020, 19:32:14
Naja, ich dachte eher daran wie du die DAten sammelst, also du stellst dir die DAten zum Versenden irgendwie zusammen. Dort dachte ich müssste man mal schauen.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: carlos am 07 Oktober 2020, 20:02:14
Nein mache ich nicht ich mache da ja auch nur einen GET auf mein device. Das kriege ich alles über die Hue Bridge von deconz
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 07 Oktober 2020, 20:21:46
Ah, ok. Dann macht es sicherlich Sinn im HueBridge Forum mal nachzufragen.
Ich schaue mir auch dies und das nochmal an. Vielleicht kann ich auch im Modul noch etwas tun um solche Fälle zu behandeln.
Derartige Sonderzeichen sind imme runschön aber eben nicht auszuschließen.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 07 Oktober 2020, 22:19:35
Hallo carlos,

ich glaube ich konnte das Characterproblem mit Å zentral im Modul lösen.
Teste mal bitte die Version aus meinem contrib.

Zum Download in der FHEMWEB Kommandozeile inklusive der Ausführungszeichen angeben und danach FHEM restarten:


"wget -qO ./FHEM/50_SSChatBot.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/50_SSChatBot.pm"
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: carlos am 07 Oktober 2020, 23:07:21
Funktioniert leider immer noch nicht:

2020.10.07 22:56:24 4: mySSChatBot - ####################################################
2020.10.07 22:56:24 4: mySSChatBot - ###          start Chat operation Receive
2020.10.07 22:56:24 4: mySSChatBot - ####################################################
2020.10.07 22:56:24 5: mySSChatBot - raw data received (urlDecoded):
$VAR1 = 'botname="mySSChatBot" fwcsrf="5f703ed4" token="xxx" text="/get myDeconz sensors" user_id="4" username="yyy"';

2020.10.07 22:56:24 4: mySSChatBot - received data decoded:
$VAR1 = {
          'botname' => 'mySSChatBot',
          'fwcsrf' => '5f703ed4',
          'text' => '/get myDeconz sensors',
          'token' => 'S5XlO9J599EDZJXOpscTnJpMRlsVnU2YfI09WRKouWQXYWnJAW4afxrVaGulHtgR',
          'user_id' => '4',
          'username' => 'yyy'
        };

2020.10.07 22:56:24 4: mySSChatBot - Synology Chat user "yyy" execute FHEM command: get myDeconz sensors
2020.10.07 22:56:24 4: mySSChatBot - FHEM command return: ID  NAME            FHEM            TYPE
1: Daylight                        Daylight
2: Transmitter 2-gang deconz.FB.2gang ZHASwitch
3: TRÅDFRI remote control deconz.Ikea.FB.E1810 ZHASwitch
4: Bewegungsmelder deconz.pir      ZHAPresence
5: Bewegungsmelder deconz.temp     ZHATemperature
6: Bewegungsmelder deconz.light    ZHALightLevel
9: TRADFRI on/off switch  deconz.Ikea.FB.E1743 ZHASwitch
10: BMEingang       deconz.pir1     ZHAPresence
11: BMEingang       deconz.temp1    ZHATemperature
12: BMEingang       deconz.light1   ZHALightLevel
13: TRÅDFRI Motion sensor deconz.ikea.pir ZHAPresence
14: TRÅDFRI Motion sensor (2) deconz.ikea.pir2 ZHAPresence
15: Rollo Schalter SZ deconz.rollo.remote ZHASwitch
16: FYRTUR block-out roller blind  deconz.rollo1.bat ZHABattery
17: FYRTUR block-out roller blind  deconz.rollo2.bat ZHABattery

2020.10.07 22:56:24 5: mySSChatBot - Add Item to queue - Index 11:
$VAR1 = {
          'attachment' => '',
          'channel' => '',
          'fileUrl' => '',
          'method' => 'chatbot',
          'opmode' => 'sendItem',
          'retryCount' => 0,
          'text' => "ID NAME FHEM TYPE \\n 1: Daylight Daylight \\n 2: Transmitter 2-gang deconz.FB.2gang ZHASwitch \\n 3: TR\x{c3} DFRI remote control deconz.Ikea.FB.E1810 ZHASwitch \\n 4: Bewegungsmelder deconz.pir ZHAPresence \\n 5: Bewegungsmelder deconz.temp ZHATemperature \\n 6: Bewegungsmelder deconz.light ZHALightLevel \\n 9: TRADFRI on/off switch deconz.Ikea.FB.E1743 ZHASwitch \\n10: BMEingang deconz.pir1 ZHAPresence \\n11: BMEingang deconz.temp1 ZHATemperature \\n12: BMEingang deconz.light1 ZHALightLevel \\n13: TR\x{c3} DFRI Motion sensor deconz.ikea.pir ZHAPresence \\n14: TR\x{c3} DFRI Motion sensor (2) deconz.ikea.pir2 ZHAPresence \\n15: Rollo Schalter SZ deconz.rollo.remote ZHASwitch \\n16: FYRTUR block-out roller blind deconz.rollo1.bat ZHABattery \\n17: FYRTUR block-out roller blind deconz.rollo2.bat ZHABattery \\n",
          'userid' => '4'
        };

2020.10.07 22:56:25 4: mySSChatBot - ####################################################
2020.10.07 22:56:25 4: mySSChatBot - ###         start Chat operation sendItem
2020.10.07 22:56:25 4: mySSChatBot - ####################################################
2020.10.07 22:56:25 4: mySSChatBot - API hashvalues already set - ignore get apisites
2020.10.07 22:56:25 4: mySSChatBot - botToken read from RAM: ********
2020.10.07 22:56:25 4: mySSChatBot - start SendQueue entry index "11" (sendItem) for operation.
2020.10.07 22:56:25 5: mySSChatBot - HTTP-Call will be done with httptimeout: 20 s
2020.10.07 22:56:25 4: mySSChatBot - Call-Out: http://192.168.178.9:5000/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="<secret>"&payload={"text": "ID NAME FHEM TYPE \n 1: Daylight Daylight \n 2: Transmitter 2-gang deconz.FB.2gang ZHASwitch \n 3: TR▒ DFRI remote control deconz.Ikea.FB.E1810 ZHASwitch \n 4: Bewegungsmelder deconz.pir ZHAPresence \n 5: Bewegungsmelder deconz.temp ZHATemperature \n 6: Bewegungsmelder deconz.light ZHALightLevel \n 9: TRADFRI on/off switch deconz.Ikea.FB.E1743 ZHASwitch \n10: BMEingang deconz.pir1 ZHAPresence \n11: BMEingang deconz.temp1 ZHATemperature \n12: BMEingang deconz.light1 ZHALightLevel \n13: TR▒ DFRI Motion sensor deconz.ikea.pir ZHAPresence \n14: TR▒ DFRI Motion sensor (2) deconz.ikea.pir2 ZHAPresence \n15: Rollo Schalter SZ deconz.rollo.remote ZHASwitch \n16: FYRTUR block-out roller blind deconz.rollo1.bat ZHABattery \n17: FYRTUR block-out roller blind deconz.rollo2.bat ZHABattery \n","user_ids": [4]}
2020.10.07 22:56:25 5: mySSChatBot - JSON returned: $VAR1 = {
          'data' => {
                      'fail' => {
                                  'user_ids' => [
                                                  4
                                                ]
                                },
                      'succ' => undef
                    },
          'success' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )
        };

2020.10.07 22:56:25 4: mySSChatBot - Opmode "sendItem" finished successfully, Sendqueue index "11" deleted.
2


Lösche ich das erste "3: TR\x{c3} DFRI" raus geht es mit dem Rest.
Ich versteh's nicht.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 07 Oktober 2020, 23:27:22
ZitatLösche ich das erste "3: TR\x{c3} DFRI" raus geht es mit dem Rest.
Ich versteh's nicht.
Das Leerzeichen muß keines sein, vllt. nur ein nicht druckbares Zeichen was man halt nicht sieht.
Ja das ist wirklich nicht so einfach.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 07 Oktober 2020, 23:41:52
Probier es nochmal bitte.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 08 Oktober 2020, 00:09:25
Wenn du das mit einem einfachen Send Kommando ausführst:


set <> asyncSendItem text="ID NAME FHEM TYPE \n 1: Daylight Daylight \n 2: Transmitter 2-gang deconz.FB.2gang ZHASwitch \n 3: TR\x{c3}\x{85}DFRI remote control deconz.Ikea.FB.E1810 ZHASwitch \n 4: Bewegungsmelder deconz.pir ZHAPresence \n 5: Bewegungsmelder deconz.temp ZHATemperature \n 6: Bewegungsmelder deconz.light ZHALightLevel \n 9: TRADFRI on/off switch deconz.Ikea.FB.E1743 ZHASwitch \n10: BMEingang deconz.pir1 ZHAPresence \n11: BMEingang deconz.temp1 ZHATemperature \n12: BMEingang deconz.light1 ZHALightLevel \n13: TR\x{c3}\x{85}DFRI Motion sensor deconz.ikea.pir ZHAPresence \n14: TR\x{c3}\x{85}DFRI Motion sensor (2) deconz.ikea.pir2 ZHAPresence \n15: Rollo Schalter SZ deconz.rollo.remote ZHASwitch \n16: FYRTUR block-out roller blind deconz.rollo1.bat ZHABattery \n17: FYRTUR block-out roller blind deconz.rollo2.bat ZHABattery \n"


kommt alles an wie es soll:


2020.10.08 00:05:47.778 4: SynChatBot - ####################################################
2020.10.08 00:05:47.778 4: SynChatBot - ###         start Chat operation sendItem   
2020.10.08 00:05:47.779 4: SynChatBot - ####################################################
2020.10.08 00:05:47.779 4: SynChatBot - API hashvalues already set - ignore get apisites
2020.10.08 00:05:47.780 4: SynChatBot - botToken read from RAM: ********
2020.10.08 00:05:47.780 4: SynChatBot - start SendQueue entry index "87" (sendItem) for operation.
2020.10.08 00:05:47.781 5: SynChatBot - HTTP-Call will be done with httptimeout: 10 s
2020.10.08 00:05:47.781 4: SynChatBot - Call-Out: https://192.168.2.10:5001/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="<secret>"&payload={"text": "ID NAME FHEM TYPE \n 1: Daylight Daylight \n 2: Transmitter 2-gang deconz.FB.2gang ZHASwitch \n 3: TR%C3%85DFRI remote control deconz.Ikea.FB.E1810 ZHASwitch \n 4: Bewegungsmelder deconz.pir ZHAPresence \n 5: Bewegungsmelder deconz.temp ZHATemperature \n 6: Bewegungsmelder deconz.light ZHALightLevel \n 9: TRADFRI on/off switch deconz.Ikea.FB.E1743 ZHASwitch \n10: BMEingang deconz.pir1 ZHAPresence \n11: BMEingang deconz.temp1 ZHATemperature \n12: BMEingang deconz.light1 ZHALightLevel \n13: TR%C3%85DFRI Motion sensor deconz.ikea.pir ZHAPresence \n14: TR%C3%85DFRI Motion sensor (2) deconz.ikea.pir2 ZHAPresence \n15: Rollo Schalter SZ deconz.rollo.remote ZHASwitch \n16: FYRTUR block-out roller blind deconz.rollo1.bat ZHABattery \n17: FYRTUR block-out roller blind deconz.rollo2.bat ZHABattery \n","user_ids": [4]}
2020.10.08 00:05:47.915 5: SynChatBot - JSON returned: {
  'success' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
  'data' => {
              'succ' => {
                          'user_id_post_map' => {
                                                  '4' => '34359740251'
                                                }
                        },
              'fail' => undef
            }
}

2020.10.08 00:05:47.943 4: SynChatBot - Opmode "sendItem" finished successfully, Sendqueue index "87" deleted.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: carlos am 08 Oktober 2020, 00:10:56
Nein, funktioniert leider immer noch nicht.
Das Ganze ist aber nicht richtig Ziel führen.
Das sollte auch nicht unbedingt in deinem Modul als workaround eingebaut werden.
Etwas ist mir da auch noch unklar. Du machst doch hier sicher einen synology api call, oder?
Warum hat der eigentlich da Probleme mit den Sonderzeichen?
Sollte doch einfach nur das Ergebnis im chat anzeigen.
Evtl. ist da dann doch ein Bug im API call.

Für mich war das eigentlich auch nur Test für dein Modul.
Ich habe jetzt einfach mal aus Å ein A gemacht, dann funktioniert das ja auch.
Also einfach in der Phoscon app die Sensoren ohne Sonderzeichen benennen.

Gruß
Carlos
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 08 Oktober 2020, 00:19:44
Zitat
Etwas ist mir da auch noch unklar. Du machst doch hier sicher einen synology api call, oder?
Ja, das stimmt schon. Aber der Call muß einen vorgegebenen Aufbau einhalten und vor allem müssen die übermittelten Zeichen urlEncoded sein. Und speziell das Zeichen Å hat den Code \x{c3}\x{85} und wird dann zu %C3%85. Dieser Code wird vom Chat auch sauber als Å wiedergegeben.
Wenn das Encoding aber nicht sauber gemacht werden kann, aus welchen Gründen auch immer ... dann kann es Probleme geben.
Auf jeden Fall wird ein  Å  jetzt auch so dargestellt.  :)

Aber ganz allgemein können Sonderzeichen irgendwo immer Probleme verursachen weil sie meist nicht so einfach zu handhaben sind wie einfache Zeichen.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 10 Oktober 2020, 09:48:59
Ich habe die Verarbeitung von Sonderzeichen noch komplettiert. Es werden nun auch solche Codes wie z.B. für Á, Â, Ã oder æ, ë, µ übertragen. Das Update ist seit heute früh in der Verteilung.

Grüße,
Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: TL60 am 31 Oktober 2020, 22:05:41
Hallo, wie hier https://forum.fhem.de/index.php/topic,115371.msg1097112.html#msg1097112 (https://forum.fhem.de/index.php/topic,115371.msg1097112.html#msg1097112)schon angedroht ;) habe ich mir den SSChatBot gemäß Wiki installiert. Ich kann dem Bot und der Bot mir Nachrichten schicken. Außerdem kann ich über einen Slash Befehl /get YiCam1 image meine Webcam veranlassen Bilder zu machen. Nicht schlecht für den Anfang. Ich wollte dann einen Schritt weitergehen und die Bilder mithilfe des Befehls /set SynFile Upload "/opt/fhem/www/snapshots" dest=/ShareFHEM/Cam2/%Y_%m_%d_%H_%M_ struc=false auf mein Synology Nas speichern. Das funktioniert nicht. Wie ich jetzt weiß,  weil in dem Code Leerzeichen sind. Es gibt auch keine Möglichkeit die zu maskieren o.ähnliches? Bei dieser Aktion ist mir aber noch etwas aufgefallen: Gemäß Wiki trage ich bei /get und /set Slash Befehlen
ZitatAnfrage-URL : hier wird wieder der Inhalt des Internals OUTDEF hineinkopiert
das Internal OUTDEF, welches auch den CSTFToken enthält, ein. Kann es sein das sich dieses Token bei einem Neustart von FHEM ändert und ich die Anfrage-URL ändern muß ?
Gruß
Thomas
PS: Morgen werde ich mal schauen, ob ich mit der Bewegungserkennung der Kamera notifys bzw. DOIFs triggern kann, welche Bilder machen, diese über SSFile auf meiner Diskstation sichern und mich über den Chatbot benachrichtigen.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 31 Oktober 2020, 22:15:40
Hi,

Zitat
Ich wollte dann einen Schritt weitergehen und die Bilder mithilfe des Befehls
Code: [Auswählen]

/set SynFile Upload "/opt/fhem/www/snapshots" dest=/ShareFHEM/Cam2/%Y_%m_%d_%H_%M_ struc=false

auf mein Synology Nas speichern. Das funktioniert nicht.

Habe es getestet, so funktioniert es:


/set SynFile Upload /opt/fhem/www/snapshots/*.* dest=/ShareFHEM/Cam2/%Y_%m_%d_%H_%M struc=false


sofern "/opt/fhem/www/snapshots" ein Verzeichnis ist.

Zitat
Kann es sein das sich dieses Token bei einem Neustart von FHEM ändert und ich die Anfrage-URL ändern muß ?
Nein, in dem automatisch angelegten FHEMWEB Device für den Chat (WEBSSChatBot) ist das Token mit dem Attribut csrfToken fest eingestellt.

Grüße,
Heiko 

Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: TL60 am 01 November 2020, 11:05:56
Moin,
bezüglich CSRF Token, denke ich mittlerweile das es sich um meinen Fehler bei der Erstellung eines 2 Bots handelte, der natürlich eine neue Webinstanz und somit auch einen neuenToken bekommt. Wenn man dann noch ohne nachdenken Copyy und Paste macht kann das schiefgehen.
ZitatHabe es getestet, so funktioniert es:

Code: [Auswählen]

/set SynFile Upload /opt/fhem/www/snapshots/*.* dest=/ShareFHEM/Cam2/%Y_%m_%d_%H_%M struc=false


sofern "/opt/fhem/www/snapshots" ein Verzeichnis ist.
Danke für das Codebeispiel. Funktioniert. Es funktioniert aber auch folgendes (gerade getestet) /set SynFile Upload /opt/fhem/www/snapshots dest=/ShareFHEM/Cam5/%Y_%m_%d_%H_%M struc=false Botantwort:
Zitatcommand 'set SynFile Upload /opt/fhem/www/snapshots dest=/ShareFHEM/Cam5/%Y_%m_%d_%H_%M struc=false' executed
Erwartungsgemäß entsteht enie Ordnerstruktur: /ShareFHEM/Cam/Datum-Uhrzeit/ mit allen Dateien aus dem Ursprungsverzeichnis  Mein Fehler war das ich Anführungszeichen benutzt habe, denke ich wenigstens. Das ganze ist schon ziemlich cool und wird vielleicht ein Schritt weg vom Telegrambot, mal sehen.
auf jeden Fall Danke für deine Unterstüzung
Gruß Thomas
PS Ich werde mal weitere Schritte probieren  :)
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 01 November 2020, 11:16:14
Hallo Thomas,

Die anführungszeichen hatte ich bei ssfile  als pflicht angegeben damit auch dateien mit leerzeichen im namen verarbeitet werden. Ist beim chatbot kontraproduktiv. Da werde ich mir noch was einfallen lassen müssen.  ;)
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 01 November 2020, 22:53:01
Ich habe es jetzt realisiert, dass man einen Text-Tag an SSChatBot senden kann der selbst quotation Marks (") enthält.

Damit geht nun auch eine solche Upload-Anforderung an SSFile:


/set SynFile Upload "./log/cookies - Haus & Hof mit ä.txt,./log/cookies - Haus & Hof.txt" dest=/home/upload mode=full


Version ist eingecheckt und morgen früh im Update.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: mobiljoe123 am 23 November 2020, 11:33:52
Hallo,
ich bräuchte mal eine kleine Unterstützung.

Bisher habe ich sämtliche Informationen mittels Telegramm ausgegeben.
So langsam baue ich Stück für Stück alles auf SSChat um.

Nun komme ich hier aber leider nicht weiter.

Nach einem Neustart lasse ich mich wie folgt informieren:
defmod notify.msg.fhem_reload notify global:INITIALIZED { fhem "set FHEMstatus msg FHEM Server wurde soeben neu gestartet."}

Stelle ich dies nun um:

defmod notify.msg.fhem_reload notify global:INITIALIZED { fhem "set SynChatBot asyncSendItem FHEM Server wurde soeben neu gestartet."}

kommt keine Nachricht an.

Im log steht:

2020.11.23 11:03:23 3: set SynChatBot asyncSendItem FHEM Server wurde soeben neu gestartet. : The registered Synology Chat users are unknown. Please retrieve them first with "get SynChatBot chatUserlist".
2020.11.23 11:03:23 3: notify.msg.fhem_reload return value: The registered Synology Chat users are unknown. Please retrieve them first with "get SynChatBot chatUserlist".
...
2020.11.23 11:03:26 3: SynChatBot - SSChatBot "SynChatBot" for URL /outchat registered



Lt. Wiki "Der Sendeprozess wird sofort gestartet. War die Übermittlung erfolgreich, wird die Nachricht aus der Queue gelöscht. Anderenfalls verbleibt sie in der Queue und der Sendeprozess wird, in einem von der Anzahl der Fehlversuche abhängigen Zeitintervall, erneut gestartet."

ein
set listSendqueue

zeigt aber
SendQueue is empty.

Was könnte ich tun?
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 23 November 2020, 12:03:14
Hallo,

ich gehe davon aus, dass es funktioniert wenn du manuell ein

set SynChatBot asyncSendItem FHEM Server wurde soeben neu gestartet

lostritts, oder ?
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: mobiljoe123 am 23 November 2020, 12:55:22
ja, das funktioniert.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 23 November 2020, 13:10:14
Hab ich mir gedacht. Nach dem Neustart wurden durch das Modul die auf der Synology verfügbaren Chat-User bzw. deren ID's noch nicht abgerufen.
Das passiert zwar gleich beim Start von FHEM, aber dauert einige Zeit, sodass dein notify vorher bereits ausgeführt wird und dadurch diese Daten noch nicht vorhanden sind.

Ich schaue mal dass ich ein Reading zur Verfügung stelle auf das man triggern kann sobald die User beim Start bezogen wurden.
Du kannst darauf warten und testen oder du verzögerst als Workaround  den Versand der Nachricht bei Start um eine Zeit X bis ich das Reading eingebaut habe.

Grüße,
Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 23 November 2020, 13:52:00
So, ich habe einen Event (kein Reading) eingebaut auf den man beim Start triggern kann. Damit ist sichergestellt, dass das Device ready to use ist:

2020-11-23 13:44:40.024 SSChatBot SynChatBot Errorcode: none
2020-11-23 13:44:40.024 SSChatBot SynChatBot Error: none
2020-11-23 13:44:40.635 SSChatBot SynChatBot CHAT_INITIALIZED
2020-11-23 13:44:40.647 SSChatBot SynChatBot QueueLength: 0
2020-11-23 13:44:40.661 SSChatBot SynChatBot active

Der Event kommt nur beim Start.

Die Version liegt in meinem Contrib zum Test.
Zum Download in der FHEMWEB Kommandozeile inklusive der Ausführungszeichen angeben und danach FHEM restarten:


"wget -qO ./FHEM/50_SSChatBot.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/50_SSChatBot.pm"


Probier mal.

Grüße,
Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: mobiljoe123 am 23 November 2020, 14:10:15
Hoffentlich hab ich alles korrekt gemacht. Bin nicht so bewandert.

Was hab ich gemacht:
1) "wget -qO ./FHEM/50_SSChatBot.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/50_SSChatBot.pm"
2) restart FHEM
3) defmod notify.sschat.fhem_reload notify SynChatBot:CHAT_INITIALIZED { fhem "set SynChatBot asyncSendItem FHEM Server wurde soeben neu gestartet."}
4) save
5) restart FHEM
6) log
2020.11.23 14:02:58 3: SynChatBot - SSChatBot "SynChatBot" for URL /outchat registered
...
2020.11.23 14:03:07 3: set SynChatBot asyncSendItem FHEM Server wurde soeben neu gestartet. : The registered Synology Chat users are unknown. Please retrieve them first with "get SynChatBot chatUserlist".
2020.11.23 14:03:07 3: notify.sschat.fhem_reload return value: The registered Synology Chat users are unknown. Please retrieve them first with "get SynChatBot chatUserlist".


Irgendwo war anscheinend ein Fehler.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 23 November 2020, 14:15:58
Hast du alles richtig gemacht. Hmm, da muss ich nochmal ran.

Das hier:

2020.11.23 14:03:07 3: set SynChatBot asyncSendItem FHEM Server wurde soeben neu gestartet. : The registered Synology Chat users are unknown. Please retrieve them first with "get SynChatBot chatUserlist".
2020.11.23 14:03:07 3: notify.sschat.fhem_reload return value: The registered Synology Chat users are unknown. Please retrieve them first with "get SynChatBot chatUserlist".


kommt von dem notify. Das kannst du mal auf verbose 2 setzen. Dann stört es nicht.
Setze den SynChatBot auf verbose 5, speichere und mache nochmal einen Neustart.

Dann kommt im Log eine Menge vom SynChatBot, Poste mir das bitte dann.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: mobiljoe123 am 23 November 2020, 14:27:40
Auszug vom log

2020.11.23 14:19:31 0: Server shutdown
...
2020.11.23 14:20:48 5: SynChatBot - Add Item to queue - Index 1:
$VAR1 = {
          'attachment' => '',
          'fileUrl' => '',
          'userid' => '',
          'channel' => '',
          'opmode' => 'chatUserlist',
          'retryCount' => 0,
          'text' => '',
          'method' => 'user_list'
        };

2020.11.23 14:20:48 4: SynChatBot - ####################################################
2020.11.23 14:20:48 4: SynChatBot - ###         start Chat operation chatUserlist   
2020.11.23 14:20:48 4: SynChatBot - ####################################################
2020.11.23 14:20:48 5: SynChatBot - HTTP-Call will be done with httptimeout: 20 s
2020.11.23 14:20:48 4: SynChatBot - API imported:
$VAR1 = {
          'INFO' => {
                      'NAME' => 'SYNO.API.Info',
                      'VER' => 1,
                      'PATH' => 'query.cgi'
                    },
          'EXTERNAL' => {
                          'NAME' => 'SYNO.Chat.External'
                        }
        };

2020.11.23 14:20:48 4: SynChatBot - Call-Out: http://192.168.123.62:5000/webapi/query.cgi?api=SYNO.API.Info&method=Query&version=1&query=SYNO.API.Info,SYNO.Chat.External
2020.11.23 14:20:49 3: SynChatBot - SSChatBot "SynChatBot" for URL /outchat registered
...
2020.11.23 14:20:57 5: SynChatBot - JSON returned: $VAR1 = {
          'success' => bless( do{\(my $o = 1)}, 'JSON::XS::Boolean' ),
          'data' => {
                      'SYNO.API.Info' => {
                                           'maxVersion' => 1,
                                           'path' => 'query.cgi',
                                           'minVersion' => 1
                                         },
                      'SYNO.Chat.External' => {
                                                'requestFormat' => 'JSON',
                                                'maxVersion' => 2,
                                                'path' => 'entry.cgi',
                                                'minVersion' => 1
                                              }
                    }
        };

2020.11.23 14:20:57 4: SynChatBot - API completed:
$VAR1 = {
          'INFO' => {
                      'NAME' => 'SYNO.API.Info',
                      'MOD' => 'no',
                      'VER' => 1,
                      'PATH' => 'query.cgi'
                    },
          'EXTERNAL' => {
                          'NAME' => 'SYNO.Chat.External',
                          'MOD' => 'no',
                          'VER' => 2,
                          'PATH' => 'entry.cgi'
                        },
          'PARSET' => 1
        };

2020.11.23 14:20:57 4: SynChatBot - botToken read from RAM: ********
2020.11.23 14:20:57 4: SynChatBot - start SendQueue entry index "1" (chatUserlist) for operation.
2020.11.23 14:20:57 5: SynChatBot - HTTP-Call will be done with httptimeout: 20 s
2020.11.23 14:20:57 4: SynChatBot - Call-Out: http://192.168.123.62:5000/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=user_list&token="<secret>"
...
2020.11.23 14:20:58 5: SynChatBot - JSON returned: $VAR1 = {
          'success' => bless( do{\(my $o = 1)}, 'JSON::XS::Boolean' ),
          'data' => {
                      'users' => [
                                   {
                                     'avatar_version' => 0,
                                     'nickname' => '',
                                     'status' => 'offline',
                                     'user_props' => {
                                                       'email' => '',
                                                       'avatar_color' => '#94bf13',
                                                       'timezone' => '',
                                                       'key_pair' => {
                                                                       'public_key' => ''
                                                                     },
                                                       'timezoneUTC' => 'Europe/Amsterdam',
                                                       'description' => 'Plex User'
                                                     },
                                     'dsm_uid' => 1027,
                                     'deleted' => bless( do{\(my $o = 0)}, 'JSON::XS::Boolean' ),
                                     'username' => 'plex',
                                     'is_disabled' => $VAR1->{'data'}{'users'}[0]{'deleted'},
                                     'human_type' => 'dsm',
                                     'user_id' => 4,
                                     'type' => 'human'
                                   },
                                   {
                                     'avatar_version' => 0,
                                     'nickname' => '',
                                     'status' => 'offline',
                                     'user_props' => {
                                                       'email' => '',
                                                       'avatar_color' => '#24bff2',
                                                       'timezone' => '',
                                                       'key_pair' => {
                                                                       'public_key' => ''
                                                                     },
                                                       'timezoneUTC' => 'Europe/Amsterdam',
                                                       'description' => 'Kalenderzugriff'
                                                     },
                                     'dsm_uid' => 1029,
                                     'deleted' => $VAR1->{'data'}{'users'}[0]{'deleted'},
                                     'username' => 'Kalender',
                                     'is_disabled' => $VAR1->{'data'}{'users'}[0]{'deleted'},
                                     'human_type' => 'dsm',
                                     'user_id' => 5,
                                     'type' => 'human'
                                   },
                                   {
                                     'avatar_version' => 1601997991,
                                     'nickname' => "J\x{f6}rg",
                                     'status' => 'offline',
                                     'user_props' => {
                                                       'email' => '',
                                                       'avatar_color' => '#94bf13',
                                                       'timezone' => '',
                                                       'key_pair' => {
                                                                       'public_key' => ''
                                                                     },
                                                       'timezoneUTC' => 'Europe/Amsterdam',
                                                       'description' => 'System default user'
                                                     },
                                     'dsm_uid' => 1024,
                                     'deleted' => $VAR1->{'data'}{'users'}[0]{'deleted'},
                                     'username' => 'admin',
                                     'is_disabled' => $VAR1->{'data'}{'users'}[0]{'deleted'},
                                     'human_type' => 'dsm',
                                     'user_id' => 6,
                                     'type' => 'human'
                                   },
                                   {
                                     'avatar_version' => 0,
                                     'nickname' => '',
                                     'status' => 'offline',
                                     'user_props' => {
                                                       'email' => '',
                                                       'avatar_color' => '#1dbfbf',
                                                       'timezone' => '',
                                                       'key_pair' => {
                                                                       'public_key' => ''
                                                                     },
                                                       'timezoneUTC' => 'Europe/Amsterdam',
                                                       'description' => ''
                                                     },
                                     'dsm_uid' => 1035,
                                     'deleted' => $VAR1->{'data'}{'users'}[0]{'deleted'},
                                     'username' => 'Joerg_chat',
                                     'is_disabled' => $VAR1->{'data'}{'users'}[0]{'deleted'},
                                     'human_type' => 'dsm',
                                     'user_id' => 9,
                                     'type' => 'human'
                                   }
                                 ]
                    }
        };

2020.11.23 14:20:58 3: set SynChatBot asyncSendItem FHEM Server wurde soeben neu gestartet. : The registered Synology Chat users are unknown. Please retrieve them first with "get SynChatBot chatUserlist".
2020.11.23 14:20:58 3: notify.sschat.fhem_reload return value: The registered Synology Chat users are unknown. Please retrieve them first with "get SynChatBot chatUserlist".
2020.11.23 14:20:58 4: SynChatBot - Opmode "chatUserlist" finished successfully, Sendqueue index "1" deleted.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 23 November 2020, 14:43:51
Danke, da hatte ich noch einen Denkfehler. Hole dir nochmal die neue Version aus dem contrib.
Jetzt sollte es klappen.

Dein notify kannst du aber besser so schreiben:


defmod notify.sschat.fhem_reload notify SynChatBot:CHAT_INITIALIZED set SynChatBot asyncSendItem FHEM Server wurde soeben neu gestartet.


Das Konstrukt { fhem "..."} ist hier überflüssig.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: mobiljoe123 am 23 November 2020, 14:52:27
Zitat von: DS_Starter am 23 November 2020, 14:43:51
Das Konstrukt { fhem "..."} ist hier überflüssig.
Danke. Habs geändert.

Jetzt hat alles wunderbar funktioniert.  :)

Muss ich jetzt bzgl. Updates etwas beachten?
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 23 November 2020, 14:55:18
Sehr schön.  :)

Ich werde die neue Version heute noch einchecken, dann ist sie morgen früh mit im Regelupdate enthalten.
D.h. wenn du morge früh ab 8:00 dein FHEM updatest, bekommst du diese Version "offiziell".
Musst also nichts weiter beachten in dem Fall.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: mobiljoe123 am 23 November 2020, 14:59:33
Klasse. Tolle Unterstützung.

Mein nächster Schritt wird die Ablösung der Kamerabilder von Telegramm zu SSChat wenns an der Haustür klingelt.
Da muss ich mich aber erst einmal einlesen. Ggf. komme ich wieder auf Dich zu.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: mobiljoe123 am 27 November 2020, 16:56:06
Hallo,

jetzt habe ich m.W. alles nach dem WIKI, mit super Unterstützung!!!, eingerichtet.
Leider kunktioniert der Versand eines Bildes meiner Kamera mittels SynChatBot noch nicht.

ein
set SSam.Home snap

führt zu (log)
2020.11.27 16:41:18 3: SSCam.Home - Snapshot of Camera Home created. ID: 5330
2020.11.27 16:41:19 3: SSCam.Home - Telegram message [0] of transaction "1221" sent to "JXXX_RXXX" by "FHEMstatus"
2020.11.27 16:41:19 3: SSCam.Home - Chat message [0] of transaction "1221" for "admin" added to "SynChatBot" sendqueue
2020.11.27 16:41:19 2: SynChatBot - ERROR - Operation sendItem was not successful. Errorcode: 117 - illegal file name or path
2020.11.27 16:41:19 2: SynChatBot - ERROR - "sendItem" SendQueue index "5" not executed. It seems to be a permanent error. Exclude it from new send attempt !


list Kamera
Internals:
   CAMID      1
   CAMNAME    Home
   COMPATIBILITY 8.2.8
   CREDENTIALS Set
   DEF        Home 192.168.123.62 5000
   FUUID      5ce44486-f33f-95bd-b78c-db65a251dbf6b4d4
   FVERSION   49_SSCam.pm:v9.8.2-s22912/2020-10-04
   MODEL      User Define -
   NAME       SSCam.Home
   NR         409
   OPMODE     getStmUrlPath
   PROTOCOL   http
   SERVERADDR 192.168.123.62
   SERVERPORT 5000
   STATE      off
   TYPE       SSCam
   HELPER:
     ACTIVE     off
     CREDENTIALS \[WzdY5?dKlpipXwlnrA
     HLSSTREAM  inactive
     LOGINRETRIES 0
     OLDPTZHOME
     OLDVALPOLL 210
     OLDVALPOLLNOLOGGING 1
     PACKAGE    FHEM::SSCam
     RECTIME_DEF 15
     SID        RcqxlY5HnuYYX0P4HSBTsO4dnUVOQaAPxRm4YOPdyKcFUqb8JzBp6mOeEJ3LlVabm9Mw7G720GvPSUEBTYjpIM
     SNAPLAG    2
     SNAPLIMIT  3
     SNAPNUMCOUNT 1
     STMKEYMJPEGHTTP http://192.168.123.62:5000/webapi/entry.cgi?api=SYNO.SurveillanceStation.Stream.VideoStreaming&version=1&method=Stream&format=mjpeg&cameraId=1&StmKey="d35283a43a67bfdd669ba1e6a1b2cbc9"
     STMKEYMXPEGHTTP http://192.168.123.62:5000/webapi/entry.cgi?api=SYNO.SurveillanceStation.Stream.VideoStreaming&version=1&method=Stream&format=mxpeg&cameraId=1&StmKey="d35283a43a67bfdd669ba1e6a1b2cbc9"
     STMKEYUNICST rtsp://syno:d35283a43a67bfdd669ba1e6a1b2cbc9@192.168.123.62:554/Sms=1.unicast
     STMKEYUNICSTOVERHTTP rtsp://192.168.123.62:5000/webman/3rdparty/SurveillanceStation/cgi/rtsp.cgi?Sms=1.unicast&DsId=0&StmKey=d35283a43a67bfdd669ba1e6a1b2cbc9
     TOTALCNT   4007
     VERSION    9.8.2
     VERSION_API 1.2.0
     VERSION_ErrCodes 1.3.4
     VERSION_SMUtils 1.20.6
     API:
       PARSET     1
       AUDIOSTM:
         MOD        no
         NAME       SYNO.SurveillanceStation.AudioStream
         PATH       SurveillanceStation/audioStreaming.cgi
         VER        2
       AUTH:
         MOD        no
         NAME       SYNO.API.Auth
         PATH       auth.cgi
         VER        6
       CAM:
         MOD        no
         NAME       SYNO.SurveillanceStation.Camera
         PATH       entry.cgi
         VER        9
       CAMEVENT:
         MOD        no
         NAME       SYNO.SurveillanceStation.Camera.Event
         PATH       entry.cgi
         VER        1
       EVENT:
         MOD        no
         NAME       SYNO.SurveillanceStation.Event
         PATH       entry.cgi
         VER        5
       EXTEVT:
         MOD        no
         NAME       SYNO.SurveillanceStation.ExternalEvent
         PATH       entry.cgi
         VER        1
       EXTREC:
         MOD        no
         NAME       SYNO.SurveillanceStation.ExternalRecording
         PATH       entry.cgi
         VER        3
       HMODE:
         MOD        no
         NAME       SYNO.SurveillanceStation.HomeMode
         PATH       entry.cgi
         VER        1
       INFO:
         MOD        no
         NAME       SYNO.API.Info
         PATH       query.cgi
         VER        1
       LOG:
         MOD        no
         NAME       SYNO.SurveillanceStation.Log
         PATH       entry.cgi
         VER        3
       PRESET:
         MOD        no
         NAME       SYNO.SurveillanceStation.PTZ.Preset
         PATH       entry.cgi
         VER        1
       PTZ:
         MOD        no
         NAME       SYNO.SurveillanceStation.PTZ
         PATH       entry.cgi
         VER        6
       REC:
         MOD        no
         NAME       SYNO.SurveillanceStation.Recording
         PATH       entry.cgi
         VER        6
       SNAPSHOT:
         MOD        no
         NAME       SYNO.SurveillanceStation.SnapShot
         PATH       entry.cgi
         VER        1
       STM:
         MOD        no
         NAME       SYNO.SurveillanceStation.Stream
         PATH       entry.cgi
         VER        1
       SVSINFO:
         MOD        no
         NAME       SYNO.SurveillanceStation.Info
         PATH       entry.cgi
         VER        8
       VIDEOSTM:
         MOD        no
         NAME       SYNO.SurveillanceStation.VideoStreaming
         PATH       entry.cgi
         VER        1
       VIDEOSTMS:
         MOD        no
         NAME       SYNO.SurveillanceStation.VideoStream
         PATH       SurveillanceStation/videoStreaming.cgi
         VER        1
     SVSVERSION:
       BUILD      6335
       MAJOR      8
       MINOR      2
       SMALL      8
   READINGS:
     2020-11-27 16:43:17   Availability    enabled
     2020-09-27 11:10:37   CamAudioType    6
     2020-11-27 16:43:11   CamEventNum     1145
     2020-11-27 16:43:17   CamExposureControl Unknown
     2020-11-27 16:43:17   CamExposureMode Unknown
     2020-11-27 16:43:17   CamIP           192.168.123.66
     2020-11-27 16:43:11   CamLastRec      20201127PM/Home-20201127-154429-1606488269.mp4
     2020-11-27 16:43:11   CamLastRecId    22261
     2020-11-27 16:43:11   CamLastRecTime  2020-11-27 / 15:44:29 - 15:45:33
     2020-11-27 16:43:17   CamLiveFps     
     2020-11-27 16:43:17   CamLiveMode     Liveview from DS
     2020-11-27 16:43:17   CamLiveQuality 
     2020-11-27 16:43:17   CamLiveResolution 1280x720
     2020-11-27 16:43:17   CamLiveStreamNo 1
     2020-11-27 16:43:17   CamModel       
     2020-11-27 16:43:15   CamMotDetSc     SVS, sensitivity: 80, threshold: 10
     2020-11-27 16:43:17   CamNTPServer   
     2020-11-27 16:43:17   CamPort         554
     2020-11-27 16:43:17   CamPreRecTime   5
     2020-11-27 16:43:17   CamRecShare     surveillance
     2020-11-27 16:43:17   CamRecVolume    /volume1
     2020-11-27 16:43:10   CamStreamFormat HLS
     2020-11-27 16:43:17   CamVendor       User Define
     2020-11-27 16:43:17   CamVideoFlip    true
     2020-11-27 16:43:17   CamVideoMirror  true
     2020-11-27 16:43:17   CamVideoRotate  false
     2020-11-27 16:43:17   CamVideoType    H.264
     2020-11-27 16:43:17   CamblPresetSpeed false
     2020-11-27 16:43:09   CapAudioOut     false
     2020-11-27 16:43:09   CapChangeSpeed  false
     2020-11-27 16:43:17   CapPIR          false
     2020-11-27 16:43:09   CapPTZAbs       false
     2020-11-27 16:43:09   CapPTZAutoFocus false
     2020-11-27 16:43:09   CapPTZDirections 0
     2020-11-27 16:43:09   CapPTZFocus     false
     2020-11-27 16:43:09   CapPTZHome      false
     2020-11-27 16:43:09   CapPTZIris      false
     2020-11-27 16:43:09   CapPTZObjTracking false
     2020-11-27 16:43:09   CapPTZPan       false
     2020-11-27 16:43:09   CapPTZPresetNumber 0
     2020-11-27 16:43:09   CapPTZTilt      false
     2020-11-27 16:43:09   CapPTZZoom      false
     2020-11-27 16:43:17   DeviceType      Camera
     2020-11-27 16:43:19   Error           none
     2020-11-27 16:43:19   Errorcode       none
     2020-11-27 16:43:13   LastSnapFilename Home-20201127-1641179222.jpg
     2020-11-27 16:43:13   LastSnapId      5330
     2020-11-27 16:43:13   LastSnapTime    2020-11-27 / 16:41:17
     2020-11-27 16:43:17   LastUpdateTime  2020-11-27 / 16:43:17
     2020-11-27 16:43:09   PollState       Active - next time: 16:46:39
     2020-11-27 16:43:17   Record          Stop
     2020-11-27 16:43:10   SVSlicenseNumber 2
     2020-11-27 16:43:10   SVSuserPriv     Admin
     2020-11-27 16:43:10   SVSversion      8.2.8-6335
     2020-11-27 16:43:19   StmKey          "d35283a43a67bfdd669ba1e6a1b2cbc9"
     2020-11-27 16:43:17   UsedSpaceMB     14.968
     2020-11-27 16:43:17   VideoFolder     http://192.168.123.62:8081/surveillance
     2020-11-27 16:43:10   compstate       true
     2020-11-27 16:41:19   sendChatState   Chat message [0] of transaction "1221" for "admin" added to "SynChatBot" sendqueue
     2020-11-27 16:41:19   sendTeleState   Telegram message [0] of transaction "1221" sent to "JXXX_RXXX" by "FHEMstatus"
     2020-11-27 16:43:17   state           off
Attributes:
   devStateIcon .*isable.*:set_off .*nap:li_wht_on
   httptimeout 20
   icon       it_camera
   pollcaminfoall 210
   pollnologging 1
   room       SSCam
   session    DSM
   snapChatTxt chatbot => SynChatBot, peers => , subject => Bewegungsalarm bei $CAM. Es wurde $CTIME der Schnappschuss $FILE erstellt
   snapGalleryBoost 1
   snapGalleryHtmlAttr width="325" height="225"
   snapGallerySize Full
   snapTelegramTxt tbot => FHEMstatus, peers => , subject => Bewegungsalarm bei $CAM. Es wurde $CTIME ein Schnappschuss erstellt
   videofolderMap http://192.168.123.62:8081/surveillance
   webCmd     on:off:snap:enable:disable:runView:stopView


list
Internals:
   DEF        192.168.123.62
   FUUID      5f7da29d-f33f-95bd-ef19-84b8a020e87ffc09
   FVERSION   50_SSChatBot.pm:v1.12.0-s23220/2020-11-23
   FW         WEBSSChatBot
   INADDR     192.168.123.62
   INPORT     5000
   INPROT     http
   MODEL      ChatBot
   NAME       SynChatBot
   NR         442
   OPMODE     
   OUTDEF     http://raspberrypi.fritz.box:8082/sschat/outchat?botname=SynChatBot&fwcsrf=5f7da29e
   RESEND     next planned SendQueue start: immediately by next entry
   STATE      Error
   TOKEN      Set
   TYPE       SSChatBot
   HELPER:
     INFIX      outchat
     PACKAGE    main::FHEM::SSChatBot
     TOKEN      g5[KeJizfH|{]Xf7jVg]jsUXe
WX�Pfom6PS>F
     USERFETCHED 1
     VERSION    1.12.0
     VERSION_API 1.2.0
     VERSION_ErrCodes 1.3.4
     VERSION_SMUtils 1.20.6
     API:
       PARSET     1
       EXTERNAL:
         MOD        no
         NAME       SYNO.Chat.External
         PATH       entry.cgi
         VER        2
       INFO:
         MOD        no
         NAME       SYNO.API.Info
         PATH       query.cgi
         VER        1
     USERS:
       Joerg_chat:
         email     
         id         9
         nickname   
         status     offline
       Kalender:
         email     
         id         5
         nickname   
         status     offline
       admin:
         email     
         id         6
         nickname   JXXX
         status     offline
       plex:
         email     
         id         4
         nickname   
         status     offline
   OLDREADINGS:
   READINGS:
     2020-11-27 16:41:19   Error           illegal file name or path
     2020-11-27 16:41:19   Errorcode       117
     2020-11-27 16:41:19   QueueLength     3
     2020-11-20 15:21:00   recActions     
     2020-11-20 15:21:00   recActionsValue
     2020-11-20 15:21:00   recCallbackId   
     2020-11-20 15:21:00   recChannelId   
     2020-11-20 15:21:00   recChannelname 
     2020-11-20 15:21:00   recCommand     
     2020-11-20 15:21:00   recPostId       25769803797
     2020-11-20 15:21:00   recText         set SSCam. Home snap
     2020-11-20 15:21:00   recTimestamp    2020-11-20 15:20:59
     2020-11-20 15:21:00   recTriggerword 
     2020-11-20 15:21:00   recUserId       6
     2020-11-20 15:21:00   recUsername     admin
     2020-11-20 15:21:00   sendCommandReturn
     2020-11-27 09:46:25   sendPostId      25769803955
     2020-11-27 09:46:25   sendUserId      6
   [b]  2020-11-27 16:41:19   state           Error[/b]
Attributes:
   defaultPeer admin
   room       Chat


Das Bild kann ich aber erfolgreich mit
http://192.168.123.62:8081/surveillance/@Snapshot/Home-20201127-1641179222.jpg
aufrufen. Der Pfad sollte also stimmen.

Sorry, hab ich etwas nicht beachtet?

LG Jörg
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 27 November 2020, 17:08:53
Hallo Jörg,

sieht auf den ersten Blick erstal ok aus.
Wenn du die sendqueue im ChatBot noch nicht gelöscht hast, mach mal ein

set SynChatBot listSendqueue

und poste den Inhalt bitte.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: Wiesenfreund am 28 November 2020, 10:04:50
Hallo,
leider war ich gezwungen fhem komplett neu aufzusetzen (SSD defekt), da ein Restore nicht funktioniert hat. Nach der Neuinstallation funktionierte SSChatBot bei mir nicht mehr richtig. Im alten System hatte ich nicht das aktuellste Modul verwendet. Jetzt ist auf einem Raspi 4 alles aktuell, d.h., Betriebssystem Raspberry Pi OS Lite (32-bit) gestern heruntergeladen und installiert. Danach fhem (6.0) installiert und aktualisiert. Alle Module komplett neu angelegt.

Problem:
Nach einem Shutdown von fhem funktioniert das Senden sowohl von den Modulen aus als auch über die Kommandozeile. Ein über Chat gesendetes Kommando kommt auch in SSChatBot an, es wird in den Readings angezeigt. Danach ist ein Senden nicht mehr möglich.

Inhalt Log:

2020.11.28 09:51:22.476 4: fhemBot - ####################################################
2020.11.28 09:51:22.476 4: fhemBot - ###          start Chat operation Receive           
2020.11.28 09:51:22.476 4: fhemBot - ####################################################
2020.11.28 09:51:22.476 5: fhemBot - raw data received (urlDecoded):
$VAR1 = 'botname="fhemBot" fwcsrf="5fc1f676" token="4xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx9" user_id="4" username="admin" post_id="266287973383" thread_id="0" timestamp="1606553482437" text="Wetter"';

2020.11.28 09:51:22.476 4: fhemBot - received data decoded:
$VAR1 = {
          'botname' => 'fhemBot',
          'fwcsrf' => '5fc1f676',
          'post_id' => '266287973383',
          'text' => 'Wetter',
          'thread_id' => '0',
          'timestamp' => '2020-11-28 09:51:22',
          'token' => '4xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx9',
          'user_id' => '4',
          'username' => 'admin'
        };

2020.11.28 09:51:44.206 2: HMCCU: [d_ccu : 2522] Invalid channel CENTRAL
2020.11.28 09:52:37.098 5: fhemBot - Add Item to queue - Index 18:
$VAR1 = {
          'attachment' => '',
          'channel' => '',
          'fileUrl' => '',
          'method' => 'chatbot',
          'opmode' => 'sendItem',
          'retryCount' => 0,
          'text' => 'TestFehler',
          'userid' => 5
        };

2020.11.28 09:52:37.099 5: fhemBot - Add Item to queue - Index 19:
$VAR1 = {
          'attachment' => '',
          'channel' => '',
          'fileUrl' => '',
          'method' => 'chatbot',
          'opmode' => 'sendItem',
          'retryCount' => 0,
          'text' => 'TestFehler',
          'userid' => 11
        };

2020.11.28 09:52:37.099 5: fhemBot - Add Item to queue - Index 20:
$VAR1 = {
          'attachment' => '',
          'channel' => '',
          'fileUrl' => '',
          'method' => 'chatbot',
          'opmode' => 'sendItem',
          'retryCount' => 0,
          'text' => 'TestFehler',
          'userid' => 29
        };

2020.11.28 09:52:37.100 5: fhemBot - Add Item to queue - Index 21:
$VAR1 = {
          'attachment' => '',
          'channel' => '',
          'fileUrl' => '',
          'method' => 'chatbot',
          'opmode' => 'sendItem',
          'retryCount' => 0,
          'text' => 'TestFehler',
          'userid' => 6
        };

2020.11.28 09:52:37.100 5: fhemBot - Add Item to queue - Index 22:
$VAR1 = {
          'attachment' => '',
          'channel' => '',
          'fileUrl' => '',
          'method' => 'chatbot',
          'opmode' => 'sendItem',
          'retryCount' => 0,
          'text' => 'TestFehler',
          'userid' => 4
        };

2020.11.28 09:52:37.101 5: fhemBot - Add Item to queue - Index 23:
$VAR1 = {
          'attachment' => '',
          'channel' => '',
          'fileUrl' => '',
          'method' => 'chatbot',
          'opmode' => 'sendItem',
          'retryCount' => 0,
          'text' => 'TestFehler',
          'userid' => 16
        };

2020.11.28 09:52:37.102 5: fhemBot - Add Item to queue - Index 24:
$VAR1 = {
          'attachment' => '',
          'channel' => '',
          'fileUrl' => '',
          'method' => 'chatbot',
          'opmode' => 'sendItem',
          'retryCount' => 0,
          'text' => 'TestFehler',
          'userid' => 9
        };

2020.11.28 09:52:37.102 5: fhemBot - Add Item to queue - Index 25:
$VAR1 = {
          'attachment' => '',
          'channel' => '',
          'fileUrl' => '',
          'method' => 'chatbot',
          'opmode' => 'sendItem',
          'retryCount' => 0,
          'text' => 'TestFehler',
          'userid' => 30
        };

2020.11.28 09:52:37.103 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/50_SSChatBot.pm line 866.
2020.11.28 09:52:37.103 4: fhemBot - Operation "receiveData (idx: )" is still running. Next operation start postponed


List des ChatBot:

Internals:
   DEF        192.168.178.92 5001 https
   FUUID      5fc1f676-f33f-d0e8-649c-f783e07176d8915c
   FVERSION   50_SSChatBot.pm:v1.12.0-s23220/2020-11-23
   FW         WEBSSChatBot
   INADDR     192.168.178.92
   INPORT     5001
   INPROT     https
   MODEL      ChatBot
   NAME       fhemBot
   NR         279
   OPMODE     receiveData
   OUTDEF     http://raspberrypi4.fritz.box:8082/sschat/outchat?botname=fhemBot&fwcsrf=5fc1f676
   RESEND     next planned SendQueue start: immediately by next entry
   STATE      active
   TOKEN      Set
   TYPE       SSChatBot
   HELPER:
     INFIX      outchat
     PACKAGE    FHEM::SSChatBot
     TOKEN      QL[xUxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxV9[[^MTrgkqr\6_}
SX[p]4}ORS>F
     USERFETCHED 1
     VERSION    1.12.0
     VERSION_API 1.2.0
     VERSION_ErrCodes 1.3.4
     VERSION_SMUtils 1.20.6
     API:
       PARSET     1
       EXTERNAL:
         MOD        no
         NAME       SYNO.Chat.External
         PATH       entry.cgi
         VER        2
       INFO:
         MOD        no
         NAME       SYNO.API.Info
         PATH       query.cgi
         VER        1
     USERS:
     
       fhem:
         email      xxxxxxx@online.de
         id         16
         nickname   
         status     offline
       
   OLDREADINGS:
   READINGS:
     2020-11-28 09:51:22   Error           none
     2020-11-28 09:51:22   Errorcode       none
     2020-11-28 09:52:37   QueueLength     8
     2020-11-28 09:51:22   recActions     
     2020-11-28 09:51:22   recActionsValue
     2020-11-28 09:51:22   recCallbackId   
     2020-11-28 09:51:22   recChannelId   
     2020-11-28 09:51:22   recChannelname 
     2020-11-28 09:51:22   recCommand     
     2020-11-28 09:51:22   recPostId       266287973383
     2020-11-28 09:51:22   recText         Wetter
     2020-11-28 09:51:22   recTimestamp    2020-11-28 09:51:22
     2020-11-28 09:51:22   recTriggerword 
     2020-11-28 09:51:22   recUserId       4
     2020-11-28 09:51:22   recUsername     admin
     2020-11-28 09:51:22   sendCommandReturn
     2020-11-28 09:48:29   sendPostId      322122547207
     2020-11-28 09:48:29   sendUserId      30
     2020-11-28 09:51:22   state           active
Attributes:
   defaultPeer pipopa
   room       Nachricht
   verbose    5


Dort, wo ich nicht sicher war, ob ich das öffentlich zeigen soll, habe ich x eingefügt.

Nach einem Shutdown von fhem geht das Senden wieder, bis erneut empfangen wird.

Grüße
Eberhard
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 28 November 2020, 10:12:24
Hallo Eberhard,

vermutlich hast du die Datei SMUtils nicht aktuell.
Mach mal ein komplettes FHEM update und wenn es danach immer noch nicht klappen sollte, bitte ein list des devices.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: Wiesenfreund am 28 November 2020, 10:25:02
Danke für die Rückmeldung.

Hier das List nach update all:

Internals:
   DEF        192.168.178.92 5001 https
   FUUID      5fc1f676-f33f-d0e8-649c-f783e07176d8915c
   FVERSION   50_SSChatBot.pm:v1.12.0-s23220/2020-11-23
   FW         WEBSSChatBot
   INADDR     192.168.178.92
   INPORT     5001
   INPROT     https
   MODEL      ChatBot
   NAME       fhemBot
   NR         279
   OPMODE     
   OUTDEF     http://raspberrypi4.fritz.box:8082/sschat/outchat?botname=fhemBot&fwcsrf=5fc1f676
   RESEND     next planned SendQueue start: immediately by next entry
   STATE      active
   TOKEN      Set
   TYPE       SSChatBot
   HELPER:
     INFIX      outchat
     PACKAGE    FHEM::SSChatBot
     TOKEN      QL[xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxr\6_}
SX[p]4}ORS>F
     USERFETCHED 1
     VERSION    1.12.0
     VERSION_API 1.2.0
     VERSION_ErrCodes 1.3.4
     VERSION_SMUtils 1.20.6
     API:
       PARSET     1
       EXTERNAL:
         MOD        no
         NAME       SYNO.Chat.External
         PATH       entry.cgi
         VER        2
       INFO:
         MOD        no
         NAME       SYNO.API.Info
         PATH       query.cgi
         VER        1
     USERS:
       pi:
         email      xxxxxx@online.de
         id         11
         nickname   
         status     offline
   
   OLDREADINGS:
   READINGS:
     2020-11-28 10:13:01   Error           none
     2020-11-28 10:13:01   Errorcode       none
     2020-11-28 10:13:01   QueueLength     0
     2020-11-28 09:51:22   recActions     
     2020-11-28 09:51:22   recActionsValue
     2020-11-28 09:51:22   recCallbackId   
     2020-11-28 09:51:22   recChannelId   
     2020-11-28 09:51:22   recChannelname 
     2020-11-28 09:51:22   recCommand     
     2020-11-28 09:51:22   recPostId       266287973383
     2020-11-28 09:51:22   recText         Wetter
     2020-11-28 09:51:22   recTimestamp    2020-11-28 09:51:22
     2020-11-28 09:51:22   recTriggerword 
     2020-11-28 09:51:22   recUserId       4
     2020-11-28 09:51:22   recUsername     admin
     2020-11-28 09:51:22   sendCommandReturn
     2020-11-28 09:48:29   sendPostId      322122547207
     2020-11-28 09:48:29   sendUserId      30
     2020-11-28 10:12:27   state           active
Attributes:
   defaultPeer pijfdkjflk
   room       Nachricht
   verbose    0


Nachtrag: set apIinfo funktioniert nach dem Empfangen auch nicht mehr.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 28 November 2020, 10:25:50
Habe einen kleinen Fehler festgestellt und gleich behoben. Zieh dir die Version aus meinem Contrib.

Zum Download in der FHEMWEB Kommandozeile inklusive der Ausführungszeichen angeben und danach FHEM restarten:


"wget -qO ./FHEM/50_SSChatBot.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/50_SSChatBot.pm"


LG,
Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: Wiesenfreund am 28 November 2020, 10:31:38
Hallo Heiko,
bei mir tuts nicht.

List des Device nach dem Empfangen und nach dem Einspielen der neuen Version:

Internals:
   DEF        192.168.178.92 5001 https
   FUUID      5fc1f676-f33f-d0e8-649c-f783e07176d8915c
   FVERSION   50_SSChatBot.pm:v1.12.1-s23220/2020-11-23
   FW         WEBSSChatBot
   INADDR     192.168.178.92
   INPORT     5001
   INPROT     https
   MODEL      ChatBot
   NAME       fhemBot
   NR         279
   OUTDEF     http://raspberrypi4.fritz.box:8082/sschat/outchat?botname=fhemBot&fwcsrf=5fc1f676
   RESEND     next planned SendQueue start: immediately by next entry
   STATE      active
   TOKEN      Set
   TYPE       SSChatBot
   HELPER:
     INFIX      outchat
     PACKAGE    FHEM::SSChatBot
     TOKEN      QL[xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxr\6_}
SX[p]4}ORS>F
     USERFETCHED 1
     VERSION    1.12.1
     VERSION_API 1.2.0
     VERSION_ErrCodes 1.3.4
     VERSION_SMUtils 1.20.6
     API:
       PARSET     1
       EXTERNAL:
         MOD        no
         NAME       SYNO.Chat.External
         PATH       entry.cgi
         VER        2
       INFO:
         MOD        no
         NAME       SYNO.API.Info
         PATH       query.cgi
         VER        1
     USERS:
       Buero:
         email      ererer@online.de
         id         11
         nickname   
         status     offline
       Eberhard:
         email      dsfsdfsdf@online.de
         id         9
         nickname   
         status     offline
       
   OLDREADINGS:
   READINGS:
     2020-11-28 10:27:52   Error           none
     2020-11-28 10:27:52   Errorcode       none
     2020-11-28 10:27:31   QueueLength     0
     2020-11-28 10:27:52   recActions     
     2020-11-28 10:27:52   recActionsValue
     2020-11-28 10:27:52   recCallbackId   
     2020-11-28 10:27:52   recChannelId   
     2020-11-28 10:27:52   recChannelname 
     2020-11-28 10:27:52   recCommand     
     2020-11-28 10:27:52   recPostId       266287973385
     2020-11-28 10:27:52   recText         Wetter
     2020-11-28 10:27:52   recTimestamp    2020-11-28 10:27:52
     2020-11-28 10:27:52   recTriggerword 
     2020-11-28 10:27:52   recUserId       4
     2020-11-28 10:27:52   recUsername     admin
     2020-11-28 10:27:52   sendCommandReturn
     2020-11-28 10:25:21   sendPostId      322122547208
     2020-11-28 10:25:21   sendUserId      30
     2020-11-28 10:27:52   state           active
Attributes:
   defaultPeer pi,Buero,Marliese,Mobiltelefon,admin,fhem,Eberhard,Shuttle
   room       Nachricht
   verbose    0
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 28 November 2020, 11:15:25
Was sendest du an den Bot ?
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: Wiesenfreund am 28 November 2020, 11:19:17
Hallo Heiko,
nach einem Neustart des Raspi funktioniert das Modul wieder. Ich sende aus verschiedenen DOIF Texte und Inhalte von Readings.

DANKE für die superschnelle Hilfe und für das Modul.

Gruß Eberhard
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: Wiesenfreund am 28 November 2020, 11:29:38
Hallo Heiko,
ich was etwas zu schnell. Auf die Befehle die ich an den Bot sende wird erst reagiert, wenn ich zusätzlich im Modul mit set ... irgend etwas sende.

Mein doif mit dem ich zzt. arbeite:

Internals:
   DEF        ([fhemBot:recText] eq "Tor zu")
(set Garage_Tor on)
DOELSEIF
([fhemBot:recText] eq "Tor auf")
(set Garage_Tor on)
DOELSEIF
([fhemBot:recText] eq "Garage")
(set fhemBot asyncSendItem Status Garage [HM_Garage_Tor]/[HM_Garage_Tor_Auf])
DOELSEIF
([fhemBot:recText] eq "Diesel")
(set fhemBot asyncSendItem
HEM-Mössingen [OUT_HEMMoessingen:diesel]\n
Jet-Ofterdingen [OUT_JetOfterd:diesel]\n 
MTB-Ofterdingen [OUT_MTBOfterd:diesel]\n 
Aral-Bodelshausen [OUT_AralBodelshausen:diesel]\n 
Shell-Hechingen [OUT_ShellHCH:diesel]\n 
Aral-Hechingen [OUT_AralHCH:diesel]\n 
Agip-Hechingen [OUT_AgipHCH:diesel])
DOELSEIF
([fhemBot:recText] eq "Wetter")
(set fhemBot asyncSendItem
Temperatur___: [HM_Wetterstation:1.TEMPERATURE] °C\n
Luftfeuchte__: [HM_Wetterstation:1.HUMIDITY] %\n
Windgeschwin: [HM_Wetterstation:1.WIND_SPEED] km/h\n 
Windrichtung_: [HM_Wetterstation:1.WIND_DIRECTION]\n
Regen Summe_: [HM_Wetterstation:1.RAIN_COUNTER] mm\n
Regen Heute__: [HM_Wetterstation:1.Regen_heute] mm\n
Regen Vortag__:[HM_Wetterstation:1.Regen_gestern] mm\n
Obst_Temperatur:[HM_Temp_Obst:1.TEMPERATURE] °C)
DOELSEIF
([fhemBot:recText] eq "Heizung")
(set fhemBot asyncSendItem
Gewaechshaus: [MQTT2_GWH:tempUnten] °C\n
Wohnzimmer: [MQTT2_Heizung:tempWohnenRaum] °C\n
Esszimmer: [MQTT2_Heizung:tempEssenRaum] °C\n
Kueche: [MQTT2_Heizung:tempKuecheRaum] °C\n
Schlafzimmer: [MQTT2_Heizung:tempSchlafzimmerRaum] °C\n
Studio: [MQTT2_Heizung:tempStudioRaum] °C\n
Buero: [MQTT2_Heizung:tempBueroRaum] °C\n
Keller: [HM_Wandthermostat_Keller:1.ACTUAL_TEMPERATURE] °C\n
Bad: [MQTT2_Heizung:tempBadRaum] °C\n
Vorlauf: [MQTT2_Heizung:tempVorlauf] °C)
DOELSEIF
([fhemBot:recText] eq "Pv")
(set fhemBot asyncSendItem
Leistung 2.16 kWp: [MQTT2_Strom:Leistung_PV21] W\n
Leistung 1.8 kWp: [MQTT2_Strom:Leistung_PV18] W\n
kWh_aktuell 2.16 kWp: [PV21_Ertraege:MQTT2_Strom_PV21_Z_EnergyDay] \n
kWh_Vortag 2.16 kWp: [PV21_Ertraege:MQTT2_Strom_PV21_Z_EnergyDayLast] \n
kWh_Aktuell 1.8 kWp: [PV18_Ertraege:MQTT2_Strom_PV18_Z_EnergyDay] \n
kWh_Vortag 1.8 kWp: [PV18_Ertraege:MQTT2_Strom_PV18_Z_EnergyDayLast])
DOELSEIF
([fhemBot:recText] eq "Pvt")
(set fhemBot asyncSendItem text="PV taeglich" svg="SVG_fl_PV_taeglich")
DOELSEIF
([fhemBot:recText] eq "Pva")
(set fhemBot asyncSendItem text="PV aktuell" svg="SVG_fl_PV_1")
DOELSEIF
([fhemBot:recText] eq "Hilfe")
(set fhemBot asyncSendItem
Pvt ist Grafik PV täglich\n
Pva ist Grafik PV aktuell\n
Pv ist PV in Zahlen\n
Heizung\n
Wetter\n
Garage\n
Diesel\n
Tor auf zu)

DOELSE
(set fhemBot asyncSendItem Nicht verstanden)
   FUUID      5fc1102f-f33f-d0e8-3ecf-4fdaf57ff2254379
   MODEL      FHEM
   NAME       doif_SynoBotGarage
   NOTIFYDEV  fhemBot,global
   NR         135
   NTFY_ORDER 50-doif_SynoBotGarage
   STATE      cmd_10
   TYPE       DOIF
   VERSION    23235 2020-11-25 22:42:28
   READINGS:
     2020-11-28 11:25:20   Device          fhemBot
     2020-11-28 11:25:20   cmd             10
     2020-11-28 11:25:20   cmd_event       fhemBot
     2020-11-28 11:25:20   cmd_nr          10
     2020-11-28 11:25:20   e_fhemBot_recText Hilfe
     2020-11-28 11:18:39   mode            enabled
     2020-11-28 11:25:20   state           cmd_10
   Regex:
     accu:
     cond:
       fhemBot:
         0:
           recText    ^fhemBot$:^recText:
         1:
           recText    ^fhemBot$:^recText:
         2:
           recText    ^fhemBot$:^recText:
         3:
           recText    ^fhemBot$:^recText:
         4:
           recText    ^fhemBot$:^recText:
         5:
           recText    ^fhemBot$:^recText:
         6:
           recText    ^fhemBot$:^recText:
         7:
           recText    ^fhemBot$:^recText:
         8:
           recText    ^fhemBot$:^recText:
         9:
           recText    ^fhemBot$:^recText:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::ReadingValDoIf($hash,'fhemBot','recText') eq "Tor zu"
     1          ::ReadingValDoIf($hash,'fhemBot','recText') eq "Tor auf"
     2          ::ReadingValDoIf($hash,'fhemBot','recText') eq "Garage"
     3          ::ReadingValDoIf($hash,'fhemBot','recText') eq "Diesel"
     4          ::ReadingValDoIf($hash,'fhemBot','recText') eq "Wetter"
     5          ::ReadingValDoIf($hash,'fhemBot','recText') eq "Heizung"
     6          ::ReadingValDoIf($hash,'fhemBot','recText') eq "Pv"
     7          ::ReadingValDoIf($hash,'fhemBot','recText') eq "Pvt"
     8          ::ReadingValDoIf($hash,'fhemBot','recText') eq "Pva"
     9          ::ReadingValDoIf($hash,'fhemBot','recText') eq "Hilfe"
   do:
     0:
       0          set Garage_Tor on
     1:
       0          set Garage_Tor on
     10:
       0          set fhemBot asyncSendItem Nicht verstanden
     2:
       0          set fhemBot asyncSendItem Status Garage [HM_Garage_Tor]/[HM_Garage_Tor_Auf]
     3:
       0          set fhemBot asyncSendItem HEM-Mössingen [OUT_HEMMoessingen:diesel]\n  Jet-Ofterdingen [OUT_JetOfterd:diesel]\n    MTB-Ofterdingen [OUT_MTBOfterd:diesel]\n    Aral-Bodelshausen [OUT_AralBodelshausen:diesel]\n    Shell-Hechingen [OUT_ShellHCH:diesel]\n    Aral-Hechingen [OUT_AralHCH:diesel]\n    Agip-Hechingen [OUT_AgipHCH:diesel]
     4:
       0          set fhemBot asyncSendItem Temperatur___: [HM_Wetterstation:1.TEMPERATURE] °C\n  Luftfeuchte__: [HM_Wetterstation:1.HUMIDITY] %\n  Windgeschwin: [HM_Wetterstation:1.WIND_SPEED] km/h\n    Windrichtung_: [HM_Wetterstation:1.WIND_DIRECTION]\n  Regen Summe_: [HM_Wetterstation:1.RAIN_COUNTER] mm\n  Regen Heute__: [HM_Wetterstation:1.Regen_heute] mm\n  Regen Vortag__:[HM_Wetterstation:1.Regen_gestern] mm\n Obst_Temperatur:[HM_Temp_Obst:1.TEMPERATURE] °C
     5:
       0          set fhemBot asyncSendItem Gewaechshaus: [MQTT2_GWH:tempUnten] °C\n Wohnzimmer: [MQTT2_Heizung:tempWohnenRaum] °C\n Esszimmer: [MQTT2_Heizung:tempEssenRaum] °C\n Kueche: [MQTT2_Heizung:tempKuecheRaum] °C\n Schlafzimmer: [MQTT2_Heizung:tempSchlafzimmerRaum] °C\n Studio: [MQTT2_Heizung:tempStudioRaum] °C\n Buero: [MQTT2_Heizung:tempBueroRaum] °C\n Keller: [HM_Wandthermostat_Keller:1.ACTUAL_TEMPERATURE] °C\n  Bad: [MQTT2_Heizung:tempBadRaum] °C\n Vorlauf: [MQTT2_Heizung:tempVorlauf] °C
     6:
       0          set fhemBot asyncSendItem Leistung 2.16 kWp: [MQTT2_Strom:Leistung_PV21] W\n Leistung 1.8 kWp: [MQTT2_Strom:Leistung_PV18] W\n kWh_aktuell 2.16 kWp: [PV21_Ertraege:MQTT2_Strom_PV21_Z_EnergyDay] \n kWh_Vortag 2.16 kWp: [PV21_Ertraege:MQTT2_Strom_PV21_Z_EnergyDayLast] \n kWh_Aktuell 1.8 kWp: [PV18_Ertraege:MQTT2_Strom_PV18_Z_EnergyDay] \n  kWh_Vortag 1.8 kWp: [PV18_Ertraege:MQTT2_Strom_PV18_Z_EnergyDayLast]
     7:
       0          set fhemBot asyncSendItem text="PV taeglich" svg="SVG_fl_PV_taeglich"
     8:
       0          set fhemBot asyncSendItem text="PV aktuell" svg="SVG_fl_PV_1"
     9:
       0          set fhemBot asyncSendItem Pvt ist Grafik PV täglich\n Pva ist Grafik PV aktuell\n Pv ist PV in Zahlen\n Heizung\n Wetter\n Garage\n Diesel\n Tor auf zu
   helper:
     DEVFILTER  ^global$|^fhemBot$
     NOTIFYDEV  global|fhemBot
     event      recActions: ,recCallbackId: ,recActionsValue: ,recChannelId: ,recChannelname: ,recUserId: 4,recUsername: admin,recPostId: 266287973408,recTimestamp: 2020-11-28 11:25:20,recText: Hilfe,recTriggerword: ,recCommand: ,sendCommandReturn: ,Errorcode: none,Error: none,active
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   fhemBot
     timerevent recActions: ,recCallbackId: ,recActionsValue: ,recChannelId: ,recChannelname: ,recUserId: 4,recUsername: admin,recPostId: 266287973408,recTimestamp: 2020-11-28 11:25:20,recText: Hilfe,recTriggerword: ,recCommand: ,sendCommandReturn: ,Errorcode: none,Error: none,active
     triggerDev fhemBot
     timerevents:
       recActions:
       recCallbackId:
       recActionsValue:
       recChannelId:
       recChannelname:
       recUserId: 4
       recUsername: admin
       recPostId: 266287973408
       recTimestamp: 2020-11-28 11:25:20
       recText: Hilfe
       recTriggerword:
       recCommand:
       sendCommandReturn:
       Errorcode: none
       Error: none
       active
       QueueLength: 17
       QueueLength: 18
       QueueLength: 19
       QueueLength: 20
       QueueLength: 21
       QueueLength: 22
       QueueLength: 23
       QueueLength: 24
     timereventsState:
       recActions:
       recCallbackId:
       recActionsValue:
       recChannelId:
       recChannelname:
       recUserId: 4
       recUsername: admin
       recPostId: 266287973408
       recTimestamp: 2020-11-28 11:25:20
       recText: Hilfe
       recTriggerword:
       recCommand:
       sendCommandReturn:
       Errorcode: none
       Error: none
       state: active
     triggerEvents:
       recActions:
       recCallbackId:
       recActionsValue:
       recChannelId:
       recChannelname:
       recUserId: 4
       recUsername: admin
       recPostId: 266287973408
       recTimestamp: 2020-11-28 11:25:20
       recText: Hilfe
       recTriggerword:
       recCommand:
       sendCommandReturn:
       Errorcode: none
       Error: none
       active
       QueueLength: 17
       QueueLength: 18
       QueueLength: 19
       QueueLength: 20
       QueueLength: 21
       QueueLength: 22
       QueueLength: 23
       QueueLength: 24
     triggerEventsState:
       recActions:
       recCallbackId:
       recActionsValue:
       recChannelId:
       recChannelname:
       recUserId: 4
       recUsername: admin
       recPostId: 266287973408
       recTimestamp: 2020-11-28 11:25:20
       recText: Hilfe
       recTriggerword:
       recCommand:
       sendCommandReturn:
       Errorcode: none
       Error: none
       state: active
   internals:
   perlblock:
   readings:
     all         fhemBot:recText
   trigger:
   uiState:
   uiTable:
Attributes:
   alias      Nachrichten_Dieselpreise_SynoBot
   do         always
   room       Garage,Info->Tankstellen,Logik,Nachricht


Ergänzung: Wenn ich set fhemBot listSendqueue ausführe, werden die nicht gesendeten Daten angezeigt.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 28 November 2020, 11:56:52
Hallo Eberhard,

ZitatAuf die Befehle die ich an den Bot sende wird erst reagiert, wenn ich zusätzlich im Modul mit set ... irgend etwas sende.
... war eine wichtige Info.

Zieh mal wiede die contrib Version und probiere es aus.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: Wiesenfreund am 28 November 2020, 12:14:30
mit der geänderten Version funktionierts bei mir wieder wie einst!

DANKE für die Hilfe,
sollte noch was sein, melde ich mich.

Gruß
Eberhard
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 28 November 2020, 12:58:25
Prima Eberhard, kannst du bitte die Version aus dem contrib nochmal testen ?
Ich habe noch eine Kleinigkeit nachgebessert und will nur sicher sein, dass sie auch woanders funzt.

LG,
Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: Wiesenfreund am 28 November 2020, 15:51:22
Heiko, bei mir funktionierts.....
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 28 November 2020, 15:54:41
Danke für die Info. Habe die korrigierte Version eingecheckt und wird morgen früh im Update verteilt.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: mobiljoe123 am 28 November 2020, 21:26:36

Bin jetzt erst dazugekommen deinen Post zu lesen.

Zitat von: DS_Starter am 27 November 2020, 17:08:53
set SynChatBot listSendqueue

Ergebnis:
3 => userid=>6, text=>Ein Schnappschuss von Terrassentür wurde ausgelöst, retryCount=>1, opmode=>sendItem, method=>chatbot, forbidSend=>record not valid, fileUrl=>[Home:VideoFolder]/@Snapshot/[Home:LastSnapFilename], channel=>, attachment=>
4 => userid=>6, text=>Bewegungsalarm bei%20Home. Es wurde der Schnappschuss erstellt, retryCount=>1, opmode=>sendItem, method=>chatbot, forbidSend=>illegal file name or path, fileUrl=>http://192.168.123.62:8081/surveillance/@Snapshot/, channel=>, attachment=>
5 => userid=>6, text=>Bewegungsalarm bei%20Home. Es wurde der Schnappschuss erstellt, retryCount=>1, opmode=>sendItem, method=>chatbot, forbidSend=>illegal file name or path, fileUrl=>http://192.168.123.62:8081/surveillance/@Snapshot/, channel=>, attachment=>
12 => userid=>6, text=>Bewegungsalarm bei%20Home. Es wurde der Schnappschuss erstellt, retryCount=>1, opmode=>sendItem, method=>chatbot, forbidSend=>illegal file name or path, fileUrl=>http://192.168.123.62:8081/surveillance/@Snapshot/, channel=>, attachment=>
13 => userid=>6, text=>Bewegungsalarm bei%20Home. Es wurde der Schnappschuss erstellt, retryCount=>1, opmode=>sendItem, method=>chatbot, forbidSend=>illegal file name or path, fileUrl=>http://192.168.123.62:8081/surveillance/@Snapshot/, channel=>, attachment=>
14 => userid=>6, text=>Bewegungsalarm bei%20Home. Es wurde der Schnappschuss erstellt, retryCount=>1, opmode=>sendItem, method=>chatbot, forbidSend=>illegal file name or path, fileUrl=>http://192.168.123.62:8081/surveillance/@Snapshot/, channel=>, attachment=>
15 => userid=>6, text=>Bewegungsalarm bei%20Home. Es wurde der Schnappschuss erstellt, retryCount=>1, opmode=>sendItem, method=>chatbot, forbidSend=>illegal file name or path, fileUrl=>http://192.168.123.62:8081/surveillance/@Snapshot/, channel=>, attachment=>
16 => userid=>6, text=>Bewegungsalarm bei%20Home. Es wurde der Schnappschuss erstellt, retryCount=>1, opmode=>sendItem, method=>chatbot, forbidSend=>illegal file name or path, fileUrl=>http://192.168.123.62:8081/surveillance/@Snapshot/, channel=>, attachment=>
17 => userid=>6, text=>Bewegungsalarm bei%20Home. Es wurde der Schnappschuss erstellt, retryCount=>1, opmode=>sendItem, method=>chatbot, forbidSend=>illegal file name or path, fileUrl=>http://192.168.123.62:8081/surveillance/@Snapshot/, channel=>, attachment=>

Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 29 November 2020, 08:45:25
Guten morgen,

ja hier sieht man den Grund. Die Angabe des zu versendenden Files ist unvollständig, da fehlt das File:

fileUrl=>http://192.168.123.62:8081/surveillance/@Snapshot/

Und das ist sowieso falsch:

fileUrl=>[Home:VideoFolder]/@Snapshot/[Home:LastSnapFilename]

Mach mal bitte ein List deines Cam-Devices und des Chatbot Devices. Du verwendest zum Versand die in SSCam integrierte Methode oder ?

LG
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: mobiljoe123 am 29 November 2020, 12:11:52
Hallo Heiko,

... das war auch nur ein Test.
fileUrl=>[Home:VideoFolder]/@Snapshot/[Home:LastSnapFilename]

list Cam-Device
Internals:
   CAMID      1
   CAMNAME    Home
   COMPATIBILITY 8.2.8
   CREDENTIALS Set
   DEF        Home 192.168.123.62 5000
   FUUID      5ce44486-f33f-95bd-b78c-db65a251dbf6b4d4
   FVERSION   49_SSCam.pm:v9.8.2-s22912/2020-10-04
   MODEL      User Define -
   NAME       SSCam.Home
   NR         409
   OPMODE     getStmUrlPath
   PROTOCOL   http
   SERVERADDR 192.168.123.62
   SERVERPORT 5000
   STATE      off
   TYPE       SSCam
   HELPER:
     ACTIVE     off
     CREDENTIALS \[WzdY5?dKlpipXwlnrA
     HLSSTREAM  inactive
     LOGINRETRIES 0
     OLDPTZHOME
     OLDVALPOLL 210
     OLDVALPOLLNOLOGGING 1
     PACKAGE    FHEM::SSCam
     RECTIME_DEF 15
     SID        RcqxlY5HnuYYX0P4HSBTsO4dnUVOQaAPxRm4YOPdyKcFUqb8JzBp6mOeEJ3LlVabm9Mw7G720GvPSUEBTYjpIM
     SNAPLAG    3
     SNAPLIMIT  3
     SNAPNUMCOUNT 1
     STMKEYMJPEGHTTP http://192.168.123.62:5000/webapi/entry.cgi?api=SYNO.SurveillanceStation.Stream.VideoStreaming&version=1&method=Stream&format=mjpeg&cameraId=1&StmKey="972ce6f3f05cae7ddbc9271e8a935e44"
     STMKEYMXPEGHTTP http://192.168.123.62:5000/webapi/entry.cgi?api=SYNO.SurveillanceStation.Stream.VideoStreaming&version=1&method=Stream&format=mxpeg&cameraId=1&StmKey="972ce6f3f05cae7ddbc9271e8a935e44"
     STMKEYUNICST rtsp://syno:972ce6f3f05cae7ddbc9271e8a935e44@192.168.123.62:554/Sms=1.unicast
     STMKEYUNICSTOVERHTTP rtsp://192.168.123.62:5000/webman/3rdparty/SurveillanceStation/cgi/rtsp.cgi?Sms=1.unicast&DsId=0&StmKey=972ce6f3f05cae7ddbc9271e8a935e44
     TOTALCNT   4019
     VERSION    9.8.2
     VERSION_API 1.2.0
     VERSION_ErrCodes 1.3.4
     VERSION_SMUtils 1.20.6
     API:
       PARSET     1
       AUDIOSTM:
         MOD        no
         NAME       SYNO.SurveillanceStation.AudioStream
         PATH       SurveillanceStation/audioStreaming.cgi
         VER        2
       AUTH:
         MOD        no
         NAME       SYNO.API.Auth
         PATH       auth.cgi
         VER        6
       CAM:
         MOD        no
         NAME       SYNO.SurveillanceStation.Camera
         PATH       entry.cgi
         VER        9
       CAMEVENT:
         MOD        no
         NAME       SYNO.SurveillanceStation.Camera.Event
         PATH       entry.cgi
         VER        1
       EVENT:
         MOD        no
         NAME       SYNO.SurveillanceStation.Event
         PATH       entry.cgi
         VER        5
       EXTEVT:
         MOD        no
         NAME       SYNO.SurveillanceStation.ExternalEvent
         PATH       entry.cgi
         VER        1
       EXTREC:
         MOD        no
         NAME       SYNO.SurveillanceStation.ExternalRecording
         PATH       entry.cgi
         VER        3
       HMODE:
         MOD        no
         NAME       SYNO.SurveillanceStation.HomeMode
         PATH       entry.cgi
         VER        1
       INFO:
         MOD        no
         NAME       SYNO.API.Info
         PATH       query.cgi
         VER        1
       LOG:
         MOD        no
         NAME       SYNO.SurveillanceStation.Log
         PATH       entry.cgi
         VER        3
       PRESET:
         MOD        no
         NAME       SYNO.SurveillanceStation.PTZ.Preset
         PATH       entry.cgi
         VER        1
       PTZ:
         MOD        no
         NAME       SYNO.SurveillanceStation.PTZ
         PATH       entry.cgi
         VER        6
       REC:
         MOD        no
         NAME       SYNO.SurveillanceStation.Recording
         PATH       entry.cgi
         VER        6
       SNAPSHOT:
         MOD        no
         NAME       SYNO.SurveillanceStation.SnapShot
         PATH       entry.cgi
         VER        1
       STM:
         MOD        no
         NAME       SYNO.SurveillanceStation.Stream
         PATH       entry.cgi
         VER        1
       SVSINFO:
         MOD        no
         NAME       SYNO.SurveillanceStation.Info
         PATH       entry.cgi
         VER        8
       VIDEOSTM:
         MOD        no
         NAME       SYNO.SurveillanceStation.VideoStreaming
         PATH       entry.cgi
         VER        1
       VIDEOSTMS:
         MOD        no
         NAME       SYNO.SurveillanceStation.VideoStream
         PATH       SurveillanceStation/videoStreaming.cgi
         VER        1
     SVSVERSION:
       BUILD      6335
       MAJOR      8
       MINOR      2
       SMALL      8
   READINGS:
     2020-11-29 12:05:13   Availability    enabled
     2020-09-27 11:10:37   CamAudioType    6
     2020-11-29 12:05:09   CamEventNum     1148
     2020-11-29 12:05:13   CamExposureControl Unknown
     2020-11-29 12:05:13   CamExposureMode Unknown
     2020-11-29 12:05:13   CamIP           192.168.123.66
     2020-11-29 12:05:09   CamLastRec      20201129AM/Home-20201129-114239-1606646559.mp4
     2020-11-29 12:05:09   CamLastRecId    22355
     2020-11-29 12:05:09   CamLastRecTime  2020-11-29 / 11:42:39 - 11:43:13
     2020-11-29 12:05:13   CamLiveFps     
     2020-11-29 12:05:13   CamLiveMode     Liveview from DS
     2020-11-29 12:05:13   CamLiveQuality 
     2020-11-29 12:05:13   CamLiveResolution 1280x720
     2020-11-29 12:05:13   CamLiveStreamNo 1
     2020-11-29 12:05:13   CamModel       
     2020-11-29 12:05:11   CamMotDetSc     SVS, sensitivity: 80, threshold: 10
     2020-11-29 12:05:13   CamNTPServer   
     2020-11-29 12:05:13   CamPort         554
     2020-11-29 12:05:13   CamPreRecTime   5
     2020-11-29 12:05:13   CamRecShare     surveillance
     2020-11-29 12:05:13   CamRecVolume    /volume1
     2020-11-29 12:05:08   CamStreamFormat HLS
     2020-11-29 12:05:13   CamVendor       User Define
     2020-11-29 12:05:13   CamVideoFlip    true
     2020-11-29 12:05:13   CamVideoMirror  true
     2020-11-29 12:05:13   CamVideoRotate  false
     2020-11-29 12:05:13   CamVideoType    H.264
     2020-11-29 12:05:13   CamblPresetSpeed false
     2020-11-29 12:05:05   CapAudioOut     false
     2020-11-29 12:05:05   CapChangeSpeed  false
     2020-11-29 12:05:13   CapPIR          false
     2020-11-29 12:05:05   CapPTZAbs       false
     2020-11-29 12:05:05   CapPTZAutoFocus false
     2020-11-29 12:05:05   CapPTZDirections 0
     2020-11-29 12:05:05   CapPTZFocus     false
     2020-11-29 12:05:05   CapPTZHome      false
     2020-11-29 12:05:05   CapPTZIris      false
     2020-11-29 12:05:05   CapPTZObjTracking false
     2020-11-29 12:05:05   CapPTZPan       false
     2020-11-29 12:05:05   CapPTZPresetNumber 0
     2020-11-29 12:05:05   CapPTZTilt      false
     2020-11-29 12:05:05   CapPTZZoom      false
     2020-11-29 12:05:13   DeviceType      Camera
     2020-11-29 12:05:15   Error           none
     2020-11-29 12:05:15   Errorcode       none
     2020-11-29 12:05:07   LastSnapFilename Home-20201128-1033555519.jpg
     2020-11-29 12:05:07   LastSnapId      5342
     2020-11-29 12:05:07   LastSnapTime    2020-11-28 / 10:33:55
     2020-11-29 12:05:13   LastUpdateTime  2020-11-29 / 12:05:13
     2020-11-29 12:05:04   PollState       Active - next time: 12:08:34
     2020-11-29 12:05:13   Record          Stop
     2020-11-29 12:05:06   SVSlicenseNumber 2
     2020-11-29 12:05:06   SVSuserPriv     Admin
     2020-11-29 12:05:06   SVSversion      8.2.8-6335
     2020-11-29 12:05:15   StmKey          "972ce6f3f05cae7ddbc9271e8a935e44"
     2020-11-29 12:05:13   UsedSpaceMB     14.800
     2020-11-29 12:05:13   VideoFolder     http://192.168.123.62:8081/surveillance
     2020-11-29 12:05:06   compstate       true
     2020-11-28 10:33:57   sendChatState   Missing at least one required parameter or attribute: subject, chatbot
     2020-11-28 10:33:57   sendTeleState   Missing at least one required parameter or attribute: telebot
     2020-11-29 12:05:13   state           off
Attributes:
   devStateIcon .*isable.*:set_off .*nap:li_wht_on
   httptimeout 20
   icon       it_camera
   pollcaminfoall 210
   pollnologging 1
   room       SSCam
   session    DSM
   snapChatTxt chatbot => SynChatBot, peers => , subject => Bewegungsalarm bei $CAM. Es wurde $CTIME der Schnappschuss $FILE erstellt
   snapGalleryBoost 1
   snapGalleryHtmlAttr width="325" height="225"
   snapGallerySize Full
   snapTelegramTxt tbot => FHEMstatus, peers => , subject => Bewegungsalarm bei $CAM. Es wurde $CTIME ein Schnappschuss erstellt
   videofolderMap http://192.168.123.62:8081/surveillance
   webCmd     on:off:snap:enable:disable:runView:stopView


list Chatbot Device
Internals:
   DEF        192.168.123.62
   FUUID      5f7da29d-f33f-95bd-ef19-84b8a020e87ffc09
   FVERSION   50_SSChatBot.pm:v1.12.0-s23220/2020-11-23
   FW         WEBSSChatBot
   INADDR     192.168.123.62
   INPORT     5000
   INPROT     http
   MODEL      ChatBot
   NAME       SynChatBot
   NR         442
   OPMODE     
   OUTDEF     http://raspberrypi.fritz.box:8082/sschat/outchat?botname=SynChatBot&fwcsrf=5f7da29e
   RESEND     next planned SendQueue start: immediately by next entry
   STATE      active
   TOKEN      Set
   TYPE       SSChatBot
   HELPER:
     INFIX      outchat
     PACKAGE    main::FHEM::SSChatBot
     TOKEN      g5[KeJizfH|{]Xf7jVg]jsUXe
WX�Pfom6PS>F
     USERFETCHED 1
     VERSION    1.12.0
     VERSION_API 1.2.0
     VERSION_ErrCodes 1.3.4
     VERSION_SMUtils 1.20.6
     API:
       PARSET     1
       EXTERNAL:
         MOD        no
         NAME       SYNO.Chat.External
         PATH       entry.cgi
         VER        2
       INFO:
         MOD        no
         NAME       SYNO.API.Info
         PATH       query.cgi
         VER        1
     USERS:
       Joerg_chat:
         email     
         id         9
         nickname   
         status     offline
       Kalender:
         email     
         id         5
         nickname   
         status     offline
       admin:
         email     
         id         6
         nickname   J�rg
         status     offline
       plex:
         email     
         id         4
         nickname   
         status     offline
   OLDREADINGS:
   READINGS:
     2020-11-28 12:03:12   Error           none
     2020-11-28 12:03:12   Errorcode       none
     2020-11-29 05:35:37   QueueLength     9
     2020-11-20 15:21:00   recActions     
     2020-11-20 15:21:00   recActionsValue
     2020-11-20 15:21:00   recCallbackId   
     2020-11-20 15:21:00   recChannelId   
     2020-11-20 15:21:00   recChannelname 
     2020-11-20 15:21:00   recCommand     
     2020-11-20 15:21:00   recPostId       25769803797
     2020-11-20 15:21:00   recText         set SSCam. Home snap
     2020-11-20 15:21:00   recTimestamp    2020-11-20 15:20:59
     2020-11-20 15:21:00   recTriggerword 
     2020-11-20 15:21:00   recUserId       6
     2020-11-20 15:21:00   recUsername     admin
     2020-11-20 15:21:00   sendCommandReturn
     2020-11-29 05:35:37   sendPostId      25769803974
     2020-11-29 05:35:37   sendUserId      6
     2020-11-29 05:35:37   state           active
Attributes:
   defaultPeer admin
   room       Chat


Zitat von: DS_Starter am 29 November 2020, 08:45:25
Du verwendest zum Versand die in SSCam integrierte Methode oder ?

:-\ Bisher reichte ein
set SSCam.Home snap 3 3
und es kamen 3 Bilder bei telegram an.

Schönen ersten Advent.
LG Jörg
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 29 November 2020, 12:31:59
Hallo Jörg,

Zitat:-\ Bisher reichte ein ...
Jepp, ist bei Chat genauso.

Ich schaue mir gerade deine lists an und sehe momentan noch nichts falsches.
Hast du eventuell noch eine andere Kamera mit einem anderen Namen als Home ?

Dir auch einen schönen Advent !
LG,
Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 29 November 2020, 14:56:44
Du könntest es auch mal manuell im Chatdevice testen mit:


set SynChatBot asyncSendItem  text="Kameratest" fileUrl="http://192.168.123.62:8081/surveillance/@Snapshot/Home-20201128-1033555519.jpg"


Bei mir habe ich es getestet und die fileUrl wird korrekt übernommen. Der Versand klappt natürlich nicht da es das Objekt nicht gibt, aber der resultierende Ausbau in der sendQueue stimmt:
7 => userid=>4, text=>Kameratest, retryCount=>1, opmode=>sendItem, method=>chatbot, forbidSend=>illegal file name or path, fileUrl=>http://192.168.123.62:8081/surveillance/@Snapshot/Home-20201128-1033555519.jpg, channel=>, attachment=>

LG
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: mobiljoe123 am 29 November 2020, 16:48:34
set SynChatBot asyncSendItem  text="Kameratest" fileUrl="http://192.168.123.62:8081/surveillance/@Snapshot/Home-20201128-1033555519.jpg"

:) funktioniert.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: mobiljoe123 am 29 November 2020, 16:54:24
Zitat von: DS_Starter am 29 November 2020, 12:31:59
Hast du eventuell noch eine andere Kamera mit einem anderen Namen als Home ?

Ich habe nur eine Kamera.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 29 November 2020, 17:03:13
Zitat:) funktioniert.
Also funktioniert es erstmal grundsätzlich.  :)
Frage ist jetzt wieso nicht direkt aus SSCam heraus.

Im Cam Device mal verbose 4 setzen und nach dem snap den Logauszug posten der so aussieht wie unten.


2020.11.29 16:59:39.500 4: SSCam.Terrasse - ####################################################
2020.11.29 16:59:39.500 4: SSCam.Terrasse - ###      start send Snap or Video by SSChatBot     
2020.11.29 16:59:39.501 4: SSCam.Terrasse - ####################################################
2020.11.29 16:59:39.501 4: SSCam.Terrasse - param chatbot is set to "SynChatBot"
2020.11.29 16:59:39.502 4: SSCam.Terrasse - param videofolderMap is set to "http://sds1.myds.me:8081/surveillance"
2020.11.29 16:59:39.502 4: SSCam.Terrasse - param tac is set to "1334"
2020.11.29 16:59:39.502 4: SSCam.Terrasse - param peers is set to ""
2020.11.29 16:59:39.503 4: SSCam.Terrasse - param sdat is set
2020.11.29 16:59:39.503 4: SSCam.Terrasse - param subject is set to "Bewegungsalarm bei Terrasse. Es wurde $CTIME der Schnappschuss $FILE erstellt"
2020.11.29 16:59:39.504 4: SSCam.Terrasse - param opmode is set to "getsnapgallery"
2020.11.29 16:59:39.504 4: SSCam.Terrasse - Cache "redis" is already initialized
2020.11.29 16:59:39.506 4: SSCam.Terrasse - Cache "redis" is already initialized
2020.11.29 16:59:39.510 3: SSCam.Terrasse - Chat message [0] of transaction "1334" for "Heiko" added to "SynChatBot" sendqueue
2020.11.29 16:59:39.529 4: SSCam.Terrasse - SMTP-Credentials read from RAM: ++++++
2020.11.29 16:59:39.544 4: SSCam.Terrasse - Cache "redis" is already initialized
2020.11.29 16:59:39.558 4: SSCam.Terrasse - Image data sequence [0] decoded from CHI-Cache for Email attachment
2020.11.29 16:59:39.592 3: SSCam.Terrasse - SMTP-Host 192.168.2.10 switched to encrypted connection with SSL version: TLSv1_2
2020.11.29 16:59:40.517 4: SSCam.Terrasse - Cache key "{SENDSNAPS}{1334}{0}{createdTm}" removed
2020.11.29 16:59:40.519 4: SSCam.Terrasse - Cache key "{SENDSNAPS}{1334}{0}{snapid}" removed
2020.11.29 16:59:40.522 4: SSCam.Terrasse - Cache key "{SENDSNAPS}{1334}{0}{imageData}" removed
2020.11.29 16:59:40.524 4: SSCam.Terrasse - Cache key "{SENDSNAPS}{1334}{0}{fileName}" removed
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 29 November 2020, 17:15:43
Besser ist es auch noch das Chat device auf verbose 5 zu setzen und dann einen Snap auslösen.
Dann sieht man es schön komplett:


2020.11.29 17:13:06.983 4: SSCam.Terrasse - ####################################################
2020.11.29 17:13:06.983 4: SSCam.Terrasse - ###      start send Snap or Video by SSChatBot     
2020.11.29 17:13:06.984 4: SSCam.Terrasse - ####################################################
2020.11.29 17:13:06.984 4: SSCam.Terrasse - param videofolderMap is set to "http://sds1.myds.me:8081/surveillance"
2020.11.29 17:13:06.985 4: SSCam.Terrasse - param chatbot is set to "SynChatBot"
2020.11.29 17:13:06.985 4: SSCam.Terrasse - param tac is set to "2751"
2020.11.29 17:13:06.985 4: SSCam.Terrasse - param peers is set to ""
2020.11.29 17:13:06.986 4: SSCam.Terrasse - param opmode is set to "getsnapgallery"
2020.11.29 17:13:06.986 4: SSCam.Terrasse - param subject is set to "Bewegungsalarm bei Terrasse. Es wurde $CTIME der Schnappschuss $FILE erstellt"
2020.11.29 17:13:06.986 4: SSCam.Terrasse - param sdat is set
2020.11.29 17:13:06.987 4: SSCam.Terrasse - Cache "redis" is already initialized
2020.11.29 17:13:06.989 4: SSCam.Terrasse - Cache "redis" is already initialized
2020.11.29 17:13:06.993 5: SynChatBot - Add Item to queue - Index 10:
{
  'attachment' => '',
  'method' => 'chatbot',
  'text' => 'Bewegungsalarm bei Terrasse. Es wurde 29.11.2020 / 17:13:06 der Schnappschuss Terrasse-20201129-1713061395.jpg erstellt',
  'opmode' => 'sendItem',
  'fileUrl' => 'http://sds1.myds.me:8081/surveillance/@Snapshot/Terrasse-20201129-1713061395.jpg',
  'userid' => 4,
  'channel' => '',
  'retryCount' => 0
}

2020.11.29 17:13:06.993 3: SSCam.Terrasse - Chat message [0] of transaction "2751" for "Heiko" added to "SynChatBot" sendqueue
2020.11.29 17:13:06.994 4: SynChatBot - ####################################################
2020.11.29 17:13:06.994 4: SynChatBot - ###         start Chat operation sendItem   
2020.11.29 17:13:06.995 4: SynChatBot - ####################################################
2020.11.29 17:13:06.995 4: SynChatBot - API hashvalues already set - ignore get apisites
2020.11.29 17:13:06.996 4: SynChatBot - botToken read from RAM: ********
2020.11.29 17:13:06.996 4: SynChatBot - start SendQueue entry index "10" (sendItem) for operation.
2020.11.29 17:13:06.996 5: SynChatBot - HTTP-Call will be done with httptimeout: 10 s
2020.11.29 17:13:06.997 4: SynChatBot - Call-Out: https://192.168.2.10:5001/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="<secret>"&payload={"text": "Bewegungsalarm bei Terrasse. Es wurde 29.11.2020 / 17:13:06 der Schnappschuss Terrasse-20201129-1713061395.jpg erstellt","file_url": "http://sds1.myds.me:8081/surveillance/@Snapshot/Terrasse-20201129-1713061395.jpg","user_ids": [4]}
2020.11.29 17:13:07.014 4: SSCam.Terrasse - SMTP-Credentials read from RAM: +++++
2020.11.29 17:13:07.030 4: SSCam.Terrasse - Cache "redis" is already initialized
2020.11.29 17:13:07.389 4: SSCam.Terrasse - Image data sequence [0] decoded from CHI-Cache for Email attachment
2020.11.29 17:13:08.002 4: SSCam.Terrasse - Cache key "{SENDSNAPS}{2751}{0}{snapid}" removed
2020.11.29 17:13:08.004 4: SSCam.Terrasse - Cache key "{SENDSNAPS}{2751}{0}{createdTm}" removed
2020.11.29 17:13:08.006 4: SSCam.Terrasse - Cache key "{SENDSNAPS}{2751}{0}{fileName}" removed
2020.11.29 17:13:08.008 4: SSCam.Terrasse - Cache key "{SENDSNAPS}{2751}{0}{imageData}" removed
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: mobiljoe123 am 29 November 2020, 17:29:53

Auszug log
2020.11.29 17:25:26 4: SSCam.Home - ####################################################
2020.11.29 17:25:26 4: SSCam.Home - ###      start send Snap or Video by SSChatBot     
2020.11.29 17:25:26 4: SSCam.Home - ####################################################
2020.11.29 17:25:26 4: SSCam.Home - param peers is set to ""
2020.11.29 17:25:26 4: SSCam.Home - param subject is set to "Bewegungsalarm bei Home. Es wurde $CTIME der Schnappschuss $FILE erstellt"
2020.11.29 17:25:26 4: SSCam.Home - param chatbot is set to "SynChatBot"
2020.11.29 17:25:26 4: SSCam.Home - param tac is set to "240"
2020.11.29 17:25:26 4: SSCam.Home - param opmode is set to "getsnapgallery"
2020.11.29 17:25:26 4: SSCam.Home - param sdat is set
2020.11.29 17:25:26 4: SSCam.Home - param videofolderMap is set to "http://192.168.123.62:8081/surveillance"
2020.11.29 17:25:26 4: SSCam.Home - internal Cache mechanism is used
2020.11.29 17:25:26 4: SSCam.Home - internal Cache mechanism is used
2020.11.29 17:25:26 5: SynChatBot - Add Item to queue - Index 35:
$VAR1 = {
          'attachment' => '',
          'fileUrl' => 'http://192.168.123.62:8081/surveillance/@Snapshot/',
          'userid' => 6,
          'channel' => '',
          'opmode' => 'sendItem',
          'retryCount' => 0,
          'text' => 'Bewegungsalarm bei%20Home. Es wurde der Schnappschuss erstellt',
          'method' => 'chatbot'
        };

2020.11.29 17:25:26 3: SSCam.Home - Chat message [0] of transaction "240" for "admin" added to "SynChatBot" sendqueue
2020.11.29 17:25:26 4: SynChatBot - ####################################################
2020.11.29 17:25:26 4: SynChatBot - ###         start Chat operation sendItem   
2020.11.29 17:25:26 4: SynChatBot - ####################################################
2020.11.29 17:25:26 4: SynChatBot - API hashvalues already set - ignore get apisites
2020.11.29 17:25:26 4: SynChatBot - botToken read from RAM: ********
2020.11.29 17:25:26 4: SynChatBot - start SendQueue entry index "35" (sendItem) for operation.
2020.11.29 17:25:26 5: SynChatBot - HTTP-Call will be done with httptimeout: 20 s
2020.11.29 17:25:26 4: SynChatBot - Call-Out: http://192.168.123.62:5000/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="<secret>"&payload={"text": "Bewegungsalarm bei%20Home. Es wurde der Schnappschuss erstellt","file_url": "http://192.168.123.62:8081/surveillance/@Snapshot/","user_ids": [6]}
2020.11.29 17:25:26 5: SynChatBot - JSON returned: $VAR1 = {
          'success' => bless( do{\(my $o = 0)}, 'JSON::XS::Boolean' ),
          'error' => {
                       'code' => 117
                     }
        };

2020.11.29 17:25:26 2: SynChatBot - ERROR - Operation sendItem was not successful. Errorcode: 117 - illegal file name or path
2020.11.29 17:25:26 2: SynChatBot - ERROR - "sendItem" SendQueue index "35" not executed. It seems to be a permanent error. Exclude it from new send attempt !
2020.11.29 17:25:26 4: SynChatBot - ####################################################
2020.11.29 17:25:26 4: SynChatBot - ###         start Chat operation     
2020.11.29 17:25:26 4: SynChatBot - ####################################################
2020.11.29 17:25:26 4: SynChatBot - Only entries with "forbidSend" are in Sendqueue. Escaping ...
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 29 November 2020, 17:51:09
Jetzt kennen wir den Grund. Der Filename wird bei dir nicht übergeben.


$VAR1 = {
          'attachment' => '',
          'fileUrl' => 'http://192.168.123.62:8081/surveillance/@Snapshot/',


Fehlt nur noch die Ursache.
Bei Telegram funktionierts wie du sagst ?
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: mobiljoe123 am 29 November 2020, 18:02:35
ja, da funktoniert es.

das steht bei telegram im log (falls das hilft)
2020.11.29 17:25:26 4: SSCam.Home - ####################################################
2020.11.29 17:25:26 4: SSCam.Home - ###     start send Snap or Video by TelegramBot     
2020.11.29 17:25:26 4: SSCam.Home - ####################################################
2020.11.29 17:25:26 4: SSCam.Home - param telebot is set to "FHEMstatus"
2020.11.29 17:25:26 4: SSCam.Home - param MediaStream is set to "-1"
2020.11.29 17:25:26 4: SSCam.Home - param peers is set to ""
2020.11.29 17:25:26 4: SSCam.Home - param part1txt is set to ""
2020.11.29 17:25:26 4: SSCam.Home - param subject is set to "Bewegungsalarm bei Home. Es wurde $CTIME ein Schnappschuss erstellt"
2020.11.29 17:25:26 4: SSCam.Home - param fname is set to ""
2020.11.29 17:25:26 4: SSCam.Home - param tac is set to "240"
2020.11.29 17:25:26 4: SSCam.Home - param opmode is set to "getsnapgallery"
2020.11.29 17:25:26 4: SSCam.Home - param image is set to ""
2020.11.29 17:25:26 4: SSCam.Home - param sdat is set
2020.11.29 17:25:26 4: SSCam.Home - param part1type is set to "text/plain; charset=UTF-8"
2020.11.29 17:25:26 4: SSCam.Home - param lsnaptime is set to ""
2020.11.29 17:25:26 4: SSCam.Home - param part2type is set to "image/jpeg"
2020.11.29 17:25:26 4: SSCam.Home - internal Cache mechanism is used
2020.11.29 17:25:26 4: SSCam.Home - internal Cache mechanism is used
2020.11.29 17:25:26 4: SSCam.Home - Image data sequence [0] decoded from internal Cache for TelegramBot prepare
2020.11.29 17:25:26 4: SSCam.Home - __TBotSendIt: Filename for image file :<stream:66049>:
2020.11.29 17:25:26 4: SSCam.Home - __TBotSendIt: timeout for sent :30:
2020.11.29 17:25:26 3: SSCam.Home - Telegram message [0] of transaction "240" sent to "JXXX_RXXX" by "FHEMstatus"
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 29 November 2020, 18:11:02
Jetzt konnte ich das Problem nachstellen. Es ist ein Problem in SSCam der nur zu Tage tritt wenn das Attribut cacheType nicht gesetzt ist.
Setze dir bitte mal das Attribut (in SSCam.Home)

cacheType = file

Und teste wieder den snap.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: mobiljoe123 am 29 November 2020, 18:45:14

... ich glaub, das dauert jetzt etwas.

beim setzen des Attributes kommt:
"Perl cache module CHI is missing. You need to install it with the FHEM Installer for example."

Da muss ich mich erst mal mit beschäftigen. Das hatte ich schon mal geladen. Dies hat aber nie funktioniert, da "1   E404   Not Found - cpanm is not installed". Das habe ich aber als "Anwender" nicht verstanden.

Da ein
set FHEM Installer Status installPerl App::cpanminus
leider nicht funktioniert.
state error 'installPerl App::cpanminus'

.. hab ich es dann einfach gelassen.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 29 November 2020, 18:51:43
Kein Problem, ich habe inzwischen herausbekommen dass du einfach nur das Attribut snapTelegramTxt löschen musst.
Das ist ein Fehler in SSCam dass sich die Versandattribute gegenseitig beeinflussen.

Haus mal raus und dann wieder snap.  ;)
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: mobiljoe123 am 29 November 2020, 19:01:08

:) :) :)
Es funktioniert. Spitze.
Da hab ich jetzt alles von telegram zu SSChat gebracht. DANKE.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 29 November 2020, 19:06:44
 :D

Ich muß jetzt das Problem im SSCam fixen. Darf nicht sein dass sich diese Attribute gegenseitig beeinflussen. Kommt sicherlich nicht so häufig vor, aber trotzdem ...

Wegen dem Installer bzw. cpanminus.....
Ich habe in meinem Wiki mal nachgeschaut. Sollte so installierbar sein:


curl -L https://cpanmin.us | perl - --sudo App::cpanminus


Den FHEM Installer nehme ich nur noch um irgendwelche Perl Module nachzuinstallieren oder zu updaten. Außerdem kann man das System prüfen ob alle nötigen Perl Module installiert sind usw.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: mobiljoe123 am 29 November 2020, 20:12:13

Wie immer DANKESCHÖN.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 29 November 2020, 21:27:37
Ist zwar ein bisschen OT, aber weil es aktuell um ein Bugfix in SSCam ging die kurze Info dass ich den Fehler beseitigen konnte. Neue Version von SSCam ist morgen früh im Update enthalten welches das oben erlebte Problem beseitigt.

Grüße,
Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: Karflyer am 09 Dezember 2020, 14:12:05
Hallo Heiko,

ich bin erst vor kurzem für Nachrichten aus FHEM heraus auf dein Modul umgestiegen. Das funktioniert auch sehr gut. Danke an dich für das Modul.
Beim Neustart von FHEM habe ich allerdings diese beiden Fehlermeldungen im Log:
2020.12.09 13:59:50 2: SynChatBot - ERROR message: read from http://192.168.2.168:20000 timed out
2020.12.09 13:59:50 2: SynChatBot - ERROR - "chatUserlist" SendQueue index "1" not executed. Restart SendQueue in 5 s (retryCount 1).


Wie lässt sich das abstellen?

Grüße
Stefan
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 09 Dezember 2020, 14:38:30
Hallo Stefan,

manchmal reagiert die Synology nicht so schnell auf Anfragen (gerade beim Start von FHEM wenn evtl. noch mehr Anfragen an die Syno gestellt werden) und dadurch kommt es zu dieser Meldung. Prinzipiell nicht schlimm, denn die Anmeldung wird ja wiederholt wie es im Log steht.

Aber es gibt noch das Attribut "httptimeout" welches du im Device setzen kannst, z.B. auf 60.
Damit läufst du dann nicht in den timeout. Musst du mal probieren was ein guter Wert für deine Umgebung wäre.

LG,
Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: ThomasMagnum am 18 August 2021, 11:52:29
Hallo,
aktuell habe ich ein Problem mit der Einbindung des Chat Bots. Ich habe alles nach Anleitung in der Wiki vorgenommen, bekomme aber nach der EIngabe des Tokens die folgende Fehlermeldung:
Message not found for error code: 105 New error: autoblock
Mit dem Error Code 105

Eine Peer Liste kann ich auch nicht laden, da steht dann "--wait for userlist--

Kann mir evtl. jemand sagen wo der Fehler liegen könnte?

Gruß, Thomas

Edit: Hab das Problem gefunden. Die Autoblockierung der IP Adresse hatte auf der Synology NAS zugeschlagen.
Nach Anpassen der zugelassenen IP Range läuft alles wieder.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 18 August 2021, 13:02:41
Hallo Thomas,

gerade wollte ich antworten. :)

Interessant dass die Autoblockierung auch mit dem Code 105 zurückkommt, normalerweise wäre es der Code für "The logged in session does not have permission."

Grüße,
Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: ThomasMagnum am 17 November 2021, 07:42:33
Hallo guten Morgen,

am Wochenende habe ich meine FHEM Installation (Docker) auf meine Synology umgezogen. Seit dieser Zeit verbindet sich mein SSChat Device nicht mehr mit dem Synology Chat Server.

Als Fehlermeldung kommt:
connect to https://192.168.178.33:5001 timed out

Hat evtl. jemand eine Idee was die Ursache dafür ist?
Vielen Dank!
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 17 November 2021, 08:18:40
Guten Morgen,

Hast du für fhem im docker ein Portmapping eingerichtet ?
Wenn ja, prüfe mal bitte die integration des bots im syno chatserver. Es sind die ersten Schritte wie im Wiki beschrieben.
Der chatserver muss die angelegte fhemweb instanz erreichen können.

Lg,
Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: ThomasMagnum am 17 November 2021, 09:18:36
Hallo Heiko

aus meiner Sicht habe ich die richtigen Portweiterleitungen eingerichtet (8082).
Ich versuche mal das Device komplett zu löschen und neu anzulegen, evtl. liegt ja da der Hund begraben. ;-)

Gruß, Thomas

Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: mobiljoe123 am 17 November 2021, 16:10:45
Hallo Heiko,

aktuell scheinen die Formatierungen
Formatieren einer Nachricht:

Die folgenden Markdown-Codes werden vom Chat unterstützt:

    Inhalte betonen:
    Stellen Sie Ihren Text zwischen *Sternchen*, um Fettdruck zu erzeugen, oder _Unterstrichen_ für Kursivtext.
    Durchstreichen:
    Stellen Sie Ihren Text zwischen ~Tilden~.
    Eine Liste erstellen:
    Fügen Sie vor jedem Element der Liste ein Sternchen * gefolgt von einem Leerzeichen ein. Fügen Sie der Liste mit der Tastenkombination Umschalttaste + Eingabetaste neue Zeilen bzw. Elemente hinzu.
    Einzug oder Blockzitat hinzufügen:
    Fügen Sie dem Beginn einer Nachricht spitze Klammern hinzu. Beispiel:
        > Fügen Sie eine spitze Klammer hinzu, um die erste Zeile der Nachricht einzurücken.
        >>> Fügen Sie drei spitze Klammern hinzu, um mehrere Zeilen einzurücken und die Nachricht als längeres Zitat anzuzeigen.

nicht zu funktionieren.

gelesen unter: https://kb.synology.com/de-de/DSM/help/Chat/chat_enriching_your_chat?version=6

Muss ich da noch etwas beachten oder einstellen?

LG
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 17 November 2021, 18:06:02
ZitatMuss ich da noch etwas beachten oder einstellen?
Ich habe das mal getestet. Die Formatierung von Durchstreichung und Kursivtext sowie Einrückung funktioniert einwandfrei wie in der Hilfe angegeben. Auch die Liste klappt wenn man im Modul es so angibt:


set ... asyncSendItem
* Element1 \n
* Element2 \n
* Element3 \n


Ebenso die Fettschrift mit:


set ... asyncSendItem Text mit *sternchen*


Gesendet habe ich mit dem SSChatbot Device. Der Screenshot sind vom Client auf meinem PC.
Auf dem Chat Client auf meinem Handy wird die Formatierung aber nicht realisiert. Ich denke Synology muß ein Update des Mobilclients herausbringen. Denke ich schreibe mal an Syno. Kannst du natürlich auch machen.

LG,
Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: mobiljoe123 am 17 November 2021, 19:41:56
Danke für die Rückmeldung.

Gesendet habe ich mit dem SSChatbot Device.
... hab ich auch gemacht.

Auf dem Chat Client auf ... Handy wird die Formatierung aber nicht realisiert.
... und nur da hab ich geschaut. ::)

Client auf ... PC
Habs gerade getestet. Funktioniert. Da schau ich aber nie.  :)

Denke ich schreibe mal an Syno. Kannst du natürlich auch machen.
Das versuch ich mal. Werde den Support anschreiben.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 17 November 2021, 19:46:26
Habe gerade auch mal in die Online-Hilfe direkt auf dem Chat Client auf dem Handy geschaut (Einstellungen -> Hilfe). Dort wird nicht beschrieben dass man die besagten Formatierungen benutzen könnte. Das zeigt für mich in die gleiche Richtung -> Update Chat App
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 18 November 2021, 08:09:28
Der Syno Support hat mir schon auf meine Anfrage geantwortet:

Zitat
...
Leider wurden die Formatierungen in der Mobilen App noch nicht implementiert. Ich habe dies als Funktionswunsch an unsere Entwicklung weitergeleitet.
...

VG
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: ThomasMagnum am 22 November 2021, 10:15:13
Zitat von: ThomasMagnum am 17 November 2021, 09:18:36
aus meiner Sicht habe ich die richtigen Portweiterleitungen eingerichtet (8082).
Ich versuche mal das Device komplett zu löschen und neu anzulegen, evtl. liegt ja da der Hund begraben. ;-)

Leider komme ich hier nicht weiter.
Egal ob die DSM Firewall an ist oder nicht, das Chat Device funktioniert nicht.
Der angelegte FHEMWEB Port wird auch durchgeleitet.

Hat noch einer eine Idee?
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 22 November 2021, 19:01:29
Hallo Thomas,

stelle mal bitte verbose 5 im Device ein und restarte dann FHEM.
Wenn alles klappt, würde eine solche Ausgabe kommen:


2021.11.22 17:51:51.629 5: SynChatBot - Add Item to queue - Index 1:
{
  'fileUrl' => '',
  'userid' => '',
  'text' => '',
  'opmode' => 'chatUserlist',
  'retryCount' => 0,
  'method' => 'user_list',
  'channel' => '',
  'attachment' => ''
}

2021.11.22 17:51:51.630 4: SynChatBot - ####################################################
2021.11.22 17:51:51.631 4: SynChatBot - ###         start Chat operation chatUserlist   
2021.11.22 17:51:51.631 4: SynChatBot - ####################################################
2021.11.22 17:51:51.632 5: SynChatBot - HTTP-Call will be done with httptimeout: 10 s
2021.11.22 17:51:51.632 4: SynChatBot - API imported:
{
  'EXTERNAL' => {
                  'NAME' => 'SYNO.Chat.External'
                },
  'INFO' => {
              'PATH' => 'query.cgi',
              'NAME' => 'SYNO.API.Info',
              'VER' => 1
            }
}

2021.11.22 17:51:51.633 4: SynChatBot - Call-Out: https://192.168.2.10:5001/webapi/query.cgi?api=SYNO.API.Info&method=Query&version=1&query=SYNO.Chat.External,SYNO.API.Info
2021.11.22 17:51:51.634 3: SynChatBot - SSChatBot "SynChatBot" for URL /outchat registered
2021.11.22 17:52:01.465 5: SynChatBot - JSON returned: {
  'data' => {
              'SYNO.Chat.External' => {
                                        'maxVersion' => 2,
                                        'path' => 'entry.cgi',
                                        'minVersion' => 1,
                                        'requestFormat' => 'JSON'
                                      },
              'SYNO.API.Info' => {
                                   'path' => 'query.cgi',
                                   'minVersion' => 1,
                                   'maxVersion' => 1
                                 }
            },
  'success' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )
}

2021.11.22 17:52:01.483 4: SynChatBot - API completed:
{
  'EXTERNAL' => {
                  'VER' => 2,
                  'MOD' => 'no',
                  'NAME' => 'SYNO.Chat.External',
                  'PATH' => 'entry.cgi'
                },
  'INFO' => {
              'NAME' => 'SYNO.API.Info',
              'MOD' => 'no',
              'VER' => 1,
              'PATH' => 'query.cgi'
            },
  'PARSET' => 1
}

2021.11.22 17:52:01.484 4: SynChatBot - botToken read from RAM: ********
2021.11.22 17:52:01.485 4: SynChatBot - start SendQueue entry index "1" (chatUserlist) for operation.
2021.11.22 17:52:01.485 5: SynChatBot - HTTP-Call will be done with httptimeout: 10 s
2021.11.22 17:52:01.485 4: SynChatBot - Call-Out: https://192.168.2.10:5001/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=user_list&token="<secret>"
2021.11.22 17:52:02.445 5: SynChatBot - JSON returned: {
  'data' => {
              'users' => [
                           {
                             'is_disabled' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
                             'user_props' => {
....


Bei dir wird es wahrscheinlich an einer Stelle den Fehler geben.
Bitte poste dann den komplette Logausschnitt bis zu dem Fehler.

Grüße,
Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: Wiesel am 27 November 2021, 22:12:41
Hallo,

ich weiß ich bin nicht zu 100% richtig hier aber vielleicht hat ja der ein oder andere eine Idee wie ich weiterkomme.
Mir ist aufgefallen, dass vor ein paar Tagen der Chatbot immer wieder mal auf Error ging und Nachrichten die von FHEM heraus an den Chatbot gingen gefühlt länger brauchen las vorher.


Nachdem ich in diesem Thread gelesen habe, dass die Synology manchmal etwas länger braucht um die Anfragen zu verarbeiten habe ich httptimeout auf 45 sekunden gestellt habe. Damit konnte ich erstmal das "Error" Problem beheben.
Jetzt ist dauern die anfragen an Synology immer noch ca 30-45 sekunden. Vorher war das innerhalb 5 sekunden da.
Ich habe, außer FHEM upzudaten, nichts an meiner Netzwerk/Synology Konfiguration geändert.

Antwort von Synology dauert ebenfalls solange wenn ich den request über einen Internet Browser sende, sowie über "wget ..." direkt von der Synology ausführe.

Nach einem Neustart funktioniert es "schneller" und irgendwann dann wieder die 30-40 Sekunden.

Habt ihr für mich ein paar Tipps wie ich dem Übeltäter auf die spur kommen kann ?
Kann ich auf der Synology den Request irgendwie verfolgen ?

Ich habe erfolglos probiert:
Home Assisant und Ubuntu Server auf der Synology als VM auf Synology deaktiviert.
Alle Portfreigaben zur Synology deaktiviert
FHEM neustart


Hier mal der Log nach dem absenden einer Nachricht:
Log nach absenden der Nachricht "test":
2021.11.26 13:39:47 5: OctoPrintChatBot - Add Item to queue - Index 7:
$VAR1 = {
          'attachment' => '',
          'channel' => '',
          'opmode' => 'sendItem',
          'userid' => 4,
          'retryCount' => 0,
          'method' => 'chatbot',
          'text' => 'test',
          'fileUrl' => ''
        };

2021.11.26 13:39:47 4: OctoPrintChatBot - ####################################################
2021.11.26 13:39:47 4: OctoPrintChatBot - ###         start Chat operation sendItem   
2021.11.26 13:39:47 4: OctoPrintChatBot - ####################################################
2021.11.26 13:39:47 4: OctoPrintChatBot - API hashvalues already set - ignore get apisites
2021.11.26 13:39:47 4: OctoPrintChatBot - botToken read from RAM: ********
2021.11.26 13:39:47 4: OctoPrintChatBot - start SendQueue entry index "7" (sendItem) for operation.
2021.11.26 13:39:47 5: OctoPrintChatBot - HTTP-Call will be done with httptimeout: 45 s
2021.11.26 13:39:47 4: OctoPrintChatBot - Call-Out: http://192.168.186.51:5000/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="<secret>"&payload={"text": "test","user_ids": [4]}
2021.11.26 13:40:17 5: OctoPrintChatBot - JSON returned: $VAR1 = {
          'success' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
          'data' => {
                      'succ' => {
                                  'user_id_post_map' => {
                                                          '4' => '42949673192'
                                                        }
                                },
                      'fail' => undef
                    }
        };

2021.11.26 13:40:17 4: OctoPrintChatBot - Opmode "sendItem" finished successfully, Sendqueue index "7" deleted.


Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 27 November 2021, 22:50:57
Hallo Wiesel,

du schreibst:
ZitatJetzt ist dauern die anfragen an Synology immer noch ca 30-45 sekunden. Vorher war das innerhalb 5 sekunden da.
Ich glaube aber du meinst nicht die Anfragen sondern dass die Antwort der Synology solange dauert, was dann zu einem timeout führte.

Ich kann dir momentan nicht sagen wie man auf der Syno die Performance von Webrequests verfolgen kann, evtl. könnte der Syno Support helfen.
Aber wie reagiert deine Syno generell ? Also z.B. wenn du dich beim DSM anmeldest. Dannn könntest du mal die CPU-Belastung prüfen (top auf Linux) oder das Swap-Verhalten. Das sieht man im DSM im Ressourcenmonitor.
Ich tippe jetzt ganz stark darauf dass dein Synology Hauptspeicher nach einer gewissen Zeit aufgebraucht ist und deshalb der Speicher auf die Platte ausgelagert wird was zum Swap führt. Das dauert sehr lange und führt dann zu solchem Verhalten.

Hier noch zum Vergleich ein Protokoll bei mir:


2021.11.27 22:52:23.161 5: SynChatBot - Add Item to queue - Index 85:
{
  'attachment' => '',
  'opmode' => 'sendItem',
  'userid' => 4,
  'method' => 'chatbot',
  'text' => 'test',
  'fileUrl' => '',
  'channel' => '',
  'retryCount' => 0
}

2021.11.27 22:52:23.162 4: SynChatBot - ####################################################
2021.11.27 22:52:23.162 4: SynChatBot - ###         start Chat operation sendItem   
2021.11.27 22:52:23.162 4: SynChatBot - ####################################################
2021.11.27 22:52:23.163 4: SynChatBot - API hashvalues already set - ignore get apisites
2021.11.27 22:52:23.163 4: SynChatBot - botToken read from RAM: ********
2021.11.27 22:52:23.164 4: SynChatBot - start SendQueue entry index "85" (sendItem) for operation.
2021.11.27 22:52:23.164 5: SynChatBot - HTTP-Call will be done with httptimeout: 20 s
2021.11.27 22:52:23.165 4: SynChatBot - Call-Out: http://192.168.2.10:5000/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="<secret>"&payload={"text": "test","user_ids": [4]}
2021.11.27 22:52:23.351 5: SynChatBot - JSON returned: {
  'success' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
  'data' => {
              'succ' => {
                          'user_id_post_map' => {
                                                  '4' => '68719495441'
                                                }
                        },
              'fail' => undef
            }
}

2021.11.27 22:52:23.359 4: SynChatBot - Opmode "sendItem" finished successfully, Sendqueue index "85" deleted.


Die Antwort kommt innerhalb von ca. 200 Millisekunden.

LG,
Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: Wiesel am 28 November 2021, 22:03:42
Hallo Heiko,
Ja die Antwort meine ich natürlich.
Das DS-Verhalten würde ich sonst als normal bezeichnen. Drive, Mail Plus, Surveillance, VM's, Chat (app/browser) laufen ohne Verzögerung.
Eine Antwort zu dem httprequest wie http://192.168.186.51:5000/webapi/entry.cgi?api=SYNO.API.Info&version=1&method=query&query=SYNO.API.Auth,SYNO.Chat.External bekomme ich innerhalb von Millisekunden
sobald ich jedoch spezifische requests an einen Bot sende (mit token) dauern die Anworten wieder lange.

Also CPU last und RAM Auslastung sollten kein Problem sein. Siehe Anhang für Details.
Hab noch ~3GB freier RAM und swap ist so gut wie nicht benutzt. Wenn ich ein httprequest stelle ist auch kein Ausschlag im Swap Ressourcen-Monitor.
Die lange Antwortzeit ist jetzt auch direkt nach einem Neustart der Synology ... hmmmpf.

Habe mal ein Support Ticket bei Synology erstellt.

Werde als nächstes mal Synology Chat neu installieren.

Update folgt.

Update 1:
Neuinstallation des Chat Servers hat nicht zum Erfolg geführt.

LG
Tobias
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 28 November 2021, 22:18:17
Hallo Tobias,

ja dann war meine Vermutung eher der Holzweg.
Du könntest noch testen wie das Zeitverhalten ist wenn du mit der Chatapplikation eine Message an FHEM sendest.
Vorher stellst du verbose 5 bei dem Web-Device ein welches mit installiert wurde (default ist WEBSSChatBot).

Du siehst dann so etwas im Log und kannst die Zeiten abschätzen die von der Syno zu FHEM benötigt werden wenn eine Message gesendet wird.


2021.11.28 22:15:06.632 4: Connection accepted from WEBSSChatBot_192.168.2.10_40398
2021.11.28 22:15:06.634 5: POST /sschat/outchat?botname=SynChatBot&fwcsrf=5de4ebe4 HTTP/1.1
Host: fhem.myds.me:8086
User-Agent: SynologyChatBot/1.0
Accept: */*
Content-Length: 161
Content-Type: application/x-www-form-urlencoded
2021.11.28 22:15:06.634 4: WEBSSChatBot_192.168.2.10_40398 POST /sschat/outchat?botname=SynChatBot&fwcsrf=5de4ebe4&token=0kXmkpfoz76zJZ7TtGa1ga2HCDFPI63kD4Prrmr1mNr6MoXGcO1huAGTOjk4Iiqv&user_id=4&username=Heiko&post_id=68719495474&thread_id=0&timestamp=1638134106515&text=Test; BUFLEN:0
2021.11.28 22:15:06.643 4: WEBSSChatBot: /sschat/outchat?botname=SynChatBot&fwcsrf=5de4ebe4&token=0kXmkpfoz76zJZ7TtGa1ga2HCDFPI63kD4Prrmr1mNr6MoXGcO1huAGTOjk4Iiqv&user_id=4&username=Heiko&post_id=68719495474&thread_id=0&timestamp=1638134106515&text=Test / RL:7 / text/plain; charset=utf-8 /  / Cache-Control: no-cache, no-store, must-revalidate


Grüße,
Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: Wiesel am 28 November 2021, 22:29:33
Hallo Heiko,

Zeitverhalten ist ähnlich wie bei dir.

2021.11.28 22:25:31.952 4: Connection accepted from WEBSSChatBot_192.168.186.51_38492
2021.11.28 22:25:31.953 5: POST /sschat/outchat?botname=SSChatBot&fwcsrf=5ff8469c HTTP/1.1
Host: 192.168.186.59:8082
User-Agent: SynologyChatBot/1.0
Accept: */*
Content-Length: 163
Content-Type: application/x-www-form-urlencoded
2021.11.28 22:25:31.954 4: WEBSSChatBot_192.168.186.51_38492 POST /sschat/outchat?botname=SSChatBot&fwcsrf=5ff8469c&token=sqavgL6ZeUKdl4Tga47PXOCwtaNmsDiw3U9oqCq1tOdyFwY3n2A1R3P9rTCVgenX&user_id=4&username=TobiasE&post_id=21474836490&thread_id=0×tamp=1638134731888&text=test; BUFLEN:0
2021.11.28 22:25:32.011 4: WEBSSChatBot: /sschat/outchat?botname=SSChatBot&fwcsrf=5ff8469c&token=sqavgL6ZeUKdl4Tga47PXOCwtaNmsDiw3U9oqCq1tOdyFwY3n2A1R3P9rTCVgenX&user_id=4&username=TobiasE&post_id=21474836490&thread_id=0×tamp=1638134731888&text=test / RL:7 / text/plain; charset=utf-8 /  / Cache-Control: no-cache, no-store, must-revalidate


Grüße
Tobias
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 28 November 2021, 22:37:08
Scheint tatsächlich ein Zeitproblem bei der Tokenprüfung zu sein. Mal schauen was der Support sagt.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: Wiesel am 29 November 2021, 14:45:18
Hallo,

Support Ticket noch offen, aber war in der Zwischenzeit nicht untätig.

Ich habe mir ein Script geschrieben welches mir die Antwortzeit jede Minute aufzeichnet und dann die Synology gestartet.
Glücklicherweise bin ich um /var/log/ Verzeichnis der Synology auf eine Synochat.log gestoßen.

Die Lange Antwortzeiten treten ab ca 12:16 auf


.
.
.
2021-11-29T12:15:55+01:00 DS918Plus synoscgi_SYNO.Chat.User.Avatar_1_get[10267]: user_avatar_get.hpp:52 (pid:10267, euid:119664) [err: (2)No such file or directory]avatar oripath empty with type!=S, throw exception, user nickname=, type=S
2021-11-29T12:15:55+01:00 DS918Plus synoscgi_SYNO.Chat.User.Avatar_1_get[10267]: Fatal Error: (user_avatar_get.hpp:53)[100] icon orig path is empty
2021-11-29T12:16:02+01:00 DS918Plus synoscgi_SYNO.Chat.External_2_chatbot[10269]: chatapi.cpp:48 (pid:10269, euid:119664) [err: (2)No such file or directory](192.168.186.72)(u:0)(a:0)webapi param={"api":"SYNO.Chat.External","method":"chatbot","payload":{"text":"curl time test","user_ids":[4]},"token":"UMDRznEC0yJ2V4NR7S8QiEd0IsaSWkzAVSdYhTpyLe0CGC5xY1AOdxqaxqV7t7eQ","version":2}
2021-11-29T12:17:32+01:00 DS918Plus synoscgi_SYNO.Chat.External_2_chatbot[10269]: autoblock_file_open.c:66 Open and lock [/tmp/login_fail.list] failed exceeds try count for 13(Permission denied)
2021-11-29T12:17:32+01:00 DS918Plus synoscgi_SYNO.Chat.External_2_chatbot[10269]: chatapi.cpp:48 (pid:10269, euid:119664) [err: (13)Permission denied](192.168.186.72)(u:0)(a:0)webapi param={"api":"SYNO.Chat.External","method":"chatbot","payload":{"text":"curl time test","user_ids":[4]},"token":"UMDRznEC0yJ2V4NR7S8QiEd0IsaSWkzAVSdYhTpyLe0CGC5xY1AOdxqaxqV7t7eQ","version":2}
2021-11-29T12:18:01+01:00 DS918Plus synoscgi_SYNO.Chat.User.Avatar_1_get[10932]: user_avatar_get.hpp:52 (pid:10932, euid:119664) [err: (2)No such file or directory]avatar oripath empty with type!=S, throw exception, user nickname=, type=S
.
.
.



der Übeltäter scheint das "permission denied" zu sein. In der Datei "/tmp/login_fail.list" ist meine öffentliche IP (+ kryptische zeichen) enthalten.

root@DS918Plus:~# cat /tmp/login_fail.list
fפa95.89.xxx.64co|wqפa95.89.xxx.6▒V▒▒05▒▒

Leere ich die Datei werden die Anfragen wieder innerhalb von Millisekunden beantwortet.

Automatische Blockierung + DoS-Schutz in den Synology Einstellungen ist aktiviert. Meine öffentliche IP ist aber nicht in der blockierten Listen enthalten. Erreiche auch alle meine Dienste über meine externe IP.

Weiß jemand eine Idee welcher Dienst getriggert wird damit etwas in die  "/tmp/login_fail.list" geschrieben wird ?

Synology Chat ist als App auf zwei Android-Smartphone installiert über die ich mittels dyndns zugreife.
Ansonsten alles nur im lokalen Netzwerk.



EDIT:

Auch wenn die Antwortzeiten im Millisekunden Bereich liegen bekomme ich trotzdem eine ERR: 2 Fehlermeldung im Log.
Kann jemand mal das bei sich überprüfen ?

2021-11-29T15:10:01+01:00 DS918Plus synoscgi_SYNO.Chat.External_2_chatbot[17423]: chatapi.cpp:48 (pid:17423, euid:119664) [err: (2)No such file or directory](192.168.186.72)(u:0)(a:0)webapi param={"api":"SYNO.Chat.External","method":"chatbot","payload":{"text":"curl time test","user_ids":[4]},"token":"UMDRznEC0yJ2V4NR7S8QiEd0IsaSWkzAVSdYhTpyLe0CGC5xY1AOdxqaxqV7t7eQ","version":2}


Grüße
Tobias

Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 29 November 2021, 17:16:25
Hallo Tobias,

in meiner  /var/log/synochat.log stehen nur solche Meldungen:


2021-11-29T07:59:30+01:00 SDS1 synoscgi_SYNO.Chat.User.Avatar_1_get[10586]: user_avatar_get.hpp:52 (pid:10586, euid:119664) [err: (2)No such file or directory]avatar oripath empty with type!=S, throw exception, user nickname=, type=S
2021-11-29T07:59:30+01:00 SDS1 synoscgi_SYNO.Chat.User.Avatar_1_get[10586]: Fatal Error: (user_avatar_get.hpp:53)[100] icon orig path is empty
2021-11-29T10:30:02+01:00 SDS1 synoscgi_SYNO.Chat.Post_4_batch_delete[10600]: post_batch_delete.hpp:43 (pid:10600, euid:119664) [err: (0)]clean post by batch delete config
2021-11-29T10:30:02+01:00 SDS1 synoscgi_SYNO.Chat.Post_4_batch_delete[10600]: post.cpp:491 (pid:10600, euid:119664) [err: (0)]clean post by batch delete config, iDayCount=5
2021-11-29T10:30:02+01:00 SDS1 synoscgi_SYNO.Chat.Post_4_batch_delete[10600]: post.cpp:509 (pid:10600, euid:119664) [err: (0)]clean post before timestamp = 1637746202
2021-11-29T10:30:02+01:00 SDS1 synoscgi_SYNO.Chat.Post_4_batch_delete[10600]: post.cpp:690 (pid:10600, euid:119664) [err: (0)]fork, run unlink files, forkFlag=187
2021-11-29T10:30:02+01:00 SDS1 synoscgi_SYNO.Chat.Post_4_batch_delete[10600]: post.cpp:704 (pid:10600, euid:119664) [err: (0)]watpid pid=4079
2021-11-29T10:30:02+01:00 SDS1 synoscgi_SYNO.Chat.Post_4_batch_delete[4079]: background_job_model.cpp:58 (pid:4079, euid:119664) [err: (0)]create job run ok, job_id=706, pid=4079, job_type=DELETE_POST_TYPE_BATCH, cmd_name=SYNO.Chat.Post_
2021-11-29T10:30:02+01:00 SDS1 synoscgi_SYNO.Chat.Post_4_batch_delete[4079]: background_job_model.cpp:130 (pid:4079, euid:119664) [err: (0)]delete job run ok, job_id list=[ 706 ]
2021-11-29T10:30:02+01:00 SDS1 synoscgi_SYNO.Chat.Post_4_batch_delete[4079]: post.cpp:695 (pid:4079, euid:119664) [err: (0)]process exit


Der einzige Fehler den ich sehe bezieht sich auf SYNO.Chat.User.Avatar.
Eine /tmp/login_fail.list gibt es bei mir überhaupt nicht.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 29 November 2021, 17:33:54
Meine Synology ist übrigens nicht im Internet zu erreichen, sondern auschließlich via VPN.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: Wiesel am 29 November 2021, 21:02:00
Also ich habe jetzt mal den Mail Server deinstalliert. War eh nur mehr Spielerei als produktiv genutzt   ;D
Portfreigabe für HTTPS vorerst deaktiviert. Einzig VPN Ports bleiben jetzt offen.

Bis jetzt läuft alles einwandfrei. Ich gehe davon aus, dass es mit dem Mail Server zusammengehangen hat.

Vielen Dank für die Unterstützung auch wenn es weniger um das FHEM Modul ging.

Grüße
Tobias
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: Wiesel am 30 November 2021, 23:20:22
Hallo,

Der Vollständigkeit halber hier die Antwort vom Synology Support

Dear customer,

Thank you for contacting Synology Technical Support.


Your concern is known to our development department and a solution is already being worked on. This will be fixed in the following DSM7.1 version.
When exactly the version will be released, I can not tell you from our side, because we have no insight into the development processes.


You can follow news and changes in our newsletter.
This you can subscribe to via your Synology account.








Sincerely yours




Jason Hartmann
Technical Support Engineer


Grüße Tobias
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 01 Dezember 2021, 17:00:17
Danke für die Info Tobias !
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: rohlande am 11 Dezember 2021, 18:20:55
Hallo Experten,

kann mir jemand sagen, warum ich immer um 1 Timestamp versetzt die vorletzte Snapshot Aufnahme erhalte, sobald ich diese via notify anfrage?
Im DOIF habe ich mir mit einem "wait" Timer geholfen. Das funktioniert auch aber im Notify welches aus dem Beispiel der Doku stammt, will es nicht laufen.

Vg Denny
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 12 Dezember 2021, 08:01:37
Hallo Denny,

du müsstest uns ein paar mehr Angaben zu dem verwendeten notify (nicht DOIF) und dem verwendeten Kameramodul machen.
Gibt da ja verschiedene Möglichkeiten.
D.h. ein List der Devices wäre schon gut. Zur Zeit sind die Infos einfach zu wenig.

Grüße,
Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: rohlande am 12 Dezember 2021, 11:26:42
Hallo Heiko
Sorry... ja woher sollst Du sonst die Infos bekommen.
Mein Fehler...
hier die LIST der beiden CAM welche auch laufen aber bei Verwendung von
immer um 1 Zeitstempel versetzt das vorletzte Bild vom Chat Bot das Bild versendet wird.

1. CAM
Internals:
   CAMID      1
   CAMNAME    Lutec-Light
   COMPATIBILITY 8.2.10
   CREDENTIALS Set
   DEF        Lutec-Light 192.168.178.44 5001 https
   FUUID      61b1c6ee-f33f-cb6b-1ce5-1f6e33fe626095a5
   FVERSION   49_SSCam.pm:v9.10.2-s25176/2021-11-03
   MODEL      User Define -
   NAME       SSCam.Lutec_Light
   NR         442
   OPMODE     getStmUrlPath
   PROTOCOL   https
   SERVERADDR 192.168.178.44
   SERVERPORT 5001
   STATE      on
   TYPE       SSCam
   HELPER:
     ACTIVE     off
     CREDENTIALS ]K[{XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX>
     HLSSTREAM  inactive
     LOGINRETRIES 0
     OLDPTZHOME
     OLDVALPOLL 210
     OLDVALPOLLNOLOGGING 1
     PACKAGE    FHEM::SSCam
     RECTIME_DEF 15
     SID        edlbe7TFTG9i8m4hBYttQ0nOEEB2wTIpTRRWl0tfC9Mg6yXGm-enXs8NgVwfVOTYQyGAtkm_juMG3akVlNoTPc
     SNAPLIMIT  1
     STMKEYMJPEGHTTP http://192.168.178.44:5000/webapi/entry.cgi?api=SYNO.SurveillanceStation.Stream.VideoStreaming&version=1&method=Stream&format=mjpeg&cameraId=1&StmKey="5872ef0cc490710c10a6daed67e6dd69"
     STMKEYMXPEGHTTP http://192.168.178.44:5000/webapi/entry.cgi?api=SYNO.SurveillanceStation.Stream.VideoStreaming&version=1&method=Stream&format=mxpeg&cameraId=1&StmKey="5872ef0cc490710c10a6daed67e6dd69"
     STMKEYUNICST rtsp://syno:5872ef0cc490710c10a6daed67e6dd69@192.168.178.44:554/Sms=1.unicast
     STMKEYUNICSTOVERHTTP rtsp://192.168.178.44:5000/webman/3rdparty/SurveillanceStation/cgi/rtsp.cgi?Sms=1.unicast&DsId=0&StmKey=5872ef0cc490710c10a6daed67e6dd69
     TOTALCNT   160
     VERSION    9.10.2
     VERSION_API 1.2.0
     VERSION_ErrCodes 1.3.4
     VERSION_SMUtils 1.23.1
     API:
       PARSET     1
       AUDIOSTM:
         MOD        no
         NAME       SYNO.SurveillanceStation.AudioStream
         PATH       SurveillanceStation/audioStreaming.cgi
         VER        2
       AUTH:
         MOD        yes
         NAME       SYNO.API.Auth
         PATH       auth.cgi
         VER        6
       CAM:
         MOD        no
         NAME       SYNO.SurveillanceStation.Camera
         PATH       entry.cgi
         VER        9
       CAMEVENT:
         MOD        no
         NAME       SYNO.SurveillanceStation.Camera.Event
         PATH       entry.cgi
         VER        1
       EVENT:
         MOD        no
         NAME       SYNO.SurveillanceStation.Event
         PATH       entry.cgi
         VER        5
       EXTEVT:
         MOD        no
         NAME       SYNO.SurveillanceStation.ExternalEvent
         PATH       entry.cgi
         VER        1
       EXTREC:
         MOD        no
         NAME       SYNO.SurveillanceStation.ExternalRecording
         PATH       entry.cgi
         VER        3
       HMODE:
         MOD        no
         NAME       SYNO.SurveillanceStation.HomeMode
         PATH       entry.cgi
         VER        1
       INFO:
         MOD        no
         NAME       SYNO.API.Info
         PATH       query.cgi
         VER        1
       LOG:
         MOD        no
         NAME       SYNO.SurveillanceStation.Log
         PATH       entry.cgi
         VER        3
       PRESET:
         MOD        no
         NAME       SYNO.SurveillanceStation.PTZ.Preset
         PATH       entry.cgi
         VER        1
       PTZ:
         MOD        no
         NAME       SYNO.SurveillanceStation.PTZ
         PATH       entry.cgi
         VER        6
       REC:
         MOD        no
         NAME       SYNO.SurveillanceStation.Recording
         PATH       entry.cgi
         VER        6
       SNAPSHOT:
         MOD        no
         NAME       SYNO.SurveillanceStation.SnapShot
         PATH       entry.cgi
         VER        1
       STM:
         MOD        no
         NAME       SYNO.SurveillanceStation.Stream
         PATH       entry.cgi
         VER        1
       SVSINFO:
         MOD        no
         NAME       SYNO.SurveillanceStation.Info
         PATH       entry.cgi
         VER        8
       VIDEOSTM:
         MOD        no
         NAME       SYNO.SurveillanceStation.VideoStreaming
         PATH       entry.cgi
         VER        1
       VIDEOSTMS:
         MOD        no
         NAME       SYNO.SurveillanceStation.VideoStream
         PATH       SurveillanceStation/videoStreaming.cgi
         VER        1
     SVSVERSION:
       BUILD      6468
       MAJOR      8
       MINOR      2
       SMALL      10
   READINGS:
     2021-12-12 11:17:55   Availability    enabled
     2021-12-12 11:17:51   CamEventNum     177
     2021-12-12 11:17:55   CamExposureControl Unknown
     2021-12-12 11:17:55   CamExposureMode Unknown
     2021-12-12 11:17:55   CamIP           192.168.178.59
     2021-12-12 11:17:51   CamLastRec      20211212AM/Lutec-Light-20211212-111405-1639304045.mp4
     2021-12-12 11:17:51   CamLastRecId    16819
     2021-12-12 11:17:51   CamLastRecTime  12.12.2021 / 11:14:05 - 11:17:45
     2021-12-12 11:17:55   CamLiveFps     
     2021-12-12 11:17:55   CamLiveMode     Liveview from DS
     2021-12-12 11:17:55   CamLiveQuality 
     2021-12-12 11:17:55   CamLiveResolution 1280x720
     2021-12-12 11:17:55   CamLiveStreamNo 1
     2021-12-12 11:17:55   CamModel       
     2021-12-12 11:17:53   CamMotDetSc     SVS, sensitivity: 50, threshold: 10
     2021-12-12 11:17:55   CamNTPServer   
     2021-12-12 11:17:55   CamPort         554
     2021-12-12 11:17:55   CamPreRecTime   5
     2021-12-12 11:17:55   CamRecShare     surveillance
     2021-12-12 11:17:55   CamRecVolume    /volume1
     2021-12-12 11:17:50   CamStreamFormat HLS
     2021-12-12 11:17:55   CamVendor       User Define
     2021-12-12 11:17:55   CamVideoFlip    true
     2021-12-12 11:17:55   CamVideoMirror  true
     2021-12-12 11:17:55   CamVideoRotate  false
     2021-12-12 11:17:55   CamVideoType    H.264
     2021-12-12 11:17:55   CamblPresetSpeed false
     2021-12-12 11:17:49   CapAudioOut     false
     2021-12-12 11:17:49   CapChangeSpeed  false
     2021-12-12 11:17:55   CapPIR          false
     2021-12-12 11:17:49   CapPTZAbs       false
     2021-12-12 11:17:49   CapPTZAutoFocus false
     2021-12-12 11:17:49   CapPTZDirections 0
     2021-12-12 11:17:49   CapPTZFocus     false
     2021-12-12 11:17:49   CapPTZHome      false
     2021-12-12 11:17:49   CapPTZIris      false
     2021-12-12 11:17:49   CapPTZObjTracking false
     2021-12-12 11:17:49   CapPTZPan       false
     2021-12-12 11:17:49   CapPTZPresetNumber 0
     2021-12-12 11:17:49   CapPTZTilt      false
     2021-12-12 11:17:49   CapPTZZoom      false
     2021-12-12 11:17:55   DeviceType      Camera
     2021-12-12 11:17:57   Error           none
     2021-12-12 11:17:57   Errorcode       none
     2021-12-12 11:17:50   LastSnapFilename Lutec-Light-20211211-1756160254.jpg
     2021-12-12 11:17:50   LastSnapId      393
     2021-12-12 11:17:50   LastSnapTime    11.12.2021 / 17:56:15
     2021-12-12 11:17:55   LastUpdateTime  12.12.2021 / 11:17:55
     2021-12-12 11:17:48   PollState       Active - next time: 11:21:18
     2021-12-12 11:17:55   Record          Start
     2021-12-12 11:17:50   SVSlicenseNumber 2
     2021-12-12 11:17:50   SVSuserPriv     Manager
     2021-12-12 11:17:50   SVSversion      8.2.10-6468
     2021-12-12 11:17:57   StmKey          "5872ef0cc490710c10a6daed67e6dd69"
     2021-12-12 11:17:55   UsedSpaceMB     9.880
     2021-12-12 11:17:55   VideoFolder     http://192.168.178.44:8081/surveillance
     2021-12-12 11:17:50   compstate       true
     2021-12-12 11:17:55   state           on
Attributes:
   DbLogExclude .*
   alias      SSCam.Lutec_Light
   cacheType  internal
   devStateIcon .*isable.*:set_off .*nap:li_wht_on
   htmlattr   width=500 height=325
   httptimeout 20
   icon       it_camera
   pollcaminfoall 210
   pollnologging 1
   room       System
   session    SurveillanceStation
   snapGallerySize Full
   videofolderMap http://192.168.178.44:8081/surveillance
   webCmd     on:off:snap:enable:disable:runView:stopView


2. CAM
Internals:
   CAMID      2
   CAMNAME    Reolink520A
   COMPATIBILITY 8.2.10
   CREDENTIALS Set
   DEF        Reolink520A 192.168.178.44 5001 https
   FUUID      61b1c6ee-f33f-cb6b-09ee-6d35f43709042198
   FVERSION   49_SSCam.pm:v9.10.2-s25176/2021-11-03
   MODEL      Reolink - RLC-520
   NAME       SSCam.Reolink520A
   NR         443
   OPMODE     getStmUrlPath
   PROTOCOL   https
   SERVERADDR 192.168.178.44
   SERVERPORT 5001
   STATE      on
   TYPE       SSCam
   HELPER:
     ACTIVE     off
     CREDENTIALS ]K[{XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX>
     HLSSTREAM  inactive
     LOGINRETRIES 0
     OLDPTZHOME
     OLDVALPOLL 210
     OLDVALPOLLNOLOGGING 1
     PACKAGE    FHEM::SSCam
     RECTIME_DEF 15
     SID        5HfxOpsdM6oQEnmjcTNOg78RtNcT6xlIBHtUwA7N9eERakCPIBFd2AQzdqTSOO_C7wC1nsueNRoZ862trBbXhc
     SNAPLIMIT  1
     STMKEYMJPEGHTTP http://192.168.178.44:5000/webapi/entry.cgi?api=SYNO.SurveillanceStation.Stream.VideoStreaming&version=1&method=Stream&format=mjpeg&cameraId=2&StmKey="7605b644d2935ca75fbd91c856c3d416"
     STMKEYMXPEGHTTP http://192.168.178.44:5000/webapi/entry.cgi?api=SYNO.SurveillanceStation.Stream.VideoStreaming&version=1&method=Stream&format=mxpeg&cameraId=2&StmKey="7605b644d2935ca75fbd91c856c3d416"
     STMKEYUNICST rtsp://syno:7605b644d2935ca75fbd91c856c3d416@192.168.178.44:554/Sms=2.unicast
     STMKEYUNICSTOVERHTTP rtsp://192.168.178.44:5000/webman/3rdparty/SurveillanceStation/cgi/rtsp.cgi?Sms=2.unicast&DsId=0&StmKey=7605b644d2935ca75fbd91c856c3d416
     TOTALCNT   237
     VERSION    9.10.2
     VERSION_API 1.2.0
     VERSION_ErrCodes 1.3.4
     VERSION_SMUtils 1.23.1
     API:
       PARSET     1
       AUDIOSTM:
         MOD        no
         NAME       SYNO.SurveillanceStation.AudioStream
         PATH       SurveillanceStation/audioStreaming.cgi
         VER        2
       AUTH:
         MOD        yes
         NAME       SYNO.API.Auth
         PATH       auth.cgi
         VER        6
       CAM:
         MOD        no
         NAME       SYNO.SurveillanceStation.Camera
         PATH       entry.cgi
         VER        9
       CAMEVENT:
         MOD        no
         NAME       SYNO.SurveillanceStation.Camera.Event
         PATH       entry.cgi
         VER        1
       EVENT:
         MOD        no
         NAME       SYNO.SurveillanceStation.Event
         PATH       entry.cgi
         VER        5
       EXTEVT:
         MOD        no
         NAME       SYNO.SurveillanceStation.ExternalEvent
         PATH       entry.cgi
         VER        1
       EXTREC:
         MOD        no
         NAME       SYNO.SurveillanceStation.ExternalRecording
         PATH       entry.cgi
         VER        3
       HMODE:
         MOD        no
         NAME       SYNO.SurveillanceStation.HomeMode
         PATH       entry.cgi
         VER        1
       INFO:
         MOD        no
         NAME       SYNO.API.Info
         PATH       query.cgi
         VER        1
       LOG:
         MOD        no
         NAME       SYNO.SurveillanceStation.Log
         PATH       entry.cgi
         VER        3
       PRESET:
         MOD        no
         NAME       SYNO.SurveillanceStation.PTZ.Preset
         PATH       entry.cgi
         VER        1
       PTZ:
         MOD        no
         NAME       SYNO.SurveillanceStation.PTZ
         PATH       entry.cgi
         VER        6
       REC:
         MOD        no
         NAME       SYNO.SurveillanceStation.Recording
         PATH       entry.cgi
         VER        6
       SNAPSHOT:
         MOD        no
         NAME       SYNO.SurveillanceStation.SnapShot
         PATH       entry.cgi
         VER        1
       STM:
         MOD        no
         NAME       SYNO.SurveillanceStation.Stream
         PATH       entry.cgi
         VER        1
       SVSINFO:
         MOD        no
         NAME       SYNO.SurveillanceStation.Info
         PATH       entry.cgi
         VER        8
       VIDEOSTM:
         MOD        no
         NAME       SYNO.SurveillanceStation.VideoStreaming
         PATH       entry.cgi
         VER        1
       VIDEOSTMS:
         MOD        no
         NAME       SYNO.SurveillanceStation.VideoStream
         PATH       SurveillanceStation/videoStreaming.cgi
         VER        1
     SVSVERSION:
       BUILD      6468
       MAJOR      8
       MINOR      2
       SMALL      10
   READINGS:
     2021-12-12 11:21:27   Availability    enabled
     2021-12-12 11:21:27   CamAudioType    AAC
     2021-12-12 11:21:23   CamEventNum     249
     2021-12-12 11:21:27   CamExposureControl Auto
     2021-12-12 11:21:27   CamExposureMode Auto
     2021-12-12 11:21:27   CamIP           192.168.178.41
     2021-12-12 11:21:23   CamLastRec      20211212AM/Reolink520A-20211212-111941-1639304381.mp4
     2021-12-12 11:21:23   CamLastRecId    16822
     2021-12-12 11:21:23   CamLastRecTime  12.12.2021 / 11:19:41 - 11:21:21
     2021-12-12 11:21:27   CamLiveFps      10
     2021-12-12 11:21:27   CamLiveMode     Liveview from DS
     2021-12-12 11:21:27   CamLiveQuality 
     2021-12-12 11:21:27   CamLiveResolution 640x480
     2021-12-12 11:21:27   CamLiveStreamNo 2
     2021-12-12 11:21:27   CamModel        RLC-520
     2021-12-12 11:21:25   CamMotDetSc     SVS, sensitivity: 50, threshold: 10
     2021-12-12 11:21:27   CamNTPServer    Surveillance Station
     2021-12-12 11:21:27   CamPort         80
     2021-12-12 11:21:27   CamPreRecTime   5
     2021-12-12 11:21:27   CamRecShare     surveillance
     2021-12-12 11:21:27   CamRecVolume    /volume1
     2021-12-12 11:21:20   CamStreamFormat HLS
     2021-12-12 11:21:27   CamVendor       Reolink
     2021-12-12 11:21:27   CamVideoFlip    false
     2021-12-12 11:21:27   CamVideoMirror  false
     2021-12-12 11:21:27   CamVideoRotate  false
     2021-12-12 11:21:27   CamVideoType    H.264
     2021-12-12 11:21:27   CamblPresetSpeed false
     2021-12-12 11:21:19   CapAudioOut     false
     2021-12-12 11:21:19   CapChangeSpeed  false
     2021-12-12 11:21:27   CapPIR          false
     2021-12-12 11:21:19   CapPTZAbs       false
     2021-12-12 11:21:19   CapPTZAutoFocus false
     2021-12-12 11:21:19   CapPTZDirections 0
     2021-12-12 11:21:19   CapPTZFocus     false
     2021-12-12 11:21:19   CapPTZHome      false
     2021-12-12 11:21:19   CapPTZIris      false
     2021-12-12 11:21:19   CapPTZObjTracking false
     2021-12-12 11:21:19   CapPTZPan       false
     2021-12-12 11:21:19   CapPTZPresetNumber 0
     2021-12-12 11:21:19   CapPTZTilt      false
     2021-12-12 11:21:19   CapPTZZoom      false
     2021-12-12 11:21:27   DeviceType      Camera
     2021-12-12 11:21:29   Error           none
     2021-12-12 11:21:29   Errorcode       none
     2021-12-12 11:21:21   LastSnapFilename Reolink520A-20211211-1808447076.jpg
     2021-12-12 11:21:21   LastSnapId      403
     2021-12-12 11:21:21   LastSnapTime    11.12.2021 / 18:08:44
     2021-12-12 11:21:27   LastUpdateTime  12.12.2021 / 11:21:27
     2021-12-12 11:21:18   PollState       Active - next time: 11:24:48
     2021-12-12 11:21:27   Record          Start
     2021-12-12 11:21:20   SVSlicenseNumber 2
     2021-12-12 11:21:20   SVSuserPriv     Manager
     2021-12-12 11:21:20   SVSversion      8.2.10-6468
     2021-12-12 11:21:29   StmKey          "7605b644d2935ca75fbd91c856c3d416"
     2021-12-12 11:21:27   UsedSpaceMB     9.969
     2021-12-12 11:21:27   VideoFolder     http://192.168.178.44:8081/surveillance
     2021-12-12 11:21:20   compstate       true
     2021-12-11 17:59:37   sendChatState   Missing at least one required parameter or attribute: subject, chatbot
     2021-12-12 11:21:27   state           on
Attributes:
   DbLogExclude .*
   alias      SSCam.Reolink520A
   cacheType  internal
   devStateIcon .*isable.*:set_off .*nap:li_wht_on
   htmlattr   width=500 height=325
   httptimeout 20
   icon       it_camera
   pollcaminfoall 210
   pollnologging 1
   room       System
   session    SurveillanceStation
   snapGallerySize Full
   verbose    5
   videofolderMap http://192.168.178.44:8081/surveillance
   webCmd     on:off:snap:enable:disable:runView:stopView


und hier noch das NOTIFY:
Internals:
   DEF        SSCam.Reolink520A:snap set DS918_ChatBot asyncSendItem text="Ein Schnappschuss vom Hof wurde ausgelöst" fileUrl="[SSCam.Reolink520A:VideoFolder]/@Snapshot/[SSCam.Reolink520A:LastSnapFilename]"
   FUUID      61b32ca1-f33f-cb6b-e1f1-6d677b69017e3b92
   FVERSION   91_notify.pm:0.252310/2021-11-15
   NAME       get_Reolink520A_pic_ntfy
   NOTIFYDEV  SSCam.Reolink520A
   NR         447
   NTFY_ORDER 50-get_Reolink520A_pic_ntfy
   REGEXP     SSCam.Reolink520A:snap
   STATE      2021-12-11 18:08:44
   TYPE       notify
   READINGS:
     2021-12-12 11:10:36   state           active
     2021-12-11 18:08:44   triggeredByDev  SSCam.Reolink520A
     2021-12-11 18:08:44   triggeredByEvent snap
Attributes:
   DbLogExclude .*
   alias      get_Reolink520A_pic_ntfy
   event-on-change-reading .*
   room       Logik


Und hier in DOIF behelfe ich mir mit dem "wait" Attribut, was ich auch nicht unbedingt schön finde aber es funktioniert.
Internals:
   DEF        ([MS_Klingel_Tor:relay_0] eq "on")
(set get_Reolink520A_pic_ntfy inactive)
(set get_Lutec_Light_pic_ntfy inactive)
(set SSCam.Reolink520A snap)
(set SSCam.Lutec_Light snap)
(set DS918_ChatBot asyncSendItem  text= *"Es hat an der Tür im Obergeschoss geklingelt."*)
(set DS918_ChatBot asyncSendItem text="Hier ist das Bild der Hofeinfahrt!" fileUrl="[SSCam.Reolink520A:VideoFolder]/@Snapshot/[SSCam.Reolink520A:LastSnapFilename]")
(set DS918_ChatBot asyncSendItem text="Wer steht vor der Tür?" fileUrl="[SSCam.Lutec_Light:VideoFolder]/@Snapshot/[SSCam.Lutec_Light:LastSnapFilename]")

DOELSEIF ([MS_Klingel_Tor:relay_1] eq "on")
(set get_Reolink520A_pic_ntfy inactive)
(set get_Lutec_Light_pic_ntfy inactive)
(set SSCam.Reolink520A snap) (set SSCam.Lutec_Light snap)
(set DS918_ChatBot asyncSendItem  text= *"Es hat an der Tür im Erdgeschoss geklingelt."*)
(set DS918_ChatBot asyncSendItem text="Hier ist das Bild der Hofeinfahrt!" fileUrl="[SSCam.Reolink520A:VideoFolder]/@Snapshot/[SSCam.Reolink520A:LastSnapFilename]")
(set DS918_ChatBot asyncSendItem text="Wer steht vor der Tür?" fileUrl="[SSCam.Lutec_Light:VideoFolder]/@Snapshot/[SSCam.Lutec_Light:LastSnapFilename]")

DOELSE
(set get_Reolink520A_pic_ntfy active)
(set get_Lutec_Light_pic_ntfy active)

   FUUID      61b1bf95-f33f-cb6b-8283-54c61fa9e1307f29
   FVERSION   98_DOIF.pm:0.252950/2021-12-04
   MODEL      FHEM
   NAME       Klingel_Tor
   NOTIFYDEV  global,MS_Klingel_Tor
   NR         440
   NTFY_ORDER 50-Klingel_Tor
   STATE      cmd_3
   TYPE       DOIF
   VERSION    25295 2021-12-04 18:13:39
   READINGS:
     2021-12-12 11:32:49   Device          MS_Klingel_Tor
     2021-12-11 17:56:25   cmd             3.2
     2021-12-11 17:56:25   cmd_event       MS_Klingel_Tor
     2021-12-11 17:56:25   cmd_nr          3
     2021-12-11 17:56:25   cmd_seqnr       2
     2021-12-12 11:32:49   e_MS_Klingel_Tor_relay_0 off
     2021-12-12 11:32:49   e_MS_Klingel_Tor_relay_1 off
     2021-12-11 17:54:09   mode            enabled
     2021-12-11 17:56:25   state           cmd_3
   Regex:
     accu:
     collect:
     cond:
       MS_Klingel_Tor:
         0:
           relay_0    ^MS_Klingel_Tor$:^relay_0:
         1:
           relay_1    ^MS_Klingel_Tor$:^relay_1:
   attr:
     wait:
       0:
         0
         0
         0
         0
         0
         1.5
         0.5
       1:
         0
         0
         0
         0
         0
         1.5
         0.5
     waitdel:
   condition:
     0          ::ReadingValDoIf($hash,'MS_Klingel_Tor','relay_0') eq "on"
     1          ::ReadingValDoIf($hash,'MS_Klingel_Tor','relay_1') eq "on"
   do:
     0:
       0          set get_Reolink520A_pic_ntfy inactive
       1          set get_Lutec_Light_pic_ntfy inactive
       2          set SSCam.Reolink520A snap
       3          set SSCam.Lutec_Light snap
       4          set DS918_ChatBot asyncSendItem  text= *"Es hat an der Tür im Obergeschoss geklingelt."*
       5          set DS918_ChatBot asyncSendItem text="Hier ist das Bild der Hofeinfahrt!" fileUrl="[SSCam.Reolink520A:VideoFolder]/@Snapshot/[SSCam.Reolink520A:LastSnapFilename]"
       6          set DS918_ChatBot asyncSendItem text="Wer steht vor der Tür?" fileUrl="[SSCam.Lutec_Light:VideoFolder]/@Snapshot/[SSCam.Lutec_Light:LastSnapFilename]"
     1:
       0          set get_Reolink520A_pic_ntfy inactive
       1          set get_Lutec_Light_pic_ntfy inactive
       2          set SSCam.Reolink520A snap
       3          set SSCam.Lutec_Light snap
       4          set DS918_ChatBot asyncSendItem  text= *"Es hat an der Tür im Erdgeschoss geklingelt."*
       5          set DS918_ChatBot asyncSendItem text="Hier ist das Bild der Hofeinfahrt!" fileUrl="[SSCam.Reolink520A:VideoFolder]/@Snapshot/[SSCam.Reolink520A:LastSnapFilename]"
       6          set DS918_ChatBot asyncSendItem text="Wer steht vor der Tür?" fileUrl="[SSCam.Lutec_Light:VideoFolder]/@Snapshot/[SSCam.Lutec_Light:LastSnapFilename]"
     2:
       0          set get_Reolink520A_pic_ntfy active
       1          set get_Lutec_Light_pic_ntfy active
   helper:
     DEVFILTER  ^global$|^MS_Klingel_Tor$
     NOTIFYDEV  global|MS_Klingel_Tor
     event      relay_1: off
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   MS_Klingel_Tor
     timerevent relay_1: off
     triggerDev MS_Klingel_Tor
     timerevents:
       relay_1: off
     timereventsState:
       relay_1: off
     triggerEvents:
       relay_1: off
     triggerEventsState:
       relay_1: off
   internals:
   perlblock:
   readings:
     all         MS_Klingel_Tor:relay_0 MS_Klingel_Tor:relay_1
   trigger:
   uiState:
   uiTable:
Attributes:
   DbLogExclude .*
   alias      Klingel_Tor
   event-on-change-reading .*
   room       Logik
   wait       0,0,0,0,0,1.5,0.5:0,0,0,0,0,1.5,0.5


Gruss Denny
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 12 Dezember 2021, 12:44:05
Hi Denny,

das Problem ist das Triggern auf "snap" im notify.
Hintergrund: technisch bedingt wird erst der Schnappschuss ausgeführt und danach der dazu gehörende Filename etc. ermittelt.

Du musst also auf "LastSnapFilename" triggern, dann klappt das. Es ist auch so im SSCam Wiki (https://wiki.fhem.de/wiki/SSCAM_-_Steuerung_von_Kameras_in_Synology_Surveillance_Station#Alternativer_Versand_-_Triggern_des_Versands_mit_notify) beschrieben. Das wait im DOIF funktioniert deswegen weil du dem Modul Zeit gibst, ist aber technisch nicht korrekt und u.U. unzuverlässig je nach Länge des wait.

Mittlerweile kannst du den Versand mit SSChatBot auch direkt im SSCam-Modul hinterlegen und brauchst kein notify mehr.Siehe hier (https://wiki.fhem.de/wiki/SSCAM_-_Steuerung_von_Kameras_in_Synology_Surveillance_Station#Aktivierung_des_integrierten_Schnappschu.C3.9F-_und_Aufnahmen-Versand_mit_Synology_Chat).

Grüße,Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: rohlande am 12 Dezember 2021, 16:06:58
Zitat von: DS_Starter am 12 Dezember 2021, 12:44:05
Hi Denny,

das Problem ist das Triggern auf "snap" im notify.
Hintergrund: technisch bedingt wird erst der Schnappschuss ausgeführt und danach der dazu gehörende Filename etc. ermittelt.

Du musst also auf "LastSnapFilename" triggern, dann klappt das. Es ist auch so im SSCam Wiki (https://wiki.fhem.de/wiki/SSCAM_-_Steuerung_von_Kameras_in_Synology_Surveillance_Station#Alternativer_Versand_-_Triggern_des_Versands_mit_notify) beschrieben. Das wait im DOIF funktioniert deswegen weil du dem Modul Zeit gibst, ist aber technisch nicht korrekt und u.U. unzuverlässig je nach Länge des wait.

Da hast Du natürlich Recht. Das funktioniert auch. Vielen Dank für den Hinweis.. Sind sehr viele readings vorhanden.

Mittlerweile kannst du den Versand mit SSChatBot auch direkt im SSCam-Modul hinterlegen und brauchst kein notify mehr.Siehe hier (https://wiki.fhem.de/wiki/SSCAM_-_Steuerung_von_Kameras_in_Synology_Surveillance_Station#Aktivierung_des_integrierten_Schnappschu.C3.9F-_und_Aufnahmen-Versand_mit_Synology_Chat).

Funktioniert leider nicht bei mir. Keine Ahnung warum. Verbose liefert nicht wirklich Fehler bezüglich ChatBot... Aber auch keine Infos zum Versand. Oder sollte ich das eher am Kamera Device mit verbose suchen? Denn dort ist sind ja auch die Attribute dazu gesetzt.



Grüße,Heiko

Gruss Denny
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 12 Dezember 2021, 16:19:59
Zitat
Funktioniert leider nicht bei mir. Keine Ahnung warum. Verbose liefert nicht wirklich Fehler bezüglich ChatBot... Aber auch keine Infos zum Versand. Oder sollte ich das eher am Kamera Device mit verbose suchen? Denn dort ist sind ja auch die Attribute dazu gesetzt.

Ja, du setzt das verbose im Kameradevice hoch und schaust/postest die relevanten Logauszüge.
Wie ist denn das Attr snapChatTxt bei dir gesetzt ?

Zum Vergleich bei mir:

chatbot => SynChatBot, peers => , subject => Bewegungsalarm bei $CAM. Es wurde $CTIME der Schnappschuss $FILE erstellt
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: rohlande am 12 Dezember 2021, 16:41:14
Hallo Heiko

hier der Auszug aus dem List des Kamera Device:
Attributes:
   DbLogExclude .*
   alias      SSCam.Lutec_Light
   devStateIcon .*isable.*:set_off .*nap:li_wht_on
   htmlattr   width=500 height=325
   httptimeout 20
   icon       it_camera
   pollcaminfoall 210
   pollnologging 1
   recChatTxt DS918_ChatBot, denny , Bewegungsalarm bei $CAM. Es wurde $CTIME die Aufnahme $FILE * erstellt. Jetzt ist es $TIME.
   room       System
   session    SurveillanceStation
   snapGallerySize Full
   verbose    0
   videofolderMap http://192.168.178.44:8081/surveillance
   webCmd     on:off:snap:enable:disable:runView:stopView


vg denny
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: rohlande am 12 Dezember 2021, 16:52:35
Hallo Heiko

Funktioniert. Das Attribut war falsch aufgebaut....gesetzt.
Sorry für die Mühe....

Und beim "recChatTxt" werden dann die Video Snaps getriggert?

vg denny
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 12 Dezember 2021, 16:55:49
Zitat
Und beim "recChatTxt" werden dann die Video Snaps getriggert?
Naja fast richtig ... wenn Videos aufgenommen wurden, wird mit diesem Attr der Versand der Filmchen über SSChatBot veranlasst.
D.h. wenn das Video fertig aufgenommen ist.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: rohlande am 12 Dezember 2021, 17:12:19
Okay... Thema Video... Das will irgendwie nicht...
Wenn ich soetwas via Chat Bot direkt absetzte
asyncSendItem text="Ein aktuelles Video vom Hof!" fileUrl="http://192.168.178.44:8081/surveillance/SSCam.Lutec_Light/20211212PM/Lutec-Light-20211212-170410-1639325050.mp4
kommt eine Fehlermeldung:
2021-12-12 17:10:29.462 SSChatBot DS918_ChatBot Error: payload has wrong format
2021-12-12 17:10:29.462 SSChatBot DS918_ChatBot Errorcode: 120
2021-12-12 17:10:29.462 SSChatBot DS918_ChatBot Error
2021-12-12 17:10:29.491 SSChatBot DS918_ChatBot Error: payload has wrong format
2021-12-12 17:10:29.491 SSChatBot DS918_ChatBot Errorcode: 120
2021-12-12 17:10:29.491 SSChatBot DS918_ChatBot Error


vg denny
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 12 Dezember 2021, 17:16:29
Hast du in asyncSendItem ganz hinten ein " vergessen oder nur nicht hier reinkopiert ?
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: rohlande am 12 Dezember 2021, 17:25:33
Ups Sorry übersehen...
Aber trotzdem mag er nicht.
Jetzt schmeist er so ein Quatsch:
2021-12-12 17:22:07.568 SSChatBot DS918_ChatBot Error
2021-12-12 17:22:07.632 SSChatBot DS918_ChatBot Error: exceed max file size
2021-12-12 17:22:07.632 SSChatBot DS918_ChatBot Errorcode: 409
2021-12-12 17:22:07.632 SSChatBot DS918_ChatBot Error

Kennst Du eine Begrenzung der FileSize für den Versand?
Wäre mir neu...

vg denny
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 12 Dezember 2021, 17:31:39
Zitat
Kennst Du eine Begrenzung der FileSize für den Versand?
Wäre mir neu...
Ja, die ist 32MB. Siehe die Syno KB:

https://kb.synology.com/de-de/DSM/help/Chat/chat_integration?version=6
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: rohlande am 12 Dezember 2021, 17:46:00
ja habe es bemerkt. Habe jetzt die Aufnahme Dauer auf 1 min reduziert. Jetzt sind die Files kleiner 32 Mb.
Jetzt funktioniert es auch...

vg denny
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 12 Dezember 2021, 17:47:30
Wow, was hast du denn für eine Auflösung wenn du für  < 32MB auf 1 Minute gehen musst ?
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: rohlande am 12 Dezember 2021, 18:02:56
nichts besonders... die 1 liefert bei 5 min Dauerschleife etwa 24MB große Files... die andere bei der gleichen Einstellung ca 73 MB.... wobei die 1 mit einer Auflösung von 2304x1296 im H264 Codec läuft. Die zweite, schlechtere Auflösung kann ich nicht einstellen am Codec und auch die Auflösung nicht.... Das ist so eine Licht Kamera von Steinel, welche eine besondere Firmware bekommen hat, damit der rtsp Stream abrufbar ist.... Die hat scheinbar eine schlechtere Kompressionsrate....

vg denny
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: rohlande am 15 Dezember 2021, 12:51:58
Hallo Experten

Ich habe ein Problem bei der Erstellung eines DOIF in Kombination mit der Eingabe eines Values im "ChatBot".
Folgender Aufbau:

Dazu habe ich 2 Probleme:

1. im 2 DOIF welches den dummy befüllt, wird ein 3 CMD nicht ausgeführt. Daher habe ich mir ein weiteres DOIF gebastelt, welches die daten aus dem dummy liest und einen [set...] absetzten soll.....
2. bis zu dem Pkt. das die beiden DOIF zusammen mit dem dummy laufen ist es scheinbar kein Problem.... Aber sobald das 3. DOIF den [set .....] an das jeweilige Device absetzten soll, kommt eine Fehlermeldung....DOIF SEND_SET_cmd error: set "set SW_Bettlicht Dimmer  13.5": Please define "set first
Ich hatte bereits dazu den Fehler eines fehlenden Leerzeichen vor dem Wert in Verdacht.... Aber daran scheint es nicht zu liegen. Denn wenn ich den gleiche Aufruf aus dem EVENT Monitor über nehme und in der Konsole aufrufe funktioniert es.

hier die 3 LIST zu den DOIF und des dummy:
List vom MAIN DOIF:
DOELSEIF

([DS918_ChatBot:recText] eq "hz" or [DS918_ChatBot:recActionsValue] eq "hz" or [DS918_ChatBot:recActionsValue] eq "BTN_BCK_HZ")

(set DS918_ChatBot asyncSendItem  text= *"Status 🌡️ Temp. Heizung!"*)

(set DS918_ChatBot asyncSendItem  text=
*Thermostate Heizung:*\n
TH_Büro: [TH_Buero:temperature] | [TH_Buero:desired-temp] | [MS_Umwelt_Buero:temperature] | [MS_Umwelt_Buero:lastseen] | [MS_Umwelt_Buero:batteryPercent]\n
TH_XXXXXX: [TH_XXXXX:temperature] | [TH_XXXXX:desired-temp] | [MS_Umwelt_Kind1:temperature] | [MS_Umwelt_Kind1:lastseen] | [MS_Umwelt_Kind1:batteryPercent]\n
)

(set DS918_ChatBot asyncSendItem  text=
*"Wie gehts weiter...?"*
attachments="[{"callback_id": "set_temp_th", "text": "Wunschtemperatur einstellen...!",
   "actions":[{"type": "button", "name": "BTN_HM",  "value": "hm",  "text": "🤖️Hauptmenü", "style": "orange"},
              {"type": "button", "name": "BTN_FCT_DEV", "value": "fct_th_dev", "text": "🔜️Temp. einstellen", "style": "orange"}]}]")

DOELSEIF

([DS918_ChatBot:recText] eq "fct_th_dev" or [DS918_ChatBot:recActionsValue] eq "fct_th_dev" )

(set DS918_ChatBot asyncSendItem  text= *"Thermostat auswählen"*)
(setreading Set_tmp_value cmd_value_flg false)
(setreading Set_tmp_value cmd_device_flg false)

(set DS918_ChatBot asyncSendItem  text=
*"Wähle ein Thermostat!"*
attachments="[{"callback_id": "set_device", "text": "Thermostat auswählen",
   "actions":[{"type": "button", "name": "BTN_TH_Buero", "value": "set SW_Bettlicht Dimmer", "text": "🌡️ Büro", "style": "green"},
              {"type": "button", "name": "BTN_TH_XXXXX", "value": "set TH_ XXXXX desired-temp", "text": "🌡️ XXXXXx", "style": "green"},
      {"type": "button", "name": "zurück_th", "value": "BTN_BCK_HZ",   "text": "🔙️", "style": "red"}]}]")

DOELSEIF

([DS918_ChatBot:callback_id] eq "set_device")

(set DS918_ChatBot asyncSendItem  text= *"Gib einen 🌡️ Wert im Bereich zwischen [0 - 28.5] °C!"*)

     
DOELSE


   FUUID      61b39b2b-f33f-cb6b-bff8-0aa731cb165ad382
   MODEL      FHEM
   NAME       DS_FHEM_Bot_doif
   NOTIFYDEV  global,DS918_ChatBot
   NR         101
   NTFY_ORDER 50-DS_FHEM_Bot_doif
   STATE      cmd_13
   TYPE       DOIF
   VERSION    25295 2021-12-04 18:13:39
   READINGS:
     2021-12-15 12:30:44   Device          DS918_ChatBot
     2021-12-15 12:30:44   cmd             13
     2021-12-15 12:30:44   cmd_event       DS918_ChatBot
     2021-12-15 12:30:44   cmd_nr          13
     2021-12-15 12:30:44   e_DS918_ChatBot_recActionsValue
     2021-12-15 12:30:44   e_DS918_ChatBot_recText 13.5
     2021-12-15 12:25:16   mode            enabled
     2021-12-15 12:30:44   state           cmd_13
   Regex:
     accu:
     collect:
     cond:
       DS918_ChatBot:
         0:
           recActionsValue ^DS918_ChatBot$:^recActionsValue:
           recText    ^DS918_ChatBot$:^recText:
         1:
           recActionsValue ^DS918_ChatBot$:^recActionsValue:
           recText    ^DS918_ChatBot$:^recText:
         10:
           recActionsValue ^DS918_ChatBot$:^recActionsValue:
           recText    ^DS918_ChatBot$:^recText:
         11:
           callback_id ^DS918_ChatBot$:^callback_id:
         2:
           recActionsValue ^DS918_ChatBot$:^recActionsValue:
           recText    ^DS918_ChatBot$:^recText:
         3:
           recActionsValue ^DS918_ChatBot$:^recActionsValue:
           recText    ^DS918_ChatBot$:^recText:
         4:
           recActionsValue ^DS918_ChatBot$:^recActionsValue:
           recText    ^DS918_ChatBot$:^recText:
         5:
           recActionsValue ^DS918_ChatBot$:^recActionsValue:
           recText    ^DS918_ChatBot$:^recText:
         6:
           recActionsValue ^DS918_ChatBot$:^recActionsValue:
           recText    ^DS918_ChatBot$:^recText:
         7:
           recActionsValue ^DS918_ChatBot$:^recActionsValue:
           recText    ^DS918_ChatBot$:^recText:
         8:
           recActionsValue ^DS918_ChatBot$:^recActionsValue:
           recText    ^DS918_ChatBot$:^recText:
         9:
           recActionsValue ^DS918_ChatBot$:^recActionsValue:
           recText    ^DS918_ChatBot$:^recText:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::ReadingValDoIf($hash,'DS918_ChatBot','recText') eq "start" or ::ReadingValDoIf($hash,'DS918_ChatBot','recText') eq "hm" or ::ReadingValDoIf($hash,'DS918_ChatBot','recActionsValue') eq "hm"
     1          ::ReadingValDoIf($hash,'DS918_ChatBot','recText') eq "hilfe" or ::ReadingValDoIf($hash,'DS918_ChatBot','recActionsValue') eq "hilfe"
     10         ::ReadingValDoIf($hash,'DS918_ChatBot','recText') eq "fct_th_dev" or ::ReadingValDoIf($hash,'DS918_ChatBot','recActionsValue') eq "fct_th_dev"
     11         ::ReadingValDoIf($hash,'DS918_ChatBot','callback_id') eq "set_device"
     2          ::ReadingValDoIf($hash,'DS918_ChatBot','recText') eq "status" or ::ReadingValDoIf($hash,'DS918_ChatBot','recActionsValue') eq "status" or ::ReadingValDoIf($hash,'DS918_ChatBot','recActionsValue') eq "BTN_BCK_SYS"
     3          ::ReadingValDoIf($hash,'DS918_ChatBot','recText') eq "fct_sys" or ::ReadingValDoIf($hash,'DS918_ChatBot','recActionsValue') eq "fct_sys"
     4          ::ReadingValDoIf($hash,'DS918_ChatBot','recText') eq "energy" or ::ReadingValDoIf($hash,'DS918_ChatBot','recActionsValue') eq "energy"
     5          ::ReadingValDoIf($hash,'DS918_ChatBot','recText') eq "schalter" or ::ReadingValDoIf($hash,'DS918_ChatBot','recActionsValue') eq "schalter" or ::ReadingValDoIf($hash,'DS918_ChatBot','recActionsValue') eq "BTN_BCK_SW"
     6          ::ReadingValDoIf($hash,'DS918_ChatBot','recText') eq "fct_sw" or ::ReadingValDoIf($hash,'DS918_ChatBot','recActionsValue') eq "fct_sw"
     7          ::ReadingValDoIf($hash,'DS918_ChatBot','recText') eq "cam" or ::ReadingValDoIf($hash,'DS918_ChatBot','recActionsValue') eq "cam" or ::ReadingValDoIf($hash,'DS918_ChatBot','recActionsValue') eq "BTN_BCK_CAM"
     8          ::ReadingValDoIf($hash,'DS918_ChatBot','recText') eq "fct_cam" or ::ReadingValDoIf($hash,'DS918_ChatBot','recActionsValue') eq "fct_cam"
     9          ::ReadingValDoIf($hash,'DS918_ChatBot','recText') eq "hz" or ::ReadingValDoIf($hash,'DS918_ChatBot','recActionsValue') eq "hz" or ::ReadingValDoIf($hash,'DS918_ChatBot','recActionsValue') eq "BTN_BCK_HZ"
   do:
     0:
       0          set DS918_ChatBot asyncSendItem  text= "Hallo ich bin Dein 🤖️ChatBot! Was kann ich für Dich tun? \n '❓️hilfe' --> Übersicht an Möglichkeiten \n '↪️start' --> Neustart Dialog \n"    attachments="[{"callback_id": "hauptmenue", "text": "Du bfindest Dich im Hauptmenü!",    "actions":[{"type": "button", "name": "BTN_STATUS", "value": "status", "text": "💻️Status Systeme", "style": "blue"},                       {"type": "button", "name": "BTN_ENERGY", "value": "energy", "text": "⚡️Energie Daten", "style": "blue"},                       {"type": "button", "name": "BTN_SWITCH", "value": "schalter", "text": "💡️Schalter", "style": "blue"},                       {"type": "button", "name": "BTN_HZ", "value": "hz", "text": "🌡️Heizung", "style": "blue"},                       {"type": "button", "name": "BTN_CAM", "value": "cam", "text": "🔐️Sicherheit", "style": "red"},                       {"type": "button", "name": "BTN_HLP",    "value": "hilfe",    "text": "❓️Hilfemenü", "style": "orange"}]}]"
     1:
       0          set DS918_ChatBot asyncSendItem  text= "Hilfreiche Informationen zum ChatBot: \n '[/slash] Befehle direkt absetzen wenn Du das Gerät kennst z.B /set SW_Licht_Halle on'\n 'Texte welche der Bot nicht kennt werden nicht beantwortet!' \n 'Texte oder Worte welcher der BOT direkt versteht z.B staus, energy, hm, hilfe, cam, hz, ....' \n 'Button verwenden im jeweiligen Menü.... Du kannst direkt etwas schalten oder abfragen' \n 'Menü auswählen welche Dir angezeigt werden... vordefinierte Button und Aktion' \n" attachments="[{"callback_id": "hilfemenü", "text": "Du befindest Dich im Hilfemenü!",    "actions":[{"type": "button", "name": "BTN_HM", "value": "hm", "text": "🤖️Hauptmenü", "style": "orange"}]}]"
     10:
       0          set DS918_ChatBot asyncSendItem  text= *"Thermostat auswählen"*
       1          setreading Set_tmp_value cmd_value_flg false
       2          setreading Set_tmp_value cmd_device_flg false
       3          set DS918_ChatBot asyncSendItem  text= *"Wähle ein Thermostat!"* attachments="[{"callback_id": "set_device", "text": "Thermostat auswählen",    "actions":[{"type": "button", "name": "BTN_TH_Buero", "value": "set SW_Bettlicht Dimmer", "text": "🌡️ Büro", "style": "green"},               {"type": "button", "name": "BTN_TH_XXXXX", "value": "set TH_XXXXX desired-temp", "text": "🌡️ XXXXX", "style": "green"},       {"type": "button", "name": "zurück_th", "value": "BTN_BCK_HZ",   "text": "🔙️", "style": "red"}]}]"
     11:
       0          set DS918_ChatBot asyncSendItem  text= *"Gib einen 🌡️ Wert im Bereich zwischen [0 - 28.5] °C!"*
     12:
       0         
     2:
       0          set DS918_ChatBot asyncSendItem  text= *"Hier ist die System | Status Übersicht:"*
       1          set DS918_ChatBot asyncSendItem  text= FHEM Docker: [DockerImageInfo:container.hostname]/[DockerImageInfo:image.version]\n FHEM Installer: [fhemInstaller:installedPerl]/[fhemInstaller:state]/[fhemInstaller:perlVersion]\n FHEM NPM: [fhemServerNpm:outdated]/[fhemServerNpm:state]/[fhemServerNpm:nodejsVersion]\n FHEM 💻️: [fhemServerApt:toUpgrade]/[fhemServerApt:state]/[fhemServerApt:updatesAvailable]\n deCONZ 📶️: [deCONZ:state]/[deCONZ:lastError]\n openWB MQTT: [openWB_MQTT_Client:state]\n *DS918 MQTT Broker:* [DS918Broker:state]/[DS918Broker:connection]\n FHEM MQTT Broker: [FHEM_MQTT_SERVER:state]/[FHEM_MQTT_SERVER:nrclients]\n FritzBox 6591 Base: [fritzbox_FB6591:state]/[fritzbox_FB6591:box_ipExtern]/[fritzbox_FB6591:box_rateDown]/[fritzbox_FB6591:box_rateUp]\n *Lametric ⏲️:* [Lametric_Time:state]/[Lametric_Time:wifiIp]\n FirtzBox ☎️: [FB6591_Call:state]\n
       2          set DS918_ChatBot asyncSendItem  text= *"Wie gehts weiter...?"* attachments="[{"callback_id": "status", "text": "💻️System | weitere Funktionen ?",    "actions":[{"type": "button", "name": "BTN_HM",  "value": "hm",  "text": "🤖️Hauptmenü", "style": "orange"},               {"type": "button", "name": "BTN_FCT_SYS", "value": "fct_sys", "text": "🔜️weitere Funktionen", "style": "orange"}]}]"
     3:
       0          set DS918_ChatBot asyncSendItem  text= *"💻️System Funktionen zur Auswahl."*
       1          set DS918_ChatBot asyncSendItem  text= *"Wähle ein Funktion aus!"* attachments="[{"callback_id": "system_funktion", "text": "System Funktionen ?",    "actions":[{"type": "button", "name": "fb6591_update",  "value": "/set fritzbox_FB6591 update",  "text": "Update FB6591", "style": "green"},       {"type": "button", "name": "fb6591_wlan",  "value": "/set fritzbox_FB6591 wlan2.4 on",  "text": "WLAN_2.4 GHz *ON*", "style": "green"},       {"type": "button", "name": "fb6591_wlan",  "value": "/set fritzbox_FB6591 wlan5 on",  "text": "WLAN_5 GHz *ON*", "style": "green"},       {"type": "button", "name": "fb6591_wlan",  "value": "/set fritzbox_FB6591 wlan2.4 off",  "text": "WLAN_2.4 GHz *OFF*", "style": "blue"},       {"type": "button", "name": "fb6591_wlan",  "value": "/set fritzbox_FB6591 wlan5 off",  "text": "WLAN_5 GHz *OFF*", "style": "blue"},       {"type": "button", "name": "fb6591_wlan",  "value": "/set fritzbox_FB6591 guestWlan on",  "text": "Gäste Wlan *ON*", "style": "green"},       {"type": "button", "name": "fb6591_wlan",  "value": "/set fritzbox_FB6591 guestWlan off", "text": "Gäste Wlan *off*", "style": "blue"},       {"type": "button", "name": "cul_0",   "value": "/set CUL_0 reopen",   "text": "CUL_0 reset", "style": "green"},       {"type": "button", "name": "cul_0_pair",   "value": "/set CUL_0 hmPairForSec 180",   "text": "CUL_0 HM Pairing", "style": "green"},       {"type": "button", "name": "mqtt_ds918",   "value": "/set DS918Broker connect",   "text": "MQTT Broker Init", "style": "green"},       {"type": "button", "name": "fb_dect",   "value": "/set FB6490 refreshstate",   "text": "FB DECT Init", "style": "green"},       {"type": "button", "name": "sonos",   "value": "/set Sonos RescanNetwork",   "text": "Sonos Init", "style": "green"},                       {"type": "button", "name": "deconz",   "value": "/set deCONZ active",   "text": "deCONZ Init", "style": "green"},                       {"type": "button", "name": "deconz",   "value": "/set deCONZ statusRequest",   "text": "deCONZ Status Req.", "style": "green"},               {"type": "button", "name": "callmonitor", "value": "/set FB6591_Call reopen", "text": "CallMonitor reset", "style": "green"},               {"type": "button", "name": "zurück_sys",   "value": "BTN_BCK_SYS",   "text": "🔙️", "style": "red"}]}]"
     4:
       0          set DS918_ChatBot asyncSendItem  text= *"Hier ist die Übersicht der ⚡️Energie Daten:"*
       1          set DS918_ChatBot asyncSendItem  text= PV-Nord: [MS_Liefern_Nord:PowerFlow_Site_P_PV] W/[MS_Liefern_Nord:state]/[MS_Liefern_Nord:Inverter_Cumulation_DAY_ENERGY_Value] Wh/[MS_Liefern_Nord:Inverter_Common_YEAR_ENERGY_Value] Wh\n PV-Süd: [MS_Liefern_Sued:P_pv_sued]W\n P-EG: [MS_P_EG:wirkleistung_EG]W\n P-OG: [MS_P_OG:wirkleistung_OG]W\n P-Netz: [MS_P_Netz:wirkleistung_Netz]W\n Speicher-SOC: [SOC_Speicher:soc]%\n 
       2          set DS918_ChatBot asyncSendItem  text= *"Wie gehts weiter...?"* attachments="[{"callback_id": "energy", "text": "⚡️Energie | weitere Funktionen ?",    "actions":[{"type": "button", "name": "BTN_HM",  "value": "hm",  "text": "Hauptmenü", "style": "orange"},               {"type": "button", "name": "BTN_BCK", "value": "fct_eng", "text": "🔜️weitere Funktionen",    "style": "orange"}]}]"
     5:
       0          set DS918_ChatBot asyncSendItem  text= *"Status der Schalter!"*
       1          set DS918_ChatBot asyncSendItem  text= *Rolläden EG:*\n  Ost: [MQTT2_shellyswitch25_F34508:pct] | [MQTT2_shellyswitch25_F34508:rollers_1_last_direction]\n Süd1: [MQTT2_shellyswitch25_F345EE:pct] | [MQTT2_shellyswitch25_F345EE:rollers_1_last_direction]\n Süd2: [MQTT2_shellyswitch25_F35475:pct] | [MQTT2_shellyswitch25_F35475:rollers_1_last_direction]\n Süd3: [MQTT2_shellyswitch25_F3FFBC:pct] | [MQTT2_shellyswitch25_F3FFBC:rollers_1_last_direction]\n *Lichtschalter | Schalter:*\n  💡️🧰️: [SW_Licht_Halle:result-power1] | [SW_Licht_Halle:lwt]\n 💡️🔪️: [SW_Kueche_Licht:result-power1] | [SW_Kueche_Licht:lwt]\n 🎄️: [SW_Licht_WZ:result-power] | [SW_Licht_WZ:lwt]\n 🛏️💡️: [SW_Bettlicht:state] | [SW_Bettlicht:lwt]\n 📺️ DG: [SW_Media_DG:result-power] | [SW_Media_DG:lwt]\n 
       2          set DS918_ChatBot asyncSendItem  text= *"Wie gehts weiter...?"* attachments="[{"callback_id": "status", "text": "🔳️Schalterauswahl | weitere Funktionen ?",    "actions":[{"type": "button", "name": "BTN_HM",  "value": "hm",  "text": "🤖️Hauptmenü", "style": "orange"},               {"type": "button", "name": "BTN_FCT_SW", "value": "fct_sw", "text": "🔜️weitere Funktionen", "style": "orange"}]}]"
     6:
       0          set DS918_ChatBot asyncSendItem  text= *"Schalter Auswahl."*
       1          set DS918_ChatBot asyncSendItem  text= *"Wähle ein Funktion aus!"* attachments="[{"callback_id": "system_funktion", "text": "System Funktionen ?",    "actions":[{"type": "button", "name": "RL_Hof",  "value": "/set MQTT2_shellyswitch25_F34508 close",  "text": "RL HOF zu ", "style": "blue"},       {"type": "button", "name": "RL_Hof",  "value": "/set MQTT2_shellyswitch25_F34508  open",  "text": "RL HOF auf", "style": "black"},       {"type": "button", "name": "RL_WZ1",  "value": "/set MQTT2_shellyswitch25_F345EE close",  "text": "RL WZ zu", "style": "blue"},       {"type": "button", "name": "RL_WZ1",  "value": "/set MQTT2_shellyswitch25_F345EE open",  "text": "RL WZ auf", "style": "black"},       {"type": "button", "name": "RL_WZ2",  "value": "/set MQTT2_shellyswitch25_F35475 close",  "text": "RL WZ zu", "style": "blue"},       {"type": "button", "name": "RL_WZ2",  "value": "/set MQTT2_shellyswitch25_F35475 open",  "text": "RL WZ auf", "style": "black"},       {"type": "button", "name": "RL_EZ",  "value": "/set MQTT2_shellyswitch25_F3FFBC close", "text": "RL EZ zu", "style": "blue"},       {"type": "button", "name": "RL_EZ",  "value": "/set MQTT2_shellyswitch25_F3FFBC open",  "text": "RL EZ auf", "style": "black"},       {"type": "button", "name": "SW_Halle",  "value": "/set SW_Licht_Halle on",   "text": "[Licht Halle] AN", "style": "green"},       {"type": "button", "name": "SW_Halle",  "value": "/set SW_Licht_Halle off",   "text": "[Licht Halle] AUS", "style": "orange"},       {"type": "button", "name": "SW_Küche",  "value": "/set SW_Kueche_Licht on",   "text": "[Licht Küche] AN", "style": "green"},       {"type": "button", "name": "SW_Küche",  "value": "/set SW_Kueche_Licht off",   "text": "[Licht Küche] AUS", "style": "orange"},       {"type": "button", "name": "SW_WZ",  "value": "/set SW_Licht_WZ on",   "text": "[Beleuchtung WZ] AN", "style": "green"},       {"type": "button", "name": "SW_WZ",  "value": "/set SW_Licht_WZ off",   "text": "[Beleuchtung WZ] AUS", "style": "orange"},       {"type": "button", "name": "SW_SZ",  "value": "/set SW_Bettlicht on",   "text": "[Bettlich SZ] AN", "style": "green"},       {"type": "button", "name": "SW_SZ",  "value": "/set SW_Bettlicht off",   "text": "[Bettlich SZ] AUS", "style": "orange"},               {"type": "button", "name": "zurück_SW", "value": "BTN_BCK_SW",   "text": "🔙️", "style": "red"}]}]"
     7:
       0          set DS918_ChatBot asyncSendItem  text= *"Status 📷️ Kameras!"*
       1          set DS918_ChatBot asyncSendItem  text= *Kamera Hof:*\n  Lutec: [SSCam.Lutec_Light:state] | [SSCam.Lutec_Light:Availability] | [SSCam.Lutec_Light:LastSnapTime] | [SSCam.Lutec_Light:LastUpdateTime] | [SSCam.Lutec_Light:CamLastRecTime]\n ReoLink: [SSCam.Reolink520A:state] | [SSCam.Reolink520A:Availability] | [SSCam.Reolink520A:LastSnapTime] | [SSCam.Reolink520A:LastUpdateTime] | [SSCam.Reolink520A:CamLastRecTime]\n
       2          set DS918_ChatBot asyncSendItem  text= *"Wie gehts weiter...?"* attachments="[{"callback_id": "status", "text": "📷️Kameras | weitere Funktionen ?",    "actions":[{"type": "button", "name": "BTN_HM",  "value": "hm",  "text": "🤖️Hauptmenü", "style": "orange"},               {"type": "button", "name": "BTN_FCT_CAM", "value": "fct_cam", "text": "🔜️weitere Funktionen", "style": "orange"}]}]"
     8:
       0          set DS918_ChatBot asyncSendItem  text= *"Wähle eine 📷️ Kamera aus!"*
       1          set DS918_ChatBot asyncSendItem  text= *"Wähle ein Funktion aus!"* attachments="[{"callback_id": "system_funktion", "text": "System Funktionen ?",    "actions":[{"type": "button", "name": "ReoLink",  "value": "get_stream_reolink", "text": "🎥️ Hof erstellen...", "style": "green"},       {"type": "button", "name": "Lutec",  "value": "get_stream_lutec", "text": "🎥️ Tür erstellen...", "style": "green"},       {"type": "button", "name": "ReoLink",  "value": "/set SSCam.Reolink520A snap", "text": "📸️ Bild Hof", "style": "orange"},       {"type": "button", "name": "Lutec",  "value": "/set SSCam.Lutec_Light snap", "text": "📸️ Bild Tür", "style": "orange"},       {"type": "button", "name": "zurück_cam", "value": "BTN_BCK_CAM",   "text": "🔙️", "style": "red"}]}]"
     9:
       0          set DS918_ChatBot asyncSendItem  text= *"Status 🌡️ Temp. Heizung!"*
       1          set DS918_ChatBot asyncSendItem  text= *Thermostate Heizung:*\n  TH_Büro: [TH_Buero:temperature] | [TH_Buero:desired-temp] | [MS_Umwelt_Buero:temperature] | [MS_Umwelt_Buero:lastseen] | [MS_Umwelt_Buero:batteryPercent]\n TH_XXXX: [TH_XXXXX:temperature] | [TH_XXXXX:desired-temp] | [MS_Umwelt_Kind1:temperature] | [MS_Umwelt_Kind1:lastseen] | [MS_Umwelt_Kind1:batteryPercent]\n
       2          set DS918_ChatBot asyncSendItem  text= *"Wie gehts weiter...?"* attachments="[{"callback_id": "set_temp_th", "text": "Wunschtemperatur einstellen...!",    "actions":[{"type": "button", "name": "BTN_HM",  "value": "hm",  "text": "🤖️Hauptmenü", "style": "orange"},               {"type": "button", "name": "BTN_FCT_DEV", "value": "fct_th_dev", "text": "🔜️Temp. einstellen", "style": "orange"}]}]"
   helper:
     DEVFILTER  ^global$|^DS918_ChatBot$
     NOTIFYDEV  global|DS918_ChatBot
     event      recActions: ,recCallbackId: ,recActionsValue: ,recChannelId: ,recChannelname: ,recUserId: 6,recUsername: denny,recPostId: 506806142778,recTimestamp: 2021-12-15 12:30:44,recText: 13.5,recTriggerword: ,recCommand: ,sendCommandReturn: ,Errorcode: none,Error: none,active
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   DS918_ChatBot
     timerevent recActions: ,recCallbackId: ,recActionsValue: ,recChannelId: ,recChannelname: ,recUserId: 6,recUsername: denny,recPostId: 506806142778,recTimestamp: 2021-12-15 12:30:44,recText: 13.5,recTriggerword: ,recCommand: ,sendCommandReturn: ,Errorcode: none,Error: none,active
     triggerDev DS918_ChatBot
     bm:
       DOIF_Get:
         cnt        1
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        15.12. 12:41:46
         max        1.28746032714844e-05
         tot        1.28746032714844e-05
         mAr:
           HASH(0x563ce8acc6b0)
           DS_FHEM_Bot_doif
           ?
       DOIF_Notify:
         cnt        142
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        15.12. 12:29:07
         max        0.0592741966247559
         tot        0.490550994873047
         mAr:
           HASH(0x563ce8acc6b0)
           HASH(0x563cea238508)
       DOIF_Set:
         cnt        49
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        15.12. 12:25:54
         max        0.00105190277099609
         tot        0.00375008583068848
         mAr:
           HASH(0x563ce8acc6b0)
           DS_FHEM_Bot_doif
           ?
     timerevents:
       recActions:
       recCallbackId:
       recActionsValue:
       recChannelId:
       recChannelname:
       recUserId: 6
       recUsername: denny
       recPostId: 506806142778
       recTimestamp: 2021-12-15 12:30:44
       recText: 13.5
       recTriggerword:
       recCommand:
       sendCommandReturn:
       Errorcode: none
       Error: none
       active
     timereventsState:
       recActions:
       recCallbackId:
       recActionsValue:
       recChannelId:
       recChannelname:
       recUserId: 6
       recUsername: denny
       recPostId: 506806142778
       recTimestamp: 2021-12-15 12:30:44
       recText: 13.5
       recTriggerword:
       recCommand:
       sendCommandReturn:
       Errorcode: none
       Error: none
       state: active
     triggerEvents:
       recActions:
       recCallbackId:
       recActionsValue:
       recChannelId:
       recChannelname:
       recUserId: 6
       recUsername: denny
       recPostId: 506806142778
       recTimestamp: 2021-12-15 12:30:44
       recText: 13.5
       recTriggerword:
       recCommand:
       sendCommandReturn:
       Errorcode: none
       Error: none
       active
     triggerEventsState:
       recActions:
       recCallbackId:
       recActionsValue:
       recChannelId:
       recChannelname:
       recUserId: 6
       recUsername: denny
       recPostId: 506806142778
       recTimestamp: 2021-12-15 12:30:44
       recText: 13.5
       recTriggerword:
       recCommand:
       sendCommandReturn:
       Errorcode: none
       Error: none
       state: active
   internals:
   readings:
     all         DS918_ChatBot:recText DS918_ChatBot:recActionsValue DS918_ChatBot:callback_id
   trigger:
   uiState:
   uiTable:
Attributes:
   alias      DS_FHEM_Bot_doif
   do         always
   event-on-change-reading .*
   room       Logik

List vom Dummy:
Internals:
   FUUID      61b97e77-f33f-cb6b-6320-c44a417411001805
   NAME       Set_tmp_value
   NR         486
   STATE      ???
   TYPE       dummy
   OLDREADINGS:
   READINGS:
     2021-12-15 12:30:04   cmd_device      set SW_Bettlicht Dimmer
     2021-12-15 12:30:04   cmd_device_flg  true
     2021-12-15 12:30:44   cmd_out         set SW_Bettlicht Dimmer 13.5
     2021-12-15 12:30:44   cmd_value       13.5
     2021-12-15 12:30:44   cmd_value_flg   true
   helper:
     bm:
       dummy_Define:
         cnt        1
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        15.12. 07:43:09
         max        1.78813934326172e-05
         tot        1.78813934326172e-05
         mAr:
           HASH(0x563cea7057d0)
           Set_tmp_value dummy
       dummy_Set:
         cnt        1039
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        15.12. 12:08:54
         max        0.00182294845581055
         tot        0.0307319164276123
         mAr:
           HASH(0x563cea7057d0)
           Set_tmp_value
           ?
Attributes:
   DbLogExclude .*
   alias      Set_tmp_value
   room       Logik


List vom weiteren 2 und 3 DOIF welche den Dummy befüllen und den [set....] absetzten.:
Internals:
   CFGFN     
   DEF        ([DS918_ChatBot:recCallbackId] eq "set_device")

(setreading Set_tmp_value cmd_device {(ReadingsVal("DS918_ChatBot","recActionsValue",""))})
(setreading Set_tmp_value cmd_device_flg true)

DOELSEIF

([DS918_ChatBot:recText] >= 0 and [DS918_ChatBot:recText] <= 28.5)

(setreading Set_tmp_value cmd_value {(ReadingsVal("DS918_ChatBot","recText",""))})
(setreading Set_tmp_value cmd_value_flg true)

DOELSE
   FUUID      61b9aa75-f33f-cb6b-478b-4413aeff375336e1
   MODEL      FHEM
   NAME       DEVICE_set_Temp
   NOTIFYDEV  global,DS918_ChatBot
   NR         2152
   NTFY_ORDER 50-DEVICE_set_Temp
   STATE      cmd_2
   TYPE       DOIF
   VERSION    25295 2021-12-04 18:13:39
   READINGS:
     2021-12-15 12:30:44   Device          DS918_ChatBot
     2021-12-15 12:30:44   cmd             2.2
     2021-12-15 12:30:44   cmd_event       DS918_ChatBot
     2021-12-15 12:30:44   cmd_nr          2
     2021-12-15 12:30:44   cmd_seqnr       2
     2021-12-15 12:30:44   e_DS918_ChatBot_recCallbackId
     2021-12-15 12:30:44   e_DS918_ChatBot_recText 13.5
     2021-12-15 12:07:48   mode            enabled
     2021-12-15 12:30:44   state           cmd_2
   Regex:
     accu:
     collect:
     cond:
       DS918_ChatBot:
         0:
           recCallbackId ^DS918_ChatBot$:^recCallbackId:
         1:
           recText    ^DS918_ChatBot$:^recText:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::ReadingValDoIf($hash,'DS918_ChatBot','recCallbackId') eq "set_device"
     1          ::ReadingValDoIf($hash,'DS918_ChatBot','recText') >= 0 and ::ReadingValDoIf($hash,'DS918_ChatBot','recText') <= 28.5
   do:
     0:
       0          setreading Set_tmp_value cmd_device {(ReadingsVal("DS918_ChatBot","recActionsValue",""))}
       1          setreading Set_tmp_value cmd_device_flg true
     1:
       0          setreading Set_tmp_value cmd_value {(ReadingsVal("DS918_ChatBot","recText",""))}
       1          setreading Set_tmp_value cmd_value_flg true
     2:
       0         
   helper:
     DEVFILTER  ^global$|^DS918_ChatBot$
     NOTIFYDEV  global|DS918_ChatBot
     event      recActions: ,recCallbackId: ,recActionsValue: ,recChannelId: ,recChannelname: ,recUserId: 6,recUsername: denny,recPostId: 506806142778,recTimestamp: 2021-12-15 12:30:44,recText: 13.5,recTriggerword: ,recCommand: ,sendCommandReturn: ,Errorcode: none,Error: none,active
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   DS918_ChatBot
     timerevent recActions: ,recCallbackId: ,recActionsValue: ,recChannelId: ,recChannelname: ,recUserId: 6,recUsername: denny,recPostId: 506806142778,recTimestamp: 2021-12-15 12:30:44,recText: 13.5,recTriggerword: ,recCommand: ,sendCommandReturn: ,Errorcode: none,Error: none,active
     triggerDev DS918_ChatBot
     bm:
       DOIF_Get:
         cnt        3
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        15.12. 12:22:44
         max        1.71661376953125e-05
         tot        4.00543212890625e-05
         mAr:
           HASH(0x563cea706350)
           DEVICE_set_Temp
           ?
       DOIF_Notify:
         cnt        419
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        15.12. 12:10:53
         max        0.0355799198150635
         tot        0.81984543800354
         mAr:
           HASH(0x563cea706350)
           HASH(0x563cea238508)
       DOIF_Set:
         cnt        160
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        15.12. 12:28:30
         max        0.000327825546264648
         tot        0.00797080993652344
         mAr:
           HASH(0x563cea706350)
           DEVICE_set_Temp
           ?
     timerevents:
       recActions:
       recCallbackId:
       recActionsValue:
       recChannelId:
       recChannelname:
       recUserId: 6
       recUsername: denny
       recPostId: 506806142778
       recTimestamp: 2021-12-15 12:30:44
       recText: 13.5
       recTriggerword:
       recCommand:
       sendCommandReturn:
       Errorcode: none
       Error: none
       active
     timereventsState:
       recActions:
       recCallbackId:
       recActionsValue:
       recChannelId:
       recChannelname:
       recUserId: 6
       recUsername: denny
       recPostId: 506806142778
       recTimestamp: 2021-12-15 12:30:44
       recText: 13.5
       recTriggerword:
       recCommand:
       sendCommandReturn:
       Errorcode: none
       Error: none
       state: active
     triggerEvents:
       recActions:
       recCallbackId:
       recActionsValue:
       recChannelId:
       recChannelname:
       recUserId: 6
       recUsername: denny
       recPostId: 506806142778
       recTimestamp: 2021-12-15 12:30:44
       recText: 13.5
       recTriggerword:
       recCommand:
       sendCommandReturn:
       Errorcode: none
       Error: none
       active
     triggerEventsState:
       recActions:
       recCallbackId:
       recActionsValue:
       recChannelId:
       recChannelname:
       recUserId: 6
       recUsername: denny
       recPostId: 506806142778
       recTimestamp: 2021-12-15 12:30:44
       recText: 13.5
       recTriggerword:
       recCommand:
       sendCommandReturn:
       Errorcode: none
       Error: none
       state: active
   internals:
   readings:
     all         DS918_ChatBot:recCallbackId DS918_ChatBot:recText
   trigger:
   uiState:
   uiTable:
Attributes:
   DbLogExclude .*
   alias      DEVICE_set_Temp
   event-on-change-reading .*
   room       Logik


DOIF welches den [set....] absetzt und der Fehler gewurfen wird:

Internals:
   CFGFN     
   DEF        (([Set_tmp_value:cmd_device_flg] eq "true") && ([Set_tmp_value:cmd_value_flg] eq "true"))
(set "[Set_tmp_value:cmd_device]  [Set_tmp_value:cmd_value]")
(setreading Set_tmp_value cmd_out [Set_tmp_value:cmd_device] [Set_tmp_value:cmd_value])
DOELSE
   FUUID      61b9c1f7-f33f-cb6b-eee9-756268a2af870a18
   MODEL      FHEM
   NAME       SEND_SET_cmd
   NOTIFYDEV  global,Set_tmp_value
   NR         3895
   NTFY_ORDER 50-SEND_SET_cmd
   STATE      cmd_1
   TYPE       DOIF
   VERSION    25295 2021-12-04 18:13:39
   READINGS:
     2021-12-15 12:30:44   Device          Set_tmp_value
     2021-12-15 12:30:44   cmd             1.2
     2021-12-15 12:30:44   cmd_event       Set_tmp_value
     2021-12-15 12:30:44   cmd_nr          1
     2021-12-15 12:30:44   cmd_seqnr       2
     2021-12-15 12:30:04   e_Set_tmp_value_cmd_device_flg true
     2021-12-15 12:30:44   e_Set_tmp_value_cmd_value_flg true
     2021-12-15 12:29:03   mode            enabled
     2021-12-15 12:30:44   state           cmd_1
   Regex:
     accu:
     collect:
     cond:
       Set_tmp_value:
         0:
           cmd_device_flg ^Set_tmp_value$:^cmd_device_flg:
           cmd_value_flg ^Set_tmp_value$:^cmd_value_flg:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          (::ReadingValDoIf($hash,'Set_tmp_value','cmd_device_flg') eq "true") && (::ReadingValDoIf($hash,'Set_tmp_value','cmd_value_flg') eq "true")
   do:
     0:
       0          set "[Set_tmp_value:cmd_device]  [Set_tmp_value:cmd_value]"
       1          setreading Set_tmp_value cmd_out [Set_tmp_value:cmd_device] [Set_tmp_value:cmd_value]
     1:
       0         
   helper:
     DEVFILTER  ^global$|^Set_tmp_value$
     NOTIFYDEV  global|Set_tmp_value
     event      cmd_value_flg: true
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   Set_tmp_value
     timerevent cmd_value_flg: true
     triggerDev Set_tmp_value
     bm:
       DOIF_Get:
         cnt        1
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        15.12. 12:48:57
         max        1.50203704833984e-05
         tot        1.50203704833984e-05
         mAr:
           HASH(0x563ceaf981b8)
           SEND_SET_cmd
           ?
       DOIF_Notify:
         cnt        27
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        15.12. 12:29:07
         max        0.0159430503845215
         tot        0.0777652263641357
         mAr:
           HASH(0x563ceaf981b8)
           HASH(0x563cea7057d0)
       DOIF_Set:
         cnt        39
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        15.12. 12:29:14
         max        0.000146150588989258
         tot        0.00172543525695801
         mAr:
           HASH(0x563ceaf981b8)
           SEND_SET_cmd
           ?
     timerevents:
       cmd_value_flg: true
       cmd_out: set SW_Bettlicht Dimmer 13.5
     timereventsState:
       cmd_value_flg: true
       cmd_out: set SW_Bettlicht Dimmer 13.5
     triggerEvents:
       cmd_value_flg: true
       cmd_out: set SW_Bettlicht Dimmer 13.5
     triggerEventsState:
       cmd_value_flg: true
       cmd_out: set SW_Bettlicht Dimmer 13.5
   internals:
   readings:
     all         Set_tmp_value:cmd_device_flg Set_tmp_value:cmd_value_flg
   trigger:
   uiState:
   uiTable:
Attributes:
   DbLogExclude .*
   alias      SEND_SET_cmd
   event-on-change-reading .*
   room       Logik


Vielleicht ist ja auch die Architektur einfacher zu gestalten aber ich wundere mich trotzdem über den Fehler des DOIF in Kombination mit dem Bot.

Der eigentliche Wunsch des Ganzen wäre dabei: Wenn z.B Device wie Thermostate via Value Eingabe im ChatBot gesteuert werden könnten.
Ich habe dazu im Moment keine Andere Idee umd die Daten via ChatBot ans Fhem zu übergeben.

Vg Denny
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 15 Dezember 2021, 14:00:15
Hallo Denny,

ich muß voraus schicken, dass ich von DOIF keinerlei Ahnung habe weil dieses Tool bisher noch nie von mir benötigt wurde.
Erledige alles per at/notify.

Aber meiner Meinung nach ist das Problem in der Fehlermeldung bereits enthalten.
Es wird set "set ...


set "set SW_Bettlicht Dimmer  13.5": Please define "set first


aufgerufen was mit Sicherheit falsch ist, es muß sicherlich


set "SW_Bettlicht Dimmer  13.5"


heißen.
Es kommt wohl aus dieser Definition:

Zitat
(set DS918_ChatBot asyncSendItem  text=
*"Wähle ein Thermostat!"*
   attachments="[{"callback_id": "set_device", "text": "Thermostat auswählen",
      "actions":[{"type": "button", "name": "BTN_TH_Buero",   "value": "set SW_Bettlicht Dimmer",      "text": "🌡️ Büro",   "style": "green"},
                 {"type": "button", "name": "BTN_TH_XXXXX",    "value": "set TH_ XXXXX desired-temp",      "text": "🌡️ XXXXXx",   "style": "green"},
            {"type": "button", "name": "zurück_th",       "value": "BTN_BCK_HZ",              "text": "🔙️",      "style": "red"}]}]")

Schau doch mal wo mit DOIF evtl. ein "set" hinzugezaubert wird. Evtl. im DOIF Forum mal nachfragen.

Grüße,
Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: rohlande am 15 Dezember 2021, 16:26:57
Hallo Heiko

Danke für den Hinweis.. Das kann natürlich sein, das hier bei der EINGABE ins System via ChatBot der [set] hier schon den DOIF oder das FHEM beeinflusst.
Leider finde ich keine Lösung, wie ich in einem DOIF oder notify aus den beiden Readings des dummy Device, den eigentlichen (set ........] String zusammenbauen kann.
Daher habe ich versucht den (set) schon bei der Eingabe via interaktiven Button ans System mit zu übergeben.

Vg Denny
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 15 Dezember 2021, 20:08:54
ZitatLeider finde ich keine Lösung, wie ich in einem DOIF oder notify aus den beiden Readings des dummy Device, den eigentlichen (set ........] String zusammenbauen kann.

Bei DOIF weiß ich es nicht, aber mit einem notify / at ist es recht einfach mit Perl möglich.
In beiden Modulen kannst du ja Code in {} angeben und ausführen lassen.
Hier mal nur eine prinzipielle Anregung die man natürlich nicht so verwenden kann. Nur das Prinzip:


define ssc.not notify  Dummy:Reading2.*
{
    my $str1 = ReadingsVal ("Dummy", "Reading1", "");
    my $str2 = ReadingsVal ("Dummy", "Reading2", "");
    my $str  = $str1.' '.$str2;
    fhem ("set ...... $str");
    .....
}


Dabei sollen Reading1 und Reading2 die von dir erwähnten Readings sein. Wenn du z.B. auf Reading2 triggerst wird der Prozess in Gang gesetzt sobald du dieses Reading mit deinem DOIF "gefüllt" hast.

VG
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: rohlande am 16 Dezember 2021, 08:19:36
Hallo Heiko

Danke für das notify Beispiel im perl Stil.
Habe das DOIF und das notify verglichen.
Beide laufen. Es kommt folgender Sring im Output cmd des dummy heraus(siehe Anhang).
List des DOIF:
Internals:
   DEF        (([Set_tmp_value:cmd_device_flg] eq "true") && ([Set_tmp_value:cmd_value_flg] eq "true"))
(set [Set_tmp_value:cmd_device] [Set_tmp_value:cmd_value])
(setreading Set_tmp_value cmd_out [Set_tmp_value:cmd_device] [Set_tmp_value:cmd_value])
DOELSE

   FUUID      61b9c1f7-f33f-cb6b-eee9-756268a2af870a18
   FVERSION   98_DOIF.pm:0.252950/2021-12-04
   MODEL      FHEM
   NAME       SEND_SET_cmd
   NOTIFYDEV  Set_tmp_value,global
   NR         490
   NTFY_ORDER 50-SEND_SET_cmd
   STATE      cmd_1
   TYPE       DOIF
   VERSION    25295 2021-12-04 18:13:39
   READINGS:
     2021-12-16 08:04:29   Device          Set_tmp_value
     2021-12-16 08:04:29   cmd             1.2
     2021-12-16 08:04:29   cmd_event       Set_tmp_value
     2021-12-16 08:04:29   cmd_nr          1
     2021-12-16 08:04:29   cmd_seqnr       2
     2021-12-16 08:04:27   e_Set_tmp_value_cmd_device_flg true
     2021-12-16 08:04:29   e_Set_tmp_value_cmd_value_flg true
     2021-12-16 08:04:09   mode            enabled
     2021-12-16 08:04:29   state           cmd_1
   Regex:
     accu:
     collect:
     cond:
       Set_tmp_value:
         0:
           cmd_device_flg ^Set_tmp_value$:^cmd_device_flg:
           cmd_value_flg ^Set_tmp_value$:^cmd_value_flg:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          (::ReadingValDoIf($hash,'Set_tmp_value','cmd_device_flg') eq "true") && (::ReadingValDoIf($hash,'Set_tmp_value','cmd_value_flg') eq "true")
   do:
     0:
       0          set [Set_tmp_value:cmd_device] [Set_tmp_value:cmd_value]
       1          setreading Set_tmp_value cmd_out [Set_tmp_value:cmd_device] [Set_tmp_value:cmd_value]
     1:
       0         
   helper:
     DEVFILTER  ^global$|^Set_tmp_value$
     NOTIFYDEV  global|Set_tmp_value
     event      cmd_value_flg: true
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   Set_tmp_value
     timerevent cmd_value_flg: true
     triggerDev Set_tmp_value
     timerevents:
       cmd_value_flg: true
       cmd_out: SW_Bettlicht Dimmer 21
     timereventsState:
       cmd_value_flg: true
       cmd_out: SW_Bettlicht Dimmer 21
     triggerEvents:
       cmd_value_flg: true
       cmd_out: SW_Bettlicht Dimmer 21
     triggerEventsState:
       cmd_value_flg: true
       cmd_out: SW_Bettlicht Dimmer 21
   internals:
   perlblock:
   readings:
     all         Set_tmp_value:cmd_device_flg Set_tmp_value:cmd_value_flg
   trigger:
   uiState:
   uiTable:
Attributes:
   DbLogExclude .*
   alias      SEND_SET_cmd
   event-on-change-reading .*
   room       Logik
/code]

List des notify:

[code]Internals:
   DEF        Set_tmp_value:cmd_value_flg.*
{
my $str1 = ReadingsVal ("Set_tmp_value", "cmd_device", "");
my $str2 = ReadingsVal ("Set_tmp_value", "cmd_value", "");
my $str  = ($str1.' '.$str2);
fhem ("set SW_Bettlicht $str");
fhem ("setreading Set_tmp_value cmd_out $str");
}
   FUUID      61baca4a-f33f-cb6b-8d2f-d397b3e5bb43a3f1
   FVERSION   91_notify.pm:0.252310/2021-11-15
   NAME       ssc.not
   NOTIFYDEV  Set_tmp_value
   NR         491
   NTFY_ORDER 50-ssc.not
   REGEXP     Set_tmp_value:cmd_value_flg.*
   STATE      inactive
   TRIGGERTIME 1639638113.68538
   TYPE       notify
   READINGS:
     2021-12-16 08:03:59   state           inactive
     2021-12-16 08:01:53   triggeredByDev  Set_tmp_value
     2021-12-16 08:01:53   triggeredByEvent cmd_value_flg: true
Attributes:
   DbLogExclude .*
   alias      ssc.not
   event-on-change-reading .*
   room       Logik
   verbose    5


Jetzt kommt das Große ABER.

Sobald ich jetzt versuche im EVENT Monitor das Ereignis zu triggern(ich drücke den Button welcher folgenden Inhalt an den ChatBot sendet [ "value": "TH_Buero desired-temp",]
Erhalte ich im Browser Fenster einen FHEM disconnect für 5 sec. und auch keine Event Information.
Auch wird nichts ins Log geschrieben.
Ich bin etwas verwirrt was hier Fhem so blockiert.
Das macht es schwierig jetzt einzugrenzen ob es DOIF, notify, SSChatBot ist welcher dies verursacht.

UPDATE:

ich bin irretiert.... Nach einem Neustart des Docker und senden einer Wunschteperatur via o.g Struktur, wurde nach ca.  1min Laufzeit, die gewünschte Temp. im Device auch übernommen.
Das hatte ich so seit Gestern nicht gesehen.

Aber wie gesagt, was ich völlig komische finde ist der Lost Connect im "eventMonitor" Fenster in Fhem.

VG denny
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: marvin78 am 16 Dezember 2021, 08:29:44
Zitat von: DS_Starter am 29 November 2021, 17:33:54
Meine Synology ist übrigens nicht im Internet zu erreichen, sondern auschließlich via VPN.

Wie nutzt du dann zuverlässig den Chat?
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: rohlande am 16 Dezember 2021, 08:33:03
ich gehe davon aus, dass Heiko dazu dauerhaft die VPN Verbindung Seitens der mobilen Endgeräte oder Rechner dazu herstellt.
Nutzt Du den VPN Server der Syno? oder den z.B einer FritzBox?

Ich habe bei mir beide VPN Varianten am Android und IPhone Devices dazu aktiv.

VG denny
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: marvin78 am 16 Dezember 2021, 09:13:58
Keine Fritzbox. Unifi.

Mir geht es um die Zuverlässigkeit. VPN bricht in Deutschland schonmal ab, niemand merkt es und es kommen keine Nachrichten.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: rohlande am 16 Dezember 2021, 10:39:06
Okay... Kann ich zwar nicht nachvollziehen aber die VPn Client's verbinden sich doch neu in der Regel!
Zumindest bei mir.
Habe VPNCilla und OPENVPN im Einsatz als Client auf IPhone | Windows | Android....
Gehst Du über dyndns?

Vg Denny
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 16 Dezember 2021, 20:38:59
Hallo Marvin,

ZitatWie nutzt du dann zuverlässig den Chat?
Ich nutze die QuickConnect ID über Synology. Das bedarf keiner Portöffnung von außen.

@Denny,
Zitat
Erhalte ich im Browser Fenster einen FHEM disconnect für 5 sec. und auch keine Event Information.
....
Ich bin etwas verwirrt was hier Fhem so blockiert.
Die Meldung bezieht sich auf die FHEMWEB Verbindung. Es wird nichts blockiert, nur FHEMWEB hat in dem
Moment keine Verbindung zum FHEM Server bzw. hat  diese abbaut. Deshalb siehst du auch keine Events etc.
Aber der Befehl wird im Server ausgeführt.

Ich kann mir jetzt nicht vorstellen woran das liegen könnte in diesem Kontext.
Erster Tipp wäre mal einen Standard  Style (f11) im FHEMWEB zu verwenden um ein evtl. Problem an dieser Stelle auszuschließen.

Grüße,
Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: marvin78 am 17 Dezember 2021, 08:14:25
Zitat von: DS_Starter am 16 Dezember 2021, 20:38:59
Hallo Marvin,
Ich nutze die QuickConnect ID über Synology. Das bedarf keiner Portöffnung von außen.


Stimmt. Aber es geht dann doch wieder über eine Cloud, von der man abhängig ist. Zugegeben etwas weniger, als bei Alternativen, wie Telegram und Co.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 17 Dezember 2021, 08:40:41
ZitatAber es geht dann doch wieder über eine Cloud, von der man abhängig ist.
Stimmt auch wieder.  ;)
Allerdings habe ich mit openVPN, welches ich ebenfalls auf den Mobildevices nutze, gute Erfahrungen gemacht.
In den Einstellungen gibt es unter "Connection Timeout" den Schalter "Continously retry", sodass immer wieder versucht wird eine Verbindung herzustellen.
Mein Mailplus login läuft über VPN. Das Login vom Chat brauche ich einfach nur umzustellen.
Das mache ich mal ...
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: rohlande am 17 Dezember 2021, 10:13:08
Aber warum machst du alles via vpn? Ich habe z.b eine feste IP und bei Strato eine Domain...   Alles dann via https / SSL auf 443.  Mailserver / etc ...
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 17 Dezember 2021, 11:02:18
ZitatAber warum machst du alles via vpn? Ich habe z.b eine feste IP und bei Strato eine Domain...
Naja weil ich so wenig wie möglich externe Dienste einbinden möchte. VPN erschien mir der komfortabelste Weg dazu (für mich). Und funktioniert ja auch tadellos mit dem VPN-Server der Syno.
Aber das wird jetzt OT für SSChatBot.  ;)

Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: marvin78 am 17 Dezember 2021, 13:01:24
Nicht OT: Ich habe beim Chatbot ständig Timeouts, wenn ich etwas aus FHEM sende (oder abfrage). Das Versenden einer Nachricht dauert rund 45 Sekunden (timeout steht auf 60). Kein Problem in die Gegenrichtung. Keine Verzögerung messbar. Gibt es hier ähnliche Erfahrungen?

Zur Einordnung: Die RS 1221+ langweilt sich. 32GB RAM bekomme ich nichtmal mit vielen VMs voll. Alle anderen Dienste, wie Surveillance und Co. zeigen, auch im Zusammenhang mit FHEM und deinen Modulen, keine solchen Sympthome.

Beispiel-Reverse-Log

2021.12.17 08:39:38.140 2: DeepThoughtChatBot - ERROR - "chatUserlist" SendQueue index "1" not executed. Restart SendQueue in 5 s (retryCount 1).
2021.12.17 08:39:38.126 2: DeepThoughtChatBot - ERROR message: read from https://10.1.10.10:5001 timed out
2021.12.17 08:39:34.416 3: DeepThoughtChatBot - SSChatBot "DeepThoughtChatBot" for URL /outchat registered
2021.12.17 08:39:34.416 4: DeepThoughtChatBot - Operation "chatUserlist (idx: 1)" is still running. Next operation start postponed

        };
          'channel' => ''
          'retryCount' => 0,
          'userid' => '',
          'fileUrl' => '',
          'attachment' => '',
          'method' => 'user_list',
          'text' => '',
          'opmode' => 'chatUserlist',
$VAR1 = {
2021.12.17 08:39:34.415 5: DeepThoughtChatBot - Add Item to queue - Index 1:
2021.12.17 08:39:18.115 4: DeepThoughtChatBot - Call-Out: https://10.1.10.10:5001/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=user_list&token="<secret>"
2021.12.17 08:39:18.115 5: DeepThoughtChatBot - HTTP-Call will be done with httptimeout: 20 s
2021.12.17 08:39:18.115 4: DeepThoughtChatBot - start SendQueue entry index "1" (chatUserlist) for operation.
2021.12.17 08:39:18.114 4: DeepThoughtChatBot - botToken read from RAM: ********
2021.12.17 08:39:18.114 4: DeepThoughtChatBot - API hashvalues already set - ignore get apisites
2021.12.17 08:39:18.114 4: DeepThoughtChatBot - ####################################################
2021.12.17 08:39:18.114 4: DeepThoughtChatBot - ###         start Chat operation chatUserlist   
2021.12.17 08:39:18.114 4: DeepThoughtChatBot - ####################################################
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 17 Dezember 2021, 13:11:44
Kann ich bei mir nicht bestätigen. Läuft mit dem Default timeout und sehr schnell in der Kommunikation.
Aber wir hatten das schon mal thematisiert. Schau mal unter #165 ff.

Hier ein Test zum Vergleich (einfacher Textversand FHEM-> Chatserver)


2021.12.17 13:09:39.768 5: SynChatBot - Add Item to queue - Index 6:
{
  'attachment' => '',
  'userid' => 4,
  'channel' => '',
  'method' => 'chatbot',
  'text' => 'test',
  'opmode' => 'sendItem',
  'retryCount' => 0,
  'fileUrl' => ''
}

2021.12.17 13:09:39.769 4: SynChatBot - ####################################################
2021.12.17 13:09:39.770 4: SynChatBot - ###         start Chat operation sendItem   
2021.12.17 13:09:39.770 4: SynChatBot - ####################################################
2021.12.17 13:09:39.770 4: SynChatBot - API hashvalues already set - ignore get apisites
2021.12.17 13:09:39.771 4: SynChatBot - botToken read from RAM: ********
2021.12.17 13:09:39.771 4: SynChatBot - start SendQueue entry index "6" (sendItem) for operation.
2021.12.17 13:09:39.772 5: SynChatBot - HTTP-Call will be done with httptimeout: 20 s
2021.12.17 13:09:39.772 4: SynChatBot - Call-Out: http://192.168.2.10:5000/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="<secret>"&payload={"text": "test","user_ids": [4]}
2021.12.17 13:09:40.073 5: SynChatBot - JSON returned: {
  'data' => {
              'fail' => undef,
              'succ' => {
                          'user_id_post_map' => {
                                                  '4' => '68719495823'
                                                }
                        }
            },
  'success' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )
}

2021.12.17 13:09:40.081 4: SynChatBot - Opmode "sendItem" finished successfully, Sendqueue index "6" deleted.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: marvin78 am 17 Dezember 2021, 13:51:24
Naja. Wie gesagt. Die RS langweilt sich. Alle anderen Antwortzeiten sind sagenhaft schnell.

Ich gehe also von einem Problem mit Synology Chat aus.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: marvin78 am 20 Dezember 2021, 10:04:57
Zitat von: Wiesel am 29 November 2021, 14:45:18

der Übeltäter scheint das "permission denied" zu sein. In der Datei "/tmp/login_fail.list" ist meine öffentliche IP (+ kryptische zeichen) enthalten.


Das ist ein guter Hinweis. Sobald ein Eintrag in dieser Datei ist bzw. die Datei vorhanden ist (tatsächlich egal, was für ein Eintrag es ist), ist die Antwortzeit unterirschisch. Welches Tool schreibt Einträge dorthin? Das muss ich mal rausfinden. Der gewöhnliche fail2ban der Syno ist es offenbar nicht.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: marvin78 am 20 Dezember 2021, 10:54:49
Eine andere Frage.

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

Beispielanwendungen:


Gibt das die API her?
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 20 Dezember 2021, 11:01:43
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
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: benz_freak am 02 Januar 2022, 10:28:45
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
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 02 Januar 2022, 10:36:51
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
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: benz_freak am 02 Januar 2022, 11:50:28
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
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 02 Januar 2022, 11:56:37
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
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 02 Januar 2022, 12:05:46
Lösche doch mal die Datei

/tmp/login_fail.list

Sofern vorhanden.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: benz_freak am 02 Januar 2022, 12:44:08
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.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 02 Januar 2022, 12:47:48
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.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: benz_freak am 02 Januar 2022, 12:51:53
Das hab ich auch so gesehen und über den Syno Account im Ticket nachgetrgen mit dem Logauszug
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag 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.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: marvin78 am 02 Januar 2022, 13:47:00
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.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: ThomasMagnum am 09 Januar 2023, 11:32:57
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
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 09 Januar 2023, 11:45:18
Hallo Thomas,

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

LG
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 14 Januar 2023, 23:18:52
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
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: ThomasMagnum am 15 Januar 2023, 15:02:05
Hallo Heiko, das ging aber schnell. Vielen Dank!

Ich habe das eben mal aucf die Schnelle getestet, geht aber leider nicht. Hier die Ausgabe:

2023.01.15 14:52:26 5 : SynChatBot - Add Item to queue - Index 12: 
$VAR1 = {
          'fileUrl' => 'http://192.168.178.33:8082/sschat/www/images/SynChatBot_SendPlot.png?%26fwcsrf=60e82061',
          'channel' => '',
          'attachment' => '',
          'userid' => 3,
          'method' => 'chatbot',
          'opmode' => 'sendItem',
          'text' => 'aktuelles Plotfile',
          'retryCount' => 0
        };
2023.01.15 14:52:26 4 : SynChatBot - ####################################################
2023.01.15 14:52:26 4 : SynChatBot - ###         start Chat operation sendItem    
2023.01.15 14:52:26 4 : SynChatBot - ####################################################
2023.01.15 14:52:26 4 : SynChatBot - API hashvalues already set - ignore get apisites
2023.01.15 14:52:26 4 : SynChatBot - botToken read from RAM: ********
2023.01.15 14:52:26 4 : SynChatBot - start SendQueue entry index "12" (sendItem) for operation.
2023.01.15 14:52:26 5 : SynChatBot - HTTP-Call will be done with httptimeout: 20 s
2023.01.15 14:52:26 4 : SynChatBot - Call-Out: https://192.168.178.33:443/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="<secret>"&payload={"text": "aktuelles Plotfile","file_url": "http://192.168.178.33:8082/sschat/www/images/SynChatBot_SendPlot.png?%26fwcsrf=60e82061","user_ids": [3]}
2023.01.15 14:52:31 5 : SynChatBot - JSON returned: $VAR1 = {
          'error' => {
                       'code' => 117
                     },
          'success' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' )
        };
2023-01-15 14:52:31 SSChatBot SynChatBot Error: illegal file name or path
2023-01-15 14:52:31 SSChatBot SynChatBot Errorcode: 117
2023-01-15 14:52:31 SSChatBot SynChatBot Error
2023.01.15 14:52:31 2 : SynChatBot - ERROR - Operation sendItem was not successful. Errorcode: 117 - illegal file name or path
2023.01.15 14:52:31 2 : SynChatBot - ERROR - "sendItem" SendQueue index "12" not executed. It seems to be a permanent error. Exclude it from new send attempt !
2023.01.15 14:52:31 4 : SynChatBot - ####################################################
2023.01.15 14:52:31 4 : SynChatBot - ###         start Chat operation     
2023.01.15 14:52:31 4 : SynChatBot - ####################################################
2023.01.15 14:52:31 4 : SynChatBot - Only entries with "forbidSend" are in Sendqueue. Escaping ...


Das Bild wird wie angegeben im Verzeichnis "fhem/www/images" erzeugt. Wenn ich die genrierte Link-Adresse im Browser aufrufe wird das *.png auch angezeigt.

Ich teste das in den kommenden Tagen noch mal ein wenig ausführlicher, evtl. habe ich ja noch irgendwo einen Fehler.

Viele Grüße und noch einen schönen Sonntag.
Thomas
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 15 Januar 2023, 15:08:55
Was passiert denn wenn du manuell das File im Browser ausfrufst ?


Steht ja da  :o
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: ThomasMagnum am 15 Januar 2023, 15:10:14
Das wird angezeigt. Hatte ein Bild vom Aufruf in meinem anderen Post angehängt.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 15 Januar 2023, 15:22:08
Mach mal bitte ein List deine SSChatBot Devices.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: ThomasMagnum am 15 Januar 2023, 15:28:17
Bitteschön:
Internals:
   DEF        chat.domainname.de 443 https
   FUUID      63bbe490-f33f-4183-7194-3797b5c158d20aba
   FVERSION   50_SSChatBot.pm:v1.13.0-s23250/2020-11-28
   FW         WEBSSChatBot
   INADDR     chat.domainname.de
   INPORT     443
   INPROT     https
   MODEL      ChatBot
   NAME       SynChatBot
   NR         961
   OPMODE     
   OUTDEF     http://192.168.178.33:8082/sschat/outchat?botname=SynChatBot&fwcsrf=60e82061
   RESEND     next planned SendQueue start: immediately by next entry
   STATE      Error
   TOKEN      Set
   TYPE       SSChatBot
   eventCount 29
   HELPER:
     INFIX      outchat
     PACKAGE    main::FHEM::SSChatBot
     TOKEN      WJW}Y5J:c4NH[4LOWoP7X^oLcQOyg5\dPIymTruwZnCuXn=pZpLy^moRT^XyP`l4fZrme2[4Q6}^
QYy4]\_Iei>F
     USERFETCHED 1
     VERSION    1.13.0
     VERSION_API 1.3.0
     VERSION_CTZ unused
     VERSION_ErrCodes 1.3.6
     VERSION_SMUtils 1.24.3
     API:
       PARSET     1
       EXTERNAL:
         MOD        no
         NAME       SYNO.Chat.External
         PATH       entry.cgi
         VER        2
         mk         1
       INFO:
         MOD        no
         NAME       SYNO.API.Info
         PATH       query.cgi
         VER        1
         mk         1
     USERS:
       Adventskalender:
         email      vorname.nachname@web.de
         id         31
         nickname   nickname
         status     offline
       Annika:
         email      vorname.nachname@web.de
         id         4
         nickname   
         status     offline
       ChatHans:
         email      vorname.nachname@web.de
         id         21
         nickname   
         status     offline
       Dominik:
         email      vorname.nachname@web.de
         id         9
         nickname   
         status     offline
       Eva:
         email      vorname.nachname@web.de
         id         8
         nickname   
         status     offline
       G�nter:
         email      vorname.nachname@web.de
         id         27
         nickname   
         status     offline
       Monika:
         email      vorname.nachname@web.de
         id         26
         nickname   
         status     offline
       Stefan:
         email      vorname.nachname@web.de
         id         3
         nickname   nickname
         status     offline
       admin:
         email     
         id         2
         nickname   
         status     offline
       fhem:
         email     
         id         7
         nickname   
         status     offline
   OLDREADINGS:
   READINGS:
     2023-01-15 14:52:31   Error           illegal file name or path
     2023-01-15 14:52:31   Errorcode       117
     2023-01-15 14:52:26   QueueLength     6
     2023-01-15 14:49:57   sendPostId      81604380753
     2023-01-15 14:49:57   sendUserId      3
     2023-01-15 14:52:31   state           Error
Attributes:
   allowedUserForCode Name
   allowedUserForGet Name
   allowedUserForOwn Name
   allowedUserForSet Name
   defaultPeer Name
   room       Chat
   spareHost  192.168.178.33
   sparePort  8082
   verbose    5


Den Domainnamen und die Username habe ich anonymisiert.
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 15 Januar 2023, 15:51:17
Passt alles.
Habe es gerade bei mir probiert. File wird gesendet.

Hier zum Vergleich:


2023.01.15 15:48:04.678 5: SynChatBot - Add Item to queue - Index 6:
{
  'channel' => '',
  'fileUrl' => 'http://192.168.2.45:8086/sschat/www/images/SynChatBot_SendPlot.png?%26fwcsrf=xxxxxx',
  'method' => 'chatbot',
  'userid' => 4,
  'retryCount' => 0,
  'text' => 'aktuelles Plotfile',
  'opmode' => 'sendItem',
  'attachment' => ''
}

2023.01.15 15:48:04.679 4: SynChatBot - ####################################################
2023.01.15 15:48:04.679 4: SynChatBot - ###         start Chat operation sendItem   
2023.01.15 15:48:04.680 4: SynChatBot - ####################################################
2023.01.15 15:48:04.680 4: SynChatBot - API hashvalues already set - ignore get apisites
2023.01.15 15:48:04.681 4: SynChatBot - botToken read from RAM: ********
2023.01.15 15:48:04.681 4: SynChatBot - start SendQueue entry index "6" (sendItem) for operation.
2023.01.15 15:48:04.681 5: SynChatBot - HTTP-Call will be done with httptimeout: 10 s
2023.01.15 15:48:04.682 4: SynChatBot - Call-Out: https://192.168.2.10:5001/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="<secret>"&payload={"text": "aktuelles Plotfile","file_url": "http://192.168.2.45:8086/sschat/www/images/SynChatBot_SendPlot.png?%26fwcsrf=xxxxxxx","user_ids": [4]}
2023.01.15 15:48:08.905 5: SynChatBot - JSON returned: {
  'success' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
  'data' => {
              'succ' => {
                          'user_id_post_map' => {
                                                  '4' => '34359741427'
                                                }
                        },
              'fail' => undef
            }
}

2023.01.15 15:48:08.923 4: SynChatBot - Opmode "sendItem" finished successfully, Sendqueue index "6" deleted.


Hmmm, hast du irgendwelche Zugriffsbeschränkungen auf IP-Adressebene ?
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: ThomasMagnum am 16 Januar 2023, 09:38:59
Hallo Heiko,

ich konnte es lösen.
Ich hab mich erinnert das ich schonmal das Prolem hatte aus einem Container die lokale IP der Synology zu erreichen. Ich habe dann mal testweise "localhost" eingetragen und schon gings.
Nochmals vielen Dank für die Erweiterung des Moduls.

Einziges Manko was ich nun noch habe, hat aber nix mit dem Modul zu tun, ist die Anzeige der Grafik.
Ist der Hintergrund hell ist die Grafik komplett lesbar, ist der Hintergrund der Chat App dunkel, kann man die Ränder (Beschriftung) nicht mehr erkennen, da der Bereich dann ebenfalls abgedunkelt ist.
Hast du da evtl. einen Tipp für mich?

Gruß, Thomas
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 16 Januar 2023, 09:52:56
Hallo Thomas,

danke für das Feedback, dann checke ich die V heute Abend ein.
Wegen dem Hintergrund frag doch mal im SVG Forum nach.
Ich schau auch heute Abend mal ob ich dazu etwas im Chat finde.

Grüße,
Heiko
Titel: Antw:50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: ThomasMagnum am 16 Januar 2023, 11:11:23
Ist für mich gelöst, siehe hier:
https://forum.fhem.de/index.php/topic,131640.msg1258118.html#msg1258118 (https://forum.fhem.de/index.php/topic,131640.msg1258118.html#msg1258118)

Kann wohl nur in der "plotAsPng" Funktion gelöst werden.
Rudolf Vorschlag ist aber für mich ein gangbarer Weg.
Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: marvin78 am 20 März 2023, 12:51:27
Zitat von: marvin78 am 20 Dezember 2021, 10:54:49Eine 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?


Ich komme nochmal auf das Thema hier zurück. Ich halte das Löschen von gewissen Nachrichten nach einer gewissen Zeit für extrem wichtig. Wenn ich Nachrichten über die Webanwendung im Chat lösche, wird an entry.cgi folgender Payload übergeben:

post_id: XXXXXXXXXXXX
real_delete: false
api: SYNO.Chat.Post
method: delete
version: 8


@DS_Starter: Meinst du, es wäre möglich, das mal im Modul auszuprobieren und zu übernehmen?
Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 20 März 2023, 15:42:17
Das schaue ich mir mal an.

Komisch ... ich bekomme keine Mails mehr von meinen abonnierten Threads. ....

LG
Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 08 April 2023, 09:35:16
Guten Morgen,

@marvin78, ich denke das ist hinzubekommen.
Momentan habe ich allerdings noch keine Idee wo/wie man am Besten die post_id herbekommt die man löschen will.
Wird eine Mitteilung empfangen / versendet, wird die Post ID im Reading recPostId / sendPostId dargestellt.

Ich kann aber keine Liste der noch vorhandenen Post IDs erstellen um daraus eine zum Löschen auswählen zu können.
Ich könnte mir z.Zt. nur vorstellen, dass man als User diese Post ID in einem Freifeld angeben muß, d.h. man muß sie sich nach einem geeigneten Verfahren vorher irgendwie abrufbar speichern um sie später für das Löschen verfügbar zu haben.

Wie siehst du das ?

Grüße,
Heiko
Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: marvin78 am 08 April 2023, 11:23:40
Zitat von: DS_Starter am 08 April 2023, 09:35:16Guten Morgen,

@marvin78, ich denke das ist hinzubekommen.
Momentan habe ich allerdings noch keine Idee wo/wie man am Besten die post_id herbekommt die man löschen will.
Wird eine Mitteilung empfangen / versendet, wird die Post ID im Reading recPostId / sendPostId dargestellt.

Ich kann aber keine Liste der noch vorhandenen Post IDs erstellen um daraus eine zum Löschen auswählen zu können.
Ich könnte mir z.Zt. nur vorstellen, dass man als User diese Post ID in einem Freifeld angeben muß, d.h. man muß sie sich nach einem geeigneten Verfahren vorher irgendwie abrufbar speichern um sie später für das Löschen verfügbar zu haben.

Wie siehst du das ?

Grüße,
Heiko

Die letzte Post-ID müsste ich mir in meiner Automation ohnehin selbst merken. Man müsste sie eben beim Löschen in einem Parameter angeben können. Das Merken würde ich dem User bzw. dessen Skript überlassen. Das passt schon.
Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 08 April 2023, 16:19:25
Kurzer Zwischenstand ...
Im Prinzip kann ich eine Message nun über das Modul löschen.
Aber es funktioniert momentan nur temporär.
Es ist ein POST Request. In diesem Request müssen unter Anderem ein X-SYNO-TOKEN und ein gültiger Cookie angegeben werden. Beide Parameter sind in der Brower Session verfügbar. Wenn ich diese Daten aus dem Browser "mause" klappt es mit der Löschanforderung.
Mal sehen ob/wie ich da weiterkomme.

LG
Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: marvin78 am 08 April 2023, 20:14:37
Zitat von: DS_Starter am 08 April 2023, 16:19:25Kurzer Zwischenstand ...
Im Prinzip kann ich eine Message nun über das Modul löschen.
Aber es funktioniert momentan nur temporär.
Es ist ein POST Request. In diesem Request müssen unter Anderem ein X-SYNO-TOKEN und ein gültiger Cookie angegeben werden. Beide Parameter sind in der Brower Session verfügbar. Wenn ich diese Daten aus dem Browser "mause" klappt es mit der Löschanforderung.
Mal sehen ob/wie ich da weiterkomme.

LG

Danke für deine Mühe. Würde es per curl funktionieren (ich nehme an, der Token ist dann das größere Problem)? Ich kann aktuell leider nicht selbst testen, da nicht in der Nähe eines brauchbaren Rechners.

OT: Schade ist, dass Synology für sowas so halbgare APIs anbietet. Da gibt es keine echte Konsistenz.
Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 09 April 2023, 10:09:33
ZitatOT: Schade ist, dass Synology für sowas so halbgare APIs anbietet. Da gibt es keine echte Konsistenz.
Da hast du recht. Gerade für Chat gibt es keine echte API so wie man sie für den Calender oder die Surveillance Station findet.

Ich habe noch etwas weiter geforscht. Meiner Meinung nach geht das Löschen von Posts nur für solche Beiträge die ein echter (eingeloggter) User gepostet hat. Und er kann auch nur seine eigenen Beitrage löschen.
Das bedeutet, ich müsste zunächst das Modul so erweitern, dass es nicht nur als ein Bot agieren kann, sondern als "normaler" User mit Login/Logout Prozeduren usw.
Man müsste demnach die Webanwendung des Chat zumindest in Teilen nachbauen.

Das ist schon eine etwas größere Maßnahme, aber sicher sehr interessant.
Mit curl es wäre sicherlich auch möglich einen Befehl abzusetzen. Aber auch damit hat man das grundsätzliche Problem zunächst ein Login auszuführen um an die benötigten Daten (Cookie, X-SYNO-TOKEN) zu kommen.

LG
Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: marvin78 am 19 April 2023, 08:13:35
Ok. So wichtig ist es dann ggf. auch nicht. Ich überlege gerade, ob ich zumindest den Buttons, die ich eigentlich zeitgesteuert löschen möchte, einen Parameter mitgeben kann, der dafür sorgt, dass er nur einmal verwendet werden kann... Ich habe eine myutils extra für die Kommunikation mit dem Bot, das könnte dort dann überprüft werden. Wenn ich mal Zeit habe, schaue ich mir diesen Weg an.
Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: SeppiDeluxe am 01 Mai 2023, 16:48:02
Hallo in die Runde,

ich gebe noch auf ... aber gehe den Schritt ins Forum. Seit exakt 10 Tagen (habe das schon für meine Suche als Anhaltspunkt genommen) empfange ich in meinem Bot keine Nachrichten mehr.

Die Analysen haben ergeben. Das der richtig Token verwendet wird und ich den folgenden Fehler erhalte.  2023.05.01 16:33:58 4: SeppiChat - Data returned: <html>
<head><title>400 Bad Request</title></head>
<body>
<center><h1>400 Bad Request</h1></center>
<hr><center>nginx</center>
</body>
</html>

Kopieren die URL und führe sie im Browser aus ist alles im Device bekomme ich dann als Antwort:

Error
malformed JSON string received
2023-05-01 16:42:49
Errorcode
9000
2023-05-01 16:42:49
QueueLength
9
2023-05-01 16:33:58
state
Error
2023-05-01 16:42:49

Wobei ich denke das er nur mit dem 400 nichts anfangen kann.

Device bereits neu angelegt etc. Keine Verbesserung und ich habe auch keine Idee mehr.

Danke für Anregungen und Impulse

Ergänzung: Benutze die DSM 7.2 Beta mit dem entsprechenden Chat Beta Modul. Iat vielleicht nicht unwichtig, da ich nicht weiss wie im pm Modul die URL Abfrage läuft.  Außerdem passt die Installation der Beta vor ca. 10 Tagen sehr gut zu den LOGS und dem Start der Probleme.
Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 01 Mai 2023, 19:30:32
Du kannst davon ausgehen, dass es an dem Dienst auf der Synology liegt. Der Fehler 400 Bad Request kommt vom NGINX auf der Syno der das aufgerufene Ziel nicht ansprechen kann.

Läuft der Chat Server auf der Syno ?
Arbeitest du mit HTTP oder HTTPS ?
Möglicherweise geht nur noch HTTPS.

Mal so nebenbei. Bei Beta-Releases muss man immer mit Problemen rechnen. Würde ich auf meinem Live-System nie machen. Ich selbst bin immer noch auf DSM 6.2.4.
Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: SeppiDeluxe am 03 Mai 2023, 12:54:22
Danke für die Rückmeldung. War auch meine erste Vermutung.
Was mich stutzig macht, ist das Verhalten auf den zwei Wegen. Soll heißen, kopiere ich die URL aus dem Log (inkl. Transparentem Token) geht der Aufruf und erzeugt eine Nachricht. In der internen Kommunikation FHEM —> Synology kommt der Fehler.

Das macht mich stutzig.

BETA-Risiko ist einkalkuliert ;-)
Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 03 Mai 2023, 19:26:00
Das ist in der Tat merkwürdig.
Da ich es aber mit meiner Version nicht nachstellen kann, bleiben nur Vermutungen.

Eine wäre noch dass die Syno die IP deines FHEM Servers gesperrt hat. Allerdings käme dann wohl eine anderer Fehlercode.
Kannst ja mal die aufgerufene URL und die Antwort im Log posten (evtl. PN). Vllt. fällt mir etwas auf.
Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: joj am 05 Mai 2023, 13:50:06
Einen schönen Nachmittag!

Ich habe heute den Fehler gemacht und meine Synology auf den ReleaseCandidate DSM 7.2-64551 upgedated. Seither funktioniert leider das Senden Nachrichten aus FHEM an den SynoChatBot nicht mehr. Synology unterstützt in dieser Version Node.js v11 nicht mehr, vielleicht die Ursache...?

Anbei das LOG:

2023.05.05 13:29:16 4: SynChatBot - ####################################################
2023.05.05 13:29:16 4: SynChatBot - ###        start Chat operation sendItem   
2023.05.05 13:29:16 4: SynChatBot - ####################################################
2023.05.05 13:29:16 4: SynChatBot - API hashvalues already set - ignore get apisites
2023.05.05 13:29:16 4: SynChatBot - botToken read from RAM: ********
2023.05.05 13:29:16 4: SynChatBot - start SendQueue entry index "4" (sendItem) for operation.
2023.05.05 13:29:16 5: SynChatBot - HTTP-Call will be done with httptimeout: 20 s
2023.05.05 13:29:16 4: SynChatBot - Call-Out: https://192.168.0.2:5001/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="<secret>"&payload={"text": "test1234","user_ids": [6]}
2023.05.05 13:29:16 4: SynChatBot - Data returned: <html>
<head><title>400 Bad Request</title></head>
<body>
<center><h1>400 Bad Request</h1></center>
<hr><center>nginx</center>
</body>
</html>

Wenn ich die Call-Out URL selbst zusammenbaue (meinen Token einfüge) und in einen Browser kopiere, wird allerdings eine Nachricht an den SynoChatBot geschickt.

Zusätzlich bekomme ich in FHEM folgende Readings:

Error
malformed JSON string received

Errorcode
9000


Vielleicht hätte jemand einen Hinweis für mich? Ich habe bereits die Firewall der Synology abgeschaltet und ein paar mal neu gebooted, ebenso FHEM, leider ohne Erfolg.

Viele Grüße!
Jürgen
Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 05 Mai 2023, 16:17:43
Hallo joj, SeppiDeluxe,

möglicherweise müsst ihr im DSM 7.2 etwas einstellen.
Seht euch mal die Seite:

https://www.blackvoid.club/dsm-7-2-public-beta-is-live/

an. Es gibt einen Abschnitt "New notification options". Schaut das mal durch, könnte sein dass dort unter "webhook" das Chat ausgewählt werden muss.

Ansonsten bliebe noch der Weg den Synology Support anzuschreiben. Möglicherweise gibt es Änderungen die in das Modul einfließen müssten. Kann mir aber nicht vorstellen was es sein sollte wenn ich eure Meldungen lese.
Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: joj am 05 Mai 2023, 17:49:42
Hallo DS_Starter,
besten Dank für den Hinweis, ich melde mich, falls ich hier weiterkomme...!

Beste Grüße!
Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: joj am 12 Mai 2023, 10:53:13
Hallo DS_Starter,
ich bin bis dato nicht wirklich weitergekommen, Zeit ist Luxus... ;)

Ich habe zumindest auf meiner Syno das AccessLogging für nginx aufgedreht und habe folgende Zeile gesehen, wenn FHEM an den SynoChatBot etwas schickt...

IP-FHEM-SERVER - - [12/May/2023:10:27:14 +0200] "GET /webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token=\x22HIER-STEHT-DER-TOKEN\x22&payload={\x22text\x22: \x22test123\x22,\x22user_ids\x22: [6]} HTTP/1.0" 400 150 "-" "-" "-"

Zum Vergleich die URL aus dem FHEM-VerboseLog:
https://IP-DER-SYNO:5001/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="HIER-STEHT-DER-TOKEN"&payload={"text": "test1234","user_ids": [6]}

Ein Puzzlestück mehr, vielleicht kannst du damit schon etwas anfangen...Jedenfalls vielen Dank!



Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 12 Mai 2023, 11:15:33
ZitatZeit ist Luxus..
Wem sagst du das ...

Naja, es ist etwas müßig zu puzzeln und bei der nächsten Gelegenheit wieder auf die Nase zu fallen. (Zeit ist Luxus ..  ;)  )
Ich werde ein Frage an Synology stellen was geändert wurde bzw. wie der Aufruf angepasst werden muß.

Mal schauen ob/was Syno antwortet.
Evtl. brauche ich noch mehr Infos wenn die Fragen stellen.

LG
Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: SeppiDeluxe am 13 Mai 2023, 17:36:48
Ich habe eure Vorschläge noch nicht vollständig ausgetestet. Was nach wie vor auffällt / funktioniert, ist aus dem FHEM Log (verbose 5) die URL C&P zu übernehmen und im Browser direkt aufzurufen. Die Nachricht geht durch ohne irgendeinen Fehler und erzeugt wie erwartet einen Text im Bot.

Von daher nehme ich an das die Beta irgendwas zwischen dem FHEM Kommandoaufruf und der API moniert. Ich werde heute und morgen noch etwas Zeit reinstecken.
Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 16 Mai 2023, 15:33:56
Habe eine Meldung bei Syno aufgemacht ... mal schauen.

LG
Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 17 Mai 2023, 14:06:32
Synology hat schon geantwortet und würde sich das Ganze mal auf dem System anschauen wollen:

ZitatHello Mr. Maaz,
Thank you for contacting Synology Technical Support.

Please allow us to remotely access the affected NAS.
During the remote access, we will investigate what is triggering the behavior.

For a description of how to enable remote access and how to securely share the data with us, please refer to the separate form you received.

Please note:
To protect the privacy of our customers, all submitted remote access information is automatically deleted after the ticket is resolved.
Also, the remote access settings on your Synology product will be automatically disabled after a certain period of time.

Please let us know if you have any concerns about sharing this access with us.

Mit freundlichen Grüßen / Best Regards,

Wolfgang Maier
Technical Support Engineer

Nun ist es für mich nicht möglich, da ich ja noch auf DSM 6 bin.
Würde sich einer von euch dafür engagieren ?`

Wenn ja, würde ich mit demjenigen mal telefonieren (oder PM) um das Vorgehen abzusprechen.

LG,
Heiko
Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 18 Mai 2023, 08:19:48
Guten Morgen,

wenn ihr im Device verbose 5 setzt, kommen im Log auch die detaillierten Informationen von HttpUtils:

2023.05.18 08:08:53.550 4: SynChatBot - ####################################################
2023.05.18 08:08:53.550 4: SynChatBot - ###         start Chat operation sendItem   
2023.05.18 08:08:53.551 4: SynChatBot - ####################################################
2023.05.18 08:08:53.551 4: SynChatBot - API hashvalues already set - ignore get apisites
2023.05.18 08:08:53.555 4: SynChatBot - botToken read from RAM: ********
2023.05.18 08:08:53.556 4: SynChatBot - start SendQueue entry index "3" (sendItem) for operation.
2023.05.18 08:08:53.556 5: SynChatBot - HTTP-Call will be done with httptimeout: 10 s
2023.05.18 08:08:53.557 4: SynChatBot - Call-Out >GET<: https://192.168.2.10:5001/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="<secret>"&payload={"text": "Test","user_ids": [4]}
2023.05.18 08:08:53.558 3: HttpUtils url=https://192.168.2.10:5001/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="<secret>"&payload={"text": "Test","user_ids": [4]} NonBlocking via https
2023.05.18 08:08:53.558 2: IP: 192.168.2.10 -> 192.168.2.10
2023.05.18 08:08:53.591 3: HttpUtils request header:
GET /webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="<secret>"&payload={"text": "Test","user_ids": [4]} HTTP/1.0
Host: 192.168.2.10:5001
User-Agent: fhem
Accept-Encoding: gzip,deflate
Accept: application/json

2023.05.18 08:08:53.690 2: https://192.168.2.10:5001/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="<secret>"&payload={"text": "Test","user_ids": [4]}: HTTP response code 200
2023.05.18 08:08:53.691 3: HttpUtils https://192.168.2.10:5001/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="<secret>"&payload={"text": "Test","user_ids": [4]}: Got data, length: 83
2023.05.18 08:08:53.692 3: HttpUtils response header:
HTTP/1.1 200 OK
Server: nginx
Date: Thu, 18 May 2023 06:08:53 GMT
Content-Type: application/json; charset="UTF-8"
Connection: close
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: max-age=0, no-cache, no-store, must-revalidate
Pragma: no-cache
Expires: 0
2023.05.18 08:08:53.693 5: SynChatBot - JSON returned: {
  'data' => {
              'fail' => undef,
              'succ' => {
                          'user_id_post_map' => {
                                                  '4' => '34359741618'
                                                }
                        }
            },
  'success' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )
}

2023.05.18 08:08:53.716 4: SynChatBot - Opmode "sendItem" finished successfully, Sendqueue index "3" deleted.

Ihr müsst bitte den Token durch "secret" ausblenden.
Vielleicht sieht man dann mehr. Ich könnte mir vorstellen, dass HttpUtils etwas am Call "anpasst" was im Browser nicht gemacht wird und deswegen mit dem Browser Aufruf funktioniert.
Das beantwortet natürlich nicht die Diskrepanz im Verhalten zwischen DSM 6.2 und DSM 7.2.
Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: SeppiDeluxe am 19 Mai 2023, 10:06:32
Also scheinbar unterscheidet sich meine Konf... denn leider erhalte ich in V5 nicht den Umfang

defmod SeppiChat SSChatBot XXX YYY https
attr SeppiChat DbLogExclude .*
attr SeppiChat allowedUserForGet fhemchat
attr SeppiChat allowedUserForOwn fhemchat
attr SeppiChat allowedUserForSet fhemchat
attr SeppiChat defaultPeer fhemchat
attr SeppiChat httptimeout 60
attr SeppiChat room Chat
attr SeppiChat showTokenInLog 0
attr SeppiChat verbose 5

setstate SeppiChat Error
setstate SeppiChat 2023-05-19 10:03:17 Error malformed JSON string received
setstate SeppiChat 2023-05-19 10:03:17 Errorcode 9000
setstate SeppiChat 2023-05-19 10:03:17 QueueLength 656
setstate SeppiChat 2023-05-19 10:03:17 state Error

2023.05.19 10:01:18 4: SeppiChat - ####################################################
2023.05.19 10:01:18 4: SeppiChat - ###         start Chat operation sendItem
2023.05.19 10:01:18 4: SeppiChat - ####################################################
2023.05.19 10:01:18 4: SeppiChat - API hashvalues already set - ignore get apisites
2023.05.19 10:01:18 4: SeppiChat - botToken read from RAM: ********
2023.05.19 10:01:18 4: SeppiChat - start SendQueue entry index "2" (sendItem) for operation.
2023.05.19 10:01:18 5: SeppiChat - HTTP-Call will be done with httptimeout: 60 s
2023.05.19 10:01:18 4: SeppiChat - Call-Out: https://synostorage.intranet.lan:20001/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="<secret>"&payload={"text": "UeberlauffassEntleere Fass wegen Fuellstand größer 90%25","user_ids": [9]}
2023.05.19 10:01:18 3: Audiokonverter: Der Audiokonverter ist an
2023.05.19 10:01:18 4: SeppiChat - Data returned: <html>
<head><title>400 Bad Request</title></head>
<body>
<center><h1>400 Bad Request</h1></center>
<hr><center>nginx</center>
</body>
</html>

2023.05.19 10:01:18 2: SeppiChat - ERROR - "sendItem" SendQueue index "2" not executed. Restart SendQueue in 86400 s (retryCount 296).


Aber ich stimme dir zu das HTTPUTILS möglicherweise bei der Übertragung einen Unterschied "einbauen" im Gegensatz zum Brwoseraufruf.
Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 19 Mai 2023, 10:29:33
Ach sorry, ich hatte das Modul schon weiterentwickelt.
Liegt erstmal in meinem Contrib.
Lade des dir bitte und dann nochmal.

Zum Download in der FHEMWEB Kommandozeile inklusive der Anführungszeichen angeben und danach FHEM restarten:

"wget -qO ./FHEM/50_SSChatBot.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/50_SSChatBot.pm"

Zitat&payload={"text": "UeberlauffassEntleere Fass wegen Fuellstand größer 90%25","user_ids"
Ich würde erstmal mit einem simplen Text ohne Sonderzeichen testen.
Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: joj am 19 Mai 2023, 10:56:36
Hallo DS_Starter,
hatte heute wiedereinmal Zeit. Vielen, vielen Dank für deine Nachforschungen!

Anbei habe ich Logs aus einem WireShark Capture. Einmal von FHEM zur Syno (FHEMtoSYNO) und einmal die Rückantwort (SYNOtoFHEM). Kann es sein, dass beim HTTP-GET die URI abgeschnitten wird?
Siehe Abschnitt "Hypertext Transfer Protocol" im FHEMtoSYNO Log...

Des Weiteren nochmals ein FHEM-LOG Auszug mit Verbose5 am Device aber ich bekomme hier leider nicht mehr Logging, FHEM ist eben aktualisiert worden...

2023.05.19 10:42:18 5: SynChatBot - Add Item to queue - Index 2:
{
  'retryCount' => 0,
  'opmode' => 'sendItem',
  'postid' => undef,
  'text' => 'Test1234',
  'fileUrl' => '',
  'method' => 'chatbot',
  'channel' => '',
  'userid' => 6,
  'attachment' => ''
}

2023.05.19 10:42:18 4: SynChatBot - ####################################################
2023.05.19 10:42:18 4: SynChatBot - ###        start Chat operation sendItem   
2023.05.19 10:42:18 4: SynChatBot - ####################################################
2023.05.19 10:42:18 4: SynChatBot - API hashvalues already set - ignore get apisites
2023.05.19 10:42:18 4: SynChatBot - botToken read from RAM: ********
2023.05.19 10:42:18 4: SynChatBot - start SendQueue entry index "2" (sendItem) for operation.
2023.05.19 10:42:18 5: SynChatBot - HTTP-Call will be done with httptimeout: 20 s
2023.05.19 10:42:18 4: SynChatBot - Call-Out: https://IP_SYNO:5001/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="<secret>"&payload={"text": "Test1234","user_ids": [6]}
2023.05.19 10:42:18 4: SynChatBot - Data returned: <html>
<head><title>400 Bad Request</title></head>
<body>
<center><h1>400 Bad Request</h1></center>
<hr><center>nginx</center>
</body>
</html>




WireShark-LOG FHEMtoSYNO:
Frame 5: 361 bytes on wire (2888 bits), 361 bytes captured (2888 bits) on interface eth0, id 0
    Section number: 1
    Interface id: 0 (eth0)
        Interface name: eth0
    Encapsulation type: Ethernet (1)
    Arrival Time: May 19, 2023 10:05:01.402891063 Mitteleuropäische Sommerzeit
    [Time shift for this packet: 0.000000000 seconds]
    Epoch Time: 1684483501.402891063 seconds
    [Time delta from previous captured frame: 0.003254621 seconds]
    [Time delta from previous displayed frame: 0.003254621 seconds]
    [Time since reference or first frame: 0.564617715 seconds]
    Frame Number: 5
    Frame Length: 361 bytes (2888 bits)
    Capture Length: 361 bytes (2888 bits)
    [Frame is marked: False]
    [Frame is ignored: False]
    [Protocols in frame: eth:ethertype:ip:tcp:http]
    [Coloring Rule Name: HTTP]
    [Coloring Rule String: http || tcp.port == 80 || http2]
Ethernet II, Src: Raspberr_d7:1f:2d (dc:a6:32:d7:1f:2d), Dst: Synology_a7:38:6e (00:11:32:a7:38:6e)
    Destination: Synology_a7:38:6e (00:11:32:a7:38:6e)
        Address: Synology_a7:38:6e (00:11:32:a7:38:6e)
        .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
        .... ...0 .... .... .... .... = IG bit: Individual address (unicast)
    Source: Raspberr_d7:1f:2d (dc:a6:32:d7:1f:2d)
        Address: Raspberr_d7:1f:2d (dc:a6:32:d7:1f:2d)
        .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
        .... ...0 .... .... .... .... = IG bit: Individual address (unicast)
    Type: IPv4 (0x0800)
Internet Protocol Version 4, Src: IP_FHEM, Dst: IP_SYNO
    0100 .... = Version: 4
    .... 0101 = Header Length: 20 bytes (5)
    Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT)
        0000 00.. = Differentiated Services Codepoint: Default (0)
        .... ..00 = Explicit Congestion Notification: Not ECN-Capable Transport (0)
    Total Length: 347
    Identification: 0xdb4c (56140)
    010. .... = Flags: 0x2, Don't fragment
        0... .... = Reserved bit: Not set
        .1.. .... = Don't fragment: Set
        ..0. .... = More fragments: Not set
    ...0 0000 0000 0000 = Fragment Offset: 0
    Time to Live: 64
    Protocol: TCP (6)
    Header Checksum: 0xdcfa [validation disabled]
    [Header checksum status: Unverified]
    Source Address: IP_FHEM
    Destination Address: IP_SYNO
Transmission Control Protocol, Src Port: 57062, Dst Port: 5000, Seq: 1, Ack: 1, Len: 295
    Source Port: 57062
    Destination Port: 5000
    [Stream index: 1]
    [Conversation completeness: Complete, WITH_DATA (31)]
    [TCP Segment Len: 295]
    Sequence Number: 1    (relative sequence number)
    Sequence Number (raw): 3280250145
    [Next Sequence Number: 296    (relative sequence number)]
    Acknowledgment Number: 1    (relative ack number)
    Acknowledgment number (raw): 3387464037
    1000 .... = Header Length: 32 bytes (8)
    Flags: 0x018 (PSH, ACK)
        000. .... .... = Reserved: Not set
        ...0 .... .... = Accurate ECN: Not set
        .... 0... .... = Congestion Window Reduced: Not set
        .... .0.. .... = ECN-Echo: Not set
        .... ..0. .... = Urgent: Not set
        .... ...1 .... = Acknowledgment: Set
        .... .... 1... = Push: Set
        .... .... .0.. = Reset: Not set
        .... .... ..0. = Syn: Not set
        .... .... ...0 = Fin: Not set
        [TCP Flags: ·······AP···]
    Window: 502
    [Calculated window size: 64256]
    [Window size scaling factor: 128]
    Checksum: 0x82a3 [unverified]
    [Checksum Status: Unverified]
    Urgent Pointer: 0
    Options: (12 bytes), No-Operation (NOP), No-Operation (NOP), Timestamps
        TCP Option - No-Operation (NOP)
            Kind: No-Operation (1)
        TCP Option - No-Operation (NOP)
            Kind: No-Operation (1)
        TCP Option - Timestamps
            Kind: Time Stamp Option (8)
            Length: 10
            Timestamp value: 2439349622: TSval 2439349622, TSecr 12589153
            Timestamp echo reply: 12589153
    [Timestamps]
        [Time since first frame in this TCP stream: 0.003469509 seconds]
        [Time since previous frame in this TCP stream: 0.003254621 seconds]
    [SEQ/ACK analysis]
        [iRTT: 0.000214888 seconds]
        [Bytes in flight: 295]
        [Bytes sent since last PSH flag: 295]
    TCP payload (295 bytes)
Hypertext Transfer Protocol
    GET /webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="CHAT_BOT_TOKEN_HERE"&payload={"text": "1234","user_ids": [6]} HTTP/1.0\r\n
        [Expert Info (Chat/Sequence): GET /webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="CHAT_BOT_TOKEN_HERE"&payload={"text": "1234","user_ids": [6]} HTTP/1.0\r\n]
            [GET /webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="CHAT_BOT_TOKEN_HERE"&payload={"text": "1234","user_ids": [6]} HTTP/1.0\r\n]
            [Severity level: Chat]
            [Group: Sequence]
        Request Method: GET
        Request URI: /webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="CHAT_BOT_TOKEN_HERE"&payload={"text":
            Request URI Path: /webapi/entry.cgi
            Request URI Query: api=SYNO.Chat.External&version=2&method=chatbot&token="CHAT_BOT_TOKEN_HERE"&payload={"text":
                Request URI Query Parameter: api=SYNO.Chat.External
                Request URI Query Parameter: version=2
                Request URI Query Parameter: method=chatbot
                Request URI Query Parameter: token="CHAT_BOT_TOKEN_HERE"
                Request URI Query Parameter: payload={"text":
        Request Version: "1234","user_ids": [6]} HTTP/1.0
    Host: IP_SYNO:5000\r\n
    User-Agent: fhem\r\n
    Accept-Encoding: gzip,deflate\r\n
    Accept: application/json\r\n
    \r\n
    [Full request URI: http://IP_SYNO:5000/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="CHAT_BOT_TOKEN_HERE"&payload={"text":]
    [HTTP request 1/1]
    [Response in frame: 7]


WireShark-LOG SYNOtoFHEM:
Frame 7: 361 bytes on wire (2888 bits), 361 bytes captured (2888 bits) on interface eth0, id 0
    Section number: 1
    Interface id: 0 (eth0)
        Interface name: eth0
    Encapsulation type: Ethernet (1)
    Arrival Time: May 19, 2023 10:05:01.403064415 Mitteleuropäische Sommerzeit
    [Time shift for this packet: 0.000000000 seconds]
    Epoch Time: 1684483501.403064415 seconds
    [Time delta from previous captured frame: 0.000081778 seconds]
    [Time delta from previous displayed frame: 0.000081778 seconds]
    [Time since reference or first frame: 0.564791067 seconds]
    Frame Number: 7
    Frame Length: 361 bytes (2888 bits)
    Capture Length: 361 bytes (2888 bits)
    [Frame is marked: False]
    [Frame is ignored: False]
    [Protocols in frame: eth:ethertype:ip:tcp:http:data-text-lines]
    [Coloring Rule Name: HTTP]
    [Coloring Rule String: http || tcp.port == 80 || http2]
Ethernet II, Src: Synology_a7:38:6e (00:11:32:a7:38:6e), Dst: Raspberr_d7:1f:2d (dc:a6:32:d7:1f:2d)
    Destination: Raspberr_d7:1f:2d (dc:a6:32:d7:1f:2d)
        Address: Raspberr_d7:1f:2d (dc:a6:32:d7:1f:2d)
        .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
        .... ...0 .... .... .... .... = IG bit: Individual address (unicast)
    Source: Synology_a7:38:6e (00:11:32:a7:38:6e)
        Address: Synology_a7:38:6e (00:11:32:a7:38:6e)
        .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
        .... ...0 .... .... .... .... = IG bit: Individual address (unicast)
    Type: IPv4 (0x0800)
Internet Protocol Version 4, Src: IP_SYNO, Dst: IP_FHEM
    0100 .... = Version: 4
    .... 0101 = Header Length: 20 bytes (5)
    Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT)
        0000 00.. = Differentiated Services Codepoint: Default (0)
        .... ..00 = Explicit Congestion Notification: Not ECN-Capable Transport (0)
    Total Length: 347
    Identification: 0xfb18 (64280)
    010. .... = Flags: 0x2, Don't fragment
        0... .... = Reserved bit: Not set
        .1.. .... = Don't fragment: Set
        ..0. .... = More fragments: Not set
    ...0 0000 0000 0000 = Fragment Offset: 0
    Time to Live: 64
    Protocol: TCP (6)
    Header Checksum: 0xbd2e [validation disabled]
    [Header checksum status: Unverified]
    Source Address: IP_SYNO
    Destination Address: IP_FHEM
Transmission Control Protocol, Src Port: 5000, Dst Port: 57062, Seq: 1, Ack: 296, Len: 295
    Source Port: 5000
    Destination Port: 57062
    [Stream index: 1]
    [Conversation completeness: Complete, WITH_DATA (31)]
    [TCP Segment Len: 295]
    Sequence Number: 1    (relative sequence number)
    Sequence Number (raw): 3387464037
    [Next Sequence Number: 296    (relative sequence number)]
    Acknowledgment Number: 296    (relative ack number)
    Acknowledgment number (raw): 3280250440
    1000 .... = Header Length: 32 bytes (8)
    Flags: 0x018 (PSH, ACK)
        000. .... .... = Reserved: Not set
        ...0 .... .... = Accurate ECN: Not set
        .... 0... .... = Congestion Window Reduced: Not set
        .... .0.. .... = ECN-Echo: Not set
        .... ..0. .... = Urgent: Not set
        .... ...1 .... = Acknowledgment: Set
        .... .... 1... = Push: Set
        .... .... .0.. = Reset: Not set
        .... .... ..0. = Syn: Not set
        .... .... ...0 = Fin: Not set
        [TCP Flags: ·······AP···]
    Window: 235
    [Calculated window size: 30080]
    [Window size scaling factor: 128]
    Checksum: 0x4b80 [unverified]
    [Checksum Status: Unverified]
    Urgent Pointer: 0
    Options: (12 bytes), No-Operation (NOP), No-Operation (NOP), Timestamps
        TCP Option - No-Operation (NOP)
            Kind: No-Operation (1)
        TCP Option - No-Operation (NOP)
            Kind: No-Operation (1)
        TCP Option - Timestamps
            Kind: Time Stamp Option (8)
            Length: 10
            Timestamp value: 12589156: TSval 12589156, TSecr 2439349622
            Timestamp echo reply: 2439349622
    [Timestamps]
        [Time since first frame in this TCP stream: 0.003642861 seconds]
        [Time since previous frame in this TCP stream: 0.000081778 seconds]
    [SEQ/ACK analysis]
        [iRTT: 0.000214888 seconds]
        [Bytes in flight: 295]
        [Bytes sent since last PSH flag: 295]
    TCP payload (295 bytes)
Hypertext Transfer Protocol
    HTTP/1.1 400 Bad Request\r\n
        [Expert Info (Chat/Sequence): HTTP/1.1 400 Bad Request\r\n]
            [HTTP/1.1 400 Bad Request\r\n]
            [Severity level: Chat]
            [Group: Sequence]
        Response Version: HTTP/1.1
        Status Code: 400
        [Status Code Description: Bad Request]
        Response Phrase: Bad Request
    Server: nginx\r\n
    Date: Fri, 19 May 2023 08:05:01 GMT\r\n
    Content-Type: text/html\r\n
    Content-Length: 150\r\n
        [Content length: 150]
    Connection: close\r\n
    \r\n
    [HTTP response 1/1]
    [Time since request: 0.000173352 seconds]
    [Request in frame: 5]
    [Request URI: http://IP_SYNO:5000/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="CHAT_BOT_TOKEN_HERE"&payload={"text":]
    File Data: 150 bytes
Line-based text data: text/html (7 lines)
    <html>\r\n
    <head><title>400 Bad Request</title></head>\r\n
    <body>\r\n
    <center><h1>400 Bad Request</h1></center>\r\n
    <hr><center>nginx</center>\r\n
    </body>\r\n
    </html>\r\n
Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 19 Mai 2023, 11:09:40
Ja schau mal eins weiter oben (#256).
Du must das Modul erst aus meinem contrib ziehen um mehr Logasusgaben zu erhalten.

ZitatKann es sein, dass beim HTTP-GET die URI abgeschnitten wird?
Ja, meine Vermutung richtete sich auf HTTPUTILS (auch weiter oben).
Das sieht komisch aus:

[Full request URI: http://ip_syno:5000/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="CHAT_BOT_TOKEN_HERE"&payload={"text":]
...
        Request URI Query Parameter: payload={"text":
        Request Version: "1234","user_ids": [6]} HTTP/1.0
Allerdings erklärt es nicht den Unterschied zwischn DSM 6.2 und DSM 7.2.

Trotzdem ... nimm die V aus dem contrib und dann sehen wir auch die Calls die httputils rausgibt an die Syno.
Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: joj am 19 Mai 2023, 11:29:56
Danke, anbei das neue V5 Log...

Beste Grüße!

2023.05.19 11:26:48 5: SynChatBot - Add Item to queue - Index 2:
{
  'userid' => 6,
  'attachment' => '',
  'channel' => '',
  'postid' => undef,
  'opmode' => 'sendItem',
  'text' => 'Test1234',
  'method' => 'chatbot',
  'fileUrl' => '',
  'retryCount' => 0
}

2023.05.19 11:26:48 4: SynChatBot - ####################################################
2023.05.19 11:26:48 4: SynChatBot - ###        start Chat operation sendItem   
2023.05.19 11:26:48 4: SynChatBot - ####################################################
2023.05.19 11:26:48 4: SynChatBot - API hashvalues already set - ignore get apisites
2023.05.19 11:26:48 4: SynChatBot - botToken read from RAM: ********
2023.05.19 11:26:48 4: SynChatBot - start SendQueue entry index "2" (sendItem) for operation.
2023.05.19 11:26:48 5: SynChatBot - HTTP-Call will be done with httptimeout: 20 s
2023.05.19 11:26:48 4: SynChatBot - Call-Out >GET<: https://IP_SYNO:5001/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="<secret>"&payload={"text": "Test1234","user_ids": [6]}
2023.05.19 11:26:48 3: HttpUtils url=https://IP_SYNO:5001/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="CHAT_BOT_TOKEN_HERE"&payload={"text": "Test1234","user_ids": [6]} NonBlocking via https
2023.05.19 11:26:48 2: IP: IP_SYNO -> IP_SYNO
2023.05.19 11:26:48 3: HttpUtils request header:
GET /webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="CHAT_BOT_TOKEN_HERE"&payload={"text": "Test1234","user_ids": [6]} HTTP/1.0
Host: IP_SYNO:5001
User-Agent: fhem
Accept-Encoding: gzip,deflate
Accept: application/json

2023.05.19 11:26:48 2: https://IP_SYNO:5001/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="CHAT_BOT_TOKEN_HERE"&payload={"text": "Test1234","user_ids": [6]}: HTTP response code 400
2023.05.19 11:26:48 3: HttpUtils https://IP_SYNO:5001/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="CHAT_BOT_TOKEN_HERE"&payload={"text": "Test1234","user_ids": [6]}: Got data, length: 150
2023.05.19 11:26:48 3: HttpUtils response header:
HTTP/1.1 400 Bad Request
Server: nginx
Date: Fri, 19 May 2023 09:26:48 GMT
Content-Type: text/html
Content-Length: 150
Connection: close
2023.05.19 11:26:48 4: SynChatBot - Data returned: <html>
<head><title>400 Bad Request</title></head>
<body>
<center><h1>400 Bad Request</h1></center>
<hr><center>nginx</center>
</body>
</html>
Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 19 Mai 2023, 11:40:34
Ja, danke.
Ich habe exakt den gleichen Text bei mir probiert.

Mein Ergebnis:
2023.05.19 11:33:33.403 2: https://192.168.2.10:5001/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="<secret>"&payload={"text": "Test1234","user_ids": [4]}: HTTP response code 200
2023.05.19 11:33:33.404 3: HttpUtils https://192.168.2.10:5001/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="<secret>"&payload={"text": "Test1234","user_ids": [4]}: Got data, length: 83
2023.05.19 11:33:33.405 3: HttpUtils response header:
HTTP/1.1 200 OK
Server: nginx
Date: Fri, 19 May 2023 09:33:33 GMT
Content-Type: application/json; charset="UTF-8"
Connection: close
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
....

Dein Ergebnis:

2023.05.19 11:26:48 2: https://ip_syno:5001/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="CHAT_BOT_TOKEN_HERE"&payload={"text": "Test1234","user_ids": [6]}: HTTP response code 400
2023.05.19 11:26:48 3: HttpUtils https://ip_syno:5001/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="CHAT_BOT_TOKEN_HERE"&payload={"text": "Test1234","user_ids": [6]}: Got data, length: 150
2023.05.19 11:26:48 3: HttpUtils response header:
HTTP/1.1 400 Bad Request
Server: nginx
....

Mir sehen die Aufrufe absolut identisch aus.
Stimmt denn dein Port mit 5001 ? Hat sich da bzgl. 7.2 etwas geändert ?

PS: füge deine Ausgaben hier mit Code-Tags ein. Ist besser lesbar.
Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: joj am 19 Mai 2023, 11:55:25
hmm, sehr komisch...
Die Port-Settings meiner syno sind alle gleich geblieben (hatte vorher DSM 7.1.1-42962-5), ich hatte eben nur den redirect von 5000 auf 5001 weggegeben, damit ich im WireShark mehr sehe, ansonsten spuckt ja HTTPS beim "Debuggen" in die Suppe.... Wenn ich meine/genannte/die selbe URI in einen Browser kopiere funktioniert alles bestes...

Wie gesagt, als ich im Leichtsinn auf DSM7.2RC aktualisierte, fiel mit nur auf, dass node.js v11 rausflog. Im ChangeLog von Synology bzgl. DSM7.2RC dürften sich ein paar "Sicherheitsupdates" für nginx etc. auch dazugesellen... Jedenfalls wars mir (wiedermal eine Lehre) nicht zu schnell auf die neuen DSM zu wechseln...

lg

Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 19 Mai 2023, 12:27:47
Ich bin leider auch etwas ratlos.
Könnte mir nur vorstellen, Synology prüft auch noch den User-Agent. Dann wäre "fhem" nicht verständlich. Ist aber nur eine Vermutung.

Inzwischen hat sich Synology wieder gemeldet und würde auch weiter unterstützen:

ZitatHello Mr. Maier,

thank you very much for the quick reply.
....

But other users of our community (FHEM) use my development as well and reported this error after the update to DSM 7.2-64551.
I will ask a user with DSM 7.2-64551 to assist with troubleshooting.


Mit freundlichen Grüßen / Best Regards,

Heiko Maaz

--------------------------------------------------------------------------

Hello Mr. Maaz,
Thank you for your answer.

If I have understood correctly, then it now works again.
If other users have the same kind of problems, they can contact us at any time so that we can analyze the issue and fix the behavior.

Mit freundlichen Grüßen / Best Regards,

Wolfgang Maier
Technical Support Engineer

Ich hatte geschrieben, dass es mit DSM 6.2 (wieder) funktioniert.

D.h. ich schlage euch vor ihr macht eine Meldung bei Syno auf und lasst das Problem remote untersuchen.
Ihr könnt euch dabei auf mein Ticket #3339716 beziehen.
Ich hatte folgendes geschrieben:

I have already developed and successfully run an application for a ChatBot under DSM 6.X for a long time.
The call shown below, which ran without problems under DSM 6.x so far, brings the following error with DSM 7.2-64551:

Call-Out:

https://192.168.0.2:5001/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="<secret>"&payload={"text": "test1234","user_ids": [6]}

2023.05.05 13:29:16 4: SynChatBot - Data returned:

<html>
<head><title>400 Bad Request</title></head>
<body>
<center><h1>400 Bad Request</h1></center>
<hr><center>nginx</center>
</body>
</html>

 
The <secret> is the Token in the original Call.
What has been changed or what do I have to adjust in the call if necessary ?

Best regards,

Heiko Maaz
Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 19 Mai 2023, 12:36:41
Noch eine Frage.
Wie sendet ihr den String, in einer Zeile oder mit Umbrüchen, Tabulatoren o.ä. ?
Bei mir funktionieren alle Varianten tadellos.
Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: joj am 19 Mai 2023, 13:01:20
Hi,
das mit dem UserAgent tauchte ja öfters im Forum auf, ich dachte auch schon daran... Kann man den zu Testzwecken in FHEM ändern?

Jedenfalls hab ich zwar die RC installiert, habe aber ungern die Leute von Synoloy auf meiner DS drauf...
Ich hatte vor einiger Zeit einen Call bzgl. "DiskHibernate" bei Synology offen und auch dort ist leider immer die erste Antwort "...gib uns Zugriff auf dein System...".

Jedenfalls danke für deinen Einsatz, ich werde auch einen Call aufmachen, allerdings nicht um die Leute von Synology auf meine DS zu lassen, vielleicht kann man aber bei denen das "Bewusstsein" schärfen, dass mit DSM7.2 noch etwas Arbeit ansteht...

Die URI im Browser schicke ich in einer Zeile, ohne %20 oder %22 aber mit " (Anführungszeichen) für den Token, so wie die URI aus dem FHEM Logging kommt:

https://IP_SYNO:5001/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="CHAT_BOT_TOKEN_HERE"&payload={"text": "test1234","user_ids": [6]}

Aus FHEM schicke ich nur test1234, ohne Umbrüche, Leerzeichen, Tabs o.ä.

Danke & lg!
Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 19 Mai 2023, 13:06:11
Kein Problem.
Vielleicht reicht es ja wenn du die Systemlogs mitschickst oder anderweitige Logauszüge die Synology benennen kann.
Das konnte ich ja nicht liefern.

Danke für deine Mitarbeit !  :)
Alles leider nicht so einfach ...

LG
Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 19 Mai 2023, 13:22:22
Zitatdas mit dem UserAgent tauchte ja öfters im Forum auf, ich dachte auch schon daran... Kann man den zu Testzwecken in FHEM ändern?
Der ist in HttpUtils.pm hart verdrahtet.
Wenn du HttpUtils.pm in deinen Editor lädst, findest du zwei Stellen wo User-Agent auf fhem gesetzt wird.
Dort könntest du ändern. FHEM muß dann restartet werden.
Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: joj am 19 Mai 2023, 13:49:45
...besten Dank, habs noch schnell versucht. Wäre zu schön gewesen...

2023.05.19 13:36:58 5: SynChatBot - Add Item to queue - Index 3:
{
  'fileUrl' => '',
  'userid' => 6,
  'postid' => undef,
  'channel' => '',
  'text' => 'Test',
  'opmode' => 'sendItem',
  'method' => 'chatbot',
  'attachment' => '',
  'retryCount' => 0
}

2023.05.19 13:36:58 4: SynChatBot - ####################################################
2023.05.19 13:36:58 4: SynChatBot - ###         start Chat operation sendItem   
2023.05.19 13:36:58 4: SynChatBot - ####################################################
2023.05.19 13:36:58 4: SynChatBot - API hashvalues already set - ignore get apisites
2023.05.19 13:36:58 4: SynChatBot - botToken read from RAM: ********
2023.05.19 13:36:58 4: SynChatBot - start SendQueue entry index "3" (sendItem) for operation.
2023.05.19 13:36:58 5: SynChatBot - HTTP-Call will be done with httptimeout: 20 s
2023.05.19 13:36:58 4: SynChatBot - Call-Out >GET<: https://IP_SYNO:5001/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="<secret>"&payload={"text": "Test","user_ids": [6]}
2023.05.19 13:36:58 3: HttpUtils url=https://IP_SYNO:5001/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="CHAT_BOT_TOKEN_HERE"&payload={"text": "Test","user_ids": [6]} NonBlocking via https
2023.05.19 13:36:58 2: IP: IP_SYNO -> IP_SYNO
2023.05.19 13:36:58 3: HttpUtils request header:
GET /webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="CHAT_BOT_TOKEN_HERE"&payload={"text": "Test","user_ids": [6]} HTTP/1.0
Host: IP_SYNO:5001
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Edg/113.0.1774.42
Accept-Encoding: gzip,deflate
Accept: application/json

2023.05.19 13:36:58 2: https://IP_SYNO:5001/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="CHAT_BOT_TOKEN_HERE"&payload={"text": "Test","user_ids": [6]}: HTTP response code 400
2023.05.19 13:36:58 3: HttpUtils https://IP_SYNO:5001/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="CHAT_BOT_TOKEN_HERE"&payload={"text": "Test","user_ids": [6]}: Got data, length: 150
2023.05.19 13:36:58 3: HttpUtils response header:
HTTP/1.1 400 Bad Request
Server: nginx
Date: Fri, 19 May 2023 11:36:58 GMT
Content-Type: text/html
Content-Length: 150
Connection: close
2023.05.19 13:36:58 4: SynChatBot - Data returned: <html>
<head><title>400 Bad Request</title></head>
<body>
<center><h1>400 Bad Request</h1></center>
<hr><center>nginx</center>
</body>
</html>
Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 19 Mai 2023, 13:51:36
Schade  :(
Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 19 Mai 2023, 14:05:33
Auf der Syno gibt es bei mir das Verzeichnis

 /var/log/nginx

Dort drin ein File error.log

Schau doch da mal rein.
Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: joj am 19 Mai 2023, 14:32:22
Also, einen hab ich noch. Ich habe (wir hatten den gleichen Gedanken) nochmals das nginx access-Logging auf der Syno aufgedreht und anbei die Ergebnisse...

Access aus FHEM-ChatBot:
IP_FHEM - - [19/May/2023:14:11:39 +0200] "GET /webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token=\x22CHAT_BOT_TOKEN_HERE\x22&payload={\x22text\x22: \x22testABC\x22,\x22user_ids\x22: [6]} HTTP/1.0" 400 150 "-" "-" "-"

Access von meinem PC aus:
IP_CLIENT_PC - - [19/May/2023:14:18:04 +0200] "GET /webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token=%22CHAT_BOT_TOKEN_HERE%22&payload={%22text%22:%20%22test1234%22,%22user_ids%22:%20[6]} HTTP/2.0" 200 101 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36" "-"

Warum auch immer die Platzhalter für HTML %20 und %22 hier unterschiedlich interpretiert werden...

Die anderen Logs der Syno (error.log und error_default.log) zeichnen nichts auffälliges auf.

Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 19 Mai 2023, 14:47:04
Das ist ein Ansatz.
Ich sehe zu vllt. schon heute Abend eine Version zum Test anbieten zu können.
Die Zeichen kann ich im Modul schon umsetzen. Wird normalerweise in httpUtils gemacht.
Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 19 Mai 2023, 15:17:55
Habe schon eine Version zum Test in mein contrib gestellt.
Mal probieren ..
Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 19 Mai 2023, 15:26:17
Noch eine Frage.
Habt ihr das globale Attr encoding eingestellt ? Wenn ja, wie ?
Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: SeppiDeluxe am 20 Mai 2023, 10:56:23
Zitat von: DS_Starter am 19 Mai 2023, 10:29:33Ich würde erstmal mit einem simplen Text ohne Sonderzeichen testen.


Noch ein Überbleibsel aus der letzten UTF Umstellung im DBConf ;-)
Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: SeppiDeluxe am 20 Mai 2023, 11:10:39
kurzes Update:

Ich bekomme jetzt erstmal das umfangreichere Log.

Encoding ist derzeit noch nicht aktiv (also Standard bytestream nehme ich an) gesetzt.

C&P mit dem Browser funktioniert nach wie vor problemlos.

Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 20 Mai 2023, 12:42:20
Hast du die Version aus meinem contrib ausprobiert ?
Poste dann mal bitte das umfangreichere Log.
Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: joj am 20 Mai 2023, 15:20:50
...habe das attr global encoding ebenfalls nicht gesetzt...
Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: joj am 20 Mai 2023, 15:36:32
Gute Nachricht, habe mir eben dein neues Modul aus deinem Contrib geholt und siehe da, alles funktioniert wieder bestens! Wahnsinn, vielen Dank!!! Spitzen Arbeit!!!

2023.05.20 15:32:57 5: SynChatBot - Add Item to queue - Index 3:
{
  'method' => 'chatbot',
  'attachment' => '',
  'fileUrl' => '',
  'text' => 'Das ist ein Test',
  'opmode' => 'sendItem',
  'retryCount' => 0,
  'channel' => '',
  'postid' => undef,
  'userid' => 6
}

2023.05.20 15:32:57 4: SynChatBot - ####################################################
2023.05.20 15:32:57 4: SynChatBot - ###         start Chat operation sendItem   
2023.05.20 15:32:57 4: SynChatBot - ####################################################
2023.05.20 15:32:57 4: SynChatBot - API hashvalues already set - ignore get apisites
2023.05.20 15:32:57 4: SynChatBot - botToken read from RAM: ********
2023.05.20 15:32:57 4: SynChatBot - start SendQueue entry index "3" (sendItem) for operation.
2023.05.20 15:32:57 5: SynChatBot - HTTP-Call will be done with httptimeout: 20 s
2023.05.20 15:32:57 4: SynChatBot - Call-Out >GET<: https://IP_SYNO:5001/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="<secret>"&payload={"text": "Das ist ein Test","user_ids": [6]}
2023.05.20 15:32:57 3: HttpUtils url=https://IP_SYNO:5001/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token=%22CHAT_BOT_TOKEN_HERE%22&payload={%22text%22:%20%22Das%20ist%20ein%20Test%22,%22user_ids%22:%20[6]} NonBlocking via https
2023.05.20 15:32:57 2: IP: IP_SYNO -> IP_SYNO
2023.05.20 15:32:57 3: HttpUtils request header:
GET /webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token=%22CHAT_BOT_TOKEN_HERE%22&payload={%22text%22:%20%22Das%20ist%20ein%20Test%22,%22user_ids%22:%20[6]} HTTP/1.0
Host: IP_SYNO:5001
User-Agent: fhem
Accept-Encoding: gzip,deflate
Accept: application/json

2023.05.20 15:32:58 2: https://IP_SYNO:5001/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token=%22CHAT_BOT_TOKEN_HERE%22&payload={%22text%22:%20%22Das%20ist%20ein%20Test%22,%22user_ids%22:%20[6]}: HTTP response code 200
2023.05.20 15:32:58 3: HttpUtils https://IP_SYNO:5001/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token=%22CHAT_BOT_TOKEN_HERE%22&payload={%22text%22:%20%22Das%20ist%20ein%20Test%22,%22user_ids%22:%20[6]}: Got data, length: 84
2023.05.20 15:32:58 3: HttpUtils response header:
HTTP/1.1 200 OK
Server: nginx
Date: Sat, 20 May 2023 13:32:57 GMT
Content-Type: application/json; charset="UTF-8"
Connection: close
Vary: Accept-Encoding
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: max-age=0, no-cache, no-store, must-revalidate
Pragma: no-cache
Expires: 0
2023.05.20 15:32:58 5: SynChatBot - JSON returned: {
  'data' => {
              'fail' => undef,
              'succ' => {
                          'user_id_post_map' => {
                                                  '6' => '176093661361'
                                                }
                        }
            },
  'success' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )
}

2023.05.20 15:32:58 4: SynChatBot - Opmode "sendItem" finished successfully, Sendqueue index "3" deleted.
Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: DS_Starter am 20 Mai 2023, 16:07:59
Das freut mich.  :)
Dann checke ich die Version heute Abend ein.

Titel: Aw: 50_SSChatBot - Integration des Synology Chat Servers
Beitrag von: SeppiDeluxe am 28 Mai 2023, 18:21:49
Bei mir auch alles behoben mit der neuen Ver .. Danke dir