NEWS
[Gelöst] Gibt es eine Logik-Abfrage "Existiert DP"?
-
Moin Moin,
ich versuche, eine generisches Blockly-Script für verschiedene Szenarien zu bauen.
Beispiel: Mittelwert der Ventilstände aller Heizungen in einem Raum. Nun kann es 1-4 Heizungen ("Heizung", "Heizung.Links", "Heizung.Mitte", "Heizung.Rechts") je Raum geben.
Wenn ich "Mittelwert der"-Liste und "Erzeuge Liste mit" verwende, kann ich Datenpunkte auswählen. Baue ich diese mit "Wert von" und Textfeldern zusammen, könnte ich alle vier Varianten nehmen:
<block xmlns="https://developers.google.com/blockly/xml" type="math_on_list" id=";mCpvB)K+}W%6pE6q,Y1" x="63" y="1413"> <mutation op="AVERAGE"></mutation> <field name="OP">AVERAGE</field> <value name="LIST"> <block type="lists_create_with" id=":p:oUY[{e171hUyS/${e"> <mutation items="4"></mutation> <value name="ADD0"> <block type="get_value_var" id="Lm*f{u*86zI=9cHMkm06"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text"> <field name="TEXT"></field> </shadow> <block type="text_join" id="Z{#^Mk9WZ.8eyv}POy1S" inline="true"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="BfuNqkf*70SGt)qfPgv{"> <field name="TEXT">linkeddevices.0.LD.Ventile.</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="I19e9=zM3c=TLJ4^}y}z"> <field name="VAR" id="vV[)(Yd^*q]eY_MvSScu">ThisRoom</field> </block> </value> <value name="ADD2"> <block type="text" id="_@b3}M!iu/7$TGa$Q=G+"> <field name="TEXT">.Heizung</field> </block> </value> </block> </value> </block> </value> <value name="ADD1"> <block type="get_value_var" id="g39KKo_Kr)9kF7kl1hAf"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text"> <field name="TEXT"></field> </shadow> <block type="text_join" id="X%}=/pM2ye|uQ7)Ima_R" inline="true"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="|kmY%eE4JeILw?:|iUQw"> <field name="TEXT">linkeddevices.0.LD.Ventile.</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="f}fWV1EP@q!vnO~b3i8%"> <field name="VAR" id="vV[)(Yd^*q]eY_MvSScu">ThisRoom</field> </block> </value> <value name="ADD2"> <block type="text" id="t1-vz8qpCt`vwsas$(.I"> <field name="TEXT">.Heizung.Links</field> </block> </value> </block> </value> </block> </value> <value name="ADD2"> <block type="get_value_var" id="HeP/26+o=PDqk]V}_9C!"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text"> <field name="TEXT"></field> </shadow> <block type="text_join" id="ei./xytp!``TIsH(]),r" inline="true"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="KhKqhhYYxZ+#[7.SL4zC"> <field name="TEXT">linkeddevices.0.LD.Ventile.</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="2a87Eo|`1c65{]D%!fn="> <field name="VAR" id="vV[)(Yd^*q]eY_MvSScu">ThisRoom</field> </block> </value> <value name="ADD2"> <block type="text" id="1i9B%NizuhupBc@?:sTv"> <field name="TEXT">.Heizung.Mitte</field> </block> </value> </block> </value> </block> </value> <value name="ADD3"> <block type="get_value_var" id="#BGp#Xw-9K$e5{k2+b=-"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text"> <field name="TEXT"></field> </shadow> <block type="text_join" id="Wa(K.L_vuMm3HOX+[bn!" inline="true"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="DyiCSRXuSzGE:U.fINsk"> <field name="TEXT">linkeddevices.0.LD.Ventile.</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="y:,=@Ee2PgA!]9BzW8e-"> <field name="VAR" id="vV[)(Yd^*q]eY_MvSScu">ThisRoom</field> </block> </value> <value name="ADD2"> <block type="text" id="v=7f@XCPmP%yon-1}}?c"> <field name="TEXT">.Heizung.Rechts</field> </block> </value> </block> </value> </block> </value> </block> </value> </block> <block xmlns="https://developers.google.com/blockly/xml" type="math_on_list" id=";mCpvB)K+}W%6pE6q,Y1" x="63" y="1413"> <mutation op="AVERAGE"></mutation> <field name="OP">AVERAGE</field> <value name="LIST"> <block type="lists_create_with" id=":p:oUY[{e171hUyS/${e"> <mutation items="4"></mutation> <value name="ADD0"> <block type="get_value_var" id="Lm*f{u*86zI=9cHMkm06"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text"> <field name="TEXT"></field> </shadow> <block type="text_join" id="Z{#^Mk9WZ.8eyv}POy1S" inline="true"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="BfuNqkf*70SGt)qfPgv{"> <field name="TEXT">linkeddevices.0.LD.Ventile.</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="I19e9=zM3c=TLJ4^}y}z"> <field name="VAR" id="vV[)(Yd^*q]eY_MvSScu">ThisRoom</field> </block> </value> <value name="ADD2"> <block type="text" id="_@b3}M!iu/7$TGa$Q=G+"> <field name="TEXT">.Heizung</field> </block> </value> </block> </value> </block> </value> <value name="ADD1"> <block type="get_value_var" id="g39KKo_Kr)9kF7kl1hAf"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text"> <field name="TEXT"></field> </shadow> <block type="text_join" id="X%}=/pM2ye|uQ7)Ima_R" inline="true"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="|kmY%eE4JeILw?:|iUQw"> <field name="TEXT">linkeddevices.0.LD.Ventile.</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="f}fWV1EP@q!vnO~b3i8%"> <field name="VAR" id="vV[)(Yd^*q]eY_MvSScu">ThisRoom</field> </block> </value> <value name="ADD2"> <block type="text" id="t1-vz8qpCt`vwsas$(.I"> <field name="TEXT">.Heizung.Links</field> </block> </value> </block> </value> </block> </value> <value name="ADD2"> <block type="get_value_var" id="HeP/26+o=PDqk]V}_9C!"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text"> <field name="TEXT"></field> </shadow> <block type="text_join" id="ei./xytp!``TIsH(]),r" inline="true"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="KhKqhhYYxZ+#[7.SL4zC"> <field name="TEXT">linkeddevices.0.LD.Ventile.</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="2a87Eo|`1c65{]D%!fn="> <field name="VAR" id="vV[)(Yd^*q]eY_MvSScu">ThisRoom</field> </block> </value> <value name="ADD2"> <block type="text" id="1i9B%NizuhupBc@?:sTv"> <field name="TEXT">.Heizung.Mitte</field> </block> </value> </block> </value> </block> </value> <value name="ADD3"> <block type="get_value_var" id="#BGp#Xw-9K$e5{k2+b=-"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text"> <field name="TEXT"></field> </shadow> <block type="text_join" id="Wa(K.L_vuMm3HOX+[bn!" inline="true"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="DyiCSRXuSzGE:U.fINsk"> <field name="TEXT">linkeddevices.0.LD.Ventile.</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="y:,=@Ee2PgA!]9BzW8e-"> <field name="VAR" id="vV[)(Yd^*q]eY_MvSScu">ThisRoom</field> </block> </value> <value name="ADD2"> <block type="text" id="v=7f@XCPmP%yon-1}}?c"> <field name="TEXT">.Heizung.Rechts</field> </block> </value> </block> </value> </block> </value> </block> </value> </block>Aber da nicht immer alle vier Heizungen in einem Raum existieren, erhalte ich Fehlermeldungen.
Gibt es eine Möglichkeit abzufragen, ob der Datenpunkt existiert?
Danke, -MN
-
Moin Moin,
ich versuche, eine generisches Blockly-Script für verschiedene Szenarien zu bauen.
Beispiel: Mittelwert der Ventilstände aller Heizungen in einem Raum. Nun kann es 1-4 Heizungen ("Heizung", "Heizung.Links", "Heizung.Mitte", "Heizung.Rechts") je Raum geben.
Wenn ich "Mittelwert der"-Liste und "Erzeuge Liste mit" verwende, kann ich Datenpunkte auswählen. Baue ich diese mit "Wert von" und Textfeldern zusammen, könnte ich alle vier Varianten nehmen:
<block xmlns="https://developers.google.com/blockly/xml" type="math_on_list" id=";mCpvB)K+}W%6pE6q,Y1" x="63" y="1413"> <mutation op="AVERAGE"></mutation> <field name="OP">AVERAGE</field> <value name="LIST"> <block type="lists_create_with" id=":p:oUY[{e171hUyS/${e"> <mutation items="4"></mutation> <value name="ADD0"> <block type="get_value_var" id="Lm*f{u*86zI=9cHMkm06"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text"> <field name="TEXT"></field> </shadow> <block type="text_join" id="Z{#^Mk9WZ.8eyv}POy1S" inline="true"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="BfuNqkf*70SGt)qfPgv{"> <field name="TEXT">linkeddevices.0.LD.Ventile.</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="I19e9=zM3c=TLJ4^}y}z"> <field name="VAR" id="vV[)(Yd^*q]eY_MvSScu">ThisRoom</field> </block> </value> <value name="ADD2"> <block type="text" id="_@b3}M!iu/7$TGa$Q=G+"> <field name="TEXT">.Heizung</field> </block> </value> </block> </value> </block> </value> <value name="ADD1"> <block type="get_value_var" id="g39KKo_Kr)9kF7kl1hAf"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text"> <field name="TEXT"></field> </shadow> <block type="text_join" id="X%}=/pM2ye|uQ7)Ima_R" inline="true"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="|kmY%eE4JeILw?:|iUQw"> <field name="TEXT">linkeddevices.0.LD.Ventile.</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="f}fWV1EP@q!vnO~b3i8%"> <field name="VAR" id="vV[)(Yd^*q]eY_MvSScu">ThisRoom</field> </block> </value> <value name="ADD2"> <block type="text" id="t1-vz8qpCt`vwsas$(.I"> <field name="TEXT">.Heizung.Links</field> </block> </value> </block> </value> </block> </value> <value name="ADD2"> <block type="get_value_var" id="HeP/26+o=PDqk]V}_9C!"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text"> <field name="TEXT"></field> </shadow> <block type="text_join" id="ei./xytp!``TIsH(]),r" inline="true"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="KhKqhhYYxZ+#[7.SL4zC"> <field name="TEXT">linkeddevices.0.LD.Ventile.</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="2a87Eo|`1c65{]D%!fn="> <field name="VAR" id="vV[)(Yd^*q]eY_MvSScu">ThisRoom</field> </block> </value> <value name="ADD2"> <block type="text" id="1i9B%NizuhupBc@?:sTv"> <field name="TEXT">.Heizung.Mitte</field> </block> </value> </block> </value> </block> </value> <value name="ADD3"> <block type="get_value_var" id="#BGp#Xw-9K$e5{k2+b=-"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text"> <field name="TEXT"></field> </shadow> <block type="text_join" id="Wa(K.L_vuMm3HOX+[bn!" inline="true"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="DyiCSRXuSzGE:U.fINsk"> <field name="TEXT">linkeddevices.0.LD.Ventile.</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="y:,=@Ee2PgA!]9BzW8e-"> <field name="VAR" id="vV[)(Yd^*q]eY_MvSScu">ThisRoom</field> </block> </value> <value name="ADD2"> <block type="text" id="v=7f@XCPmP%yon-1}}?c"> <field name="TEXT">.Heizung.Rechts</field> </block> </value> </block> </value> </block> </value> </block> </value> </block> <block xmlns="https://developers.google.com/blockly/xml" type="math_on_list" id=";mCpvB)K+}W%6pE6q,Y1" x="63" y="1413"> <mutation op="AVERAGE"></mutation> <field name="OP">AVERAGE</field> <value name="LIST"> <block type="lists_create_with" id=":p:oUY[{e171hUyS/${e"> <mutation items="4"></mutation> <value name="ADD0"> <block type="get_value_var" id="Lm*f{u*86zI=9cHMkm06"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text"> <field name="TEXT"></field> </shadow> <block type="text_join" id="Z{#^Mk9WZ.8eyv}POy1S" inline="true"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="BfuNqkf*70SGt)qfPgv{"> <field name="TEXT">linkeddevices.0.LD.Ventile.</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="I19e9=zM3c=TLJ4^}y}z"> <field name="VAR" id="vV[)(Yd^*q]eY_MvSScu">ThisRoom</field> </block> </value> <value name="ADD2"> <block type="text" id="_@b3}M!iu/7$TGa$Q=G+"> <field name="TEXT">.Heizung</field> </block> </value> </block> </value> </block> </value> <value name="ADD1"> <block type="get_value_var" id="g39KKo_Kr)9kF7kl1hAf"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text"> <field name="TEXT"></field> </shadow> <block type="text_join" id="X%}=/pM2ye|uQ7)Ima_R" inline="true"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="|kmY%eE4JeILw?:|iUQw"> <field name="TEXT">linkeddevices.0.LD.Ventile.</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="f}fWV1EP@q!vnO~b3i8%"> <field name="VAR" id="vV[)(Yd^*q]eY_MvSScu">ThisRoom</field> </block> </value> <value name="ADD2"> <block type="text" id="t1-vz8qpCt`vwsas$(.I"> <field name="TEXT">.Heizung.Links</field> </block> </value> </block> </value> </block> </value> <value name="ADD2"> <block type="get_value_var" id="HeP/26+o=PDqk]V}_9C!"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text"> <field name="TEXT"></field> </shadow> <block type="text_join" id="ei./xytp!``TIsH(]),r" inline="true"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="KhKqhhYYxZ+#[7.SL4zC"> <field name="TEXT">linkeddevices.0.LD.Ventile.</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="2a87Eo|`1c65{]D%!fn="> <field name="VAR" id="vV[)(Yd^*q]eY_MvSScu">ThisRoom</field> </block> </value> <value name="ADD2"> <block type="text" id="1i9B%NizuhupBc@?:sTv"> <field name="TEXT">.Heizung.Mitte</field> </block> </value> </block> </value> </block> </value> <value name="ADD3"> <block type="get_value_var" id="#BGp#Xw-9K$e5{k2+b=-"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text"> <field name="TEXT"></field> </shadow> <block type="text_join" id="Wa(K.L_vuMm3HOX+[bn!" inline="true"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="DyiCSRXuSzGE:U.fINsk"> <field name="TEXT">linkeddevices.0.LD.Ventile.</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="y:,=@Ee2PgA!]9BzW8e-"> <field name="VAR" id="vV[)(Yd^*q]eY_MvSScu">ThisRoom</field> </block> </value> <value name="ADD2"> <block type="text" id="v=7f@XCPmP%yon-1}}?c"> <field name="TEXT">.Heizung.Rechts</field> </block> </value> </block> </value> </block> </value> </block> </value> </block>Aber da nicht immer alle vier Heizungen in einem Raum existieren, erhalte ich Fehlermeldungen.
Gibt es eine Möglichkeit abzufragen, ob der Datenpunkt existiert?
Danke, -MN
@Morgennebel Moin
das geht z.B. mit:
if (!getObject(Objektname)) {... } // Wenn der Datenpunkt nicht existiert, dann mache ... -
suche benutzt ???
siehe:
https://forum.iobroker.net/topic/27985/prüfen-ob-datenpunkt-existiert -
@Morgennebel Moin
das geht z.B. mit:
if (!getObject(Objektname)) {... } // Wenn der Datenpunkt nicht existiert, dann mache ... -
@a200 sagte:
das geht z.B. mit:
getObject(id) erzeugt bei nicht vorhandenem Objekt eine Warnung. Besser fragt man Datenpunkte ab mit
if(existsState(id)) {...}Hierbei wird überprüft, ob ein Zustand (state) existiert.
Danke für die Hilfe.
Soweit bin ich gekommen:
<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> </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">aWYgKGV4aXN0c1N0YXRlKGRhdGFQb2ludCkpIHsNCiAgICByZXR1cm4gZ2V0U3RhdGUoZGF0YVBvaW50KS52YWw7DQp9IGVsc2Ugew0KICAgIHJldHVybiBudWxsOw0KfQ0K</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="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="11"></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> </block> </value> <statement name="DO"> <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="lists_create_with" id=":p:oUY[{e171hUyS/${e"> <mutation items="4"></mutation> <value name="ADD0"> <block type="get_value_var" id="?zbi%f.g%Z@QVlc;}680" inline="false"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text" id="HV4X;}g{q4?2AqfQT!gs"> <field name="TEXT"></field> </shadow> <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="3"></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="iNTp{g,?PC~NH{2^xb/j"> <field name="TEXT">.Heizung.VALVE_STATE</field> </block> </value> </block> </value> </block> </value> </block> </value> <value name="ADD1"> <block type="get_value_var" id="mduIHGxsg|0QtLjMzGr0" inline="false"> <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="procedures_callcustomreturn" id="daK+zS6w)!-}!4wgWn$U" inline="true"> <mutation name="ifExistsDP"> <arg name="dataPoint"></arg> </mutation> <value name="ARG0"> <block type="text_join" id="1y0S]R#F=R}a@)KX@Vr3" inline="false"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="w:El-?2xf,DQT#=OJ973"> <field name="TEXT">linkeddevices.0.LD.Aktor.</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="C)O00-BRe42Fx~V_Q=9y"> <field name="VAR" id="pLCU6_yps4))/0vPDO!K">room</field> </block> </value> <value name="ADD2"> <block type="text" id="g$hLlL17jJO`UM@b*xnq"> <field name="TEXT">.Heizung.Links.VALVE_STATE</field> </block> </value> </block> </value> </block> </value> </block> </value> <value name="ADD2"> <block type="get_value_var" id=";O+9ZHiTJ=2D#qR6[A_P" inline="false"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text" id="wmE|g.w(eKH^.b%p).9("> <field name="TEXT"></field> </shadow> <block type="procedures_callcustomreturn" id="D}*]1PZIDscgWbltBLEU" inline="true"> <mutation name="ifExistsDP"> <arg name="dataPoint"></arg> </mutation> <value name="ARG0"> <block type="text_join" id="[eu_|ty`p,pLIBW_|LHV" inline="false"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="/{(cu61/TwP8;m3f`MIu"> <field name="TEXT">linkeddevices.0.LD.Aktor.</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="kGT$QMAo+hy7~i-tz%Dg"> <field name="VAR" id="pLCU6_yps4))/0vPDO!K">room</field> </block> </value> <value name="ADD2"> <block type="text" id="QX4cvDLgW*#62d[tY=:^"> <field name="TEXT">.Heizung.Mitte.VALVE_STATE</field> </block> </value> </block> </value> </block> </value> </block> </value> <value name="ADD3"> <block type="get_value_var" id="~mBqACzTMDXJLSRTtPU9" inline="false"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text" id="*K|6VQL%ujYYC,Uvb;]6"> <field name="TEXT"></field> </shadow> <block type="procedures_callcustomreturn" id="v+@X~QAC8OSzQktOk=00" inline="true"> <mutation name="ifExistsDP"> <arg name="dataPoint"></arg> </mutation> <value name="ARG0"> <block type="text_join" id="1J$0^kKH25LSjDf03Q4A" inline="false"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="K}hp25Gs}5-/%_skdmu/"> <field name="TEXT">linkeddevices.0.LD.Aktor.</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="#VqoZjxYN:/pG;5|Pawz"> <field name="VAR" id="pLCU6_yps4))/0vPDO!K">room</field> </block> </value> <value name="ADD2"> <block type="text" id="qaJ6J,#wY/{wTVL~z*_~"> <field name="TEXT">.Heizung.Rechts.VALVE_STATE</field> </block> </value> </block> </value> </block> </value> </block> </value> </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> </statement> </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>Allerdings gibt dies immer noch Fehler: javascript.0 (29950) at Object.<anonymous> (script.js.Heizung.Ventildurchschnitt_alle_Räume:51:72)
Hmmm, vermutlich ist dies wieder mein Anfängerfehler und ich verwechsle ObjekteID mit anderen mir noch fremden Termini in IObroker...
Danke, -MN
-
Danke für die Hilfe.
Soweit bin ich gekommen:
<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> </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">aWYgKGV4aXN0c1N0YXRlKGRhdGFQb2ludCkpIHsNCiAgICByZXR1cm4gZ2V0U3RhdGUoZGF0YVBvaW50KS52YWw7DQp9IGVsc2Ugew0KICAgIHJldHVybiBudWxsOw0KfQ0K</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="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="11"></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> </block> </value> <statement name="DO"> <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="lists_create_with" id=":p:oUY[{e171hUyS/${e"> <mutation items="4"></mutation> <value name="ADD0"> <block type="get_value_var" id="?zbi%f.g%Z@QVlc;}680" inline="false"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text" id="HV4X;}g{q4?2AqfQT!gs"> <field name="TEXT"></field> </shadow> <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="3"></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="iNTp{g,?PC~NH{2^xb/j"> <field name="TEXT">.Heizung.VALVE_STATE</field> </block> </value> </block> </value> </block> </value> </block> </value> <value name="ADD1"> <block type="get_value_var" id="mduIHGxsg|0QtLjMzGr0" inline="false"> <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="procedures_callcustomreturn" id="daK+zS6w)!-}!4wgWn$U" inline="true"> <mutation name="ifExistsDP"> <arg name="dataPoint"></arg> </mutation> <value name="ARG0"> <block type="text_join" id="1y0S]R#F=R}a@)KX@Vr3" inline="false"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="w:El-?2xf,DQT#=OJ973"> <field name="TEXT">linkeddevices.0.LD.Aktor.</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="C)O00-BRe42Fx~V_Q=9y"> <field name="VAR" id="pLCU6_yps4))/0vPDO!K">room</field> </block> </value> <value name="ADD2"> <block type="text" id="g$hLlL17jJO`UM@b*xnq"> <field name="TEXT">.Heizung.Links.VALVE_STATE</field> </block> </value> </block> </value> </block> </value> </block> </value> <value name="ADD2"> <block type="get_value_var" id=";O+9ZHiTJ=2D#qR6[A_P" inline="false"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text" id="wmE|g.w(eKH^.b%p).9("> <field name="TEXT"></field> </shadow> <block type="procedures_callcustomreturn" id="D}*]1PZIDscgWbltBLEU" inline="true"> <mutation name="ifExistsDP"> <arg name="dataPoint"></arg> </mutation> <value name="ARG0"> <block type="text_join" id="[eu_|ty`p,pLIBW_|LHV" inline="false"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="/{(cu61/TwP8;m3f`MIu"> <field name="TEXT">linkeddevices.0.LD.Aktor.</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="kGT$QMAo+hy7~i-tz%Dg"> <field name="VAR" id="pLCU6_yps4))/0vPDO!K">room</field> </block> </value> <value name="ADD2"> <block type="text" id="QX4cvDLgW*#62d[tY=:^"> <field name="TEXT">.Heizung.Mitte.VALVE_STATE</field> </block> </value> </block> </value> </block> </value> </block> </value> <value name="ADD3"> <block type="get_value_var" id="~mBqACzTMDXJLSRTtPU9" inline="false"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text" id="*K|6VQL%ujYYC,Uvb;]6"> <field name="TEXT"></field> </shadow> <block type="procedures_callcustomreturn" id="v+@X~QAC8OSzQktOk=00" inline="true"> <mutation name="ifExistsDP"> <arg name="dataPoint"></arg> </mutation> <value name="ARG0"> <block type="text_join" id="1J$0^kKH25LSjDf03Q4A" inline="false"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="K}hp25Gs}5-/%_skdmu/"> <field name="TEXT">linkeddevices.0.LD.Aktor.</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="#VqoZjxYN:/pG;5|Pawz"> <field name="VAR" id="pLCU6_yps4))/0vPDO!K">room</field> </block> </value> <value name="ADD2"> <block type="text" id="qaJ6J,#wY/{wTVL~z*_~"> <field name="TEXT">.Heizung.Rechts.VALVE_STATE</field> </block> </value> </block> </value> </block> </value> </block> </value> </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> </statement> </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>Allerdings gibt dies immer noch Fehler: javascript.0 (29950) at Object.<anonymous> (script.js.Heizung.Ventildurchschnitt_alle_Räume:51:72)
Hmmm, vermutlich ist dies wieder mein Anfängerfehler und ich verwechsle ObjekteID mit anderen mir noch fremden Termini in IObroker...
Danke, -MN
@Morgennebel
Deine Funktion ifExistsDP(id) gibt bereits den Wert des Datenpunktes zurück, wenn er existiert - keine ID.if (existsState(dataPoint)) { return getState(dataPoint).val; } else { return null; }Also muss auch der Wert weiter verwendet werden.

Allerdings funktioniert die Mittelwertbildung mit null im Array nicht, denn der Listeneintrag wird als zusätzliche 0 gewertet.
Erzeuge eine leere List und füge den Wert jedes existierenden Datenpunktes an:

mit ifExistsDP(dataPoint):
return existsState(dataPoint); -
@Morgennebel
Deine Funktion ifExistsDP(id) gibt bereits den Wert des Datenpunktes zurück, wenn er existiert - keine ID.if (existsState(dataPoint)) { return getState(dataPoint).val; } else { return null; }Also muss auch der Wert weiter verwendet werden.

Allerdings funktioniert die Mittelwertbildung mit null im Array nicht, denn der Listeneintrag wird als zusätzliche 0 gewertet.
Erzeuge eine leere List und füge den Wert jedes existierenden Datenpunktes an:

mit ifExistsDP(dataPoint):
return existsState(dataPoint);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
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden