NEWS
Test Adaper Tado v0.1.x
-
@hilde0407 habe ich ähnlich auch realisiert und bin bisher echt mega zufrieden.
Eine Frage: welche Funktionen schalten bei dir denn die Thermostate automatisch wieder an, was du oben beschrieben hast? Ist bei mir bisher noch nicht passiert, aber wäre interessant zu wissen, so dass ich eventuell auch noch ein Script realisieren muss, um dies bei offenen Fenstern zu verhindern. -
@hilde0407 Bin noch auf dem HAM Adapter, weil ich auf die Modus Ansteuerung noch warten würde... Aber irgendwie klingt das mt dem clearZoneOverlay, Zoneoverlay ect. so wie wenn mans darüber indirekt auch realisieren könnte. Was machen denn die Datenpunkte? Modus wechseln?
-
@Stormbringer Genau so ist es! Man steuert es auf diese Art und Weise vollumfänglich indirekt! Ich hatte zuvor auch den HAM Adapter und war damit auch ganz zufrieden. Dies ist dann aber die direktere Variante und funktioniert bisher in allen Belangen genau so, wie ich es haben möchte. Eine direkte Modus Ansteuerung gibt es tatsächlich nicht (noch nicht einmal den Datenpunkt), ist aber auch nicht nötig. Komfortabel ist auch, dass beim Auslösen von ClearZoneOverlay die zuvor eingestellte Temperatur automatisch wieder aktiviert wird.
-
@HappyTeaFriend Das Schalten von ClearZoneOverlay schaltet die Heizung auch wieder mit an!
Anbei ein Beispielsblocky für die Fenster offen Steuerung (Xiaomi Fenster Sensoren):
<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="" id="Efy@y-rOPU4?3%#Wlr(}">Fensterstatus</variable> <variable type="undefined" id="Wohnzimmer_Tür_offen_TimeOut">Wohnzimmer_Tür_offen_TimeOut</variable> </variables> <block type="comment" id="=3!jd`1|Hy3cqO)+jsgy" x="-688" y="-787"> <field name="COMMENT">Datenpunkt Fensterstatus_Wohnzimmer nach offenen Fenstern steuern</field> <next> <block type="on_ext" id="^bQq#li?YG^xQ3v8d:^j"> <mutation items="2"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="[c.rI$s!M-LAXx~V/L5s"> <field name="oid">mihome.0.devices.magnet_158d0002750ce5.state</field> </shadow> </value> <value name="OID1"> <shadow type="field_oid" id="??3!`$OGv6Z41YQ6]3Xn"> <field name="oid">mihome.0.devices.magnet_158d000277b44f.state</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="#OgJ{jU-g]Iz*GB~AtrN"> <field name="VAR" id="Efy@y-rOPU4?3%#Wlr(}" variabletype="">Fensterstatus</field> <value name="VALUE"> <block type="math_number" id=")m+~Eyxbu0AZY%,T%Dur"> <field name="NUM">0</field> </block> </value> <next> <block type="controls_if" id="62hjlw]D77L#[X=X_q%L"> <value name="IF0"> <block type="logic_compare" id="=y,-Az2HI3*SL{sn%pkp"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="-z{owY$^VF+`o%I^7qMx"> <field name="ATTR">val</field> <field name="OID">mihome.0.devices.magnet_158d0002750ce5.state</field> </block> </value> <value name="B"> <block type="logic_boolean" id="k6)iLIIOB=T!|FF,r2;r"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="math_change" id="8Vr*!@!Z4{;hMzsi9JV~"> <field name="VAR" id="Efy@y-rOPU4?3%#Wlr(}" variabletype="">Fensterstatus</field> <value name="DELTA"> <shadow type="math_number" id="I*~Q{(QK8Z]S~.Hh3];)"> <field name="NUM">1</field> </shadow> </value> </block> </statement> <next> <block type="controls_if" id="sfm=qXTY^-QieP(u9ob%"> <value name="IF0"> <block type="logic_compare" id="aI/5Qi2po=l@i-eW*l-+"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="vcwI;f}I8Zf|iN3m_`r@"> <field name="ATTR">val</field> <field name="OID">mihome.0.devices.magnet_158d000277b44f.state</field> </block> </value> <value name="B"> <block type="logic_boolean" id="YEWb~b)mL}r;+-@KAw%o"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="math_change" id="pDnvp8iTF$m5]b(*{Ze_"> <field name="VAR" id="Efy@y-rOPU4?3%#Wlr(}" variabletype="">Fensterstatus</field> <value name="DELTA"> <shadow type="math_number" id="LGBsTsA9}}7K2eiPB8{*"> <field name="NUM">1</field> </shadow> </value> </block> </statement> <next> <block type="update" id="bQx5X}CtO6=UZU:IS{Ny"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Xiaomi.Fensterstatus_Wohnzimmer</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="3T7#K+hW]_2giP8oo81r"> <field name="VAR" id="Efy@y-rOPU4?3%#Wlr(}" variabletype="">Fensterstatus</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="comment" id="s9:JqZL~z]@.QK}P%N5|"> <field name="COMMENT">Heizung ein oder ausschalten, wenn Fenster offen oder zu</field> <next> <block type="on_ext" id="_|5{4AEHysftVafeW~ol"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="hYI,BpxN,~A019[:cO;T"> <field name="oid">javascript.0.Xiaomi.Fensterstatus_Wohnzimmer</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="P9]U*,pX[SeAMt}c3)Z%"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="N^/iO*[FVDA]QDqr%iJW"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="~iLcTPAqZp[O]ES:`Hor"> <field name="ATTR">val</field> <field name="OID">javascript.0.Xiaomi.Fensterstatus_Wohnzimmer</field> </block> </value> <value name="B"> <block type="math_number" id=".~jb;8n(+EYN8eWl[TSI"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="_Or7EB:($CN8ok!#RPW$"> <value name="IF0"> <block type="logic_compare" id="I3b5T-+Xu*7lLSNHk::1"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id=")I[wYw@!hv+~Y}ab{5;0"> <field name="ATTR">val</field> <field name="OID">tado.0.371509.Rooms.2.setting.power</field> </block> </value> <value name="B"> <block type="text" id="/|=n/Qt)XO32P8_#mEA5"> <field name="TEXT">ON</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="w;YL4EXO55MGL|p;6rW]"> <mutation delay_input="false"></mutation> <field name="OID">tado.0.371509.Rooms.2.setting.power</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="gl@m)m*tby#sEx~*(7|Z"> <field name="TEXT">OFF</field> </block> </value> </block> </statement> </block> </statement> <statement name="ELSE"> <block type="controls_if" id="d1;7:_Dk.l*Jd8|3h|_G"> <value name="IF0"> <block type="logic_compare" id="79#9`.M`r^b##6%Pw-K|"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="HT)W|?2cda9J:_eZ*s.l"> <field name="ATTR">val</field> <field name="OID">tado.0.371509.Rooms.2.setting.power</field> </block> </value> <value name="B"> <block type="text" id="}+4PBOmzR.|d-G3Uxua9"> <field name="TEXT">OFF</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="z3_@J=Un`)L_:-2CCg0^"> <mutation delay_input="false"></mutation> <field name="OID">tado.0.371509.Rooms.2.overlay.clearZoneOverlay</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="xb7=0yRu`oyYKPC4rsQF"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> </block> </statement> </block> </statement> <next> <block type="comment" id="c{*^*)M6YG*I^|e|SXkF"> <field name="COMMENT">Boost Modus ausschalten, wenn Wohnzimmertür 5 Minuten offen steht</field> <next> <block type="on_ext" id="~ByS[MJXmarnf`REiOL["> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="QxvxguLqEw.bEKJ15r~W"> <field name="oid">mihome.0.devices.magnet_158d000273da4e.state</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="5`049RAShcj2ZMP|A_s,"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="=0_2*0DgpRh`E3T|~zBB"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="H.1zG%y*d+nbq$VQLHC3"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="logic_boolean" id="%*RVD2qSgK0[2LXE4g5@"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_settimeout" id="C;mn0L/lQzv+h~@zu3=Q"> <field name="NAME">Wohnzimmer_Tür_offen_TimeOut</field> <field name="DELAY">10</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="controls_if" id="X_|!-{zaH?padLX8*8EX"> <value name="IF0"> <block type="logic_compare" id="5tfs;4gRb|`6v1bxjw2C"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="`E7Hf10Wqy+6_5p:ZVB*"> <field name="ATTR">val</field> <field name="OID">javascript.0.Xiaomi.Schalter_Heizung</field> </block> </value> <value name="B"> <block type="logic_boolean" id="3m5k(yWr{M2Qz7qp1:(o"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="Z[a8.`i@ylba|0Ctq=Rb"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Xiaomi.Schalter_Heizung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="{T+%YTbN::?=UQHq$tc0"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </statement> </block> </statement> <value name="IF1"> <block type="logic_compare" id="}NT]FTqx!JHW7*_Q.P!["> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="jgRW;_%J_jn.eYVtrvef"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="logic_boolean" id="4Qm15j]Gl~/e@9:AWfO/"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO1"> <block type="timeouts_cleartimeout" id="}riwxHoGLjq$XyACbQp!"> <field name="NAME">Wohnzimmer_Tür_offen_TimeOut</field> </block> </statement> </block> </statement> <next> <block type="comment" id="o#^:cur]Ep0d%^M3oY!x"> <field name="COMMENT">Wenn Heizung über Tado eingeschaltet wird, obwohl Fenster offen, dann wieder ausschalten</field> <next> <block type="on_ext" id="%1n?jrlPaIOu06zxXw-3"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="DNHasW|%3hq=}/Bty@=}"> <field name="oid">tado.0.371509.Rooms.2.setting.power</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="8_mT-vWL9UIDM,d!1`=P"> <value name="IF0"> <block type="logic_compare" id="ioLeA}E]@`.}6a-zY:BL"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="ZpXsuQ6_RhO2quwc`eSf"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="text" id="zsit@u5j!]h*3b9HQevw"> <field name="TEXT">ON</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="I)*pOL8cCGpO=|x4y`rT"> <value name="IF0"> <block type="logic_compare" id="O@TKFIDN_Rtraip}7p1X"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="sS$f|y{Z{}|2N%=4++M4"> <field name="ATTR">val</field> <field name="OID">javascript.0.Xiaomi.Fensterstatus_Wohnzimmer</field> </block> </value> <value name="B"> <block type="math_number" id="7AEwG0!A(zX-VeQ+nh)/"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="T?Pvq|!4,+YE_`pB:/Q3"> <mutation delay_input="false"></mutation> <field name="OID">tado.0.371509.Rooms.2.setting.power</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="_PS#Xh}suf6E1^B]Hld2"> <field name="TEXT">OFF</field> </block> </value> </block> </statement> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </xml>
-
@HappyTeaFriend Die Termostate werden beispielsweise wieder eingeschaltet, wenn Du in der Tado App einen Zeitplan hinterlegt hast.
-
@hilde0407 Danke klingt vielversprechend, dann wird das bald mein nächstes Projekt, wenn man ihn schon produktiv nutzen kann @Dutchman sollte mal seinen PayPal Account reinstellen, dass er danke nicht nur als Wörter bekommt sondern auch in
-
@hilde0407 Test grad n bisschen rum. Aber wie machst du das ohne Modusangabe mit dem Boost? Dann kann man ja nicht abbilden ob vor den 25 Grad Manuell oder Auto war. Bzw. bei Nachtansenkung hätte ich dann das gleiche Problem mit Rückkehr zu auto oder manuell.
Oder hast du dafür und für die Batterieanzeige in % den HAM Adapter noch laufen?
Aber der Rest wär glaub ich absolut primitiv einfach zu steuern. Da muss man sich nach dem HAM Plugin erst mal wieder dran gewöhnen, dass es ioBroker typisch leicht ist. Absolut genialer Adapter. Top Arbeit bisher
-
Moin,
vielen Dank für die Arbeit. Bin iobroker-Neuling, habe es aber mit Hilfe des Beispielblocky von @hilde0407 wunderbar hinbekommen.
Eine Frage: Wie ließe sich das Einschalten der Heizung in einem Raum verzögern, wenn die Fenster mindestens X Minuten auf waren? Hintergrund ist, dass ich bspw. nach dem richtigen Durchlüften morgens vermeiden will, dass die Heizung sofort anschließend Vollgas gibt.
Häufig normalisiert sich die Temperatur ja innerhalb von 15-20 Minuten schon wieder, so dass die Heizungen erst dann anspringen sollten.
Jemand eine Idee?
Beste Grüße!
-
Das ist recht leicht möglich, indem du in dem steuern Blocky, was das ClearZoneOverlay schaltet, eine Verzögerung einbaust.
Beispiel kommt gleich, muss mich auf meinen IOBroker schalten (bin gerade nicht zu Hause).
-
@hilde0407 Wow, Du bist aber schnell.
-
<xml xmlns="http://www.w3.org/1999/xhtml"> <block type="control" id="QvttB-f9efQ~:#+^Phio" x="-262" y="38"> <mutation delay_input="true"></mutation> <field name="OID">tado.0.371509.Rooms.2.overlay.clearZoneOverlay</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">20</field> <field name="UNIT">min</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="~?pr;NZax|~D;4uv$fia"> <field name="BOOL">TRUE</field> </block> </value> </block> </xml>
-
Vielen Dank! Das einzige, was mich noch beschäftigt ist die Frage, wie ich die Prüfung einbaue, ob das Fenster mindestens X Minuten auf war... Will z.B. im Wohnzimmer nicht die Heizung länger ausgeschaltet lassen, wenn jemand nur etwas vom Balkon holt und die Tür nur kurz auf ist...
-
@j_o_e wenn du das Ausschalten, der Heizung, über Tado machen lässt, reagiert normalerweise das Thermostat "leider" nicht sofort.
Die Thermostate messen ständig die Temperatur / Luftfeuchtigkeit, und wenn es innerhalb 2 Minuten eine Änderung gibt die größer ist als was normal ist für einen Raum, wird die Lüftungserkennung ausgelöst.
-
@j_o_e
Das sollte so zu realisieren sein...<block xmlns="http://www.w3.org/1999/xhtml" type="on_ext" id="oZxI@-Nn(vw):Ij8U5~S" x="12.35671612731096" y="-262.3150654620798"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="^|ptuzD_|DsyUk=:@Cvi"> <field name="oid">javascript.0.Xiaomi.Fensterstatus_Wohnzimmer</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="jvncmmGKmyJ]!@dIJO=6"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="2YytrLl=an+@0(;QX%#v"> <field name="OP">GT</field> <value name="A"> <block type="on_source" id="UqbSjlQfz$H?YZH[+[1Y"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="VEa-.(xRMb.k]6GEesD`"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id="nqB.xy1B;uDn**:,f:4x"> <field name="NAME">timeout</field> <next> <block type="timeouts_settimeout" id="w4+W7HaKW~wVU[@Ai!xm"> <field name="NAME">timeout</field> <field name="DELAY">5</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="controls_if" id="cMhR8DG*x`Dz5-A-#gC|"> <value name="IF0"> <block type="logic_compare" id="uW`$n:y?B!)Sx.KT{PSt"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="x#KuczY$0Xs8t+pMfsV^"> <field name="ATTR">val</field> <field name="OID">javascript.0.Xiaomi.Fensterstatus_Wohnzimmer</field> </block> </value> <value name="B"> <block type="math_number" id="0{m=0?j+,F02y`vr57z9"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="@w.c$I2#]~tdpIy9(J8n"> <mutation delay_input="false"></mutation> <field name="OID">tado.0.371509.Rooms.2.setting.power</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="YG)iq#5DeN~kK9FV];^0"> <field name="TEXT">OFF</field> </block> </value> </block> </statement> </block> </statement> </block> </next> </block> </statement> <statement name="ELSE"> <block type="timeouts_cleartimeout" id="eCN2BnBMQ-?@tvQ{K|_6"> <field name="NAME">timeout</field> </block> </statement> </block> </statement> </block>
-
@senger1985 Das stimmt, kann man aber auch deaktivieren.
-
Danke, dass muss ich mir morgen mal mit ausgeschlafenem Kopf genauer ansehen. Vielen Dank noch mal für die sehr schnellen Reaktionen und die nette Unterstützung. Gute Nacht!
-
@hilde0407
Ich hab schon so lange nicht mehr in die App geschaut, weil ich damals alles eingestellt habe, wo ich die ersten Thermostate bekommen habe und habe das tatsächlich nicht mehr gewusst.P. S.: Danke, für den Hinweis, denn mein neues Thermostat, was ich letztens für 35 € geschossen habe, war noch auf 15 Minuten eingestellt.
-
@senger1985 Gratulation zum Schnapper und gern geschehen!
-
-
@Stormbringer Den Boostmodus schalte ich, indem ich die Zieltemperatur auf 25 °C stelle (das ist der Maximalwert, den die Tados akzeptieren), in dem Fall wird die Heizung auf 100% gefahren, was dann genau das ist, was ich möchte.
Du hast recht, die Batterieanzeige gibt es leider noch nicht, finde ich aber nicht so schlimm, da mir das die Tado App auch mitteilt, wenn die Batterien leer sind.