SSChatBot - Integration des Synology Chat Servers

Aus FHEMWiki

!!! Hinweis!!!

Das Modul 50_SSChatBot ist zur Zeit in Entwicklung und steht momentan nur als Download aus dem contrib (DS_Starter) zur Verfügung.

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.


Zweckbeschreibung

Mit diesem Modul erfolgt die Integration des Synology Chat Severs in FHEM. Dadurch ist es möglich, Nachrichten aus FHEM an den Chat Server zu senden. Der Synology Chat Server arbeitet ohne eine public Cloud. Dieser Dienst ist vielmehr für den Synology Server Besitzer ein Teil der privaten Cloudlösung.


Vorbereitung

Für den Betrieb des ChatBots wird ein Bot-Token benötigt. Dieser Token wird über die benutzerdefinierte Einbindungsfunktionen erstellt bzw. kann darüber auch verändert werden. Klicken Sie dazu auf das Symbol Profilfoto oben rechts in der aufgerufenen Synology Chat-Applikation und wählen Sie Einbindung.

In Einbindungseinstellungen:

  • "Aus Botliste ausblenden" deaktivieren
  • einen Namen und optionale Beschreibung vergeben
  • den Token aus "Eingehende URL" herauskopieren

Der Token ist der komplette String nach dem Tag "&token=". In diesem Beispiel

.../webapi/entry.cgi?api=SYNO.Chat.External&method=chatbot&version=2&token=%226MyQRHenNXI3w2ttSESi4a5aXnAx6aSR6NPpZdPTRFtKITKanbJN1krt20SNn2rK%22

wäre es der fett markierte Teil.


Definition eines ChatBot-Devices

Die Definition ist einfach:

define <Name> SSChatBot <Adresse Synology Server> [Port] [Protokoll]

Die Angaben Port und Protokoll sind optional, per default werden Port=5000 und Protokoll=http verwendet.

Beispiel mit HTTPS:

define SynChatBot SSChatBot 192.168.2.10 5001 https



Nach der Definition steht nur der Set-Befehl "botToken" zur Verfügung. Damit wird der zuvor erstellte Token im Bot eingefügt. In diesem Beispiel wäre es:

set SynoBot botToken %226MyQRHenNXI3w2ttSESi4a5aXnAx6aSR6NPpZdPTRFtKITKanbJN1krt20SNn2rK%22


War die Definition erfolgreich, springt der state des Device auf "connected". Gleichzeitig werden die im Synology Chat Server verfügbaren User abgefragt und zur weiteren Verwendung im Attribut "recepUser" gespeichert.

Sollten keine User in diesem Attribut erscheinen, bitte auf der Synology kontrollieren ob die gewünschten User die Berechtigung für die Chat-Anwendung besitzen.




Synology Chat User auflisten

Eine Liste der verfügbaren Chat User wird mit

get <Name> chatUserlist

abgerufen. Die erscheinenden Usernamen können als Default-Empfänger im Attribut "recepUser" gespeichert werden. Eine Mehrfachauswahl ist möglich.


Nachrichten an Chatempfänger senden

Mit

set <Name> sendItem <Item>

werden Nachrichten an den oder die Chatempfänger gesendet. Je nach dem zu versendenden Inhalt variiert der Inhalt von <Item>.


  • eine einfache Textnachricht [an user1] senden
text="First line of message to post.\nAlso you can have a second line of message." [users="user1"]
  • einen Link [an user1] senden
text="<https://www.synology.com>" [users="user1"]
  • eine andere Variante einen Link [an user1 und user2] senden
text="Check this!! <https://www.synology.com|Click here> for details!" [users="user1,user2"]
  • eine Datei [an user1 und user2] senden. Die Datei muss über die angegebene fileUrl für den Synology Chat Server verfügbar sein. Die maximale Größe zum Hochladen von Dateien beträgt 32 MB.
text="a fun image" fileUrl="http://imgur.com/xxxxx" [users="user1,user2"]


Die Empfänger [users=] sind optional falls die Empfänger im Attribut "recepUser" bereits angegeben wurden. Ein im "sendItem" angegebener Empfänger hat aber immer Vorrang vor einem eventuell gesetzem Attribut "recepUser".


Beispiel:

 set <Name> sendItem text="letzte Aufnahme von Kamera" fileUrl="http://sdcam.myds.me:8081/surveillance/Hauseingang/20191124AM/Hauseingang-20191124-103741-1574588261.mp4"

Es wird eine Kameraaufnahme an die im Attribut "recepUser" angegebenen Empfänger gesendet.

Links

Forumthread zu diesem Modul:
Synology KnowldgeBase: https://www.synology.com/de-de/knowledgebase/DSM/help/Chat/chat_desc