Beiträge von maximal1981

    Hallo,

    ich hätte vor einen Aufstellpool komplett zu automatisieren.

    Sollten nur Teilerfahrungen vorhanden sein, bitte nur diese kommentieren.

    Verbessrungsvorschläge sind gerne gesehen. Möglicherweise habe ich andere Lösungswege übersehen oder außerachtgelassen.

    Habe meiner Meinung nach die theoretisch sinnvollste bzw. lt. Recherche vernünftigsten Varianten nicht weiter hineinfließen lassen, da ich wirklich eine ehrliche Meinung haben möchte.

    Nach aktueller Recherche ist der korrekte Aufbau wie folgt vorzunehmen (bei den Unterpunkten ist eure Meinung/Erfahrung gerne erwünscht):

    1. Skimmer
    2. Filter
      • Filtermaterial:
        • Sand
        • Balls
        • Glas
      • filtrierte Wassermenge 2-3 mal (siehe auch Punkt 3)
        • kontinuierlich = m³ Pool * (2 oder 3) /24h = ~m³/h (Förderleitung Pumpe/Stunde)
        • schnelles Filtrieren und 2-3 Zyklen pro Tag (soll geräuscharmer sein wegen größerer Pumpe, jedoch bedingtes Heizen möglich)
    3. Solarheizung/Kühlung (Bypass um es bei zu hoher Wassertemperatur wegzuschalten, bzw. in der Nacht zur Kühlung zu verwenden)
    4. für die Umgehung der Heizung/Kühlung
      • manuell ohne Probleme umsetzbar andere/bessere Produkte/Varianten gerne gesehen
      • elektrisch (noch keine preiswerte Produkte gefunden)
        • fixe Ventilstellung
        • oder Mischmöglichkeit
    5. Salzwasseranlage
      • direkt
        • Betriebszeit gesteuert
      • Bypass

    Beschreibung:

    • Zielsetzung:
      die Klimaanlage soll selbständig beim Überschreiten von 24,5°C beim Heizkörperthermostat im Kühlbetrieb starten und beim Unterschreiten von 23,6°C wieder ausschalten. Wegen WAF musste noch eine Deaktivierung/manuelles Übersteuern des Automatikmodus möglich sein. Da ich es auch wieder aktivieren können wollte, hab ich dies auch inkludiert, sowie einen Reset des Automatikmodus um 0:00 Uhr auf automatisch ON.
      • definierte Voraussetzungen:
        • mindestens eine Person im Haushalt anwesend
        • Heizung ist im OFF-Betrieb
        • Fenster/Balkontüre geschlossen bzw. nicht gekippt
        • bei Initialisierung des Scripts den Zustand von Auto-Modus auf 1 setzen (bei Scriptänderungen bzw. Neustart vom ioBroker/Raspberry)
        • usw.

      es sind zwecks Überwachung etliche Debugs noch enthalten, da dieses Script in seiner aktuellen Ausgabe bis zum Ende des letzten Sommers weiterentwickelt wurde. Sollte aber in der aktuellen Version theoretisch fehlerfrei sein.
    • verwendete Adapter:
      • Tado
      • Shelly
      • Daikin
    • Objekte:
      • Tado:
        • Actual Temperature (beim Heizkörper)
        • Power (ist das Heizkörperthermostat im Heizbetrieb - für den Sommer wichtig)
        • atHome (Präsenzerkennung)
      • Shelly:
        • Schalter Input (für die De-/Aktivierung des Auto-Modus)
        • DW:
          • Door (Balkontüre/Fenster offen/geschlossen)
          • Tilt (Balkontüre/Fenster geschlossen/gekippt)
      • Daikin:
        • control.power (ON/OFF)
        • control.fanDirection (Lamellenstellung)
        • control.fanRate (Geschwindigkeit des Gebläses)
        • control.mode (Betriebsart Kühlen/Heizen/Entfeuchten/Umluft)
        • control.TargetTemperature (Zieltemperatur)


    Bildschirmfoto:

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.
    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.
    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

    Publizierung:

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

    Beschreibung:

    • Zielsetzung:
      um das Nachlegen bzw. Einheizen des Schwedenofens nicht zu übersehen, hab ich mir ein kleines Script gebastelt, welches beim Unterschreiten der eingestellten Temperatur um den Faktor 1,035 (individuell Tages und Presence abhängig) eine Meldung via Alexa erzeugt.
    • verwendete Adapter:
      • Tado
      • Alexa
    • Objekte:
      • Tado:
        • Actual Temperature (beim Heizkörper)
        • Temperature (vorgegeben Solltemperatur im Raum)
        • Power (ist das Heizkörperthermostat im Heizbetrieb - für den Sommer wichtig ;) )
      • Alexa
        • Announcement

    Bildschirmfoto:

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

    Publizierung:

    Blocky Export

    <block xmlns="https://developers.google.com/blockly/xml" type="on_ext" id="ZCbcB{kvcWCvJ2I0=;r1" x="-262" y="63">

    <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>

    <field name="CONDITION">lt</field>

    <field name="ACK_CONDITION"></field>

    <value name="OID0">

    <shadow type="field_oid" id=";DM0h1%G*3c59L,Vzt3~">

    <field name="oid">tado.0.122768.Rooms.2.Actual_Temperature</field>

    </shadow>

    </value>

    <statement name="STATEMENT">

    <block type="debug" id="h,n349Slr/;uPq%Cqd2i">

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

    <value name="TEXT">

    <shadow type="text" id="@1!s_uCcqUG=p%ZGw4_W">

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

    </shadow>

    <block type="text_join" id="uuvM`DLd[P6s!e0WtiZ!" inline="false">

    <mutation items="7"></mutation>

    <value name="ADD0">

    <block type="text" id=".Yq1V3+/5P$D?J`U~P7C">

    <field name="TEXT">Nachlegen oder einheizen. Es hat aktuell noch </field>

    </block>

    </value>

    <value name="ADD1">

    <block type="math_rndfixed" id="ciuGN?Rul0K{V,bEZRuj">

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

    <value name="x">

    <shadow type="math_number">

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

    </shadow>

    <block type="get_value" id="A71s:S-X3w!ro+Cs$2lT">

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

    <field name="OID">tado.0.122768.Rooms.2.Actual_Temperature</field>

    </block>

    </value>

    </block>

    </value>

    <value name="ADD2">

    <block type="text" id="8W%uUbC~gdA4XiLA+oZ(">

    <field name="TEXT"> °C weiter fallend.</field>

    </block>

    </value>

    <value name="ADD3">

    <block type="text_newline" id="@B|FY!iJXK4.FA.~Y.|s">

    <field name="Type">\n</field>

    </block>

    </value>

    <value name="ADD4">

    <block type="text" id="W6#yJt$W?#vG[w!Pj(1.">

    <field name="TEXT">Alarmschwelle ist auf </field>

    </block>

    </value>

    <value name="ADD5">

    <block type="math_rndfixed" id="zEYnFN~2}*?BA5GEmx0H">

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

    <value name="x">

    <shadow type="math_number" id="oD`rLe[PvKt~h[z#0*V.">

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

    </shadow>

    <block type="math_arithmetic" id="OHc0-4Bj^=rIt!++gss3">

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

    <value name="A">

    <shadow type="math_number">

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

    </shadow>

    <block type="get_value" id="vvI8e.}J@`qGg0`9jfaC">

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

    <field name="OID">tado.0.122768.Rooms.2.setting.temperature</field>

    </block>

    </value>

    <value name="B">

    <shadow type="math_number" id="wa;H?Pll7m0Fth:LN#rt">

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

    </shadow>

    </value>

    </block>

    </value>

    </block>

    </value>

    <value name="ADD6">

    <block type="text" id="G}qo=sO*Tu]fjU4VQ;2_">

    <field name="TEXT">°C gesetzt.</field>

    </block>

    </value>

    </block>

    </value>

    <next>

    <block type="controls_if" id=",lghx2kuId1Vy_%b(LI$">

    <value name="IF0">

    <block type="logic_operation" id="ZNlUt*+sz/w:NM):pCof" inline="false">

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

    <value name="A">

    <block type="logic_compare" id="PtUhH}66P`v|ZL!E//[}">

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

    <value name="A">

    <block type="get_value" id="49rS:7cKf1/[opAg`%/I">

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

    <field name="OID">tado.0.122768.Rooms.2.Actual_Temperature</field>

    </block>

    </value>

    <value name="B">

    <block type="math_rndfixed" id="67A,E!2*;d^(Er%Sug8I">

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

    <value name="x">

    <shadow type="math_number" id="yN/udVB#O?X6I$k1S]rE">

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

    </shadow>

    <block type="math_arithmetic" id="|}Sn]kF9r^V_EOBz9P+v">

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

    <value name="A">

    <shadow type="math_number" id="{ZBFg0j$p/BO])BR^U?.">

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

    </shadow>

    <block type="get_value" id="B%e$LJa|;P*8;wx$ceyJ">

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

    <field name="OID">tado.0.122768.Rooms.2.setting.temperature</field>

    </block>

    </value>

    <value name="B">

    <shadow type="math_number" id="5iDHq8krNXh*`#4iFe|O">

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

    </shadow>

    </value>

    </block>

    </value>

    </block>

    </value>

    </block>

    </value>

    <value name="B">

    <block type="logic_operation" id="Uzv@+$Er|:a/-m}E;Ebl">

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

    <value name="A">

    <block type="logic_compare" id="{o0_-qOgU[LE__nubQ,e">

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

    <value name="A">

    <block type="get_value" id="D*d+v]pAref3sK1MjL?d">

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

    <field name="OID">tado.0.122768.Rooms.2.setting.power</field>

    </block>

    </value>

    <value name="B">

    <block type="text" id="{bL?Pt6KB)c2J]U+s%(.">

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

    </block>

    </value>

    </block>

    </value>

    <value name="B">

    <block type="logic_operation" id="Qwr0]K!vq{_f{vN;Px+}">

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

    <value name="A">

    <block type="time_compare_ex" id="r86s!tEt:otf=XNM/bk.">

    <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="B.393k4O)l4!6!CgwM03">

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

    </shadow>

    </value>

    </block>

    </value>

    <value name="B">

    <block type="time_compare_ex" id="{_H#[:dH5$XNR4@S[9Vp">

    <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">&lt;</field>

    <value name="START_TIME">

    <shadow type="text" id="hRt9dQJ,7sxgmqnp[hxE">

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

    </shadow>

    </value>

    </block>

    </value>

    </block>

    </value>

    </block>

    </value>

    </block>

    </value>

    <statement name="DO0">

    <block type="toggle" id=")RV;D%,$h~uU;j.wkGM0" disabled="true">

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

    <field name="OID">harmony.0.Harmony_Hub.Sony-Heimkino.Mute</field>

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

    <next>

    <block type="control" id="s*ONNY_QIU=p0}$;VaSA">

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

    <field name="OID">alexa2.0.Echo-Devices.G091EU0805031XFU.Commands.announcement</field>

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

    <value name="VALUE">

    <block type="text_join" id="]Ob`6H{@:D(90$O3I$dI">

    <mutation items="3"></mutation>

    <value name="ADD0">

    <block type="text" id="h`d%l!e2rou!G7TLW|9A">

    <field name="TEXT">Nachlegen oder einheizen. Es hat aktuell noch </field>

    </block>

    </value>

    <value name="ADD1">

    <block type="math_rndfixed" id="tkF=Qm/@seHF)h_Yv$EO">

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

    <value name="x">

    <shadow type="math_number">

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

    </shadow>

    <block type="get_value" id=":l|tO_C=`uU7J!b7CJN=">

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

    <field name="OID">tado.0.122768.Rooms.2.Actual_Temperature</field>

    </block>

    </value>

    </block>

    </value>

    <value name="ADD2">

    <block type="text" id="I+e+bt5J@qTQ9w;J_=Km">

    <field name="TEXT"> °C weiter fallend.</field>

    </block>

    </value>

    </block>

    </value>

    <next>

    <block type="timeouts_wait" id="vZRxvZm?s9n(FocRYT{o" disabled="true">

    <field name="DELAY">11</field>

    <field name="UNIT">sec</field>

    <next>

    <block type="toggle" id=",tBX*%lwy:7[fh3=;1:4" disabled="true">

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

    <field name="OID">harmony.0.Harmony_Hub.Sony-Heimkino.Mute</field>

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

    </block>

    </next>

    </block>

    </next>

    </block>

    </next>

    </block>

    </statement>

    </block>

    </next>

    </block>

    </statement>

    </block>

    JavaScript Export

    on({id: 'tado.0.122768.Rooms.2.Actual_Temperature', change: "lt"}, async function (obj) {
      var value = obj.state.val;
      var oldValue = obj.oldState.val;
    console.warn((['Nachlegen oder einheizen. Es hat aktuell noch ',Math.round(getState("tado.0.122768.Rooms.2.Actual_Temperature").val*10)/10,' °C weiter fallend.','\n','Alarmschwelle ist auf ',Math.round((getState("tado.0.122768.Rooms.2.setting.temperature").val * 1.035)*10)/10,'°C gesetzt.'].join('')));
      if (getState("tado.0.122768.Rooms.2.Actual_Temperature").val < Math.round((getState("tado.0.122768.Rooms.2.setting.temperature").val * 1.035)*10)/10 && getState("tado.0.122768.Rooms.2.setting.power").val != 'OFF' && compareTime('06:00', null, ">", null) && compareTime('20:00', null, "<", null)) {
    setState("alexa2.0.Echo-Devices.G091EU0805031XFU.Commands.announcement"/*announcement*/, (['Nachlegen oder einheizen. Es hat aktuell noch ',Math.round(getState("tado.0.122768.Rooms.2.Actual_Temperature").val*10)/10,' °C weiter fallend.'].join('')));
    }
    });

    Beschreibung:

    • Zielsetzung:
      da des Öfteren vergessen wird das Licht in den Keller abzudrehen, habe ich das über ein kleines Script erledigt. Allerdings soll es weiterhin die Möglichkeit geben es auf Dauer zu schalten (3 malige Stellungsänderung von der Wippe), was unter anderem noch ein visuelles Feedback liefert, indem Licht nochmal kurz aus und an geht zur Bestätigung.
    • verwendete Adapter:
      shelly
    • Objekte:
      • Input
      • Switch

    Bildschirmfoto:

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

    Publizierung:

    Blockly Export

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

    <variables>

    <variable id="p*-$t3f@~7*C#1ac#@]O">cnt</variable>

    <variable type="timeout" id="timeout">timeout</variable>

    <variable type="timeout" id="timeout3">timeout3</variable>

    <variable type="timeout" id="timeout2">timeout2</variable>

    </variables>

    <block type="on_ext" id=",|?d=e^/)aLNka/4i~.C" x="1067" y="1110">

    <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 xmlns="http://www.w3.org/1999/xhtml" type="field_oid" id="$pb_Q;EQV#xYAfrzLZ17">

    <field name="oid">default</field>

    </shadow>

    <block type="field_oid" id=")P52FE0%`HJTm$s8j*.I">

    <field name="oid">shelly.0.SHSW-1#C49979#1.Relay0.Input</field>

    </block>

    </value>

    <statement name="STATEMENT">

    <block type="math_change" id="t@ESvQCb5{q/Xf_d@.?(">

    <field name="VAR" id="p*-$t3f@~7*C#1ac#@]O">cnt</field>

    <value name="DELTA">

    <shadow type="math_number" id="Iz|a(Nh5Ii+.,]lngmqK">

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

    </shadow>

    </value>

    <next>

    <block type="debug" id="~1Q)H1m1jeS@|;Z#V$DX">

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

    <value name="TEXT">

    <shadow xmlns="http://www.w3.org/1999/xhtml" type="text" id="dQ|eubZfsTKTiBuJB*jg">

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

    </shadow>

    <block type="variables_get" id="YS}o{(WHLj;3mY~!1sk:">

    <field name="VAR" id="p*-$t3f@~7*C#1ac#@]O">cnt</field>

    </block>

    </value>

    <next>

    <block type="controls_if" id="PJ./cB1b(nfuZmWwb0;a">

    <mutation elseif="2"></mutation>

    <value name="IF0">

    <block type="logic_compare" id="5*|Hq.3Vgq_[rSWET54b" inline="false">

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

    <value name="A">

    <block type="variables_get" id="[@G-w$u5EdWV-Y_p2:7d">

    <field name="VAR" id="p*-$t3f@~7*C#1ac#@]O">cnt</field>

    </block>

    </value>

    <value name="B">

    <block type="math_number" id="+F1LB[}2!WSoIEb^uSVs">

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

    </block>

    </value>

    </block>

    </value>

    <statement name="DO0">

    <block type="timeouts_settimeout" id="qU3E+m0`crr2|#P_tZBm">

    <field name="NAME">timeout</field>

    <field name="DELAY">2000</field>

    <field name="UNIT">ms</field>

    <statement name="STATEMENT">

    <block type="variables_set" id="i,x^WBgz[2]%Lwe~2(,m">

    <field name="VAR" id="p*-$t3f@~7*C#1ac#@]O">cnt</field>

    <value name="VALUE">

    <block type="math_number" id="h^up02eM7sYFFRfrS`F4">

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

    </block>

    </value>

    <next>

    <block type="timeouts_settimeout" id="9=52h){v~7nkDUQHx`x#">

    <field name="NAME">timeout3</field>

    <field name="DELAY">3</field>

    <field name="UNIT">min</field>

    <statement name="STATEMENT">

    <block type="control" id="8b_2m-Ik3fA7x:D92%sg">

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

    <field name="OID">shelly.0.SHSW-1#C49979#1.Relay0.Switch</field>

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

    <value name="VALUE">

    <block type="logic_boolean" id="}2(|jPq:rgt#}u)3?Cnb">

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

    </block>

    </value>

    </block>

    </statement>

    </block>

    </next>

    </block>

    </statement>

    </block>

    </statement>

    <value name="IF1">

    <block type="logic_compare" id="7J[jeZYGjM0J~4`ccN2~" inline="false">

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

    <value name="A">

    <block type="variables_get" id="Tu+|jI{4WUZMS:*L4Yi5">

    <field name="VAR" id="p*-$t3f@~7*C#1ac#@]O">cnt</field>

    </block>

    </value>

    <value name="B">

    <block type="math_number" id="rw/vk#jLI-M:_1`U[^t!">

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

    </block>

    </value>

    </block>

    </value>

    <statement name="DO1">

    <block type="timeouts_cleartimeout" id="T%$FEfY;5x-Z~KkG?PP$">

    <field name="NAME">timeout</field>

    <next>

    <block type="timeouts_cleartimeout" id="lhN`[RpCFYfn%bmWDn-v">

    <field name="NAME">timeout3</field>

    <next>

    <block type="timeouts_settimeout" id=",QGPb*]a6K5I./@R6me?">

    <field name="NAME">timeout2</field>

    <field name="DELAY">2000</field>

    <field name="UNIT">ms</field>

    <statement name="STATEMENT">

    <block type="variables_set" id="?da}6tT(N/xuf8b^JQqc">

    <field name="VAR" id="p*-$t3f@~7*C#1ac#@]O">cnt</field>

    <value name="VALUE">

    <block type="math_number" id="No,3*B1[}n)i8tYG6S9L">

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

    </block>

    </value>

    </block>

    </statement>

    </block>

    </next>

    </block>

    </next>

    </block>

    </statement>

    <value name="IF2">

    <block type="logic_compare" id="AE~sgDY.7+7*NH|7;):}" inline="false">

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

    <value name="A">

    <block type="variables_get" id="40WITygti?qi*oQ;Lwu.">

    <field name="VAR" id="p*-$t3f@~7*C#1ac#@]O">cnt</field>

    </block>

    </value>

    <value name="B">

    <block type="math_number" id="c!C#,!:(0#t[g)##X^Cv">

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

    </block>

    </value>

    </block>

    </value>

    <statement name="DO2">

    <block type="timeouts_cleartimeout" id="Fb1Vi-Yt%`0z6Urmt*!A">

    <field name="NAME">timeout</field>

    <next>

    <block type="timeouts_cleartimeout" id="Y~_Z7SI32t{.+CA@|FcL">

    <field name="NAME">timeout2</field>

    <next>

    <block type="timeouts_cleartimeout" id="Ge%Q(T6.]OIIE8aqGwrn">

    <field name="NAME">timeout3</field>

    <next>

    <block type="variables_set" id=")*,W%[5R.;]B133AVyJx">

    <field name="VAR" id="p*-$t3f@~7*C#1ac#@]O">cnt</field>

    <value name="VALUE">

    <block type="math_number" id="yve|*/[x-E7tF{;5-qZf">

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

    </block>

    </value>

    <next>

    <block type="timeouts_wait" id="-sI,8hF~Mf4~8@B/Qi/l">

    <field name="DELAY">500</field>

    <field name="UNIT">ms</field>

    <next>

    <block type="control" id="vr(?IruY2J[EimO]$h%K">

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

    <field name="OID">shelly.0.SHSW-1#C49979#1.Relay0.Switch</field>

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

    <value name="VALUE">

    <block type="logic_boolean" id="xC5[{M,@[}Sq~?.*Kzst">

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

    </block>

    </value>

    <next>

    <block type="timeouts_wait" id="8VZ08e_9X{q7$wnav1uC">

    <field name="DELAY">500</field>

    <field name="UNIT">ms</field>

    <next>

    <block type="control" id="oR:,q`tei,G*ws*E7_ha">

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

    <field name="OID">shelly.0.SHSW-1#C49979#1.Relay0.Switch</field>

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

    <value name="VALUE">

    <block type="logic_boolean" id="DOzEe~k08;X;gKRfgZ}?">

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

    </block>

    </value>

    </block>

    </next>

    </block>

    </next>

    </block>

    </next>

    </block>

    </next>

    </block>

    </next>

    </block>

    </next>

    </block>

    </next>

    </block>

    </statement>

    </block>

    </next>

    </block>

    </next>

    </block>

    </statement>

    </block>

    </xml>

    JavaScript Export

    var cnt, timeout, timeout3, timeout2;

    on({id: 'shelly.0.SHSW-1#C49979#1.Relay0.Input', change: "ne"}, async function (obj) {
      var value = obj.state.val;
      var oldValue = obj.oldState.val;
    cnt = (typeof cnt == 'number' ? cnt : 0) + 1;
    console.warn(cnt);
      if (cnt == 1) {
    timeout = setTimeout(async function () {
    cnt = 0;
    timeout3 = setTimeout(async function () {
    setState("shelly.0.SHSW-1#C49979#1.Relay0.Switch"/*Halbkeller-Licht_Switch*/, false);
    }, 180000);
    }, 2000);
    } else if (cnt == 2) {
    (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})();
    (function () {if (timeout3) {clearTimeout(timeout3); timeout3 = null;}})();
    timeout2 = setTimeout(async function () {
    cnt = 0;
    }, 2000);
    } else if (cnt >= 3) {
    (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})();
    (function () {if (timeout2) {clearTimeout(timeout2); timeout2 = null;}})();
    (function () {if (timeout3) {clearTimeout(timeout3); timeout3 = null;}})();
    cnt = 0;
        await wait(500);
    setState("shelly.0.SHSW-1#C49979#1.Relay0.Switch"/*Halbkeller-Licht_Switch*/, false);
        await wait(500);
    setState("shelly.0.SHSW-1#C49979#1.Relay0.Switch"/*Halbkeller-Licht_Switch*/, true);
    }
    });

    ich kann mich dunkel erinnern, dass ich das auch hatte.

    1. dein timer sieht anders aus (steht hinten noch dran "ms") :/
    2. du resetest deinen timer nicht, was mir schon von der logik her nicht gefällt
    3. bist du dir sicher, dass dein Wert eine Zahl ist, vll wird es als String gewertet

    Auch das kommt nicht in Frage weil ich leider keine tiefen Dosen mehr frei habe. War ja kein Neubau, sonst hätte ich vermutlich auch nicht Shellys im Einsatz, aber so zum Nachrüsten bin ich mit meinen ganzen Shellys super zufrieden was Preis/Leistung angeht, außer eben der Button nervt ein wenig, aber vielleicht gibt es da ja in kommenden Firmware die Möglichkeit eine 6 Aktion hinzuzufügen oder eben eine "Gruppenaktion" (alle Rollläden Wohnzimmer open/close).

    Im Zählerkasten wird noch genügend Platz für den Dummy sein ;)