Sonoff zu bestimmten Zeiten an und aus schalten

  • Hallo Dennis, vielen Dank für deine tollen Videos. Das flashen der Sonoff Basics hat einwandfrei funktioniert. Auch die integration in IoBroker über MQTT funktioniert einwandfrei ( außer dem POW). Was ich gerne möchte ist, dass die Sonoff`s auch über "Programme" in Homematic zu bestimmten Zeiten oder mit einem bestimmten Ereignis schaltbar sind. Ich vermute mal, dass ich die Sonoffs dann in CUXd installieren muss. Hab aber leider keine Ahnung, welche Schalter ich hierfür nehmen muss bzw. wie ich die schalten kann. Evtl. kannst du hierüber ja mal ein Video erstellen.

    • Offizieller Beitrag

    Für eine bestimmte Zeit ein und Aus schalten wenn man sagt, schalte ein, ist auf jeden Fall eine coole Sache die ich selbst auch noch realisieren wollte, bin selbst nicht so mega der Programmierer aber es finden sich bestimmt welche in der Community, die das in paar Minuten mit Blockly basteln und uns ein Bild posten.


    Was die „Zeitschaltuhr“ betrifft mache ich das über die Alexa App, da kann man ja in den Routinen einstellen das etwas zu einer bestimmten Zeit An und zu einer anderen Zeit wieder Aus gehen soll, da mache ich auch noch ein kleines, wirklich kurzes Video drüber.


    Ich denke aber das ich noch warte bis jemand ein Blockly Script postet mit dem das „Eieruhr schalten“ funktioniert, also quasi wenn man sagt „schalte Licht ein“ es automatisch nach 5 Minuten wieder aus geht.


    Dann mache ich da nämlich ein Umfassendes Video zu

  • Alles kopieren und wo im Bild oben der "Blau markierte" Pfeil ist drücken. Dann einfügen.


    Code
    <block xmlns="http://www.w3.org/1999/xhtml" type="on" id="1^1IXHS.b?M*ul+%7_wa" x="-562" y="-12">  <field name="OID">broadlink.0.learnedSignals.000000.Licht_Badezimmer</field>  <field name="CONDITION">any</field>  <field name="ACK_CONDITION"></field>  <statement name="STATEMENT">    <block type="controls_if" id="O}^?7r4,x0|wj^euJWA6">      <mutation elseif="1"></mutation>      <value name="IF0">        <block type="logic_compare" id="L2JIVx(*.eFcA:|4RCzd">          <field name="OP">EQ</field>          <value name="A">            <block type="get_value" id="pH8s.AVaIl7g}U)i60+]">              <field name="ATTR">val</field>              <field name="OID">broadlink.0.learnedSignals.000000.Licht_Badezimmer</field>            </block>          </value>          <value name="B">            <block type="logic_boolean" id="jMr_mHDBXLi7`u+uxOco">              <field name="BOOL">TRUE</field>            </block>          </value>        </block>      </value>      <statement name="DO0">        <block type="control" id="PXce3IY+TxqKl_#8HxH%">          <mutation delay_input="false"></mutation>          <field name="OID">javascript.0.scriptEnabled.Scripte.tts_Licht_Badezimmer_ein</field>          <field name="WITH_DELAY">FALSE</field>          <value name="VALUE">            <block type="logic_boolean" id="b?QiFq9_aS#{*12~dqpH">              <field name="BOOL">TRUE</field>            </block>          </value>          <next>            <block type="update" id="+oA1:x*T:RZap!e0E?JM">              <mutation delay_input="true"></mutation>              <field name="OID">broadlink.0.learnedSignals.000000.Licht_Badezimmer</field>              <field name="WITH_DELAY">TRUE</field>              <field name="DELAY_MS">5</field>              <field name="UNIT">min</field>              <field name="CLEAR_RUNNING">FALSE</field>              <value name="VALUE">                <block type="logic_boolean" id="?LZpRt.e%Ua(tgsQhVl)">                  <field name="BOOL">FALSE</field>                </block>              </value>            </block>          </next>        </block>      </statement>      <value name="IF1">        <block type="logic_compare" id="wDbsD)P_TEJzeLkwTJ?Y">          <field name="OP">EQ</field>          <value name="A">            <block type="get_value" id="59r3Yw=QROuzVWR}xWp7">              <field name="ATTR">val</field>              <field name="OID">broadlink.0.learnedSignals.000000.Licht_Badezimmer</field>            </block>          </value>          <value name="B">            <block type="logic_boolean" id="bihX(eUAsp3![MczsH8?">              <field name="BOOL">FALSE</field>            </block>          </value>        </block>      </value>      <statement name="DO1">        <block type="control" id="%dc0*1HrX(LdC*s`#,/=">          <mutation delay_input="false"></mutation>          <field name="OID">javascript.0.scriptEnabled.Scripte.tts_Licht_Badezimmer_aus</field>          <field name="WITH_DELAY">FALSE</field>          <value name="VALUE">            <block type="logic_boolean" id="#17Y`l/p/=[H6hl?:J8F">              <field name="BOOL">TRUE</field>            </block>          </value>        </block>      </statement>    </block>  </statement></block>


    Angaben sind wie aus deinem Video:


    ALLE "Licht Badezimmer" = Object bei Broadlink im "000000" Ordner. Da wo gespeichert werden soll ob grad an oder aus ist. (oder Cloud Auswahl)
    steuere "scriptEnable....Badezimmer ein" = Brodlink Funksignal. Also deine gespeichertes Signal vom Broadlink für z.B. Licht an
    steuere "scriptEnable....Badezimmer aus" = Brodlink Funksignal. Also deine gespeichertes Signal vom Broadlink für z.B. Licht aus


    5 Min = Wann soll Licht ausgehen.


    Ausschlaggebend ist eigentlich nur, das nach der Verzögerung von 5 Min. das Objekt "Licht Badezimmer" aktualisiert wird zu Wert= "unwar"
    Dadurch wird automatisch von IoBroker der Teil von "sonst falls...mache" ausgeführt und die Lampe geht deswegen aus.


  • Das volle Programm.. Willste eh haben... :D


    1. Installiere den Adapter vis hqwidgets (auch updaten)


    2. Kopieren.. Blauer Pfleil. einfügen.. Rest wie oben...


    Code
    <block xmlns="http://www.w3.org/1999/xhtml" type="on" id="1^1IXHS.b?M*ul+%7_wa" x="-562" y="-12">  <field name="OID">broadlink.0.learnedSignals.000000.Licht_Badezimmer</field>  <field name="CONDITION">any</field>  <field name="ACK_CONDITION"></field>  <statement name="STATEMENT">    <block type="controls_if" id="O}^?7r4,x0|wj^euJWA6">      <mutation elseif="1"></mutation>      <value name="IF0">        <block type="logic_compare" id="L2JIVx(*.eFcA:|4RCzd">          <field name="OP">EQ</field>          <value name="A">            <block type="get_value" id="pH8s.AVaIl7g}U)i60+]">              <field name="ATTR">val</field>              <field name="OID">broadlink.0.learnedSignals.000000.Licht_Badezimmer</field>            </block>          </value>          <value name="B">            <block type="logic_boolean" id="jMr_mHDBXLi7`u+uxOco">              <field name="BOOL">TRUE</field>            </block>          </value>        </block>      </value>      <statement name="DO0">        <block type="control" id="PXce3IY+TxqKl_#8HxH%">          <mutation delay_input="false"></mutation>          <field name="OID">javascript.0.scriptEnabled.Scripte.tts_Licht_Badezimmer_ein</field>          <field name="WITH_DELAY">FALSE</field>          <value name="VALUE">            <block type="logic_boolean" id="b?QiFq9_aS#{*12~dqpH">              <field name="BOOL">TRUE</field>            </block>          </value>          <next>            <block type="update" id="hIjDY@g){X`^OdAgsvsc">              <mutation delay_input="false"></mutation>              <field name="OID">javascript.0.countTrigger</field>              <field name="WITH_DELAY">FALSE</field>              <value name="VALUE">                <block type="logic_boolean" id="ryqiG9-DH6~]qJ2DjieP">                  <field name="BOOL">TRUE</field>                </block>              </value>              <next>                <block type="update" id="+oA1:x*T:RZap!e0E?JM">                  <mutation delay_input="true"></mutation>                  <field name="OID">broadlink.0.learnedSignals.000000.Licht_Badezimmer</field>                  <field name="WITH_DELAY">TRUE</field>                  <field name="DELAY_MS">5</field>                  <field name="UNIT">min</field>                  <field name="CLEAR_RUNNING">FALSE</field>                  <value name="VALUE">                    <block type="logic_boolean" id="?LZpRt.e%Ua(tgsQhVl)">                      <field name="BOOL">FALSE</field>                    </block>                  </value>                </block>              </next>            </block>          </next>        </block>      </statement>      <value name="IF1">        <block type="logic_compare" id="wDbsD)P_TEJzeLkwTJ?Y">          <field name="OP">EQ</field>          <value name="A">            <block type="get_value" id="59r3Yw=QROuzVWR}xWp7">              <field name="ATTR">val</field>              <field name="OID">broadlink.0.learnedSignals.000000.Licht_Badezimmer</field>            </block>          </value>          <value name="B">            <block type="logic_boolean" id="bihX(eUAsp3![MczsH8?">              <field name="BOOL">FALSE</field>            </block>          </value>        </block>      </value>      <statement name="DO1">        <block type="control" id="Ü0*1HrX(LdC*s`#,/=">          <mutation delay_input="false"></mutation>          <field name="OID">javascript.0.scriptEnabled.Scripte.tts_Licht_Badezimmer_aus</field>          <field name="WITH_DELAY">FALSE</field>          <value name="VALUE">            <block type="logic_boolean" id="#17Y`l/p/=[H6hl?:J8F">              <field name="BOOL">TRUE</field>            </block>          </value>        </block>      </statement>    </block>  </statement></block>


    3. countTrigger = objects - javascript.0 - countTrigger
    4. Vis Editor öffnen
    5. Das kopieren :

    Code
    [{"tpl":"tplHqCircle","data":{"visibility-cond":"==","visibility-val":1,"oid":"javascript.0.countdown","min":"0","max":"300","step":"1","displayPrevious":"true","readOnly":true,"unit":"s","visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"digits":"0","is_comma":"true","descriptionLeft":"countdown","cursor":"","bgcolor":"","color":"#000000"},"style":{"left":"452px","top":"550px","width":"46px","height":"47px"},"widgetSet":"hqwidgets"}]


    6. Irgendwo rechten Mausklick und "Mehr" - "Widget importieren". Dann einfügen.
    7. Wenn Du nichts siehst (ein "Kreis" mit "0s") verschieb mal dein "3D Haus Bild" es wird darunter sein. Rechten Mausklick auf den Kreis und bei "mehr" - "in den Vordergrund)
    8. Den "Kreis" anklicken.
    9. Rechte Seite bei "Eigenschaften" des Objektes Bei "Wert" steht "300" Das sind die sec. also 300 Sec. = 5 Min.
    10. Fertisch


    Video für Dich<-------


    11. Ein script noch erstellen. das einfügen:


    Code
    createState('countdown', 300);createState('afterCount', false);createState('countTrigger', false);function count() {    setTimeout(function () {        var timer = getState('countdown').val || 300;        if (timer > 1) {            setState('countTrigger', false);            setState('countdown', timer - 1);            count();        } else {            setState('countdown', 0);            setState('afterCount', true);        }    }, 1000);}
    on('countTrigger', function (obj) {    if (obj.newState.val === true || obj.newState.val === 'true' || obj.newState.val == 1) {        setState('countdown', 300);        setState('afterCount', false);        count();    }    });


    Video Teil 2<------

  • Das wäre gut. Ich will damit einen Wasserbrunnen zum trinken für die Katzen über einen Sonoff Basic steuern der max nach 2 min wieder aus geht damit man das nicht vergisst. Hab dein Script nachgebaut. Nur diese eine Sache fehlt. Habe nur den Sonoff Power Befehl gefunden.

  • Hallo Dennis, vielen Dank für deine tollen Videos. Das flashen der Sonoff Basics hat einwandfrei funktioniert. Auch die integration in IoBroker über MQTT funktioniert einwandfrei ( außer dem POW). Was ich gerne möchte ist, dass die Sonoff`s auch über "Programme" in Homematic zu bestimmten Zeiten oder mit einem bestimmten Ereignis schaltbar sind. Ich vermute mal, dass ich die Sonoffs dann in CUXd installieren muss. Hab aber leider keine Ahnung, welche Schalter ich hierfür nehmen muss bzw. wie ich die schalten kann. Evtl. kannst du hierüber ja mal ein Video erstellen.

    Hi Baerny,


    falls du die Lichter zum bestimmte datum oder mit eine bestimmte Frequenz steuern willst dann empfehle ich dir den fullcalendar Adapter. Da kannst du alles programmieren was eine datum, Uhrzeit und an/aus Steuerung braucht. Ist wirklich Genial.



    LG

    • Offizieller Beitrag
    Zitat

    falls du die Lichter zum bestimmte datum oder mit eine bestimmte Frequenz steuern willst dann empfehle ich dir den fullcalendar Adapter. Da kannst du alles programmieren was eine datum, Uhrzeit und an/aus Steuerung braucht. Ist wirklich Genial.



    LG



    Voll der gute Tipp, das finde ich ja auf jeden Fall mal viel besser als die ganze Zeitsteuerung über die Alexa App auf dem Smartphone zu machen, weil das ist echt ein Gefuttel.


    Vielen Dank


  • THX,


    benutze dass WiFi Bridge Box Controller von Mi-Light und funktioniert alles wunderbar mit mehre LED Lampen .


    bekomme leider denn Script nicht hin , weiß nicht genau was ich wällen muss , ich meine richtige reinfolge



    der Objekt sieht so ausschimmer-media.de/attachment/33/