NEWS
Netatmo CO2 Sensoren auswerten und Meldung über Alexa
-
Hallo zusammen,
Folgendes Szennario: Es sind 4 Netatmo Sensoren in der Wohnung verstreut. Diese senden alle 6 (oder waren es 10) Minuten einen neuen Wert an die Basisstation und somit auch an Iobroker. An denen soll der CO2-Gehalt ausgewertet werden. Wenn einer der 4 über ein bestimmter Wert (z.B. 2000ppm) ist sollen die beiden Alexas (bzw. Vickis
) daran erinnern zu lüften. Wenn alle 4 wieder auf Normalwert (also auf unter 500 oder 600ppm) sollen sie wieder erinnern dass die Fenster geschlossen werden können. In der Nacht soll Vicki schlafen und mich in Ruhe lassen.
So sieht das Blockly dazu bisher aus:
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable type="timeout" id="timeout2">timeout2</variable> <variable type="timeout" id="timeout">timeout</variable> </variables> <block type="on_ext" id="5Zc=l0u[P}b#U^jay;9)" x="63" y="163"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="4"></mutation> <field name="CONDITION">lt</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="yr(%KxT/2R.G$Iy@S!G/"> <field name="oid">netatmo.0.Netatmo_Barbie-(Wohnen).Bad.CO2.CO2</field> </shadow> </value> <value name="OID1"> <shadow type="field_oid" id="%x^I_HAW3@bREXB{yKxw"> <field name="oid">netatmo.0.Netatmo_Barbie-(Wohnen).Reduit.CO2.CO2</field> </shadow> </value> <value name="OID2"> <shadow type="field_oid" id="Q))=fc#o1jj,s!7N)bH#"> <field name="oid">netatmo.0.Netatmo_Barbie-(Wohnen).Wohnen.CO2.CO2</field> </shadow> </value> <value name="OID3"> <shadow type="field_oid" id="fIwX47_w1XmGufVyYO.A"> <field name="oid">netatmo.0.Netatmo_Barbie-(Wohnen).Zimmer.CO2.CO2</field> </shadow> </value> <statement name="STATEMENT"> <block type="timeouts_settimeout" id="SGzJ-v.;-zIy$5X}axnB"> <field name="NAME">timeout2</field> <field name="DELAY">610</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="controls_if" id="mYg~3`8U/pYwPL2#q3eT"> <value name="IF0"> <block type="logic_operation" id="q3OiJ33VqN`zLR0WQpw-" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="time_compare" id="Qed,w=aaVS.CWn^dHbdw"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true"></mutation> <field name="OPTION">between</field> <field name="START_TIME">07:00</field> <field name="END_TIME">23:00</field> </block> </value> <value name="B"> <block type="logic_operation" id="-5W=4_EulF-#S6zLqNfX" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_operation" id="EfT=zxLv$*UNLykpIaXb" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="#]o95,2[zNx-0]O5q_?z"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="t`J!y}fn?8wgY6R`deT_"> <field name="ATTR">val</field> <field name="OID">netatmo.0.Netatmo_Barbie-(Wohnen).Bad.CO2.CO2</field> </block> </value> <value name="B"> <block type="math_number" id="Dt7t(B!eivicAJQi$1jU"> <field name="NUM">500</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="z1{x(:E!~Kc:zb;3[/kL"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="0iC#,PUw}u%d^+*oRt};"> <field name="ATTR">val</field> <field name="OID">netatmo.0.Netatmo_Barbie-(Wohnen).Bad.CO2.CO2</field> </block> </value> <value name="B"> <block type="math_number" id="L!FpYxF[V+u]M1te`Y7k"> <field name="NUM">500</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="-|/Wsa!t$^@5cmD7Wv}l" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="5P0mdfv.z_?``T{vOX3Y"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="3dC*5ITI-1S~IBy:6[Yw"> <field name="ATTR">val</field> <field name="OID">netatmo.0.Netatmo_Barbie-(Wohnen).Bad.CO2.CO2</field> </block> </value> <value name="B"> <block type="math_number" id="]+r)L%+}4br$R0.:zb?v"> <field name="NUM">500</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="dsOY3Uz(_1aM94!X{eqT"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="-ReqiZuG0U~~KFZR$j!6"> <field name="ATTR">val</field> <field name="OID">netatmo.0.Netatmo_Barbie-(Wohnen).Bad.CO2.CO2</field> </block> </value> <value name="B"> <block type="math_number" id="(_Mv[(,/nB]0Q*+lgseZ"> <field name="NUM">500</field> </block> </value> </block> </value> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="fsp#C=z;X-dvN(Ccd9r="> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090U61091051EB3.Commands.ssml</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="53@9.8zO:Q4rUu|pdJ9D"> <field name="TEXT"><speak> <voice name="Vicki">CO2 wieder normal. Fenster können geschlossen werden</voice></speak></field> </block> </value> <next> <block type="control" id="~+8SU47H4;flC_kYu?cD"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G0911M0794061NES.Commands.ssml</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="/CY}+QclY*PWIE_3Qfld"> <field name="TEXT"><speak> <voice name="Vicki">CO2 wieder normal. Fenster können geschlossen werden</voice></speak></field> </block> </value> </block> </next> </block> </statement> </block> </statement> </block> </statement> <next> <block type="on_ext" id="n*#bKnf+B=#UlBl@CD_5"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="4"></mutation> <field name="CONDITION">gt</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="Zrl;BjpSx~dyrh0j`e9X"> <field name="oid">netatmo.0.Netatmo_Barbie-(Wohnen).Bad.CO2.CO2</field> </shadow> </value> <value name="OID1"> <shadow type="field_oid" id="p*._MItNHTDb87XAsGTN"> <field name="oid">netatmo.0.Netatmo_Barbie-(Wohnen).Reduit.CO2.CO2</field> </shadow> </value> <value name="OID2"> <shadow type="field_oid" id="3eFX]]V/l/W{2E=4`^;D"> <field name="oid">netatmo.0.Netatmo_Barbie-(Wohnen).Wohnen.CO2.CO2</field> </shadow> </value> <value name="OID3"> <shadow type="field_oid" id="%No=LiS#X|bp;.y=172i"> <field name="oid">netatmo.0.Netatmo_Barbie-(Wohnen).Zimmer.CO2.CO2</field> </shadow> </value> <statement name="STATEMENT"> <block type="timeouts_settimeout" id="pVfK.uQ]^hoRuP9p3l1y"> <field name="NAME">timeout</field> <field name="DELAY">610</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="controls_if" id="oSj(BeGOZb)|Lm3dP.@H"> <value name="IF0"> <block type="logic_operation" id="V]^X!yJuZ4P}%log|BW_" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="time_compare" id=";)+Uyzt]3FQ?]|`Zj{^z"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true"></mutation> <field name="OPTION">between</field> <field name="START_TIME">07:00</field> <field name="END_TIME">23:00</field> </block> </value> <value name="B"> <block type="logic_operation" id="|5szPs;Wv7pn|:cS}S{(" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_operation" id="CQVFN0H,w7+%pVx77n5]" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="U+h00NP#U#7~M=K;33pa"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="0OowHyyJ6W}d{}1u=JIh"> <field name="ATTR">val</field> <field name="OID">netatmo.0.Netatmo_Barbie-(Wohnen).Bad.CO2.CO2</field> </block> </value> <value name="B"> <block type="math_number" id="///Bwgm~K6A2a]nmt{Zf"> <field name="NUM">2000</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="SrQoHeA9AZG%/.;pe*1n"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="{{y=;[A,9Du=cJ9)[Olk"> <field name="ATTR">val</field> <field name="OID">netatmo.0.Netatmo_Barbie-(Wohnen).Bad.CO2.CO2</field> </block> </value> <value name="B"> <block type="math_number" id="zxzw,lZMW?`tU{=MB%SX"> <field name="NUM">2000</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="sM~,y@MwEb.)6T*HAKr)" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="mFu#6#?Rl2wf`]fWJ`Ga"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="kMj7T~fU=6%R5zQuLpBW"> <field name="ATTR">val</field> <field name="OID">netatmo.0.Netatmo_Barbie-(Wohnen).Bad.CO2.CO2</field> </block> </value> <value name="B"> <block type="math_number" id="#06%c:d(K|5$PN8y?h=n"> <field name="NUM">2000</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="XkSr%9?sB~.Q}{/S)CV~"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="C#WWE,RwYFy9:ti9S~D,"> <field name="ATTR">val</field> <field name="OID">netatmo.0.Netatmo_Barbie-(Wohnen).Bad.CO2.CO2</field> </block> </value> <value name="B"> <block type="math_number" id="yA*1NTN$fc{~z[]6wGBX"> <field name="NUM">2000</field> </block> </value> </block> </value> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="k3NI$~tC6+XfbmWdFD/Z"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090U61091051EB3.Commands.ssml</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="1=S5BgV%Ggk1?u?Dr5~}"> <field name="TEXT"><speak> <voice name="Vicki">CO2 wieder normal. Fenster können geschlossen werden</voice></speak></field> </block> </value> <next> <block type="control" id="}9W{SqTo^Ff(lOSr!8lt"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G0911M0794061NES.Commands.ssml</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="N6:Zl_c3QWYT0;hgFeUf"> <field name="TEXT"><speak> <voice name="Vicki">CO2 wieder normal. Fenster können geschlossen werden</voice></speak></field> </block> </value> </block> </next> </block> </statement> </block> </statement> </block> </statement> </block> </next> </block> </xml>
Gestern hatte ich das ganze noch ohne die beiden Timeouts, aber dann laberte mich Vicki bei jeder Änderung unter 600ppm voll (also alle 6-10 Minuten). Auch kam da die Meldung obwohl ein Sensor noch über 600ppm war.
Heute kam die Meldung erst als alle 4 Sensoren auf über 2000ppm waren.
Als ob die "und" und "oder" Verknüfungen der 4 Sensoren in den beiden Blockly Teilen falsch herum wären, aber die einfach austauschen scheint für mich Logisch überlegt nicht richtig zu sein...vermutlich hab ich noch ein Fehler den ich grad nicht sehe.Das 2 Problem: Die Mädels sollten mich nur einmal anquatschen und dann wieder ruhe geben. Das hab ich mit dem Timeouts versucht, aber irgendwie komme ich mit denen nicht klar (so wie ich es gemacht habe funktioniert es auf jeden Fall nicht).
Danke schonmal
-
@urs Bei jeder Wertänderung nach oben bzw. nach unten wird der jeweilige Timeout gestartet. Steigen alle vier Wert an, so wird z.B. der eine Timeout viermal gestartet. Du solltest also vor jedem Timeoutstart diesen erst einmal stoppen damit er nur einmal läuft.
Mit einer Variable die du auf true bzw. false setzt und deren Wert du überprüfst, kannst du dafür sorgen, dass die Meldung nur einmal erfolgt. Durch die Timeouts kommen sie einfach nur zeitverzögert.
Und wenn ein Wert erhöht ist, weißt du bei deiner Lösung nicht welcher Raum gelüftet werden soll. Aber das ist Geschmacksache...
-
@dr-bakterius Danke erstmal
Zuerst zum einfachen Teil der Geschichte: Dass ich nicht jeden Raum separat auswerte und ansagen lassen will ist so gewollt. Bedingt durch den Grundriss und Grösse der Wohnung muss eh über mehrere Räume quergelüftet werden. Dazu kommt dass alle Türen fast immer offen stehen sodass ein Lüften eines einzelnen Zimmers eh nicht sinnvoll wäre bzw. darin resultiert dass der CO2 Wert in allen Räumen sinkt auch wenn die Fenster nicht in allen Räumen offen sind...Ausnahme vielleicht das Reduit welches keine Fenster hat...aber das ist ein anderes Thema welches ich angehe wenn das hier grundsätzlich funktioniert.Hab mal deinen Input mit der Variablen aufgenommen und das ist dabei raus gekommen. Hinweise ob das so funktionieren kann sind sehr willkommen, da das ganze mit dem CO2 und Lüften sehr Träge reagiert und daher etwas Zeitintensiv zum Testen ist.
Vielen Dank
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="~=dH6Y;R$Xr;UMl8|d?4">CO2</variable> </variables> <block type="variables_set" id="f$_odZz]{B-$AmK8syd#" x="63" y="38"> <field name="VAR" id="~=dH6Y;R$Xr;UMl8|d?4">CO2</field> <value name="VALUE"> <block type="text" id="~[W^Q$iTf0()|b(@%)an"> <field name="TEXT">OK</field> </block> </value> <next> <block type="on_ext" id="5Zc=l0u[P}b#U^jay;9)"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="4"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="yr(%KxT/2R.G$Iy@S!G/"> <field name="oid">netatmo.0.Netatmo_Barbie-(Wohnen).Bad.CO2.CO2</field> </shadow> </value> <value name="OID1"> <shadow type="field_oid" id="%x^I_HAW3@bREXB{yKxw"> <field name="oid">netatmo.0.Netatmo_Barbie-(Wohnen).Reduit.CO2.CO2</field> </shadow> </value> <value name="OID2"> <shadow type="field_oid" id="Q))=fc#o1jj,s!7N)bH#"> <field name="oid">netatmo.0.Netatmo_Barbie-(Wohnen).Wohnen.CO2.CO2</field> </shadow> </value> <value name="OID3"> <shadow type="field_oid" id="fIwX47_w1XmGufVyYO.A"> <field name="oid">netatmo.0.Netatmo_Barbie-(Wohnen).Zimmer.CO2.CO2</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="ZZcI^|dWuZ|H[`YTZ;v%"> <mutation elseif="1" else="1"></mutation> <value name="IF0"> <block type="logic_operation" id="-5W=4_EulF-#S6zLqNfX" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_operation" id="EfT=zxLv$*UNLykpIaXb" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="#]o95,2[zNx-0]O5q_?z"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="t`J!y}fn?8wgY6R`deT_"> <field name="ATTR">val</field> <field name="OID">netatmo.0.Netatmo_Barbie-(Wohnen).Bad.CO2.CO2</field> </block> </value> <value name="B"> <block type="math_number" id="Dt7t(B!eivicAJQi$1jU"> <field name="NUM">500</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="z1{x(:E!~Kc:zb;3[/kL"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="0iC#,PUw}u%d^+*oRt};"> <field name="ATTR">val</field> <field name="OID">netatmo.0.Netatmo_Barbie-(Wohnen).Bad.CO2.CO2</field> </block> </value> <value name="B"> <block type="math_number" id="L!FpYxF[V+u]M1te`Y7k"> <field name="NUM">500</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="-|/Wsa!t$^@5cmD7Wv}l" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="5P0mdfv.z_?``T{vOX3Y"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="3dC*5ITI-1S~IBy:6[Yw"> <field name="ATTR">val</field> <field name="OID">netatmo.0.Netatmo_Barbie-(Wohnen).Bad.CO2.CO2</field> </block> </value> <value name="B"> <block type="math_number" id="]+r)L%+}4br$R0.:zb?v"> <field name="NUM">500</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="dsOY3Uz(_1aM94!X{eqT"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="-ReqiZuG0U~~KFZR$j!6"> <field name="ATTR">val</field> <field name="OID">netatmo.0.Netatmo_Barbie-(Wohnen).Bad.CO2.CO2</field> </block> </value> <value name="B"> <block type="math_number" id="(_Mv[(,/nB]0Q*+lgseZ"> <field name="NUM">500</field> </block> </value> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="+)Uxg](`QsQ}/~N?$7vs"> <field name="VAR" id="~=dH6Y;R$Xr;UMl8|d?4">CO2</field> <value name="VALUE"> <block type="text" id="=[[yS6GKX$NUWPQvzafh"> <field name="TEXT">Tief</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_operation" id="|5szPs;Wv7pn|:cS}S{(" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_operation" id="CQVFN0H,w7+%pVx77n5]" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="U+h00NP#U#7~M=K;33pa"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="0OowHyyJ6W}d{}1u=JIh"> <field name="ATTR">val</field> <field name="OID">netatmo.0.Netatmo_Barbie-(Wohnen).Bad.CO2.CO2</field> </block> </value> <value name="B"> <block type="math_number" id="///Bwgm~K6A2a]nmt{Zf"> <field name="NUM">2000</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="SrQoHeA9AZG%/.;pe*1n"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="{{y=;[A,9Du=cJ9)[Olk"> <field name="ATTR">val</field> <field name="OID">netatmo.0.Netatmo_Barbie-(Wohnen).Bad.CO2.CO2</field> </block> </value> <value name="B"> <block type="math_number" id="zxzw,lZMW?`tU{=MB%SX"> <field name="NUM">2000</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="sM~,y@MwEb.)6T*HAKr)" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="mFu#6#?Rl2wf`]fWJ`Ga"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="kMj7T~fU=6%R5zQuLpBW"> <field name="ATTR">val</field> <field name="OID">netatmo.0.Netatmo_Barbie-(Wohnen).Bad.CO2.CO2</field> </block> </value> <value name="B"> <block type="math_number" id="#06%c:d(K|5$PN8y?h=n"> <field name="NUM">2000</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="XkSr%9?sB~.Q}{/S)CV~"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="C#WWE,RwYFy9:ti9S~D,"> <field name="ATTR">val</field> <field name="OID">netatmo.0.Netatmo_Barbie-(Wohnen).Bad.CO2.CO2</field> </block> </value> <value name="B"> <block type="math_number" id="yA*1NTN$fc{~z[]6wGBX"> <field name="NUM">2000</field> </block> </value> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="variables_set" id="rX#`LoLqy9pZg]#@$:Ea"> <field name="VAR" id="~=dH6Y;R$Xr;UMl8|d?4">CO2</field> <value name="VALUE"> <block type="text" id="7J5G@)dW##JzJ-WBv/)R"> <field name="TEXT">Hoch</field> </block> </value> </block> </statement> <statement name="ELSE"> <block type="variables_set" id="6S+lUwM%t-*q#g?jWUh["> <field name="VAR" id="~=dH6Y;R$Xr;UMl8|d?4">CO2</field> <value name="VALUE"> <block type="text" id="_$Tgr0M$COHot93CUu:X"> <field name="TEXT">OK</field> </block> </value> </block> </statement> </block> </statement> <next> <block type="on_ext" id="e=PJ7+@q}br=wHcv4m}P"> <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="@g,tx56wUzvCfHb(GRPA"> <field name="oid">default</field> </shadow> <block type="variables_get" id="FVnA!FIocCVH+X{ILF]$"> <field name="VAR" id="~=dH6Y;R$Xr;UMl8|d?4">CO2</field> </block> </value> <statement name="STATEMENT"> <block type="controls_if" id="iaasrr2XCjRXKmT?Ugo#"> <value name="IF0"> <block type="logic_operation" id="[aU:I~Uoc|X0$p]M.2@U" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_operation" id="=WRHoB6a[64|j.*!FiwY" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id=";v)S8?`AnOchO4vJ-i1h"> <field name="OP">LTE</field> <value name="A"> <block type="time_get" id="X5$Y[[lL*V+Cb0HD_AL+"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">wd</field> </block> </value> <value name="B"> <block type="math_number" id=",%C3ml1_u(-PH?n$H)yh"> <field name="NUM">5</field> </block> </value> </block> </value> <value name="B"> <block type="time_compare" id="Qed,w=aaVS.CWn^dHbdw"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true"></mutation> <field name="OPTION">between</field> <field name="START_TIME">07:00</field> <field name="END_TIME">23:00</field> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="+*~v*@eE5M)J~swF}Nm4" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="mP/R+.B{}/py,b7;J,hD"> <field name="OP">GT</field> <value name="A"> <block type="time_get" id=";5g*#`6?ghI6WPP|MLi."> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">wd</field> </block> </value> <value name="B"> <block type="math_number" id="Mm/I1qn[!6XnC{vTR0BR"> <field name="NUM">5</field> </block> </value> </block> </value> <value name="B"> <block type="time_compare" id="cz*^glO0+=qAOyr+AxJw"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true"></mutation> <field name="OPTION">between</field> <field name="START_TIME">09:00</field> <field name="END_TIME">23:00</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="LueF9G5t:xB;HidfKum4"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="(/:-!5#vf|`JSw5r`NMQ"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="9..4!JW/ToWb[o+`pf`0"> <field name="VAR" id="~=dH6Y;R$Xr;UMl8|d?4">CO2</field> </block> </value> <value name="B"> <block type="text" id="Zuf*_:2e6h65uYRf8*?q"> <field name="TEXT">Tief</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="fsp#C=z;X-dvN(Ccd9r="> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090U61091051EB3.Commands.ssml</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="53@9.8zO:Q4rUu|pdJ9D"> <field name="TEXT"><speak> <voice name="Vicki">CO2 wieder normal. Fenster können geschlossen werden</voice></speak></field> </block> </value> <next> <block type="control" id="~+8SU47H4;flC_kYu?cD"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G0911M0794061NES.Commands.ssml</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="/CY}+QclY*PWIE_3Qfld"> <field name="TEXT"><speak> <voice name="Vicki">CO2 wieder normal. Fenster können geschlossen werden</voice></speak></field> </block> </value> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_compare" id="=##fz=c4L!RC]/V[9zxI"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id=",.YH_pKI5G@1f%[%NS/{"> <field name="VAR" id="~=dH6Y;R$Xr;UMl8|d?4">CO2</field> </block> </value> <value name="B"> <block type="text" id="CU_ce$/lhN9}y:@_keEy"> <field name="TEXT">Hoch</field> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="k3NI$~tC6+XfbmWdFD/Z"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090U61091051EB3.Commands.ssml</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="1=S5BgV%Ggk1?u?Dr5~}"> <field name="TEXT"><speak> <voice name="Vicki">CO2 erhöht. Fenster sollten geöffnet werden!</voice></speak></field> </block> </value> <next> <block type="control" id="}9W{SqTo^Ff(lOSr!8lt"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G0911M0794061NES.Commands.ssml</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="d-uE%77sVYR_.Hkx27gu"> <field name="TEXT"><speak> <voice name="Vicki">CO2 erhöht. Fenster sollten geöffnet werden!</voice></speak></field> </block> </value> </block> </next> </block> </statement> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </xml>
-
@urs sagte: Hinweise ob das so funktionieren kann sind sehr willkommen,
Das kann so nicht funktionieren, da nicht auf eine Variable getriggert werden kann. Schreibe den Wert der Variablen CO2 in einen Datenpunkt vom Typ "Zeichenkette" unter "0_userdata.0" und verwende dessen ID als Trigger.
-
@paul53 sagte in Netatmo CO2 Sensoren auswerten und Meldung über Alexa:
Das kann so nicht funktionieren, da nicht auf eine Variable getriggert werden kann.
Schade, ware ja zu einfach gewesen
Also, nächster Versuch. Erste Tests sind vielversprechend:
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="~=dH6Y;R$Xr;UMl8|d?4">CO2</variable> </variables> <block type="create" id=":k-FWP~vNuUZhr-=#o`X" x="-62" y="-212"> <field name="NAME">0_userdata.0.status.CO2_Lueften</field> <value name="VALUE"> <block type="text" id="+JR(7/gK,)c5]-:5zy=f"> <field name="TEXT">OK</field> </block> </value> <value name="COMMON"> <block type="text" id="B+_2fA8PWRRpjS7RGiGA"> <field name="TEXT">{"type":"string"}</field> </block> </value> <next> <block type="variables_set" id="f$_odZz]{B-$AmK8syd#"> <field name="VAR" id="~=dH6Y;R$Xr;UMl8|d?4">CO2</field> <value name="VALUE"> <block type="get_value" id="@tuE`,x+QO+JoTMRoYrv"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.status.CO2_Lueften</field> </block> </value> <next> <block type="on_ext" id="5Zc=l0u[P}b#U^jay;9)"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="5"></mutation> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="yr(%KxT/2R.G$Iy@S!G/"> <field name="oid">netatmo.0.Netatmo_Barbie-(Wohnen).Bad.CO2.CO2</field> </shadow> </value> <value name="OID1"> <shadow type="field_oid" id="%x^I_HAW3@bREXB{yKxw"> <field name="oid">netatmo.0.Netatmo_Barbie-(Wohnen).Reduit.CO2.CO2</field> </shadow> </value> <value name="OID2"> <shadow type="field_oid" id="Q))=fc#o1jj,s!7N)bH#"> <field name="oid">netatmo.0.Netatmo_Barbie-(Wohnen).Wohnen.CO2.CO2</field> </shadow> </value> <value name="OID3"> <shadow type="field_oid" id="fIwX47_w1XmGufVyYO.A"> <field name="oid">netatmo.0.Netatmo_Barbie-(Wohnen).Zimmer.CO2.CO2</field> </shadow> </value> <value name="OID4"> <shadow type="field_oid" id="syRL{F|*eT;BBwsYs=?z"> <field name="oid">shelly.0.SHBTN-1#A4CF12F44DB7#1.Button.EventCount</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="ZZcI^|dWuZ|H[`YTZ;v%"> <mutation elseif="1" else="1"></mutation> <value name="IF0"> <block type="logic_operation" id="-5W=4_EulF-#S6zLqNfX" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_operation" id="EfT=zxLv$*UNLykpIaXb" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="#]o95,2[zNx-0]O5q_?z"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="t`J!y}fn?8wgY6R`deT_"> <field name="ATTR">val</field> <field name="OID">netatmo.0.Netatmo_Barbie-(Wohnen).Bad.CO2.CO2</field> </block> </value> <value name="B"> <block type="math_number" id="Dt7t(B!eivicAJQi$1jU"> <field name="NUM">700</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="z1{x(:E!~Kc:zb;3[/kL"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="0iC#,PUw}u%d^+*oRt};"> <field name="ATTR">val</field> <field name="OID">netatmo.0.Netatmo_Barbie-(Wohnen).Bad.CO2.CO2</field> </block> </value> <value name="B"> <block type="math_number" id="L!FpYxF[V+u]M1te`Y7k"> <field name="NUM">700</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="-|/Wsa!t$^@5cmD7Wv}l" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="5P0mdfv.z_?``T{vOX3Y"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="3dC*5ITI-1S~IBy:6[Yw"> <field name="ATTR">val</field> <field name="OID">netatmo.0.Netatmo_Barbie-(Wohnen).Bad.CO2.CO2</field> </block> </value> <value name="B"> <block type="math_number" id="]+r)L%+}4br$R0.:zb?v"> <field name="NUM">700</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="dsOY3Uz(_1aM94!X{eqT"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="-ReqiZuG0U~~KFZR$j!6"> <field name="ATTR">val</field> <field name="OID">netatmo.0.Netatmo_Barbie-(Wohnen).Bad.CO2.CO2</field> </block> </value> <value name="B"> <block type="math_number" id="(_Mv[(,/nB]0Q*+lgseZ"> <field name="NUM">700</field> </block> </value> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="+)Uxg](`QsQ}/~N?$7vs"> <field name="VAR" id="~=dH6Y;R$Xr;UMl8|d?4">CO2</field> <value name="VALUE"> <block type="text" id="=[[yS6GKX$NUWPQvzafh"> <field name="TEXT">Tief</field> </block> </value> <next> <block type="update" id="EtvQ]v;=G~saNJ:M=Vnr"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.status.CO2_Lueften</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="@]%M6yT_|)|N*%e2LKIP"> <field name="VAR" id="~=dH6Y;R$Xr;UMl8|d?4">CO2</field> </block> </value> <next> <block type="debug" id="`AGrbgM6Tn3LQoe)zjOw"> <field name="Severity">warn</field> <value name="TEXT"> <shadow type="text"> <field name="TEXT">test</field> </shadow> <block type="variables_get" id="=x2on$TWo[8a2t5*fVsS"> <field name="VAR" id="~=dH6Y;R$Xr;UMl8|d?4">CO2</field> </block> </value> </block> </next> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_operation" id="|5szPs;Wv7pn|:cS}S{(" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_operation" id="CQVFN0H,w7+%pVx77n5]" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="U+h00NP#U#7~M=K;33pa"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="0OowHyyJ6W}d{}1u=JIh"> <field name="ATTR">val</field> <field name="OID">netatmo.0.Netatmo_Barbie-(Wohnen).Bad.CO2.CO2</field> </block> </value> <value name="B"> <block type="math_number" id="///Bwgm~K6A2a]nmt{Zf"> <field name="NUM">2000</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="SrQoHeA9AZG%/.;pe*1n"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="{{y=;[A,9Du=cJ9)[Olk"> <field name="ATTR">val</field> <field name="OID">netatmo.0.Netatmo_Barbie-(Wohnen).Bad.CO2.CO2</field> </block> </value> <value name="B"> <block type="math_number" id="zxzw,lZMW?`tU{=MB%SX"> <field name="NUM">2000</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="sM~,y@MwEb.)6T*HAKr)" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="mFu#6#?Rl2wf`]fWJ`Ga"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="kMj7T~fU=6%R5zQuLpBW"> <field name="ATTR">val</field> <field name="OID">netatmo.0.Netatmo_Barbie-(Wohnen).Bad.CO2.CO2</field> </block> </value> <value name="B"> <block type="math_number" id="#06%c:d(K|5$PN8y?h=n"> <field name="NUM">2000</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="XkSr%9?sB~.Q}{/S)CV~"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="C#WWE,RwYFy9:ti9S~D,"> <field name="ATTR">val</field> <field name="OID">netatmo.0.Netatmo_Barbie-(Wohnen).Bad.CO2.CO2</field> </block> </value> <value name="B"> <block type="math_number" id="yA*1NTN$fc{~z[]6wGBX"> <field name="NUM">2000</field> </block> </value> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="variables_set" id="rX#`LoLqy9pZg]#@$:Ea"> <field name="VAR" id="~=dH6Y;R$Xr;UMl8|d?4">CO2</field> <value name="VALUE"> <block type="text" id="7J5G@)dW##JzJ-WBv/)R"> <field name="TEXT">Hoch</field> </block> </value> <next> <block type="update" id="2KMbSx0IL)%Q:bZA:CDM"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.status.CO2_Lueften</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="-%3K!{ez/.#5YY^GC5O."> <field name="VAR" id="~=dH6Y;R$Xr;UMl8|d?4">CO2</field> </block> </value> <next> <block type="debug" id="@]{4$FXLViGwg_xe+EYS"> <field name="Severity">warn</field> <value name="TEXT"> <shadow type="text"> <field name="TEXT">test</field> </shadow> <block type="variables_get" id="VeEvJ$zfO:Bu4w#[BL[c"> <field name="VAR" id="~=dH6Y;R$Xr;UMl8|d?4">CO2</field> </block> </value> </block> </next> </block> </next> </block> </statement> <statement name="ELSE"> <block type="variables_set" id="6S+lUwM%t-*q#g?jWUh["> <field name="VAR" id="~=dH6Y;R$Xr;UMl8|d?4">CO2</field> <value name="VALUE"> <block type="text" id="_$Tgr0M$COHot93CUu:X"> <field name="TEXT">OK</field> </block> </value> <next> <block type="update" id="ycmjzAwD32_T:2QGY*7t"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.status.CO2_Lueften</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="P-%^5a]84?dOIr5$=8kT"> <field name="VAR" id="~=dH6Y;R$Xr;UMl8|d?4">CO2</field> </block> </value> <next> <block type="debug" id="S[Q3]58mW%0x[oS?|Q9("> <field name="Severity">warn</field> <value name="TEXT"> <shadow type="text"> <field name="TEXT">test</field> </shadow> <block type="variables_get" id=".V0pJ61w^){Xvsw8W4+2"> <field name="VAR" id="~=dH6Y;R$Xr;UMl8|d?4">CO2</field> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> <block type="on_ext" id="VN!-PAum(,*iKx;D7D$," x="-62" y="913"> <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="[X8DF.BX6Dg$7PC-_@Yw"> <field name="oid">0_userdata.0.status.CO2_Lueften</field> </shadow> </value> <statement name="STATEMENT"> <block type="debug" id=";Y;:/e5V1?3BCHO2CxO."> <field name="Severity">warn</field> <value name="TEXT"> <shadow type="text" id="3:N~/#@@zyKkuK8#.*xc"> <field name="TEXT">Ansage Start, Prüfen ob Tag</field> </shadow> </value> <next> <block type="controls_if" id="iaasrr2XCjRXKmT?Ugo#"> <value name="IF0"> <block type="logic_operation" id="[aU:I~Uoc|X0$p]M.2@U" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_operation" id="=WRHoB6a[64|j.*!FiwY" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id=";v)S8?`AnOchO4vJ-i1h"> <field name="OP">LTE</field> <value name="A"> <block type="time_get" id="X5$Y[[lL*V+Cb0HD_AL+"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">wd</field> </block> </value> <value name="B"> <block type="math_number" id=",%C3ml1_u(-PH?n$H)yh"> <field name="NUM">5</field> </block> </value> </block> </value> <value name="B"> <block type="time_compare" id="Qed,w=aaVS.CWn^dHbdw"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true"></mutation> <field name="OPTION">between</field> <field name="START_TIME">07:00</field> <field name="END_TIME">23:00</field> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="+*~v*@eE5M)J~swF}Nm4" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="mP/R+.B{}/py,b7;J,hD"> <field name="OP">GT</field> <value name="A"> <block type="time_get" id=";5g*#`6?ghI6WPP|MLi."> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">wd</field> </block> </value> <value name="B"> <block type="math_number" id="Mm/I1qn[!6XnC{vTR0BR"> <field name="NUM">5</field> </block> </value> </block> </value> <value name="B"> <block type="time_compare" id="cz*^glO0+=qAOyr+AxJw"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true"></mutation> <field name="OPTION">between</field> <field name="START_TIME">09:00</field> <field name="END_TIME">23:00</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="debug" id="XqNiQ1x-ZU{Z?2Tm-v$]"> <field name="Severity">warn</field> <value name="TEXT"> <shadow type="text" id="@R[sp{#?[-/Tp_G*6Nk3"> <field name="TEXT">Tag, Ansage wählen</field> </shadow> </value> <next> <block type="controls_if" id="LueF9G5t:xB;HidfKum4"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="(/:-!5#vf|`JSw5r`NMQ" inline="false"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="gEL_XALitqCX@in#)qDN"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.status.CO2_Lueften</field> </block> </value> <value name="B"> <block type="text" id="Zuf*_:2e6h65uYRf8*?q"> <field name="TEXT">Tief</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="fsp#C=z;X-dvN(Ccd9r="> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090U61091051EB3.Commands.ssml</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="53@9.8zO:Q4rUu|pdJ9D"> <field name="TEXT"><speak> <voice name="Vicki">CO2 wieder normal. Fenster können geschlossen werden</voice></speak></field> </block> </value> <next> <block type="control" id="~+8SU47H4;flC_kYu?cD"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G0911M0794061NES.Commands.ssml</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="/CY}+QclY*PWIE_3Qfld"> <field name="TEXT"><speak> <voice name="Vicki">CO2 wieder normal. Fenster können geschlossen werden</voice></speak></field> </block> </value> <next> <block type="debug" id="A6Yqv:a$tROa:pGh5qfR"> <field name="Severity">warn</field> <value name="TEXT"> <shadow type="text" id="zHmX|Q~9]qff81XW6asd"> <field name="TEXT">Ansage Tief</field> </shadow> </value> </block> </next> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_compare" id="=##fz=c4L!RC]/V[9zxI" inline="false"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="/[ojhH)R_9w!YNk-5vEG"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.status.CO2_Lueften</field> </block> </value> <value name="B"> <block type="text" id="CU_ce$/lhN9}y:@_keEy"> <field name="TEXT">Hoch</field> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="k3NI$~tC6+XfbmWdFD/Z"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090U61091051EB3.Commands.ssml</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="1=S5BgV%Ggk1?u?Dr5~}"> <field name="TEXT"><speak> <voice name="Vicki">CO2 erhöht. Fenster sollten geöffnet werden!</voice></speak></field> </block> </value> <next> <block type="control" id="}9W{SqTo^Ff(lOSr!8lt"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G0911M0794061NES.Commands.ssml</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="d-uE%77sVYR_.Hkx27gu"> <field name="TEXT"><speak> <voice name="Vicki">CO2 erhöht. Fenster sollten geöffnet werden!</voice></speak></field> </block> </value> <next> <block type="debug" id="SS8nXv.}BMRJ-r.+=DKe"> <field name="Severity">warn</field> <value name="TEXT"> <shadow type="text" id="P_wCe^{,J{s[5c|Rg.CY"> <field name="TEXT">Ansage hoch</field> </shadow> </value> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </xml>
-
@urs
Nicht unnötig oft "aktualisiere" verwenden (Ressourcenverschwendung)! -
@urs Hab mir jetzt nicht alles angesehen, aber warum verwendest du eine Variable wenn du mit dem Datenpunkt arbeitest? Entweder, oder. Als ich oben von Variable gesprochen hatte, meinte ich nicht, dass du darauf triggern sollst, sondern die Sprachausgabe nur durchführst wenn diese noch nicht erfolgt ist. Anschließend die Variable setzen damit keine weitere Ausgabe mehr erfolgt. Erst wenn z.B. nach dem Lüften der Wert wieder steigt, setzt man die Variable zurück damit beim nächsten Mal wieder eine Sprachausgabe erfolgt. Aber viele Wege führen nach Rom...
-
@dr-bakterius
Ja, anstelle des zusätzlichen Datenpunktes und Triggers, ist es einfacher, eine zusätzliche Variable auszuwerten, z.B. so: -
Danke euch. Muss ich mir mal genauer anschauen. Das muss aber noch ein bisschen warten da ich unterwegs bin und auf dem Mäusekino macht das rumschieben von Blockly-Blöcke nur begrenzt spass...