@crunchip Danke! Bin per Google in diesem Thread gelandet und hab erst mal Dein Skript ausprobiert und mich damit generell erst mit diesem Thema beschäftigt.
Für alle, denen es ähnlich geht: Ich hab aber dann doch ein Video von "EddyD's SmartHome" mit einer sehr genauen Schritt für Schritt-Erklärung gefunden, das ähnlich an die Sache rangeht aber gleich alle Sensoren auf einmal überprüft und im Fehlerfall detaillierte Meldungen an Telegram schickt: https://www.youtube.com/watch?v=ADOvYf9phdw
Hab dies nun so umgesetzt und es funktioniert für mich!
Daher lasse ich zum Rumspielen gleich den fertigen Code hier, vielleicht hilft das ja mal jemandem:
<xml xmlns="https://developers.google.com/blockly/xml">
<variables>
<variable id="e1Z5ztMVm#sK#iROReL?">ObjektIDFrom</variable>
<variable id="6M)z|Bp]A-cP.Z:y^S#2">SensorOnlineXY</variable>
</variables>
<block type="schedule" id="~~O7$kqhbfxqA.)9TBD`" x="-537" y="38">
<field name="SCHEDULE">0 9,12,15,18 * * *</field>
<statement name="STATEMENT">
<block type="controls_forEach" id="O0xF=f_Ne?-v5NB^Jx.M">
<field name="VAR" id="6M)z|Bp]A-cP.Z:y^S#2">SensorOnlineXY</field>
<value name="LIST">
<block type="selector" id="%v|hFTz@j7{?M/-~w8A.">
<field name="TEXT">state[id=zigbee.0.*.temperature]</field>
</block>
</value>
<statement name="DO">
<block type="controls_if" id="IkMujq-zSGk(.Hb}?TgE">
<value name="IF0">
<block type="logic_compare" id="#Wj1uJRI{)`/j|hKl|~2">
<field name="OP">LT</field>
<value name="A">
<block type="get_value_var" id="A)TB(=!~-!ERIXqK6!c4">
<field name="ATTR">ts</field>
<value name="OID">
<shadow type="text" id="?6,V2B]s7YzK!q12Ib+e">
<field name="TEXT"></field>
</shadow>
<block type="variables_get" id="Na$=.b.89i!X2P^+m5H)">
<field name="VAR" id="6M)z|Bp]A-cP.Z:y^S#2">SensorOnlineXY</field>
</block>
</value>
</block>
</value>
<value name="B">
<block type="math_arithmetic" id="Jk^Q%q/Iy#XqH3Ab6i?3">
<field name="OP">MINUS</field>
<value name="A">
<shadow type="math_number" id="YaMxijnxMJ^_^P?=S3mW">
<field name="NUM">1</field>
</shadow>
<block type="time_get" id=":?ykiQPw~U20!AIK_]2c">
<mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
<field name="OPTION">object</field>
</block>
</value>
<value name="B">
<shadow type="math_number" id="af7U[HI!36=LM0RIj2{l">
<field name="NUM">3600000</field>
</shadow>
</value>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="telegram" id="4dtE!?uw[DEYudqEKmR}">
<field name="INSTANCE">.0</field>
<field name="LOG"></field>
<field name="SILENT">FALSE</field>
<field name="PARSEMODE">default</field>
<field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field>
<value name="MESSAGE">
<shadow type="text" id="U^hc20!4GO2~wm=8Y6[d">
<field name="TEXT">text</field>
</shadow>
<block type="text_join" id="^LD7@0jQ|F=F3%sHFIy4" inline="false">
<mutation items="9"></mutation>
<value name="ADD0">
<block type="text" id="IRXxnbf+q7a5TVc=X7-,">
<field name="TEXT">Der Sensor</field>
</block>
</value>
<value name="ADD1">
<block type="text_newline" id="g_(Zv.iUF^Ih%%j=omSV">
<field name="Type">\n</field>
</block>
</value>
<value name="ADD2">
<block type="text_getSubstring" id="4?X@;ym[DccNqWwRPG+|">
<mutation at1="true" at2="true"></mutation>
<field name="WHERE1">FROM_START</field>
<field name="WHERE2">FROM_END</field>
<value name="STRING">
<block type="procedures_callcustomreturn" id="gA91XM3PmM`^O0q?|/+/">
<mutation name="ObjektNameXY">
<arg name="ObjektIDFrom"></arg>
</mutation>
<value name="ARG0">
<block type="variables_get" id="L,ghlcxVz}t4XqTR~~]F">
<field name="VAR" id="6M)z|Bp]A-cP.Z:y^S#2">SensorOnlineXY</field>
</block>
</value>
</block>
</value>
<value name="AT1">
<block type="math_number" id="}YbvCu%mxn#^4P)PEM)d">
<field name="NUM">1</field>
</block>
</value>
<value name="AT2">
<block type="math_number" id="!yAg_uo36!1%.]49Z^[%">
<field name="NUM">-1</field>
</block>
</value>
</block>
</value>
<value name="ADD3">
<block type="text_newline" id="cY1$jppvp~fvaS_Kdi~Y">
<field name="Type">\n</field>
</block>
</value>
<value name="ADD4">
<block type="text" id="|90BK%I{[dwAM+DO4nGO">
<field name="TEXT">war zuletzt online am</field>
</block>
</value>
<value name="ADD5">
<block type="text_newline" id="LO|txr,YNpbq+E^HQ3sb">
<field name="Type">\n</field>
</block>
</value>
<value name="ADD6">
<block type="text_join" id="RDsh*s1xoxtVfo6k(XZP" inline="false">
<mutation items="4"></mutation>
<value name="ADD0">
<block type="convert_from_date" id="m(VsrR{t4Ct}ZR49:{tS">
<mutation xmlns="http://www.w3.org/1999/xhtml" format="true" language="false"></mutation>
<field name="OPTION">custom</field>
<field name="FORMAT">TT.MM.</field>
<value name="VALUE">
<block type="get_value_var" id="S**#R}ejnzfNt%,bdvS/">
<field name="ATTR">ts</field>
<value name="OID">
<shadow type="text" id="SKUdExNrOg*a:*Z~2nz7">
<field name="TEXT"></field>
</shadow>
<block type="variables_get" id="XzHhsi)ltwi)8M/0Xw!E">
<field name="VAR" id="6M)z|Bp]A-cP.Z:y^S#2">SensorOnlineXY</field>
</block>
</value>
</block>
</value>
</block>
</value>
<value name="ADD1">
<block type="text" id="9Q8jE_xj.xEBS(oSCjIY">
<field name="TEXT">um</field>
</block>
</value>
<value name="ADD2">
<block type="convert_from_date" id="X:L?*r;N#.mh(0S~bOqb">
<mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
<field name="OPTION">hh:mm</field>
<value name="VALUE">
<block type="get_value_var" id="OX@icEA4,^I]@$dC5$4b">
<field name="ATTR">ts</field>
<value name="OID">
<shadow type="text">
<field name="TEXT"></field>
</shadow>
<block type="variables_get" id="*lF64/n=AB=3Z*7N6fjB">
<field name="VAR" id="6M)z|Bp]A-cP.Z:y^S#2">SensorOnlineXY</field>
</block>
</value>
</block>
</value>
</block>
</value>
<value name="ADD3">
<block type="text" id="j^cIUO1Ubc2kBmx@2Z:r">
<field name="TEXT">Uhr</field>
</block>
</value>
</block>
</value>
<value name="ADD7">
<block type="text_newline" id="E9Ajf*C{VN`[`7ic5)+`">
<field name="Type">\n</field>
</block>
</value>
<value name="ADD8">
<block type="text" id="XlHc43D__?Zzv:Zfp#te">
<field name="TEXT">Bitte Status prüfen</field>
</block>
</value>
</block>
</value>
</block>
</statement>
</block>
</statement>
</block>
</statement>
</block>
<block type="procedures_defcustomreturn" id="`WVfnqUVQJgSu#?)-i?=" x="-387" y="38">
<mutation statements="false">
<arg name="ObjektIDFrom" varid="e1Z5ztMVm#sK#iROReL?"></arg>
</mutation>
<field name="NAME">ObjektNameXY</field>
<field name="SCRIPT">cmV0dXJuIGdldE9iamVjdChPYmpla3RJREZyb20pLmNvbW1vbi5uYW1lOw==</field>
<comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
</block>
</xml>
Im Besten Fall braucht man nur noch den Wert von "state[id=zigbee.0.*.temperature]" gegen einen eigenen Wert austauschen. Wie man diesen Wert findet, ist ebenfalls im verlinkten Video beschrieben!
Ich habe dann noch bei allen Sensoren den Namen "Temperature" auf "Temperatur Zimmer <xy>" ausgetauscht - das ist nötig, damit es in der Telegram-Meldung eindeutige Namen gibt.
Den im Video beschriebenen Baustein "Nimm Teil ab 1 bis von hinten X Buchstabe" brauche ich dadurch gar nicht, ich hab ihn hier aber zur Vollständigkeit drin gelassen...