-
Notifications
You must be signed in to change notification settings - Fork 46
Rollladensteuerung _ Devolo MT2761
Nico Hartung edited this page Jun 9, 2020
·
1 revision
Ich habe hier meine Rollladensteuerung etwas komplexer als normal abgebildet, da es öfters zu Fehlverhalten gekommen ist. Das Problem haben nicht nur die Shutter von Devolo, auch Qubino und Fibaro sind davon betroffen - das es keinen Datenpunkt für die Richtung gibt und man eine manuelle Steuerung nur Anhand des Stromverbrauchs erkennt.
In meiner Konfiguration muss für jeden Shutter ein Datenpunkt (number
) erzeugt werden und ein Blockly Skript.
Datenpunkt erzeugen, in meinem Fall 0_userdata.0.rolllaeden.varTargetPositionWohnzimmerFenster
Service-Typ: WindowCovering
Characteristic: CurrentPosition
InOut: ioBroker.State.OnlyACK
State: zwave.0.NODE17.SWITCH_MULTILEVEL.Level_1
Conversion: scaleInt
HomeKit Min: 0
HomeKit Max: 100
ioBroker Min: 0
ioBroker Max: 99
Characteristic: TargetPosition
InOut: ioBroker.State
State: 0_userdata.0.rolllaeden.varTargetPositionWohnzimmerFenster
Conversion: scaleInt
HomeKit Min: 0
HomeKit Max: 100
ioBroker Min: 0
ioBroker Max: 99
Nutzen:
- grundlegende Funktionalität abbilden
- ständige HomeKit-Slider Änderungen abfangen (teilweise 4-5 Änderungen pro Sekunde)
- manuelle Schaltvorgänge anhand des Stromverbrauchs erkennen
🚨 Natürlich müssen die Datenpunkte ausgetauscht werden!
<xml xmlns="https://developers.google.com/blockly/xml">
<variables>
<variable id="?Mztia}$iK,QEhVSirfQ">Name</variable>
<variable type="timeout" id="timeout_homekit">timeout_homekit</variable>
<variable type="timeout" id="timeout_manuell">timeout_manuell</variable>
</variables>
<block type="comment" id="opdmjN(U/8Q+k,Kyy]X+" x="37" y="13">
<field name="COMMENT">Steuerung über HomeKit</field>
<next>
<block type="on_ext" id="_9Cs]-)|bynSj=HbW^(5">
<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="@42b,1,,ydQ$r%:ABI5X">
<field name="oid">0_userdata.0.rolllaeden.varTargetPositionWohnzimmerFenster</field>
</shadow>
</value>
<statement name="STATEMENT">
<block type="variables_set" id=":I6xw![8T3iO5TgY-~$n">
<field name="VAR" id="?Mztia}$iK,QEhVSirfQ">Name</field>
<value name="VALUE">
<block type="text" id="+pypvAW.o90Od{%MaaZJ">
<field name="TEXT">Fenster Wohnzimmer</field>
</block>
</value>
<next>
<block type="controls_if" id="8t!bE,FARiGadGX+=p8i">
<value name="IF0">
<block type="logic_compare" id="Nr=9:gtc_`QiN4e60q`*">
<field name="OP">EQ</field>
<value name="A">
<block type="on_source" id="EkPcGrLu2r*(6%g/gX9U">
<field name="ATTR">state.from</field>
</block>
</value>
<value name="B">
<block type="text" id="$xZ5B(8zgupC/BdY5Gvn">
<field name="TEXT">system.adapter.yahka.0</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="update" id="kXa(tK-CT+l-s![qExJS">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">0_userdata.0.rolllaeden.varTargetPositionWohnzimmerFenster</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="math_round" id=".GqH#|ScT=!XPo5^ug1P">
<field name="OP">ROUND</field>
<value name="NUM">
<shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id=".oaXbAW5[Uu*v2T0ebw|">
<field name="NUM">3.1</field>
</shadow>
<block type="on_source" id="}RJI1eC-+2#n)B2r*hvo">
<field name="ATTR">state.val</field>
</block>
</value>
</block>
</value>
<next>
<block type="timeouts_settimeout" id="w7F/y~}F%M+-zK)B~}u7">
<field name="NAME">timeout_homekit</field>
<field name="DELAY">1500</field>
<field name="UNIT">ms</field>
<statement name="STATEMENT">
<block type="controls_if" id="yCIv$GuGwkd!:0du:M1x">
<value name="IF0">
<block type="logic_compare" id="@)qi^kcyVJJrbgj2Rw2r">
<field name="OP">EQ</field>
<value name="A">
<block type="math_round" id="`YhlVvOJ]!m#]w@=zo1c">
<field name="OP">ROUND</field>
<value name="NUM">
<shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="S-95rd@s(C2(Pe7asv/u">
<field name="NUM">3.1</field>
</shadow>
<block type="on_source" id="m`MfW@l^KXO8oJ:;@8_I">
<field name="ATTR">state.val</field>
</block>
</value>
</block>
</value>
<value name="B">
<block type="get_value" id="d7-}`bv5pmd%x$M#C[4A">
<field name="ATTR">val</field>
<field name="OID">0_userdata.0.rolllaeden.varTargetPositionWohnzimmerFenster</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="control" id="?vKcpLf9h2Eg$.=+BNO1">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">zwave.0.NODE17.SWITCH_MULTILEVEL.Level_1</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="^uemxS.,(:*M]Iofse23">
<field name="NUM">0</field>
</shadow>
<block type="get_value" id="/yCJARsGJ[OX[gU[b#su">
<field name="ATTR">val</field>
<field name="OID">0_userdata.0.rolllaeden.varTargetPositionWohnzimmerFenster</field>
</block>
</value>
<next>
<block type="timeouts_cleartimeout" id="AoOP0X^K?fGn?3ioso+/">
<field name="NAME">timeout_homekit</field>
</block>
</next>
</block>
</statement>
</block>
</statement>
</block>
</next>
</block>
</statement>
</block>
</next>
</block>
</statement>
<next>
<block type="comment" id="N@|Kl;@%,;kfZzx$vH6u">
<field name="COMMENT">Steuerung über HomeKit oder manuell am Schalter ...</field>
<next>
<block type="comment" id="dzMRn1vH$W6!{18[;0-]">
<field name="COMMENT">... anhand des Stromverbrauchs</field>
<next>
<block type="on_ext" id="vBq,r{Qpn`TqKSX^YcDP">
<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="8D0UpVvGeyA/#;o`H.xr">
<field name="oid">zwave.0.NODE17.SWITCH_MULTILEVEL.Level_1</field>
</shadow>
</value>
<statement name="STATEMENT">
<block type="variables_set" id="AV6V=hP-X2W4ofe`5`Wz">
<field name="VAR" id="?Mztia}$iK,QEhVSirfQ">Name</field>
<value name="VALUE">
<block type="text" id="L[oK5q](UUY7j3(-C4__">
<field name="TEXT">Fenster Wohnzimmer</field>
</block>
</value>
<next>
<block type="controls_if" id="a~DVlEt8^3ATAfF@uHcF">
<value name="IF0">
<block type="logic_compare" id="Q]=tt1t)|68M!p#pJ6Uc">
<field name="OP">EQ</field>
<value name="A">
<block type="on_source" id="=j}egseCCA){~7N*q``3">
<field name="ATTR">state.from</field>
</block>
</value>
<value name="B">
<block type="text" id="Qkb$1ak7+ysFi48U@,Ff">
<field name="TEXT">system.adapter.zwave.0</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="comment" id="_Zm:a!y?C4#D#xOLn#vO">
<field name="COMMENT">Warte auf Werteübermittlung (Level schneller als Verbrauch)</field>
<next>
<block type="timeouts_settimeout" id="zZ_Ua,xjDsIW;o?D`QKU">
<field name="NAME">timeout_manuell</field>
<field name="DELAY">2000</field>
<field name="UNIT">ms</field>
<statement name="STATEMENT">
<block type="controls_if" id="lT=!;bt5{Ad0~7)$v5Vl">
<value name="IF0">
<block type="logic_compare" id="K[_|wkHXgJk@M7C=rbG5">
<field name="OP">EQ</field>
<value name="A">
<block type="get_value" id="7K.qW46i/+o{pGhhMMm5">
<field name="ATTR">val</field>
<field name="OID">zwave.0.NODE17.METER.Electric_-_W_1</field>
</block>
</value>
<value name="B">
<block type="math_number" id="%#/TQtg*b)*etQt37Qbr">
<field name="NUM">0</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="update" id="du}anPemu)`9U$C:kSHT">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
<field name="OID">0_userdata.0.rolllaeden.varTargetPositionWohnzimmerFenster</field>
<field name="WITH_DELAY">TRUE</field>
<field name="DELAY_MS">500</field>
<field name="UNIT">ms</field>
<field name="CLEAR_RUNNING">FALSE</field>
<value name="VALUE">
<block type="on_source" id="mDY_=37#n#a~9bS2lP.;">
<field name="ATTR">state.val</field>
</block>
</value>
<next>
<block type="timeouts_cleartimeout" id="sSc_sg(Q||FRn]YI6N53">
<field name="NAME">timeout_manuell</field>
</block>
</next>
</block>
</statement>
</block>
</statement>
</block>
</next>
</block>
</statement>
</block>
</next>
</block>
</statement>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</xml>