NEWS
Telegram in blockly verarbeiten WAN IP abfragen
-
Moin, ich möchte per Telegram an iobroker eine Nachricht senden z.B. "ip" und dann soll folgendes script "ip=$(curl -s https://api.ipify.org) echo "$ip" ausgeführt werden und wieder per telegram versendet werden. Ich scheitere aber schon daran welchen Baustein ich benutzen soll um überhaupt eingehende Telegram Nachrichten zu verarbeiten. Z.b. Text "Lampe" Lampe geht an. Im Inet finde ich nur völlig aufgeblähte Scripte blicke nicht durch
ist vermutlich eine ganz einfache Sache
-
Alles was du per Telegram schickst, landet in diesem Datenpunkt:
Die gesendete Nachricht:
Dort siehst du sogar den Absender der Nachricht.
Darauf kannst du triggern.
-
Hier ein kleines Blockly zum Testen.
(Anstelle des Debug musst du nur deine Steuerung einbauen)
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="nk#tns0J]0y=~-@(pk;a">User</variable> <variable id="AB*IO*|wr||-/wo4+RC5">Nachricht</variable> <variable id="b?,ZBkayTNP~tltUyD5.">Rueckmeldung</variable> </variables> <block type="on_ext" id="qfP:k+w61)k^~,b~={c-" x="57338" y="59013"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="T`gNaN=OC?#]-GILkho2"> <field name="oid">telegram.0.communicate.request</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="YJCeSPOm2Jog@]T.}(vu"> <field name="VAR" id="nk#tns0J]0y=~-@(pk;a">User</field> <value name="VALUE"> <block type="text_getSubstring" id="M7CFM~a1MSK!}j=463^{" inline="false"> <mutation at1="true" at2="true"></mutation> <field name="WHERE1">FROM_START</field> <field name="WHERE2">FROM_START</field> <value name="STRING"> <block type="on_source" id="QO]s;NI)h*:WYty{FkAF"> <field name="ATTR">state.val</field> </block> </value> <value name="AT1"> <block type="math_number" id="{B(W=[_@3]pzK6aPv`:G"> <field name="NUM">2</field> </block> </value> <value name="AT2"> <block type="math_arithmetic" id=".zSo4d?:0^-9eb!w+NWp" inline="false"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="vxfm7`5Kr(Pke?`_@l!i"> <field name="NUM">1</field> </shadow> <block type="text_indexOf" id="5VVDKItWzv(-?hQ+1s}}"> <field name="END">FIRST</field> <value name="VALUE"> <block type="on_source" id="l`^m[HIb`i%oCr6k$Boj"> <field name="ATTR">state.val</field> </block> </value> <value name="FIND"> <shadow type="text" id="f)O#:h]ID:u[L=F+peRU"> <field name="TEXT">abc</field> </shadow> <block type="text" id="+:)[u/6O*{D0,3^:zm;{"> <field name="TEXT">]</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="iJ7ezmTz/gc?rqcM+M|."> <field name="NUM">1</field> </shadow> <block type="math_number" id="*w;q+#R_c!~Xr37Zk*81"> <field name="NUM">1</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="!b~CxG!Zh$#A@,(w~V##"> <field name="VAR" id="AB*IO*|wr||-/wo4+RC5">Nachricht</field> <value name="VALUE"> <block type="text_getSubstring" id=")r8aspAp^G1nXlO%pbwX" inline="false"> <mutation at1="true" at2="false"></mutation> <field name="WHERE1">FROM_START</field> <field name="WHERE2">LAST</field> <value name="STRING"> <block type="on_source" id="%G1R:}t,_b_U|OYEgZmh"> <field name="ATTR">state.val</field> </block> </value> <value name="AT1"> <block type="math_arithmetic" id=")f:LHsw}OJ`a9u]l-haW" inline="false"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="X-;]}%#K/CtR|.=o,z3S"> <field name="NUM">1</field> </shadow> <block type="text_indexOf" id="Z(LNRqSJ9qENkr|feUB4"> <field name="END">FIRST</field> <value name="VALUE"> <block type="on_source" id="1eL8oAvq.@7|S_1V)WXV"> <field name="ATTR">state.val</field> </block> </value> <value name="FIND"> <shadow type="text" id="[aPgT-LPUC09n*s52zd*"> <field name="TEXT">abc</field> </shadow> <block type="text" id="_]%psv4ImnK!l;#h.}?T"> <field name="TEXT">]</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="iZO1Q5=#y9;J_6,I4v,N"> <field name="NUM">1</field> </shadow> <block type="math_number" id="Q(X9s}UDjO[=`.5C!LH:"> <field name="NUM">1</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="n1`HH!Zne+6o/SHcg,bS"> <field name="VAR" id="b?,ZBkayTNP~tltUyD5.">Rueckmeldung</field> <value name="VALUE"> <block type="text" id="as0L~12[JSO-2]4`5N#P"> <field name="TEXT"></field> </block> </value> <next> <block type="comment" id="N?e}z9x:x^|`/1IDG)y/"> <field name="COMMENT">Tee</field> <next> <block type="logic_switch_case" id="#=PG(/,2Q)HCNt(47IyC"> <value name="CONDITION"> <block type="variables_get" id="`8;wQalLxCp.?+s(1N!}"> <field name="VAR" id="AB*IO*|wr||-/wo4+RC5">Nachricht</field> </block> </value> <value name="CASECONDITION0"> <block type="text" id="TT`)WlVkwvBoOO%B;GqP"> <field name="TEXT">tee</field> </block> </value> <statement name="CASE0"> <block type="debug" id="#jTn^CrGYG+oK,sF0-s("> <field name="Severity">error</field> <value name="TEXT"> <shadow type="text" id="b(P2C#{ga,r_p6JhR.UY"> <field name="TEXT">test</field> </shadow> <block type="text" id="cH,207s2c;6vpemkWX!r"> <field name="TEXT">Ich schalte die Tee-Maschine ein</field> </block> </value> <next> <block type="control" id="z{NX(!-9H]^(QJO?Gh7A" disabled="true"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alias.0.Erdgeschoss.Küche.Teemaschine.AN</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="}5akS+|Ox}w`Vdya8AGL"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="variables_set" id="fHQt{V~2@3P)Ls5vSR^t"> <field name="VAR" id="b?,ZBkayTNP~tltUyD5.">Rueckmeldung</field> <value name="VALUE"> <block type="text" id="sL5t_xTW3)TeoA6c=I%G"> <field name="TEXT">Ich schalte die Tee-Maschine ein</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="comment" id="Q=Bw6Jx|NzNowCJHyb@N"> <field name="COMMENT">Rückmeldung</field> <next> <block type="controls_if" id="b%GeaS,qm=z%9#^t8H5E"> <value name="IF0"> <block type="logic_compare" id="|b9%Q@EA2~F,[nV5ggz{"> <field name="OP">NEQ</field> <value name="A"> <block type="variables_get" id="BVzPvxiw~@zaTeHm$O2l"> <field name="VAR" id="b?,ZBkayTNP~tltUyD5.">Rueckmeldung</field> </block> </value> <value name="B"> <block type="text" id="He|=~G-i_X]@Q~ybtHLZ"> <field name="TEXT"></field> </block> </value> </block> </value> <statement name="DO0"> <block type="telegram" id="rQ9^SJbgwx{mo;[|Fm$T"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="ESCAPING">FALSE</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="_jk25[T3LclmD3WT}Iy|"> <field name="TEXT">text</field> </shadow> <block type="variables_get" id="rkMC#=zXfz1Nun(`Evuy"> <field name="VAR" id="b?,ZBkayTNP~tltUyD5.">Rueckmeldung</field> </block> </value> <value name="USERNAME"> <block type="variables_get" id=".yy,4gKoy{2#/O+aK5UR"> <field name="VAR" id="nk#tns0J]0y=~-@(pk;a">User</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </xml>
-
Ein weiteres Beispiel.
Im Script:
Telegram:
-
Danke Dir, eine Lmape bringe ich damit schon mal zum einschalten. Es scheitert jetzt nur noch am ausführen des curl Befehls und das Ergebnis weitersenden an Telegram. Habe es jetzt so gemacht:
-
@waterchill .. wenn du mein Blockly nimmst, kannst du dir den User in der Abfrage sparen.
Mit Curl kenne ich mich leider nicht aus.
-
@skvarel said in Telegram in blockly verarbeiten:
wenn du mein Blockly nimmst, kannst du dir den User in der Abfrage sparen
Dachte ich mir schon, aber ich brauche tatsächlich nur die eine Abfrage. Man kann auch das curl weglassen und so abfragen:
Hilft das weiter?
-
Habs raus, das ganze geht so: