Garagentor bei hoher Luftfeuchte öffnen

  • Hallo,


    ich bin ganz neu hier und hätte Folgendes vor:


    Ausgangssituation:

    Garage mit Meross MSG100, Feuchtigkeits- und Temperatursensor in der Garage und Außen ( Mobile Alert )

    Da es in der Garage öfter sehr Feucht wird, hätte ich gerne so eine Lösung ( Blockly Script )

    In der Zeit zwischen 08 Uhr und 16 Uhr sollte folgendes gesteuert werden.

    Falls die Luftfeuchtigkeit in der Garage um den Wert X ( z.B.: 10 ) höher ist als der Wert Luftfeuchte Außen,

    dann sollte das Garagentor geöffnet werden.

    Ist die Luftfeuchte Garage dann nur mehr um den Wert X ( z.B.: 5 ) höher als der Wert Luftfeuchte Außen,

    dann sollte das Garagentor wieder geschlossen werden.

    Auch um 16 Uhr sollte das Garagentor geschlossen werden, falls es noch offen ist.

    Das ist doch eher kompliziert!

    Ich bin kompletter Anfänger, kennt jemand so eine ( oder ähnliche ) Lösung ( Blockly Script ).

    Oder könnte mir jemand helfen?

    Bitte keine Diskussion bezüglich automatischem Schließen ohne, dass es jemand sieht!


    Vielen DANK

  • Das script sollte kein Problem sein. Existieren die Datenpunkte "Feuchte innen" und "Feuchte aussen" schon im iobroker. Erhält das Tor einen separaten Auf-/ZuBefehl oder gibt es nur einen Datenpunkt für abwechselnd auf/zu?

  • Hi geschild,


    ich habe Sensoren ( Mobile Alerts ) bei denen ich die Werte der Feuchte innen und aussen abfragen kann.

    Datenpunkte habe ich sonst noch keine. Das Tor kann ich nur wie mit einem Taster steuern, also abwechselnd auf/zu.

  • Ich habe mir auf Youtube was angesehen. Es gibt also einen Zu-Sensor. Für "Mobile Alerts" gibt es einen iobroker adapter und für "Meross" auch. Arbeitest du mit dem iobroker ? Dann sollte der Realisierung nichts im Wege stehen.

  • Hi geschild,


    ich hoffe du meinst dies mit Datenpunkte?




    Hier noch info zu den Feldern vom meross Adapter:

    • 0-garageDoor ist der Status der Tür und kann dort auch geändert werden (also Auf oder Zu)
    • 0-garageDoorWorking sollte auf "true" gehen wenn die Tür sich zwischen Auf oder Zu befindet bzw "gerade fährt"... hatten aber auch schon fälle wo das quasi nie gemeldet wurde oder so kurz das Admin es nicht angezeigt hat
    • dnd ist "Do not disturb" und meistens eine LED am Gerät die man darüber ein-/ausschalten kann




  • Ja genau:


    bei 0-garageDoor auf true - fährt das Tor auf

    und bei 0-garageDoor auf false - fährt das Tor zu


    beide Sensoren werden gebraucht:

    Sensor ...F1F gibt den Messwerte von Luftfeuchte Außen

    Sensor ...D01 gibt den Messwerte von Luftfeuchte Garage

  • Ich habe ein paar UserDatenPunkte angelegt und mit Variablen, auf die das script zugreift, verbunden.

    Du musst die Variablen natürlich mit deinen echten Datenpunkten verbinden.


    Der Trigger-Cron wird z.Zt. alle Minute aufgerufen, was recht häufig ist. NachKlicken auf die fünf Sterne kannst du dieses Intervall ändern.



    <xml xmlns="https://developers.google.com/blockly/xml">

    <variables>

    <variable id=".@;}?ukiF~%oaS.~a|X)">statusGaragentor</variable>

    <variable id="?Oi1=9^yJ#tAz+~X1T]W">luftfeuchteGarage</variable>

    <variable id="Sh#tsydZ)(eO$SPt96BZ">luftfeuchteAussen</variable>

    <variable id="xT=N{!)@RjMGtc/4t)jS">differenzLuftfeuchte</variable>

    </variables>

    <block type="schedule" id="?GAW,``j?iI|_w29/zy(" x="-762" y="-262">

    <field name="SCHEDULE">* * * * *</field>

    <statement name="STATEMENT">

    <block type="debug" id="qe.+{2;JqsGcfu~TDrYe">

    <field name="Severity">log</field>

    <value name="TEXT">

    <shadow type="text" id="nQr2PAXhr+k7U3acF;DT">

    <field name="TEXT">bearbeitet</field>

    </shadow>

    </value>

    <next>

    <block type="variables_set" id="{V:TKEI$f|OS(]KY*TL3">

    <field name="VAR" id=".@;}?ukiF~%oaS.~a|X)">statusGaragentor</field>

    <value name="VALUE">

    <block type="get_value" id="G$EBkMZ?;|eQy4!-}n,J">

    <field name="ATTR">val</field>

    <field name="OID">0_userdata.0.GarageLueften.0-garageDoor</field>

    </block>

    </value>

    <next>

    <block type="variables_set" id="vpELPipHZei}P^j}:eX?">

    <field name="VAR" id="?Oi1=9^yJ#tAz+~X1T]W">luftfeuchteGarage</field>

    <value name="VALUE">

    <block type="get_value" id="Fr/6.DAeEq4CGZ1XUfb?">

    <field name="ATTR">val</field>

    <field name="OID">0_userdata.0.GarageLueften.luftfeuchte_innen</field>

    </block>

    </value>

    <next>

    <block type="variables_set" id="tfAimQ.CpxS_7I4hq9N@">

    <field name="VAR" id="Sh#tsydZ)(eO$SPt96BZ">luftfeuchteAussen</field>

    <value name="VALUE">

    <block type="get_value" id=")@A:SVNuJHm_ZFPUf;o{">

    <field name="ATTR">val</field>

    <field name="OID">0_userdata.0.GarageLueften.luftfeuchte</field>

    </block>

    </value>

    <next>

    <block type="variables_set" id="+WJa3iu/.*2$zhLGQe-Z">

    <field name="VAR" id="xT=N{!)@RjMGtc/4t)jS">differenzLuftfeuchte</field>

    <value name="VALUE">

    <block type="math_arithmetic" id="hM/m(6J/9UnPa?e[_VAs">

    <field name="OP">MINUS</field>

    <value name="A">

    <shadow type="math_number" id="mpqt;kq.2`h9R6:r-KGH">

    <field name="NUM">1</field>

    </shadow>

    <block type="variables_get" id="IlKdA20P^(7v}pmTt#}+">

    <field name="VAR" id="?Oi1=9^yJ#tAz+~X1T]W">luftfeuchteGarage</field>

    </block>

    </value>

    <value name="B">

    <shadow type="math_number" id="1;(}Dyxj9m4N(df1K3{P">

    <field name="NUM">1</field>

    </shadow>

    <block type="variables_get" id=",bM1m~Teb}%J)U7?opy[">

    <field name="VAR" id="Sh#tsydZ)(eO$SPt96BZ">luftfeuchteAussen</field>

    </block>

    </value>

    </block>

    </value>

    <next>

    <block type="controls_if" id="7$:8Gl-O#4Uleq^xAzt}">

    <mutation elseif="1"></mutation>

    <value name="IF0">

    <block type="time_compare_ex" id="7DIJV4v2Vu]gL3x;S2$n">

    <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="false" actual_time="true"></mutation>

    <field name="USE_ACTUAL_TIME">TRUE</field>

    <field name="OPTION">&gt;=</field>

    <value name="START_TIME">

    <shadow type="text" id="H4CXWDG!8!N(gizG7Xhh">

    <field name="TEXT">08:00</field>

    </shadow>

    </value>

    </block>

    </value>

    <statement name="DO0">

    <block type="controls_if" id="(u`/8~W@Ev1Q7z~o6jE,">

    <value name="IF0">

    <block type="logic_compare" id="7ycwDj+I9$XT/RdJlZ3P">

    <field name="OP">GTE</field>

    <value name="A">

    <block type="variables_get" id="du.*#ZlI.PccT[Cx[Ve#">

    <field name="VAR" id="xT=N{!)@RjMGtc/4t)jS">differenzLuftfeuchte</field>

    </block>

    </value>

    <value name="B">

    <block type="math_number" id="Cpnf-H.xeo-8CC5(C:$Y">

    <field name="NUM">10</field>

    </block>

    </value>

    </block>

    </value>

    <statement name="DO0">

    <block type="controls_if" id="+kTK?666e--lBSStIWIL">

    <value name="IF0">

    <block type="logic_compare" id="}f*Pn{lbG;*g2%BLs[Mu">

    <field name="OP">EQ</field>

    <value name="A">

    <block type="variables_get" id="e1RFdG~].~-G8HFCJh#P">

    <field name="VAR" id=".@;}?ukiF~%oaS.~a|X)">statusGaragentor</field>

    </block>

    </value>

    <value name="B">

    <block type="logic_boolean" id="|#,WSf}bm`@u%y,y}$/#">

    <field name="BOOL">FALSE</field>

    </block>

    </value>

    </block>

    </value>

    <statement name="DO0">

    <block type="variables_set" id="L)pOu%0nxkyP~IiE3dE?">

    <field name="VAR" id=".@;}?ukiF~%oaS.~a|X)">statusGaragentor</field>

    <value name="VALUE">

    <block type="logic_boolean" id="=!zuz(0CZbz4q+[3/B}6">

    <field name="BOOL">TRUE</field>

    </block>

    </value>

    </block>

    </statement>

    </block>

    </statement>

    <next>

    <block type="controls_if" id="L3f3{L{vc6k-b7B-#w#3">

    <value name="IF0">

    <block type="logic_compare" id=".S/~6VnuWtLM!mCX}/ED">

    <field name="OP">LTE</field>

    <value name="A">

    <block type="variables_get" id="bs[OGul!a8nMW]4Ht`M7">

    <field name="VAR" id="xT=N{!)@RjMGtc/4t)jS">differenzLuftfeuchte</field>

    </block>

    </value>

    <value name="B">

    <block type="math_number" id="wDw:0sc2*W+88i$88b=y">

    <field name="NUM">5</field>

    </block>

    </value>

    </block>

    </value>

    <statement name="DO0">

    <block type="controls_if" id="E]@E(5mqN1=DJJQ?X5;)">

    <value name="IF0">

    <block type="logic_compare" id="@w5+8o+3fm@g^3;?(#u8">

    <field name="OP">EQ</field>

    <value name="A">

    <block type="variables_get" id="6T)WIU]nhHUJr1?UnP$t">

    <field name="VAR" id=".@;}?ukiF~%oaS.~a|X)">statusGaragentor</field>

    </block>

    </value>

    <value name="B">

    <block type="logic_boolean" id="2)GCo-m4pt9$7M~}(j%T">

    <field name="BOOL">TRUE</field>

    </block>

    </value>

    </block>

    </value>

    <statement name="DO0">

    <block type="variables_set" id="98[WmWS%-W97F6|@iELg">

    <field name="VAR" id=".@;}?ukiF~%oaS.~a|X)">statusGaragentor</field>

    <value name="VALUE">

    <block type="logic_boolean" id="S)$Yaor4~dfEDgz(eyE%">

    <field name="BOOL">FALSE</field>

    </block>

    </value>

    </block>

    </statement>

    </block>

    </statement>

    </block>

    </next>

    </block>

    </statement>

    <value name="IF1">

    <block type="time_compare_ex" id="@nfB?ZOf_%ygzd|L}+HE">

    <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="false" actual_time="true"></mutation>

    <field name="USE_ACTUAL_TIME">TRUE</field>

    <field name="OPTION">&gt;=</field>

    <value name="START_TIME">

    <shadow type="text" id="dX/|lE(N#K0QZQt`P(%N">

    <field name="TEXT">16:00</field>

    </shadow>

    </value>

    </block>

    </value>

    <statement name="DO1">

    <block type="controls_if" id="mXbUSGn_3tI@F/hXrq}v">

    <value name="IF0">

    <block type="logic_compare" id="`zQ*=FBmC%@:xnMxqp]J">

    <field name="OP">EQ</field>

    <value name="A">

    <block type="variables_get" id="tL`w`l~oU=*Tp?5*Eilg">

    <field name="VAR" id=".@;}?ukiF~%oaS.~a|X)">statusGaragentor</field>

    </block>

    </value>

    <value name="B">

    <block type="logic_boolean" id="^Qee#eR0T)|qA$Ma^G^u">

    <field name="BOOL">TRUE</field>

    </block>

    </value>

    </block>

    </value>

    <statement name="DO0">

    <block type="variables_set" id="W^VT/A1Ewt:@,+hCC4.,">

    <field name="VAR" id=".@;}?ukiF~%oaS.~a|X)">statusGaragentor</field>

    <value name="VALUE">

    <block type="logic_boolean" id="W4}]Eh;xE`xp=zE|;kK|">

    <field name="BOOL">FALSE</field>

    </block>

    </value>

    </block>

    </statement>

    </block>

    </statement>

    <next>

    <block type="control" id="cN=C._$_baL{ZyooMHy+">

    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>

    <field name="OID">0_userdata.0.GarageLueften.0-garageDoor</field>

    <field name="WITH_DELAY">FALSE</field>

    <value name="VALUE">

    <block type="variables_get" id="!vIQzoE%BIbZS4=q|juQ">

    <field name="VAR" id=".@;}?ukiF~%oaS.~a|X)">statusGaragentor</field>

    </block>

    </value>

    </block>

    </next>

    </block>

    </next>

    </block>

    </next>

    </block>

    </next>

    </block>

    </next>

    </block>

    </next>

    </block>

    </statement>

    </block>

    </xml>

  • Hi geschild,


    Vielen DANK für das Script.

    Werde es die nächsten Tage testen.


    Bei Fragen oder Unklarheiten darf ich mich hoffentlich melden.


    Was macht eigentlich dieses:


    Nochmals vielen DANK

  • Hallo geschild,


    das Script funktioniert noch nicht ganz wie es soll.

    Das Öffen hat funktioniert - aber nach 16 Uhr hat es nicht mehr geschlossen.

    Auch wenn ich es mit dem Taster geschlossen habe, hat es das Sript wieder geöffnet.

    Ich glaube das Script bleibt immer im falls mache - da die Zeit 16:00 Uhr auch grösser als 08:00 Uhr ist.



    DANKE

  • Habs korrigiert und, da ich nicht weiss was zwischen 0:00 und 8:00 passiert, noch einen "Sicherheitsschliesser" eingebaut.


    <block xmlns="https://developers.google.com/blockly/xml" type="controls_if" id="TR?.x_kM$N9fQU9dmWVA" x="-741" y="-35">

    <mutation elseif="1" else="1"></mutation>

    <value name="IF0">

    <block type="time_compare_ex" id="@nfB?ZOf_%ygzd|L}+HE">

    <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="false" actual_time="true"></mutation>

    <field name="USE_ACTUAL_TIME">TRUE</field>

    <field name="OPTION">&gt;=</field>

    <value name="START_TIME">

    <shadow type="text" id="dX/|lE(N#K0QZQt`P(%N">

    <field name="TEXT">16:00</field>

    </shadow>

    </value>

    </block>

    </value>

    <statement name="DO0">

    <block type="controls_if" id="mXbUSGn_3tI@F/hXrq}v">

    <value name="IF0">

    <block type="logic_compare" id="`zQ*=FBmC%@:xnMxqp]J">

    <field name="OP">EQ</field>

    <value name="A">

    <block type="variables_get" id="tL`w`l~oU=*Tp?5*Eilg">

    <field name="VAR" id=".@;}?ukiF~%oaS.~a|X)">statusGaragentor</field>

    </block>

    </value>

    <value name="B">

    <block type="logic_boolean" id="^Qee#eR0T)|qA$Ma^G^u">

    <field name="BOOL">TRUE</field>

    </block>

    </value>

    </block>

    </value>

    <statement name="DO0">

    <block type="variables_set" id="W^VT/A1Ewt:@,+hCC4.,">

    <field name="VAR" id=".@;}?ukiF~%oaS.~a|X)">statusGaragentor</field>

    <value name="VALUE">

    <block type="logic_boolean" id="W4}]Eh;xE`xp=zE|;kK|">

    <field name="BOOL">FALSE</field>

    </block>

    </value>

    </block>

    </statement>

    </block>

    </statement>

    <value name="IF1">

    <block type="time_compare_ex" id="7DIJV4v2Vu]gL3x;S2$n">

    <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="false" actual_time="true"></mutation>

    <field name="USE_ACTUAL_TIME">TRUE</field>

    <field name="OPTION">&gt;=</field>

    <value name="START_TIME">

    <shadow type="text" id="H4CXWDG!8!N(gizG7Xhh">

    <field name="TEXT">08:00</field>

    </shadow>

    </value>

    </block>

    </value>

    <statement name="DO1">

    <block type="controls_if" id="(u`/8~W@Ev1Q7z~o6jE,">

    <value name="IF0">

    <block type="logic_compare" id="7ycwDj+I9$XT/RdJlZ3P">

    <field name="OP">GTE</field>

    <value name="A">

    <block type="variables_get" id="du.*#ZlI.PccT[Cx[Ve#">

    <field name="VAR" id="xT=N{!)@RjMGtc/4t)jS">differenzLuftfeuchte</field>

    </block>

    </value>

    <value name="B">

    <block type="math_number" id="Cpnf-H.xeo-8CC5(C:$Y">

    <field name="NUM">10</field>

    </block>

    </value>

    </block>

    </value>

    <statement name="DO0">

    <block type="controls_if" id="+kTK?666e--lBSStIWIL">

    <value name="IF0">

    <block type="logic_compare" id="}f*Pn{lbG;*g2%BLs[Mu">

    <field name="OP">EQ</field>

    <value name="A">

    <block type="variables_get" id="e1RFdG~].~-G8HFCJh#P">

    <field name="VAR" id=".@;}?ukiF~%oaS.~a|X)">statusGaragentor</field>

    </block>

    </value>

    <value name="B">

    <block type="logic_boolean" id="|#,WSf}bm`@u%y,y}$/#">

    <field name="BOOL">FALSE</field>

    </block>

    </value>

    </block>

    </value>

    <statement name="DO0">

    <block type="variables_set" id="L)pOu%0nxkyP~IiE3dE?">

    <field name="VAR" id=".@;}?ukiF~%oaS.~a|X)">statusGaragentor</field>

    <value name="VALUE">

    <block type="logic_boolean" id="=!zuz(0CZbz4q+[3/B}6">

    <field name="BOOL">TRUE</field>

    </block>

    </value>

    </block>

    </statement>

    </block>

    </statement>

    <next>

    <block type="controls_if" id="L3f3{L{vc6k-b7B-#w#3">

    <value name="IF0">

    <block type="logic_compare" id=".S/~6VnuWtLM!mCX}/ED">

    <field name="OP">LTE</field>

    <value name="A">

    <block type="variables_get" id="bs[OGul!a8nMW]4Ht`M7">

    <field name="VAR" id="xT=N{!)@RjMGtc/4t)jS">differenzLuftfeuchte</field>

    </block>

    </value>

    <value name="B">

    <block type="math_number" id="wDw:0sc2*W+88i$88b=y">

    <field name="NUM">5</field>

    </block>

    </value>

    </block>

    </value>

    <statement name="DO0">

    <block type="controls_if" id="E]@E(5mqN1=DJJQ?X5;)">

    <value name="IF0">

    <block type="logic_compare" id="@w5+8o+3fm@g^3;?(#u8">

    <field name="OP">EQ</field>

    <value name="A">

    <block type="variables_get" id="6T)WIU]nhHUJr1?UnP$t">

    <field name="VAR" id=".@;}?ukiF~%oaS.~a|X)">statusGaragentor</field>

    </block>

    </value>

    <value name="B">

    <block type="logic_boolean" id="2)GCo-m4pt9$7M~}(j%T">

    <field name="BOOL">TRUE</field>

    </block>

    </value>

    </block>

    </value>

    <statement name="DO0">

    <block type="variables_set" id="98[WmWS%-W97F6|@iELg">

    <field name="VAR" id=".@;}?ukiF~%oaS.~a|X)">statusGaragentor</field>

    <value name="VALUE">

    <block type="logic_boolean" id="S)$Yaor4~dfEDgz(eyE%">

    <field name="BOOL">FALSE</field>

    </block>

    </value>

    </block>

    </statement>

    </block>

    </statement>

    </block>

    </next>

    </block>

    </statement>

    <statement name="ELSE">

    <block type="controls_if" id="yja.z{n/%%oD=B|(6)Fj">

    <value name="IF0">

    <block type="logic_compare" id="^x_(h#{]:l{$g|(k-c7g">

    <field name="OP">EQ</field>

    <value name="A">

    <block type="variables_get" id="/?LMmX.o$E.-b4hGL#4:">

    <field name="VAR" id=".@;}?ukiF~%oaS.~a|X)">statusGaragentor</field>

    </block>

    </value>

    <value name="B">

    <block type="logic_boolean" id="VF*11pAB(nHX7LMYBR?C">

    <field name="BOOL">TRUE</field>

    </block>

    </value>

    </block>

    </value>

    <statement name="DO0">

    <block type="variables_set" id="V/mI031?1!aHYk~lq66h">

    <field name="VAR" id=".@;}?ukiF~%oaS.~a|X)">statusGaragentor</field>

    <value name="VALUE">

    <block type="logic_boolean" id="+fC{+Wt;BJMg;(.3FV%.">

    <field name="BOOL">FALSE</field>

    </block>

    </value>

    </block>

    </statement>

    </block>

    </statement>

    </block>

  • Hi,


    habe noch folgendes eingebaut - bitt um Kontrolle:




    Garagentor soll nur zu oder auf gehen, wenn es nicht schon zu oder offen ist.?

    Es soll eine Meldung geschickt werden - wenn das Garagentor auf oder zu fährt.


    DANKE