50_SSChatBot - Integration des Synology Chat Servers

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

Vorheriges Thema - Nächstes Thema

DS_Starter

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

Laffer72

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
Raspberry Pi Rev.B, FB7390 (FHEM2FHEM), Sonos, Smarter Coffee
Osram Lightify:2m LED-Streifen, 5m-LED-Streifen, Gartenspot, Surface 28W, Classic E14,E27, Classic RGBW E27, PAR16 GU10, Plug
CUL868:FS20-ST, FS20-DI, FS20-FMS, FS20-ES1
HMUSB:HM-Sec-RHS,HM-Sec-MDIR2
Jeelink868:TX-29-IT, TFA30.315

DS_Starter

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

Laffer72

Hallo Heiko,

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



Raspberry Pi Rev.B, FB7390 (FHEM2FHEM), Sonos, Smarter Coffee
Osram Lightify:2m LED-Streifen, 5m-LED-Streifen, Gartenspot, Surface 28W, Classic E14,E27, Classic RGBW E27, PAR16 GU10, Plug
CUL868:FS20-ST, FS20-DI, FS20-FMS, FS20-ES1
HMUSB:HM-Sec-RHS,HM-Sec-MDIR2
Jeelink868:TX-29-IT, TFA30.315

DS_Starter

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

DS_Starter

Neue Version ist hochgeladen.
Damit geht nun:

set <name> syncSendItem text="<Text>" svg="<SVG-Device>[,<Zoom>][,<Offset>]" [users="user1,user2"]
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Laffer72

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
Raspberry Pi Rev.B, FB7390 (FHEM2FHEM), Sonos, Smarter Coffee
Osram Lightify:2m LED-Streifen, 5m-LED-Streifen, Gartenspot, Surface 28W, Classic E14,E27, Classic RGBW E27, PAR16 GU10, Plug
CUL868:FS20-ST, FS20-DI, FS20-FMS, FS20-ES1
HMUSB:HM-Sec-RHS,HM-Sec-MDIR2
Jeelink868:TX-29-IT, TFA30.315

DS_Starter

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

Thargor

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!

DS_Starter

Hallo Thargor,

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

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

Thargor

 ::)
Oh Mann ... und dabei sind das hier noch nichtmal 80 Seiten ....

Vielen Dank!

Helmuth

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
Wer einen Tippfehler findet darf ihn behalten.

DS_Starter

Hallo Helmuth,

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

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

Helmuth

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
Wer einen Tippfehler findet darf ihn behalten.

DS_Starter

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