NEWS
Synology Chat ...
-
Guten Morgen,
vielen Dank schonmal. Hast du eine Synology? Falls nicht, können wir gerne mal ne Remote Session machen...Interface:
Die Schnittstelle ist lokal, sind mehr oder weniger einfach http requests.Chat-App:
Windows, Mac, Linux, Android + IOS, connecting possiblity via hostname/IP or cloudRequierements:
Ersatz für Telegram
Step 1:
Senden von Bildern und Text von iobroker aus an einen Channel oder Bot
Beispiel:
http://192.168.0.63:5000/webapi/entry.cgi?api=SYNO.Chat.External&method=incoming&version=2&token=HIERSTEHTDERTOKEN&payload={"text": "testtext" , "file_url": "/tmp/snap.jpg"}Step 2:
Erzeugen eines Bots zum Empfangen von Commands von der App zum Steuern von iobroker, das kann sogar in den Einstellungen von Syno-Chat configuriert werden, habe ich gesehen, der Bot sendet dann http-Requests .. ( würde ich zum simple-api-Adapter senden.. )Doku von Synology:
https://kb.synology.com/en-global/DSM/tutorial/How_to_configure_webhooks_and_slash_commands_in_Chat_Integration -
@ilovegym So spontan habe ich da gerade keine Lust drauf
-
@tombox so spontan hätte ich auch gar nicht gekonnt..
Immer mit der Ruhe.. entweder es ergibt sich Lust und Laune und Zeit oder nicht.
-
Ich habe mal was gebaut ... hänge aber noch daran , das er immer das alte Bild sendet, obwohl es aktualisiert wird .
Vielleicht ein Grundbauststein:
-
@glasfaser sieht schon prima aus, bin bis jetzt nur zum Text verschicken gekommen, mit dem Bild hatte ich auch probleme..
-
@ilovegym sagte in Synology Chat ...:
mit dem Bild hatte ich auch probleme..
ich habe es extra schon per writeFile. geschrieben .
Das Bild ist auch aktuell , aber ich komme gerade nicht auf den Blöden Fehler warum er immer das erstellte ( alte ) Bild nimmt . -
@glasfaser mal das alte Bild löschen lassen..?
Ich mach das bei meinen Camera Scripten immer so: ( alle in Javascript )sendTo('telegram.0', {text: '/tmp/snap.jpg', caption: '🔔Es hat jemand geklingelt !🔔'}); exec((['sudo cp /tmp/snap.jpg /mnt/photo/maindoor/maindoor-',formatDate(new Date(), "JJJJ_MM_TT_SS_mm_ss"),'.jpg'].join(''))); exec((['sudo rm /tmp/snap.jpg'] ));
Edit: nicht alles copiert..
-
@glasfaser sagte in Synology Chat ...:
komme gerade nicht auf den Blöden Fehler warum er immer das erstellte ( alte ) Bild nimmt
ist zu dem Zeitpunkt des holens denn wirklich das neue Bild schon geschrieben?
-
Ja , ich habe auch schon mehere timeout im Testscript eingebaut gehabt.
Es wird geholt und geschrieben .
Das Bild ist immer aktuell im Ordner 0_userdata.0 -
@glasfaser hmm ich lass die immer nach /tmp schreiben.. wird es denn auch angelegt_
-
-
da wollte ich mal mitspielen aber bekomme nicht mal dein Blockly importiert...
sollte es laufen ist es echt gut ohne 3rd Anbieter alle Meldungen zu erhalten. -
Versuche nochmal .. habe gerade es neu im Spoiler gesetzt
-
Danke geht jetzt
-
Habe es mal verunstaltet aber es geht... und bekomme auch immer das neue Bild....
Sollte ja auch mit dem Datenpunkt "synology.0.SurveillanceStation.cameras.XXXX.linkSnapshot" gehen nur bei mir geht der gerade nicht<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="0;mm8IOdOmH_wz;%[zPo">Syno_URL</variable> <variable id=",O#!.RmBLV$D$25E`o7/">Syno_Port</variable> <variable id="Eg)M29q*/71]Q#lGjYO;">Chat_token</variable> <variable id="`=hGQ*[0C+pxdf]k]sV]">Nachricht</variable> <variable id="u^a{RwAvq(*-0PK`(`@4">URL_Snapshot</variable> <variable id="yW]q[i/Yfz.,5Z+Vb.a,">URL_ioBroker</variable> <variable type="timeout" id="timeout">timeout</variable> <variable id=")2,KTR||]G~d7xyd!QUZ">send</variable> <variable type="timeout" id="timeout2">timeout2</variable> <variable id="s`TAk}2fZk|p^o$4+d@t">result</variable> </variables> <block type="on_ext" id="[.;w?/pK-.4zyW!UyYBl" x="163" y="88"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="3VnM3u.?JEhM[^n/?X0p"> <field name="oid">0_userdata.0.Testbutton</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="u^*rT,0CM,T_]XeGow}h"> <field name="VAR" id="0;mm8IOdOmH_wz;%[zPo">Syno_URL</field> <value name="VALUE"> <block type="text" id="K]+z|W)qG[s?viD8cP}Q"> <field name="TEXT">192.168.X.XXX</field> </block> </value> <next> <block type="variables_set" id=",|/0@uFO[kJp[pSjyfW~"> <field name="VAR" id=",O#!.RmBLV$D$25E`o7/">Syno_Port</field> <value name="VALUE"> <block type="text" id="YmIhCu8+dV@OO0U[PWx#"> <field name="TEXT">5000</field> </block> </value> <next> <block type="variables_set" id="Z}%_nt.Jz``.b})ifYmx"> <field name="VAR" id="Eg)M29q*/71]Q#lGjYO;">Chat_token</field> <value name="VALUE"> <block type="text" id="[^9?/_`o:[u8zr_:o:`T"> <field name="TEXT">XXXX</field> </block> </value> <next> <block type="variables_set" id="m/`Hepc#d!=l=Yu?E{!6"> <field name="VAR" id="`=hGQ*[0C+pxdf]k]sV]">Nachricht</field> <value name="VALUE"> <block type="text" id="naz0gbDT{!MOKW]c|g8{"> <field name="TEXT">Es klingelt an der Haustuer</field> </block> </value> <next> <block type="variables_set" id="fT*7tvvXRtyOgN,6C,2?"> <field name="VAR" id="u^a{RwAvq(*-0PK`(`@4">URL_Snapshot</field> <value name="VALUE"> <block type="text" id="N]=+,oldD=_C5-KIA*6["> <field name="TEXT">http://192.168.X.XXX/action/snapshot</field> </block> </value> <next> <block type="variables_set" id="Q8SV]H7m2;RCEIl!I32S"> <field name="VAR" id="yW]q[i/Yfz.,5Z+Vb.a,">URL_ioBroker</field> <value name="VALUE"> <block type="text" id="Cw;l)b1L4K(P86t9=T}E"> <field name="TEXT">http://192.168.X.XXX:8082/0_userdata.0/synology/bild.jpg</field> </block> </value> <next> <block type="procedures_callcustomnoreturn" id="J8Bxi=.l@zrRJkcGT150"> <mutation name="Bild_holen"></mutation> <next> <block type="timeouts_cleartimeout" id="1#Qx;^WXsqqn)X|6E2jF"> <field name="NAME">timeout</field> <next> <block type="timeouts_cleartimeout" id="]P6ccsD65Q=LsNc=*[+u"> <field name="NAME">timeout2</field> <next> <block type="timeouts_settimeout" id=",Vl,JVw3kG.#VrRAqd:b"> <field name="NAME">timeout</field> <field name="DELAY">2000</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="variables_set" id="0jj@r*)y_VPw~)q+,3)N"> <field name="VAR" id=")2,KTR||]G~d7xyd!QUZ">send</field> <value name="VALUE"> <block type="text_join" id="Q^/K[ogSU%663c!lHXyf"> <mutation items="11"></mutation> <value name="ADD0"> <block type="text" id="Xp!K%fv+S+C7_K~7ka^c"> <field name="TEXT">http://</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="U#z.iPhHMr!oaBW_.L}$"> <field name="VAR" id="0;mm8IOdOmH_wz;%[zPo">Syno_URL</field> </block> </value> <value name="ADD2"> <block type="text" id="|ITd9=%HnJAhhwgaz3|-"> <field name="TEXT">:</field> </block> </value> <value name="ADD3"> <block type="variables_get" id="_E?oZ@h{l{gD!e{A..FQ"> <field name="VAR" id=",O#!.RmBLV$D$25E`o7/">Syno_Port</field> </block> </value> <value name="ADD4"> <block type="text" id="_^c23]w8ve_wLo_pG;lU"> <field name="TEXT">/webapi/entry.cgi?api=SYNO.Chat.External&method=incoming&version=2&token="</field> </block> </value> <value name="ADD5"> <block type="variables_get" id="p//Pgq^!$p27`+=TYO0t"> <field name="VAR" id="Eg)M29q*/71]Q#lGjYO;">Chat_token</field> </block> </value> <value name="ADD6"> <block type="text" id="zG0}^=D_TXDv9Tjx8afb"> <field name="TEXT">"&payload={"text":"</field> </block> </value> <value name="ADD7"> <block type="variables_get" id="];FJ@4Io`JJ?oyGqhlTU"> <field name="VAR" id="`=hGQ*[0C+pxdf]k]sV]">Nachricht</field> </block> </value> <value name="ADD8"> <block type="text" id="G|.7zo{,tbQ8-Uo83p,)"> <field name="TEXT">", "file_url": "</field> </block> </value> <value name="ADD9"> <block type="variables_get" id="v/9SP;]`*blX7Qt=h~Eu"> <field name="VAR" id="yW]q[i/Yfz.,5Z+Vb.a,">URL_ioBroker</field> </block> </value> <value name="ADD10"> <block type="text" id="z1]{?Af3zI_+#txN*=UR"> <field name="TEXT">"}</field> </block> </value> </block> </value> <next> <block type="timeouts_settimeout" id="dUpl:*/S.GOlt6yy5+E?"> <field name="NAME">timeout2</field> <field name="DELAY">1000</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="request" id="939:VQbG=f:Lt(8,--UH"> <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="true"></mutation> <field name="WITH_STATEMENT">TRUE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text" id="1o%c{S``+)7HEh-A%)U^"> <field name="TEXT">text</field> </shadow> <block type="variables_get" id="vAPQA_YY6uy)ow09^`*K"> <field name="VAR" id=")2,KTR||]G~d7xyd!QUZ">send</field> </block> </value> <statement name="STATEMENT"> <block type="debug" id="qZVJ(@5Ef)}jneJ%Q)_N"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="S=pA)VcRi34L-{?F`HMz"> <field name="TEXT">test</field> </shadow> <block type="variables_get" id="N_1)-!F8nh][M#5EAmb6"> <field name="VAR" id="s`TAk}2fZk|p^o$4+d@t">result</field> </block> </value> </block> </statement> <next> <block type="debug" id="v:z{{P}3]9(0mcj`VrK7"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text"> <field name="TEXT">test</field> </shadow> <block type="variables_get" id="/5v?Iwot|ODZ)QhG%957"> <field name="VAR" id=")2,KTR||]G~d7xyd!QUZ">send</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> <block type="procedures_defcustomnoreturn" id="Fh|~ouZqovH}}ZEi:0P{" x="513" y="337"> <mutation statements="false"></mutation> <field name="NAME">Bild_holen</field> <field name="SCRIPT">DQoNCg0KcmVxdWVzdCgNCg0KICB7DQoNCiAgICB1cmw6IFVSTF9TbmFwc2hvdCAsDQoNCiAgICBlbmNvZGluZzogbnVsbCwNCg0KICB9LA0KDQogIChlcnJvciwgcmVzcG9uc2UsIGJvZHkpID0+IHsNCg0KICAgIGlmICghZXJyb3IgJiYgYm9keSkgew0KDQogICAgICB3cml0ZUZpbGUoIjBfdXNlcmRhdGEuMCIsICIvc3lub2xvZ3kvYmlsZC5qcGciLCBib2R5KTsNCg0KICAgIH0NCg0KICB9DQoNCik7DQo=</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> </xml>
-
@glasfaser said in Synology Chat ...:
timeout, send, timeout2, result
Wie muss das Script denn aussehen, wenn man einfach eine Nachricht ohne Bild schicken will?
-
-
@glasfaser Danke! Es läuft!
-
@glasfaser
Hast du vielleicht eine Idee, warum keine Umlaute (ä, ö) oder zum Beispiel Grad Celcius als Zeichen nicht gehen. Dann kommt im Log immer ein Fehler?
Liebe Grüße -
@tschaeens sagte in Synology Chat ...:
warum keine Umlaute (ä, ö)
Weil der Text noch :
encodeURIComponent()
Die Methode encodeURIComponent() kodiert eine Komponente des Uniform Resource Identifier (URI) indem jedes Vorkommen bestimmter Zeichen durch ein, zwei, drei oder vier Escape-Sequenzen ersetzt werden, die der UTF8-Kodierung des Zeichens entsprechen. Vier Escape-Sequenzen werden nur bei Zeichen bestehend aus zwei "Surrogate"-Zeichen verwendet.
https://www.w3schools.com/jsref/jsref_encodeuricomponent.asp
Klingelt%20jemand%20an%20der%20Haust%C3%BCr
22%20%C2%B0C
warum%20keine%20Umlaute%20(%C3%A4%2C%20%C3%B6)%20und%20kein%2022%20%C2%B0C
geht hiermit :
.