NEWS
Test Adaper Tado v0.1.x
-
@Dutchman sagte in Test Adaper Tado v0.1.x:
@CKMartens sagte in Test Adaper Tado v0.1.x:
@Dutchman doch bei mir funktioniert es ja... Ein paar Nachrichten weiter hatte da wohl jemand Probleme
ah ok, dan muss das ne frustre version sein die letzte online hat das alles drin
Und falls jemand den Taster per Node Red ansprechen will: command (nicht value) senden. Daran hing ich die Tage.
-
@hilde0407 Ich habe gerade herausgefunden, dass man den setting.power State gar nicht manuell wieder auf On setzen muss. Wenn power State Off ist, kann man direkt einmal clearZoneOverlay ohne Delay ansteuern und zack er schaltet wieder zurück auf normalen Zeitplan Betrieb.
-
So erledige ich es auch in meinem Skript. Das funktioniert auch soweit gut. Ich habe einen Xiaomi Button, den ich dazu benutze, ein Art Boost Modus auszulösen. Ich schalte damit die Zieltemperatur auf 25 Grad, die Heizung läuft dann mit 100 %. Beim Erreichen der definierten Zieltemperatur (Xiaomi Temperatursensor in der Mitte des Raumes), lösche ich das ZoneOverlay. Funktioniert prima. Außerdem benutze ich Xiaomi Fenstersensoren, um die Heizung auszuschalten, wenn ein Fenster im Raum geöffnet wird, beim Schließen wird die Heizung wieder eingeschaltet. Da die automatischen Funktionen der Thermostate mitunter die Heizung wieder einschalten (Zeitplan), obwohl ich die Fenster offen habe, habe ich ein weiteres Skript, mit einem Trigger auf Setting.power State, dass die Heizung wieder ausschaltet, wenn das Fenster immer noch offen ist. Funktioniert auch prima. Dennoch finde ich den Datenpunkt clearZoneOverlay nicht sauber definiert, da er als Number definiert ist. Nach meinem Verständnis wäre eine Definition als Logikwert passender. Dies habe ich einfach manuell in dem Datenpunkt geändert. Nun kommt auch keine Warnung mehr im Log, wenn ich den Datenpunkt per Skript steuere. Wie gesagt, es funktioniert auch so. In meiner Variante aber sauberer, da keine Warnung im Log. Ich bin aber sehr froh, dass es diesen Adapter gibt, da man nun nahezu unerschöpfliche Möglichkeiten über den IOBroker hat. Realisiert habe ich bereits, dass die Heizung ab einer definierten Außentemperatur komplett abgeschaltet wird. Etwas weiter oben wird eine Möglichkeit beschrieben, die Away Funktion, die man ja per Abo eigentlich bezahlen muss, per Skript nachbilden kann - auch noch ganz reizvoll.
Ich bin besonders dankbar darüber, dass ich nun sämtliche Sensoren und Geräte, die ich im ioBroker habe, nun mit meinen Tado frei kombinieren kann und das auch noch ohne zeitliche Verzögerungen (ich hatte davor die Fritz!Dect 301 Thermostate, da hat es bis zu 30 Minuten gedauert, bis die Befehle an die Thermostate übermittelt wurden).
Also vielen Dank noch einmal an die Entwickler des Adapters! -
@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.