@paul53
Vielen Dank für Deine Erklärungen und Hilfe. Es scheint alles zu funktionieren - kann ich Dir online ein Bier schicken?
Für die Suchfunktion, hier ist meine vollständige Lösung - allerdings noch nicht im Heizbetrieb getestet:
<xml xmlns="https://developers.google.com/blockly/xml">
<variables>
<variable id="MGG-}+S7S,)N`{yVXqDu">dataPoint</variable>
<variable id="pLCU6_yps4))/0vPDO!K">room</variable>
<variable id=".0pF7Tmg..jU{NZH][d!">HeatersInRoom</variable>
<variable id="~Y9B1$#XIRK*6Yec={7I">PossibleHeaterLocations</variable>
</variables>
<block type="procedures_defcustomreturn" id="ch(a~8U*ef4VU*.Y{((k" x="263" y="13">
<mutation statements="false">
<arg name="dataPoint" varid="MGG-}+S7S,)N`{yVXqDu"></arg>
</mutation>
<field name="NAME">ifExistsDP</field>
<field name="SCRIPT">cmV0dXJuIGV4aXN0c1N0YXRlKGRhdGFQb2ludCk7</field>
<comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
</block>
<block type="comment" id="AO0TXi+67uHk7~`pN%6^" x="266" y="77">
<field name="COMMENT">Datenpunkte</field>
<next>
<block type="create" id="Fnj,A_H^X:T+#;mOvzj^" inline="true">
<field name="NAME">Calculated.Ventile.Arbeitszimmer</field>
<value name="VALUE">
<block type="math_number" id="qu?}EiVlC/nsH([Iw/j|">
<field name="NUM">0</field>
</block>
</value>
<next>
<block type="create" id="6%[@o6Nl{eP=s6~3|r$+" inline="true">
<field name="NAME">Calculated.Ventile.Garderobe</field>
<value name="VALUE">
<block type="math_number" id="_aXZ:mK:2a^T%2XY~@a{">
<field name="NUM">0</field>
</block>
</value>
<next>
<block type="create" id="ce5H}YXEPgZ/uaeuTeUa" inline="true">
<field name="NAME">Calculated.Ventile.Esszimmer</field>
<value name="VALUE">
<block type="math_number" id="+S*eFNaH]!%moN((jgjE">
<field name="NUM">0</field>
</block>
</value>
<next>
<block type="create" id="!R`A0CB}u/W%Ao6bwgLV" inline="true">
<field name="NAME">Calculated.Ventile.Toilette</field>
<value name="VALUE">
<block type="math_number" id="@+|h9y.F(_%lf3E#hP7p">
<field name="NUM">0</field>
</block>
</value>
<next>
<block type="create" id="v7|+T{J7-1(g/BY~)D;8" inline="true">
<field name="NAME">Calculated.Ventile.Gaestebad</field>
<value name="VALUE">
<block type="math_number" id=")H)#*apKCf/+)ZJ,vq[X">
<field name="NUM">0</field>
</block>
</value>
<next>
<block type="create" id="=Vq]UR:~)B(@jR)Eg=w6" inline="true">
<field name="NAME">Calculated.Ventile.Lennart</field>
<value name="VALUE">
<block type="math_number" id="Vf7s0gkVb_P${VcLhSx!">
<field name="NUM">0</field>
</block>
</value>
<next>
<block type="create" id="QulQwWaO_7kbJ!tiXU20" inline="true">
<field name="NAME">Calculated.Ventile.Keller</field>
<value name="VALUE">
<block type="math_number" id="a0]Wg*Fu~sU=48tSsuiI">
<field name="NUM">0</field>
</block>
</value>
<next>
<block type="create" id="EcWm*-BUSi#)C]%NzFMn" inline="true">
<field name="NAME">Calculated.Ventile.HWR</field>
<value name="VALUE">
<block type="math_number" id="!5%Gh{rfGBCd9rl`BLr0">
<field name="NUM">0</field>
</block>
</value>
<next>
<block type="create" id="vHJeu.9%6BetC}=6kv0E" inline="true">
<field name="NAME">Calculated.Ventile.Wintergarten</field>
<value name="VALUE">
<block type="math_number" id="WbOaZe~q|ns4di6Gj(Zo">
<field name="NUM">0</field>
</block>
</value>
<next>
<block type="create" id=";^Ji#q)Jgtw;8A^nQ~JV" inline="true">
<field name="NAME">Calculated.Ventile.Kueche</field>
<value name="VALUE">
<block type="math_number" id="|C67l0v{!IKb7WCC#|8z">
<field name="NUM">0</field>
</block>
</value>
<next>
<block type="create" id="!xMibJu6iBw+F+c3u]OZ" inline="true">
<field name="NAME">Calculated.Ventile.Wohnzimmer</field>
<value name="VALUE">
<block type="math_number" id="yC5$_TQJZsI_)=!3Sk%1">
<field name="NUM">0</field>
</block>
</value>
<next>
<block type="create" id="XpM/6=n$.QMpZWD8J=,5" inline="true">
<field name="NAME">Calculated.Ventile.InekeSchlaf</field>
<value name="VALUE">
<block type="math_number" id="Eh0BBgv[??36Zf8Xpj7m">
<field name="NUM">0</field>
</block>
</value>
<next>
<block type="create" id="P;=PS*8Q(LcZ;c+s}b|A" inline="true">
<field name="NAME">Calculated.Ventile.InekeArbeit</field>
<value name="VALUE">
<block type="math_number" id="`O^H6]@Av`lTceI8gB~f">
<field name="NUM">0</field>
</block>
</value>
<next>
<block type="create" id="h,2mm#=lYFC6`bMjewB#" inline="true">
<field name="NAME">Calculated.Ventile.Schlafzimmer</field>
<value name="VALUE">
<block type="math_number" id="hM,)k!@{ombQslB[j~6f">
<field name="NUM">0</field>
</block>
</value>
<next>
<block type="schedule" id="TVp?k`{R*{y26=]@Y(;O">
<field name="SCHEDULE">*/5 * * * *</field>
<statement name="STATEMENT">
<block type="comment" id="3N2}|LHgeo^[6S(cZ~}L">
<field name="COMMENT">Homematic-Stellantriebe abstrahiert mit LinkedDevices</field>
<next>
<block type="controls_forEach" id="~SU$kYoZ]]t7hmM_xyVK">
<field name="VAR" id="pLCU6_yps4))/0vPDO!K">room</field>
<value name="LIST">
<block type="lists_create_with" id="r!x1ueY%Gcz5`O{MPrGL" inline="true">
<mutation items="14"></mutation>
<value name="ADD0">
<block type="text" id="LC%@*-WuKZEzQ(~aKz.i">
<field name="TEXT">Arbeitszimmer</field>
</block>
</value>
<value name="ADD1">
<block type="text" id="Oea66]?8#8(-jO/[*QEa">
<field name="TEXT">Garderobe</field>
</block>
</value>
<value name="ADD2">
<block type="text" id="$lI5Xu3l!z)62Wto2;K=">
<field name="TEXT">Esszimmer</field>
</block>
</value>
<value name="ADD3">
<block type="text" id="s:FkHLgK6%E@gcnbt(ha">
<field name="TEXT">Toilette</field>
</block>
</value>
<value name="ADD4">
<block type="text" id="ZX!MQenz=}Z6W=,oTy[2">
<field name="TEXT">Gaestebad</field>
</block>
</value>
<value name="ADD5">
<block type="text" id="Lr~w/Q3jZ:PC2(K*)EK@">
<field name="TEXT">Lennart</field>
</block>
</value>
<value name="ADD6">
<block type="text" id="@sK-D{lGUI4;M3#9g%!R">
<field name="TEXT">Keller</field>
</block>
</value>
<value name="ADD7">
<block type="text" id="NN3$_1Hio!}IEqgZW|gN">
<field name="TEXT">HWR</field>
</block>
</value>
<value name="ADD8">
<block type="text" id="?]]}/EE?0Y)Zrvbf/Gj$">
<field name="TEXT">Wintergarten</field>
</block>
</value>
<value name="ADD9">
<block type="text" id="y#-`FP$Vk5+S8;)DAFwP">
<field name="TEXT">Kueche</field>
</block>
</value>
<value name="ADD10">
<block type="text" id="2TGFVt`NV)J_4Uh_uP*8">
<field name="TEXT">Wohnzimmer</field>
</block>
</value>
<value name="ADD11">
<block type="text" id="Hah~A,#`8^454J.{tjP^">
<field name="TEXT">Schlafzimmer</field>
</block>
</value>
<value name="ADD12">
<block type="text" id="b=AH~cdUn]E5(.,8TMCp">
<field name="TEXT">InekeArbeit</field>
</block>
</value>
<value name="ADD13">
<block type="text" id="GX9TWC//LITHAHHz0/45">
<field name="TEXT">InekeSchlaf</field>
</block>
</value>
</block>
</value>
<statement name="DO">
<block type="comment" id="}-N``Wn2IPO7s5_sU0;u">
<field name="COMMENT">Speichert existierende Heizungen im Raum "room"</field>
<next>
<block type="variables_set" id="T`fu7aRzdmwAC)g:c0xg">
<field name="VAR" id=".0pF7Tmg..jU{NZH][d!">HeatersInRoom</field>
<value name="VALUE">
<block type="lists_create_with" id="x}:t**!@%x*`baCIOig@">
<mutation items="0"></mutation>
</block>
</value>
<next>
<block type="comment" id="bB6+SG=7uUy%%tJtfx78">
<field name="COMMENT">Mögliche Lokationen = Namens-Schema</field>
<next>
<block type="controls_forEach" id="r~YU2*sw1)_~oC!VJG1.">
<field name="VAR" id="~Y9B1$#XIRK*6Yec={7I">PossibleHeaterLocations</field>
<value name="LIST">
<block type="lists_create_with" id="u|dU9ERxw0)[O$:4(k,1" inline="true">
<mutation items="4"></mutation>
<value name="ADD0">
<block type="text" id="+$uK:Y+~Yj=J+$H*X|h`">
<field name="TEXT">Heizung</field>
</block>
</value>
<value name="ADD1">
<block type="text" id="w4*7rLdBpI5GrMnyGGQI">
<field name="TEXT">Heizung.Links</field>
</block>
</value>
<value name="ADD2">
<block type="text" id="CICMG.YN.v`1=STjjwZd">
<field name="TEXT">Heizung.Mitte</field>
</block>
</value>
<value name="ADD3">
<block type="text" id="oY`:lb!lfjFd$XS??#Yw">
<field name="TEXT">Heizung.Rechts</field>
</block>
</value>
</block>
</value>
<statement name="DO">
<block type="controls_if" id="S?sNHyr6SV{Qj?U;GgJ#">
<value name="IF0">
<block type="procedures_callcustomreturn" id="hk)f98:c{;z#Xw_[G~36" inline="true">
<mutation name="ifExistsDP">
<arg name="dataPoint"></arg>
</mutation>
<value name="ARG0">
<block type="text_join" id="b4tN,@0CRT1OIIo2,iL=" inline="false">
<mutation items="5"></mutation>
<value name="ADD0">
<block type="text" id="$[f@oD3LuFGSgEcQ*EOe">
<field name="TEXT">linkeddevices.0.LD.Aktor.</field>
</block>
</value>
<value name="ADD1">
<block type="variables_get" id="vBj2Ftg%LA=Y6CvBE.3^">
<field name="VAR" id="pLCU6_yps4))/0vPDO!K">room</field>
</block>
</value>
<value name="ADD2">
<block type="text" id="#TfI+YAl-7-wT#,+cF$`">
<field name="TEXT">.</field>
</block>
</value>
<value name="ADD3">
<block type="variables_get" id="ADswfrDl;`cSEm4}C#=O">
<field name="VAR" id="~Y9B1$#XIRK*6Yec={7I">PossibleHeaterLocations</field>
</block>
</value>
<value name="ADD4">
<block type="text" id="iNTp{g,?PC~NH{2^xb/j">
<field name="TEXT">.VALVE_STATE</field>
</block>
</value>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="lists_setIndex" id="jLOhHkj3UczYQ}~CV-Di">
<mutation at="false"></mutation>
<field name="MODE">INSERT</field>
<field name="WHERE">LAST</field>
<value name="LIST">
<block type="variables_get" id="8Mja#aBasQs!T~f+I/)!">
<field name="VAR" id=".0pF7Tmg..jU{NZH][d!">HeatersInRoom</field>
</block>
</value>
<value name="TO">
<block type="get_value_var" id="mduIHGxsg|0QtLjMzGr0">
<field name="ATTR">val</field>
<value name="OID">
<shadow type="text" id="V[)emyr+=)iK9O*e~Y#t">
<field name="TEXT"></field>
</shadow>
<block type="text_join" id="lQM`y/#@H8b*UjKWLW`E" inline="false">
<mutation items="5"></mutation>
<value name="ADD0">
<block type="text" id=")c|?c2oVk*TAA:C/wM{K">
<field name="TEXT">linkeddevices.0.LD.Aktor.</field>
</block>
</value>
<value name="ADD1">
<block type="variables_get" id="JmYv=}2lBDZdU6kkK#]o">
<field name="VAR" id="pLCU6_yps4))/0vPDO!K">room</field>
</block>
</value>
<value name="ADD2">
<block type="text" id="+(7AM8WMZa3:RdV35mdc">
<field name="TEXT">.</field>
</block>
</value>
<value name="ADD3">
<block type="variables_get" id="_x_nfyAw%P]a7IL#Gdv/">
<field name="VAR" id="~Y9B1$#XIRK*6Yec={7I">PossibleHeaterLocations</field>
</block>
</value>
<value name="ADD4">
<block type="text" id="gjJYYYi{(_m$b!zOEom3">
<field name="TEXT">.VALVE_STATE</field>
</block>
</value>
</block>
</value>
</block>
</value>
</block>
</statement>
</block>
</statement>
<next>
<block type="control_ex" id="]G/mPJ@)RD3Moj!uGu!y">
<field name="TYPE">false</field>
<field name="CLEAR_RUNNING">FALSE</field>
<value name="OID">
<shadow type="field_oid" id="AXY{5i3Uqe~zOcX;s,2k">
<field name="oid">javascript.0.Calculated.Ventile.Arbeitszimmer</field>
</shadow>
<block type="text_join" id="c26f$0GrwHL~Qk71ZuP," inline="true">
<mutation items="2"></mutation>
<value name="ADD0">
<block type="text" id="/J?V:X_UOm])~K!kkV}[">
<field name="TEXT">Calculated.Ventile.</field>
</block>
</value>
<value name="ADD1">
<block type="variables_get" id="~88T*VTqN2$8FM:,0Am/">
<field name="VAR" id="pLCU6_yps4))/0vPDO!K">room</field>
</block>
</value>
</block>
</value>
<value name="VALUE">
<shadow type="logic_boolean" id=":bb*b*EnN6op|-]%;tS4">
<field name="BOOL">TRUE</field>
</shadow>
<block type="math_on_list" id=";mCpvB)K+}W%6pE6q,Y1">
<mutation op="AVERAGE"></mutation>
<field name="OP">AVERAGE</field>
<value name="LIST">
<block type="variables_get" id="7Kpt?*SS9O.|H!7?,d03">
<field name="VAR" id=".0pF7Tmg..jU{NZH][d!">HeatersInRoom</field>
</block>
</value>
</block>
</value>
<value name="DELAY_MS">
<shadow type="math_number" id="XTCwP#E$vE[Awl/-h3U0">
<field name="NUM">0</field>
</shadow>
</value>
</block>
</next>
</block>
</next>
</block>
</next>
</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>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</xml>
Danke, -MN