Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Gelöst] [Blockly] Rollladen mit Lux wert fahren

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Gelöst] [Blockly] Rollladen mit Lux wert fahren

    This topic has been deleted. Only users with topic management privileges can see it.
    • cvidal
      cvidal Forum Testing last edited by

      Joa den Sinn verstehe ich, glaub ich 😉 aber da scheitert es bis jetzt an der Umsetzung…

      Das die aber erstmal runterfahren und der Zustand vom Fenster geprüft wird ist das denn so richtig?

      Habe jetzt mal Testweise zwei Fenster programmiert aber das kommt mir irgendwie zu aufwändig vor.

      2113_unbenannt.png

      on({id: 'hm-rpc.0.OEQ0228737.1.LUX', change: "ne"}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        if (getState("hm-rpc.0.OEQ0228737.1.LUX").val < 4 && getState("hm-rpc.0.NEQ1157343.1.STATE").val == false) {
          setStateDelayed("knx.0.Beschattung_EG.Position_Anfahren.HWR"/*HWR*/, 100, 55000, false);
        } else {
          setStateDelayed("knx.0.Beschattung_EG.Position_Anfahren.HWR"/*HWR*/, 50, 55000, false);
        }
        if (getState("hm-rpc.0.OEQ0228737.1.LUX").val < 4 && getState("hm-rpc.0.OEQ0226002.1.STATE").val == false) {
          setStateDelayed("knx.0.Beschattung_EG.Fahren.Wohnzimmer_2"/*Wohnzimmer 2*/, 100, 50000, false);
        } else {
          setStateDelayed("knx.0.Beschattung_EG.Position_Anfahren.Wohnzimmer_2"/*Wohnzimmer 2*/, 50, 50000, false);
        }
      });
      

      Gruß Christian

      1 Reply Last reply Reply Quote 0
      • paul53
        paul53 last edited by

        Als Javascript (geht viel schneller als in Blockly)

        var rolloHWR = true;
        var rolloWz = true;
        
        schedule({astro: "sunset", shift: 10}, function () {  // Trigger Sonnenuntergang
            rolloHWR = true;
            rolloWz = true;
        });
        
        on({id: 'hm-rpc.0.OEQ0228737.1.LUX', change: "ne"}, function (obj) {
          var value = obj.state.val;
          var oldValue = obj.oldState.val;
          if (value < 4 && getState("hm-rpc.0.NEQ1157343.1.STATE").val == false && rolloHWR) {
            setStateDelayed("knx.0.Beschattung_EG.Position_Anfahren.HWR"/*HWR*/, 100, 55000, false);
            rolloHWR = false;
          }
          if (value < 4 && getState("hm-rpc.0.OEQ0226002.1.STATE").val == false && rolloWz) {
            setStateDelayed("knx.0.Beschattung_EG.Fahren.Wohnzimmer_2"/*Wohnzimmer 2*/, 100, 50000, false);
            rolloWz = false;
          }
        });
        
        1 Reply Last reply Reply Quote 0
        • cvidal
          cvidal Forum Testing last edited by

          Danke für deine Mühe, werde es die Tage mal testen.

          Um mir Javascript anzueignen fehlt mir leider die Zeit oft aber auch das Verständnis deshalb mache ich eigentlich meine Skripte über Blockly.

          Gruß Christian

          1 Reply Last reply Reply Quote 0
          • cvidal
            cvidal Forum Testing last edited by

            So ich habe jetzt 2 Skripte erstellt eines Funktionier bin damit aber noch nicht ganz zufrieden und das zweit läuft leider nicht.

            Bei diesem Skript funktioniert alles soweit aber in dem erstellten Datenpunkt Rollladen_Hoch/Runter wird weder wahr noch unwahr geschrieben, trotzdem funktioniert das Skript.

            Noch lieber wäre mir das ich den Datenpunkt mit Hoch/Runter füllen kann und darauf dann trigger aber ich weiß nicht wie ich das umsetzten soll.

            Bräuchte da wohl noch Hilfe.
            2113_skript_1.png

            ! createState("Rollladen_Hoch/Runter", function () {
            ! });
            ! on({id: 'hm-rpc.0.OEQ0228737.1.LUX', change: "ne"}, function (obj) {
            ! var value = obj.state.val;
            ! var oldValue = obj.oldState.val;
            ! console.log('*** Lux hat sich aktualisiert');
            ! if (getState("hm-rpc.0.OEQ0228737.1.LUX").val < 4) {
            ! setStateDelayed('javascript.0.Rollladen_Hoch/Runter', true, false, parseInt(0, 10), false);
            ! console.log('*** Jalousie runter auf wahr setzen');
            ! } else if (getState("hm-rpc.0.OEQ0228737.1.LUX").val > 100) {
            ! setStateDelayed('javascript.0.Rollladen_Hoch/Runter', false, false, parseInt(0, 10), false);
            ! console.log('*** Jalousie runter auf unwahr setzen');
            ! }
            ! });
            ! on({id: 'javascript.0.Rollladen_Hoch/Runter', val: true}, function (obj) {
            ! var value = obj.state.val;
            ! var oldValue = obj.oldState.val;
            ! console.log('*** Jalousie runter fahren');
            ! setState("knx.0.Beschattung_OG.Fahren.Eltern"/Eltern/, true);
            ! setStateDelayed("knx.0.Beschattung_OG.Fahren.Kind_1"/Kind 1/, true, 5000, false);
            ! setStateDelayed("knx.0.Beschattung_OG.Fahren.Kind_2"/Kind 2/, true, 10000, false);
            ! setStateDelayed("knx.0.Beschattung_OG.Fahren.Bad"/Bad/, true, 15000, false);
            ! setStateDelayed("knx.0.Beschattung_OG.Fahren.Ankleide"/Ankleide/, true, 20000, false);
            ! setStateDelayed("knx.0.Beschattung_EG.Fahren.Gäste_WC"/Gäste WC/, true, 25000, false);
            ! setStateDelayed("knx.0.Beschattung_EG.Fahren.Küche_2"/Küche 2/, true, 30000, false);
            ! setStateDelayed("knx.0.Beschattung_EG.Fahren.Esszimmer"/Esszimmer/, true, 40000, false);
            ! setStateDelayed("knx.0.Beschattung_EG.Fahren.Wohnzimmer_1"/Wohnzimmer 1/, true, 45000, false);
            ! if (getState("hm-rpc.0.NEQ1157343.1.STATE").val == false) {
            ! setStateDelayed("knx.0.Beschattung_EG.Fahren.HWR"/HWR/, true, 55000, false);
            ! } else {
            ! setStateDelayed("knx.0.Beschattung_EG.Position_Anfahren.HWR"/HWR/, 50, 55000, false);
            ! }
            ! if (getState("hm-rpc.0.OEQ0226002.1.STATE").val == false) {
            ! setStateDelayed("knx.0.Beschattung_EG.Fahren.Wohnzimmer_2"/Wohnzimmer 2/, true, 50000, false);
            ! } else {
            ! setStateDelayed("knx.0.Beschattung_EG.Position_Anfahren.Wohnzimmer_2"/Wohnzimmer 2/, 50, 50000, false);
            ! }
            ! if (getState("hm-rpc.0.OEQ0420807.1.STATE").val == false) {
            ! setStateDelayed("knx.0.Beschattung_EG.Fahren.Küche_1"/Küche 1/, true, 35000, false);
            ! } else {
            ! setStateDelayed("knx.0.Beschattung_EG.Position_Anfahren.Küche_1"/Küche 1/, 50, 35000, false);
            ! }
            ! sendTo("telegram.0", "send", {
            ! text: (String(getState("hm-rpc.0.OEQ0228737.1.LUX").val))
            ! });
            ! });

            Dieses Skript funktioniert leider überhaupt nicht, wüsste gerne warum das so ist.

            2113_skript_2.png

            ! var Jalousie_runter;
            ! Jalousie_runter = 'NULL';
            ! on({id: 'hm-rpc.0.OEQ0228737.1.LUX', change: "ne"}, function (obj) {
            ! var value = obj.state.val;
            ! var oldValue = obj.oldState.val;
            ! console.log('*** Lux hat sich aktualisiert');
            ! if (getState("hm-rpc.0.OEQ0228737.1.LUX").val < 4) {
            ! console.log('*** Jalousie runter auf wahr setzen');
            ! Jalousie_runter = true;
            ! } else if (getState("hm-rpc.0.OEQ0228737.1.LUX").val > 100) {
            ! console.log('*** Jalousie runter auf unwahr setzen');
            ! Jalousie_runter = false;
            ! }
            ! });
            ! on({id: 'javascript.0.Rollladen_Hoch/Runter', val: true}, function (obj) {
            ! var value = obj.state.val;
            ! var oldValue = obj.oldState.val;
            ! console.log('*** Jalousie runter fahren');
            ! setState("knx.0.Beschattung_OG.Fahren.Eltern"/Eltern/, true);
            ! setStateDelayed("knx.0.Beschattung_OG.Fahren.Kind_1"/Kind 1/, true, 5000, false);
            ! setStateDelayed("knx.0.Beschattung_OG.Fahren.Kind_2"/Kind 2/, true, 10000, false);
            ! setStateDelayed("knx.0.Beschattung_OG.Fahren.Bad"/Bad/, true, 15000, false);
            ! setStateDelayed("knx.0.Beschattung_OG.Fahren.Ankleide"/Ankleide/, true, 20000, false);
            ! setStateDelayed("knx.0.Beschattung_EG.Fahren.Gäste_WC"/Gäste WC/, true, 25000, false);
            ! setStateDelayed("knx.0.Beschattung_EG.Fahren.Küche_2"/Küche 2/, true, 30000, false);
            ! setStateDelayed("knx.0.Beschattung_EG.Fahren.Esszimmer"/Esszimmer/, true, 40000, false);
            ! setStateDelayed("knx.0.Beschattung_EG.Fahren.Wohnzimmer_1"/Wohnzimmer 1/, true, 45000, false);
            ! if (getState("hm-rpc.0.NEQ1157343.1.STATE").val == false) {
            ! setStateDelayed("knx.0.Beschattung_EG.Fahren.HWR"/HWR/, true, 55000, false);
            ! } else {
            ! setStateDelayed("knx.0.Beschattung_EG.Position_Anfahren.HWR"/HWR/, 50, 55000, false);
            ! }
            ! if (getState("hm-rpc.0.OEQ0226002.1.STATE").val == false) {
            ! setStateDelayed("knx.0.Beschattung_EG.Fahren.Wohnzimmer_2"/Wohnzimmer 2/, true, 50000, false);
            ! } else {
            ! setStateDelayed("knx.0.Beschattung_EG.Position_Anfahren.Wohnzimmer_2"/Wohnzimmer 2/, 50, 50000, false);
            ! }
            ! if (getState("hm-rpc.0.OEQ0420807.1.STATE").val == false) {
            ! setStateDelayed("knx.0.Beschattung_EG.Fahren.Küche_1"/Küche 1/, true, 35000, false);
            ! } else {
            ! setStateDelayed("knx.0.Beschattung_EG.Position_Anfahren.Küche_1"/Küche 1/, 50, 35000, false);
            ! }
            ! sendTo("telegram.0", "send", {
            ! text: (String(getState("hm-rpc.0.OEQ0228737.1.LUX").val))
            ! });
            ! });

            Gruß Christian

            1 Reply Last reply Reply Quote 0
            • paul53
              paul53 last edited by

              @cvidal:

              Dieses Skript funktioniert leider überhaupt nicht, wüsste gerne warum das so ist. `
              Im ersten Teil wird nur die Skriptvariable Jalousie_runter gesetzt, nicht aber der Datenpunkt mit der ID 'javascript.0.Rollladen_Hoch/Runter', auf den im 2. Teil getriggert wird. Ersten Teil erweitern:

              var Jalousie_runter;
              
              Jalousie_runter = getState('javascript.0.Rollladen_Hoch/Runter').val;  // Wert vom Objekt ID Rolladen_Hoch/Runter
              
              on({id: 'hm-rpc.0.OEQ0228737.1.LUX', change: "ne"}, function (obj) {
                 var value = obj.state.val;
                 var oldValue = obj.oldState.val;
                 console.log('*** Lux hat sich aktualisiert');
                 if (getState("hm-rpc.0.OEQ0228737.1.LUX").val < 4 && !Jalousie_runter) {  // und not Jalousie_runter
                    console.log('*** Jalousie runter auf wahr setzen');
                    setState('javascript.0.Rollladen_Hoch/Runter', true, true);  // aktualisiere Rolladen_Hoch/Runter mit wahr
                    Jalousie_runter = true;
                 } else if (getState("hm-rpc.0.OEQ0228737.1.LUX").val > 100 && Jalousie_runter) {
                    console.log('*** Jalousie runter auf unwahr setzen');
                    setState('javascript.0.Rollladen_Hoch/Runter', false, true);  // // aktualisiere Rolladen_Hoch/Runter mit unwahr
                    Jalousie_runter = false;
                 }
              });
              
              1 Reply Last reply Reply Quote 0
              • paul53
                paul53 last edited by

                Anmerkung: Die Variable Jalousie_runter wird nicht benötigt, wenn im 2. Teil auf "wurde geändert" getriggert und dann verzweigt wird:

                falls value

                mache alle Jalousien zeitversetzt runterfahren

                EDIT: Auf "nur runterfahren" geändert.

                1 Reply Last reply Reply Quote 0
                • cvidal
                  cvidal Forum Testing last edited by

                  @paul53:

                  Anmerkung: Die Variable Jalousie_runter wird nicht benötigt, wenn im 2. Teil auf "wurde geändert" getriggert und dann verzweigt wird:

                  falls value

                  mache alle Jalousien zeitversetzt runterfahren

                  sonst alle Jalousien zeitversetzt hochfahren `

                  Das verstehe ich ehrlich gesagt nicht so ganz,

                  ich möchte meine Rollos nur runterfahren und das ganze darf nur einmalig getriggert werden damit wenn ich nochmal hochfahre die Rollos dann nicht wieder runterfahren.

                  Ich verstehe auch nicht warum ich mit der Variable "Jalousie runter" wenn sie wahr ist nicht den Trigger starten kann.

                  Das erste Skripte vergessen wir erstmal. Soll ja im Prinzip das selbe auslösen habe da aber nur einen anderen weg gewählt.

                  hier nochmal wie ich das versuche, ich hatte im zweiten Skript den falschen trigger benutzt, wie ich es jetzt habe funktioniert es aber auch nicht.

                  2113_rollos.png

                  Export:

                  ! <xml 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml">
                  ! <block type="variables_set" id="TWJuV.zA5,gCRWQ(izf" x="-13137" y="-5963"><field name="VAR">Jalousie runter</field> ! <value name="VALUE"><block type="text" id="_xa[BXERU7[n^KhIt2L"><field name="TEXT">NULL</field></block></value>
                  ! <next><block type="on_ext" id="Qy)NGDj;^0l|=n9pQtz"><mutation items="1"></mutation>
                  ! <field name="CONDITION">ne</field>
                  ! <value name="OID0"><shadow type="field_oid" id="XX]zW,XnCfMsR@1e-]QT"><field name="oid">hm-rpc.0.OEQ0228737.1.LUX</field></shadow></value>
                  ! <statement name="STATEMENT"><block type="controls_if" id="1#;l+h3bMm5r;~v2Hg{"><mutation elseif="1"></mutation> ! <value name="IF0"><block type="logic_compare" id="ExR4=(g#kz(mefuPR9;L"><field name="OP">LT</field> ! <value name="A"><block type="get_value" id="0j7|SjOb[fPk9:g)!Z_e"><field name="ATTR">val</field> ! <field name="OID">hm-rpc.0.OEQ0228737.1.LUX</field></block></value> ! <value name="B"><block type="math_number" id="oXDnpKJS07R](Ht6K^-_"><field name="NUM">4</field></block></value></block></value> ! <statement name="DO0"><block type="variables_set" id=",4GHK[eGrJU*|%Ccp0Z-"><field name="VAR">Jalousie runter</field> ! <value name="VALUE"><block type="logic_boolean" id="nnoM|YS^!Hnz}=%5?_~u"><field name="BOOL">TRUE</field></block></value></block></statement> ! <value name="IF1"><block type="logic_compare" id="ACZ^rJN{kif/%*B5l@3Y"><field name="OP">GT</field> ! <value name="A"><block type="get_value" id="|+woi|3zU;Fd?Bb])At"><field name="ATTR">val</field>
                  ! <field name="OID">hm-rpc.0.OEQ0228737.1.LUX</field></block></value>
                  ! <value name="B"><block type="math_number" id="w/IFv8m%O?Nh}IbxPNsN"><field name="NUM">100</field></block></value></block></value>
                  ! <statement name="DO1"><block type="variables_set" id="LfAW+03nJ)h%{?2#A
                  /"><field name="VAR">Jalousie runter</field>
                  ! <value name="VALUE"><block type="logic_boolean" id="zAXOk{d;#3A^+X@yxSij"><field name="BOOL">FALSE</field></block></value></block></statement></block></statement></block></next></block>
                  ! <block type="on_ext" id="0%NFkSd#y2[ZT!w7/|V(" x="-13137" y="-5662"><mutation items="1"></mutation>
                  ! <field name="CONDITION">true</field>
                  ! <value name="OID0"><shadow type="field_oid" id="l){JG[;x]sD0C{Xu8hd"><field name="oid">default</field></shadow> ! <block type="variables_get" id=":84aI5,528r=}Q6+|YuO"><field name="VAR">Jalousie runter</field></block></value> ! <statement name="STATEMENT"><block type="control" id="jui!FF];6UHJ8a:+OXwm"><mutation delay_input="false"></mutation> ! <field name="OID">knx.0.Beschattung_OG.Fahren.Eltern</field> ! <field name="WITH_DELAY">FALSE</field> ! <value name="VALUE"><block type="logic_boolean" id="ewmyF|}A-q}%iOJe2Zbs"><field name="BOOL">TRUE</field></block></value> ! <next><block type="control" id="m+3u?zl2!x}zK~Q;TWQk"><mutation delay_input="true"></mutation> ! <field name="OID">knx.0.Beschattung_OG.Fahren.Kind_1</field> ! <field name="WITH_DELAY">TRUE</field> ! <field name="DELAY_MS">5000</field> ! <field name="UNIT">ms</field> ! <field name="CLEAR_RUNNING">FALSE</field> ! <value name="VALUE"><block type="logic_boolean" id="i8l6B%h![Mgnug(1QSS"><field name="BOOL">TRUE</field></block></value>
                  ! <next><block type="control" id="2_d_cg~-S?L3|BS!P5"><mutation delay_input="true"></mutation> ! <field name="OID">knx.0.Beschattung_OG.Fahren.Kind_2</field> ! <field name="WITH_DELAY">TRUE</field> ! <field name="DELAY_MS">10000</field> ! <field name="UNIT">ms</field> ! <field name="CLEAR_RUNNING">FALSE</field> ! <value name="VALUE"><block type="logic_boolean" id="2F]owzO1Jc?_s%d!PG.I"><field name="BOOL">TRUE</field></block></value> ! <next><block type="control" id="mK,Hv~:d-vf_!L]d.wdd"><mutation delay_input="true"></mutation> ! <field name="OID">knx.0.Beschattung_OG.Fahren.Bad</field> ! <field name="WITH_DELAY">TRUE</field> ! <field name="DELAY_MS">15000</field> ! <field name="UNIT">ms</field> ! <field name="CLEAR_RUNNING">FALSE</field> ! <value name="VALUE"><block type="logic_boolean" id="L|ael2~.S/iz94i0BicW"><field name="BOOL">TRUE</field></block></value> ! <next><block type="control" id="ia=Pck@Q@z7c.I)Y]ZpM"><mutation delay_input="true"></mutation> ! <field name="OID">knx.0.Beschattung_OG.Fahren.Ankleide</field> ! <field name="WITH_DELAY">TRUE</field> ! <field name="DELAY_MS">20000</field> ! <field name="UNIT">ms</field> ! <field name="CLEAR_RUNNING">FALSE</field> ! <value name="VALUE"><block type="logic_boolean" id="hdTAG2t6%|yi!x?-MG#?"><field name="BOOL">TRUE</field></block></value> ! <next><block type="control" id="Zb:79y,H1*xA@NFZFj"><mutation delay_input="true"></mutation> ! <field name="OID">knx.0.Beschattung_EG.Fahren.Gäste_WC</field> ! <field name="WITH_DELAY">TRUE</field> ! <field name="DELAY_MS">25000</field> ! <field name="UNIT">ms</field> ! <field name="CLEAR_RUNNING">FALSE</field> ! <value name="VALUE"><block type="logic_boolean" id="?!@Ot6?.BGT#;jMS.|or"><field name="BOOL">TRUE</field></block></value> ! <next><block type="control" id="_5z0qL:LtZ}M{5DK(FfJ"><mutation delay_input="true"></mutation> ! <field name="OID">knx.0.Beschattung_EG.Fahren.Küche_2</field> ! <field name="WITH_DELAY">TRUE</field> ! <field name="DELAY_MS">30000</field> ! <field name="UNIT">ms</field> ! <field name="CLEAR_RUNNING">FALSE</field> ! <value name="VALUE"><block type="logic_boolean" id=":0M(r#I6;iFzmB-XM#~;"><field name="BOOL">TRUE</field></block></value> ! <next><block type="control" id="I1A+4S5je]R[?ie0a*8G"><mutation delay_input="true"></mutation> ! <field name="OID">knx.0.Beschattung_EG.Fahren.Esszimmer</field> ! <field name="WITH_DELAY">TRUE</field> ! <field name="DELAY_MS">40000</field> ! <field name="UNIT">ms</field> ! <field name="CLEAR_RUNNING">FALSE</field> ! <value name="VALUE"><block type="logic_boolean" id="U@QVbC~xGj;zQ8/5^h]"><field name="BOOL">TRUE</field></block></value>
                  ! <next><block type="control" id="1#u-5PpIlksaJi#.5(c"><mutation delay_input="true"></mutation> ! <field name="OID">knx.0.Beschattung_EG.Fahren.Wohnzimmer_1</field> ! <field name="WITH_DELAY">TRUE</field> ! <field name="DELAY_MS">45000</field> ! <field name="UNIT">ms</field> ! <field name="CLEAR_RUNNING">FALSE</field> ! <value name="VALUE"><block type="logic_boolean" id="2OM[W!=QgW|];%)TDc|P"><field name="BOOL">TRUE</field></block></value> ! <next><block type="controls_if" id="qSkhJm!w{pKeYe!t+XVP"><mutation else="1"></mutation> ! <value name="IF0"><block type="logic_compare" id="3fJ5nPi8+9@,OvjI!K]m"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="?ALnR0yk}Jo@r1J-;{l"><field name="ATTR">val</field>
                  ! <field name="OID">hm-rpc.0.NEQ1157343.1.STATE</field></block></value>
                  ! <value name="B"><block type="logic_boolean" id="[hz3Be3t
                  ~.D{bZAbJ.@"><field name="BOOL">FALSE</field></block></value></block></value>
                  ! <statement name="DO0"><block type="control" id=",TS1])j/1%=}1x*:dlw"><mutation delay_input="true"></mutation> ! <field name="OID">knx.0.Beschattung_EG.Fahren.HWR</field> ! <field name="WITH_DELAY">TRUE</field> ! <field name="DELAY_MS">55000</field> ! <field name="UNIT">ms</field> ! <field name="CLEAR_RUNNING">FALSE</field> ! <value name="VALUE"><block type="logic_boolean" id="E!S?z%fT9UR{@6ONBNBO"><field name="BOOL">TRUE</field></block></value></block></statement> ! <statement name="ELSE"><block type="control" id="1aBFrX/ce}pd6Ggb6NSN"><mutation delay_input="true"></mutation> ! <field name="OID">knx.0.Beschattung_EG.Position_Anfahren.HWR</field> ! <field name="WITH_DELAY">TRUE</field> ! <field name="DELAY_MS">55000</field> ! <field name="UNIT">ms</field> ! <field name="CLEAR_RUNNING">FALSE</field> ! <value name="VALUE"><block type="math_number" id="LiH]U*=v[L7gI5DGq6g~"><field name="NUM">50</field></block></value></block></statement> ! <next><block type="controls_if" id=")EkSA1:qL6(Jlx,hN9(3"><mutation else="1"></mutation> ! <value name="IF0"><block type="logic_compare" id="++Z[W?qc][#(zkyR=1A_"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="F*ZtU|U-OS%K8n7xnpeQ"><field name="ATTR">val</field> ! <field name="OID">hm-rpc.0.OEQ0226002.1.STATE</field></block></value> ! <value name="B"><block type="logic_boolean" id="7z#-|=mEf~%ig;s^zZF9"><field name="BOOL">FALSE</field></block></value></block></value> ! <statement name="DO0"><block type="control" id="G%K3qBRXJ5|Wz7L8DO!Q"><mutation delay_input="true"></mutation> ! <field name="OID">knx.0.Beschattung_EG.Fahren.Wohnzimmer_2</field> ! <field name="WITH_DELAY">TRUE</field> ! <field name="DELAY_MS">50000</field> ! <field name="UNIT">ms</field> ! <field name="CLEAR_RUNNING">FALSE</field> ! <value name="VALUE"><block type="logic_boolean" id="e|.fcmrvNL;[FM8jjN{0"><field name="BOOL">TRUE</field></block></value></block></statement> ! <statement name="ELSE"><block type="control" id="Z[^k%KwS{F]6#VpDKFLS"><mutation delay_input="true"></mutation> ! <field name="OID">knx.0.Beschattung_EG.Position_Anfahren.Wohnzimmer_2</field> ! <field name="WITH_DELAY">TRUE</field> ! <field name="DELAY_MS">50000</field> ! <field name="UNIT">ms</field> ! <field name="CLEAR_RUNNING">FALSE</field> ! <value name="VALUE"><block type="math_number" id="|I[/ln,BpZciU*[|YNjV"><field name="NUM">50</field></block></value></block></statement> ! <next><block type="controls_if" id="Fi~vZ;V;FgcKhcCh#KDN"><mutation else="1"></mutation> ! <value name="IF0"><block type="logic_compare" id="/2dxC=ZE@;*I=F9_2C58"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id=";++-VZ;WQ;x2.({x/3I."><field name="ATTR">val</field> ! <field name="OID">hm-rpc.0.OEQ0420807.1.STATE</field></block></value> ! <value name="B"><block type="logic_boolean" id="R%~P4*^9u2e|FCM@QES."><field name="BOOL">FALSE</field></block></value></block></value> ! <statement name="DO0"><block type="control" id="=xU2S{VmQ[#tFQ!;C9-"><mutation delay_input="true"></mutation>
                  ! <field name="OID">knx.0.Beschattung_EG.Fahren.Küche_1</field>
                  ! <field name="WITH_DELAY">TRUE</field>
                  ! <field name="DELAY_MS">35000</field>
                  ! <field name="UNIT">ms</field>
                  ! <field name="CLEAR_RUNNING">FALSE</field>
                  ! <value name="VALUE"><block type="logic_boolean" id="oHDzGa)khN?GZU7-5R/"><field name="BOOL">TRUE</field></block></value></block></statement> ! <statement name="ELSE"><block type="control" id="1{qV!z=XH@4
                  .4wKj5M"><mutation delay_input="true"></mutation>
                  ! <field name="OID">knx.0.Beschattung_EG.Position_Anfahren.Küche_1</field>
                  ! <field name="WITH_DELAY">TRUE</field>
                  ! <field name="DELAY_MS">35000</field>
                  ! <field name="UNIT">ms</field>
                  ! <field name="CLEAR_RUNNING">FALSE</field>
                  ! <value name="VALUE"><block type="math_number" id="zI)T0c~zV1L%SpgTZ93?"><field name="NUM">50</field></block></value></block></statement>
                  ! <next><block type="telegram" id="D,2L3j#cofpI}faN1hnw"><field name="INSTANCE">.0</field>
                  ! <value name="MESSAGE"><shadow type="text" id="%jCI:uQ^Bi*nx|YT52XH"><field name="TEXT">text</field></shadow>
                  ! <block type="text_join" id="]@IKrLwNYF/SXj^V;2"><mutation items="1"></mutation>
                  ! <value name="ADD0"><block type="get_value" id="@[uW@^lo1;O8,PW)-9fW"><field name="ATTR">val</field>
                  ! <field name="OID">hm-rpc.0.OEQ0228737.1.LUX</field></block></value></block></value></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></xml>

                  Code:

                  ! var Jalousie_runter;
                  ! Jalousie_runter = 'NULL';
                  ! on({id: 'hm-rpc.0.OEQ0228737.1.LUX', change: "ne"}, function (obj) {
                  ! var value = obj.state.val;
                  ! var oldValue = obj.oldState.val;
                  ! if (getState("hm-rpc.0.OEQ0228737.1.LUX").val < 4) {
                  ! Jalousie_runter = true;
                  ! } else if (getState("hm-rpc.0.OEQ0228737.1.LUX").val > 100) {
                  ! Jalousie_runter = false;
                  ! }
                  ! });
                  ! on({id: Jalousie_runter, val: true}, function (obj) {
                  ! var value = obj.state.val;
                  ! var oldValue = obj.oldState.val;
                  ! setState("knx.0.Beschattung_OG.Fahren.Eltern"/Eltern/, true);
                  ! setStateDelayed("knx.0.Beschattung_OG.Fahren.Kind_1"/Kind 1/, true, 5000, false);
                  ! setStateDelayed("knx.0.Beschattung_OG.Fahren.Kind_2"/Kind 2/, true, 10000, false);
                  ! setStateDelayed("knx.0.Beschattung_OG.Fahren.Bad"/Bad/, true, 15000, false);
                  ! setStateDelayed("knx.0.Beschattung_OG.Fahren.Ankleide"/Ankleide/, true, 20000, false);
                  ! setStateDelayed("knx.0.Beschattung_EG.Fahren.Gäste_WC"/Gäste WC/, true, 25000, false);
                  ! setStateDelayed("knx.0.Beschattung_EG.Fahren.Küche_2"/Küche 2/, true, 30000, false);
                  ! setStateDelayed("knx.0.Beschattung_EG.Fahren.Esszimmer"/Esszimmer/, true, 40000, false);
                  ! setStateDelayed("knx.0.Beschattung_EG.Fahren.Wohnzimmer_1"/Wohnzimmer 1/, true, 45000, false);
                  ! if (getState("hm-rpc.0.NEQ1157343.1.STATE").val == false) {
                  ! setStateDelayed("knx.0.Beschattung_EG.Fahren.HWR"/HWR/, true, 55000, false);
                  ! } else {
                  ! setStateDelayed("knx.0.Beschattung_EG.Position_Anfahren.HWR"/HWR/, 50, 55000, false);
                  ! }
                  ! if (getState("hm-rpc.0.OEQ0226002.1.STATE").val == false) {
                  ! setStateDelayed("knx.0.Beschattung_EG.Fahren.Wohnzimmer_2"/Wohnzimmer 2/, true, 50000, false);
                  ! } else {
                  ! setStateDelayed("knx.0.Beschattung_EG.Position_Anfahren.Wohnzimmer_2"/Wohnzimmer 2/, 50, 50000, false);
                  ! }
                  ! if (getState("hm-rpc.0.OEQ0420807.1.STATE").val == false) {
                  ! setStateDelayed("knx.0.Beschattung_EG.Fahren.Küche_1"/Küche 1/, true, 35000, false);
                  ! } else {
                  ! setStateDelayed("knx.0.Beschattung_EG.Position_Anfahren.Küche_1"/Küche 1/, 50, 35000, false);
                  ! }
                  ! sendTo("telegram.0", "send", {
                  ! text: (String(getState("hm-rpc.0.OEQ0228737.1.LUX").val))
                  ! });
                  ! });

                  1 Reply Last reply Reply Quote 0
                  • Homer.J.
                    Homer.J. last edited by

                    Hallo Leute wollte mich mal kurz mit einklinken, ich hab meins so gelöst funktioniert soweit ganz gut.

                    Eine Sache, bekomme diese Warnung vielleicht kann mir da jemand weiter helfen.

                    javascript.0

                    2018-03-04 11:45:58.288

                    warn

                    at Object. (script.js.Rollladen_.Jalousien_schalten_script_Lux:53:5)

                    javascript.0

                    2018-03-04 11:45:58.287

                    warn

                    at Jalousie_runter (script.js.Rollladen_.Jalousien_schalten_script_Lux:165:5)

                    Beste Grüße

                    Steffen

                    1 Reply Last reply Reply Quote 0
                    • Homer.J.
                      Homer.J. last edited by

                      // -----------------------------------------------
                      // Trigger
                      // -----------------------------------------------
                      
                      schedule({hour: 6, minute: 30}, function () {
                          // werktags, kein Feiertag -> unten hoch
                          if(!isWeekend() || getState("hm-rega.0.54978"/*Feiertag_heute*/).val === false) {
                              log("Werktag, Kein Feiertag: Fahre Jalousie hoch");
                              Jalousie_unten_hoch();
                          }
                      });
                      schedule({hour: 8, minute: 0}, function () {
                          // wochenende oder Feiertag -> unten hoch
                          if(isWeekend() || getState("hm-rega.0.54978"/*Feiertag_heute*/).val === true) {
                              log("Wochende bzw. Feiertag: Fahre Jalousie hoch");
                              Jalousie_unten_hoch();
                          }
                      });
                      schedule({hour: 6, minute: 30}, function () {
                          // werktags, kein Urlaub, kein Feiertag, -> oben hoch
                          if (!isWeekend() && getState("hm-rega.0.55182"/*Urlaub*/).val === false && getState("hm-rega.0.54978"/*Feiertag_heute*/).val === false) {
                              log("Werktag, kein Urlaub, kein Feiertag: Fahre Jalousie hoch");
                              Jalousie_oben_hoch();
                          }
                      });
                      schedule({hour: 8, minute: 0}, function () {
                          // wochenende -> oben hoch
                          if (isWeekend()) {
                              log("Wochenende: Fahre Jalousie hoch");
                              Jalousie_oben_hoch();
                          }
                          // Feiertag, werktags -> oben hoch
                          if (!isWeekend() && getState("hm-rega.0.54978"/*Feiertag_heute*/).val === true) {
                              log("Werktag, Feiertag: Fahre Jalousie hoch");
                              Jalousie_oben_hoch();
                          }
                          // Urlaub, werktags -> oben hoch
                          if (!isWeekend() && getState("hm-rega.0.55182"/*Urlaub*/).val === true) {
                              log("Werktag, Urlaub: Fahre Jalousie hoch");
                              Jalousie_oben_hoch();
                          }
                      });
                      
                      // Bei Sonnenuntergang (kleiner 4 Lux)
                      on({
                          id: "hm-rpc.1.NEQ0322210.1.LUX"/*Sonnenstand.Helligkeitssensor*/,
                          change: "ne",
                          valLe: 4,
                          oldValGt: 4,
                          logic: "and"
                      }, function (obj) {
                          log("Sonnenstand unter 4 Lux: Fahre Jalousien runter.");
                          Jalousie_runter();
                      });
                      
                      // -----------------------------------------------
                      // Aktionen
                      // -----------------------------------------------
                      
                      function Jalousie_oben_hoch() {
                          // Abbruch bei deaktivierter Automatik
                          if (getState("hm-rega.0.55181"/*Jalousie Automatik*/).val === false) { return; }
                      
                          log("Jalousie oben hoch");
                      
                          // Status setzen (Standard)
                          lvJalBad = 100;
                          lvJalFlur = 100;
                          lvJalWohnrechts = 100;
                          lvJalWohnlinks = 100;
                          lvJalKueche = 100;
                      
                          // Status setzen (Ausnahmen)
                          if (getState("javascript.0.Jalousie.Sonnenschutz"/*Jalousie.Sonnenschutz*/).val === true) {
                              lvJalWohnrechts = 0;
                              lvJalWohnlinks = 0;
                          }
                      
                          // Ausführen
                          setState("hm-rpc.1.MEQ0735410.1.LEVEL"/*Rollladen Badezimmer.LEVEL*/, lvJalBad);
                          setState("hm-rpc.1.MEQ0735420.1.LEVEL"/*Rollladen Flur .LEVEL*/, lvJalFlur);
                          setState("hm-rpc.1.MEQ0735434.1.LEVEL"/*Rollladen Wohnzimmer rechts .LEVEL*/, lvJalWohnrechts);
                          setState("hm-rpc.1.MEQ0735459.1.LEVEL"/*Rollladen Wohnzimmer links .LEVEL*/, lvJalWohnlinks);
                          setState("hm-rpc.1.MEQ0735469.1.LEVEL"/*Rollladen Fenster Küche .LEVEL*/, lvJalKueche);
                      
                      }
                      
                      function Jalousie_unten_hoch() {
                          // Abbruch bei deaktivierter Automatik
                          if (getState("hm-rega.0.55181"/*Jalousie Automatik*/).val === false) { return; }
                      
                          log("Jalousie unten hoch");
                      
                          // Status setzen (Standard)
                          lvJalKZ = 100;
                          lvJalHWR = 100;
                          lvJalBad = 100;
                          lvJalFlur = 100;
                          lvJalWohnrechts = 100;
                          lvJalWohnlinks = 100;
                          lvJalBalkontuer = 100;
                          lvJalSZ = 100;
                          lvJalKueche = 100;
                          lvJalBadoben = 1;
                      
                          // Status setzen (Ausnahmen)
                          if (getState("javascript.0.Jalousie.Sonnenschutz"/*Jalousie.Sonnenschutz*/).val === true) {
                              lvJalWohnrechts = 40;
                              lvJalWohnlinks = 40;
                              if(getState("hm-rpc.2.0007D7099CF99C.1.STATE"/*Tür Flur.STATE*/).val == 2) {
                                  lvJalFlur = 60;
                              } else {
                                  lvJalWohnrechts = 40;
                              }
                              lvJalWohnlinks = 40;
                          }
                      
                          // Ausführen
                          setState("hm-rpc.1.MEQ0735305.1.LEVEL"/*Rollladen Kinderzimmer .LEVEL*/, lvJalKZ);
                          setState("hm-rpc.1.MEQ0735367.1.LEVEL"/*Rollladen Abstellraum .LEVEL*/, lvJalHWR);
                          setState("hm-rpc.1.MEQ0735410.1.LEVEL"/*Rollladen Badezimmer.LEVEL*/, lvJalBad);
                          setState("hm-rpc.1.MEQ0735420.1.LEVEL"/*Rollladen Flur .LEVEL*/, lvJalFlur);
                          setState("hm-rpc.1.MEQ0735434.1.LEVEL"/*Rollladen Wohnzimmer rechts .LEVEL*/, lvJalWohnrechts);
                          setState("hm-rpc.1.MEQ0735459.1.LEVEL"/*Rollladen Wohnzimmer links .LEVEL*/, lvJalWohnlinks);
                          setState("hm-rpc.1.MEQ0735466.1.LEVEL"/*Rollladen Balkontür Küche .LEVEL*/, lvJalBalkontuer);
                          setState("hm-rpc.1.MEQ0735467.1.LEVEL"/*Rollladen Schlafzimmer .LEVEL*/, lvJalSZ);
                          setState("hm-rpc.1.MEQ0735469.1.LEVEL"/*Rollladen Fenster Küche .LEVEL*/, lvJalKueche);
                          setState("hm-rpc.1.LEQ1211399.3.STATE"/*Rollladen Fenster Bad oben .STATE*/, lvJalBadoben);
                      }
                      
                      function Jalousie_runter() {
                          // Abbruch bei deaktivierter Automatik
                          if (getState("hm-rega.0.55181"/*Jalousie Automatik*/).val === false) { return; }
                      
                          log("Jalousie runter");
                      
                          // Status setzen (Standard)
                          lvJalKZ = 0;
                          lvJalHWR = 0;
                          lvJalBad = 0;
                          lvJalFlur = 0;
                          lvJalWohnrechts = 0;
                          lvJalWohnlinks = 0;
                          lvJalBalkontuer = 0;
                          lvJalSZ = 0;
                          lvJalKueche = 0;
                          lvJalBadoben = 1;
                      
                          // Status setzen (Ausnahmen)
                          // Tür Flur Sperre (0 = geschlossen, 1 = gekippt, 2 = offen)
                          if(getState("hm-rpc.2.0007D7099CF99C.1.STATE"/*Tür Flur.STATE*/).val == 2) {
                              lvJalFlur = 100;
                          }
                      
                          // Ausführen
                          setState("hm-rpc.1.MEQ0735305.1.LEVEL"/*Rollladen Kinderzimmer .LEVEL*/, lvJalKZ);
                          setState("hm-rpc.1.MEQ0735367.1.LEVEL"/*Rollladen Abstellraum .LEVEL*/, lvJalHWR);
                          setState("hm-rpc.1.MEQ0735410.1.LEVEL"/*Rollladen Badezimmer .LEVEL*/, lvJalBad);
                          setState("hm-rpc.1.MEQ0735420.1.LEVEL"/*Rollladen Flur .LEVEL*/, lvJalFlur);
                          setState("hm-rpc.1.MEQ0735434.1.LEVEL"/*Rollladen Wohnzimmer rechts .LEVEL*/, lvJalWohnrechts);
                          setState("hm-rpc.1.MEQ0735459.1.LEVEL"/*Rollladen Wohnzimmer links .LEVEL*/, lvJalWohnlinks);
                          setState("hm-rpc.1.MEQ0735466.1.LEVEL"/*Rollladen Balkontür Küche .LEVEL*/, lvJalBalkontuer);
                          setState("hm-rpc.1.MEQ0735467.1.LEVEL"/*Rollladen Schlafzimmer .LEVEL*/, lvJalSZ);
                          setState("hm-rpc.1.MEQ0735469.1.LEVEL"/*Rollladen Fenster Küche .LEVEL*/, lvJalKueche);
                          setState("hm-rpc.1.LEQ1211399.2.STATE"/*Rollladen Fenster Bad oben .STATE*/, lvJalBadoben);
                      
                      }
                      
                      1 Reply Last reply Reply Quote 0
                      • paul53
                        paul53 last edited by

                        @cvidal:

                        ich möchte meine Rollos nur runterfahren und das ganze darf nur einmalig getriggert werden damit wenn ich nochmal hochfahre die Rollos dann nicht wieder runterfahren.

                        Ich verstehe auch nicht warum ich mit der Variable "Jalousie runter" wenn sie wahr ist nicht den Trigger starten kann. `
                        Man kann nicht auf eine Skriptvariable triggern, sondern nur auf einen Datenpunkt.
                        @cvidal:

                        Dieses Skript funktioniert leider überhaupt nicht, wüsste gerne warum das so ist. `
                        Weil der Datenpunkt, der im 2. Teil als Trigger dient, nicht aktualisiert wird.

                        Anstelle der Skriptvariablen Jalousie_runter verwende im 1. Teil den Datenpunkt "Rolladen_Hoch/Runter" mit dem der 2. Teil getriggert wird.

                        on({id: 'hm-rpc.0.OEQ0228737.1.LUX', change: "ne"}, function (obj) {
                           var value = obj.state.val;
                           var oldValue = obj.oldState.val;
                           console.log('*** Lux hat sich aktualisiert');
                           if (getState("hm-rpc.0.OEQ0228737.1.LUX").val < 4 ) {
                              console.log('*** Jalousie runter auf wahr setzen');
                              setState('javascript.0.Rollladen_Hoch/Runter', true, true);  // aktualisiere Rolladen_Hoch/Runter mit wahr
                           } else if (getState("hm-rpc.0.OEQ0228737.1.LUX").val > 100) {
                              console.log('*** Jalousie runter auf unwahr setzen');
                              setState('javascript.0.Rollladen_Hoch/Runter', false, true);  // aktualisiere Rolladen_Hoch/Runter mit unwahr
                           }
                        });
                        

                        Im 2. Teil muss auf Änderung getriggert werden, um wiederholtes Senden zu verhindern (duty cycle) und dann auf wahr geprüft werden.

                        1 Reply Last reply Reply Quote 0
                        • Homer.J.
                          Homer.J. last edited by

                          Hallo Paul,

                          hab es auch so probiert wie du es beschrieben hast das script wird auch ausgelöst nur leider fahren die Jalousien nicht.

                          Muss ich noch etwas anderes ändern. ?

                          Grüße Steffen

                          1 Reply Last reply Reply Quote 0
                          • paul53
                            paul53 last edited by

                            @Homer1976:

                            Muss ich noch etwas anderes ändern. ? `
                            Poste bitte Dein Blockly und/oder den erzeugten Javascript (in Code tags ohne die letzte Zeile). Andernfalls kann ich nur Vermutungen anstellen.

                            Auch einen Export immer in Spoiler <u>und</u> Code tags posten !

                            1 Reply Last reply Reply Quote 0
                            • Homer.J.
                              Homer.J. last edited by

                              // -----------------------------------------------
                              // Trigger
                              // -----------------------------------------------
                              
                              schedule({hour: 6, minute: 30}, function () {
                                  // werktags, kein Feiertag -> unten hoch
                                  if(!isWeekend() || getState("hm-rega.0.54978"/*Feiertag_heute*/).val === false) {
                                      log("Werktag, Kein Feiertag: Fahre Jalousie hoch");
                                      Jalousie_unten_hoch();
                                  }
                              });
                              schedule({hour: 8, minute: 0}, function () {
                                  // wochenende oder Feiertag -> unten hoch
                                  if(isWeekend() || getState("hm-rega.0.54978"/*Feiertag_heute*/).val === true) {
                                      log("Wochende bzw. Feiertag: Fahre Jalousie hoch");
                                      Jalousie_unten_hoch();
                                  }
                              });
                              schedule({hour: 6, minute: 30}, function () {
                                  // werktags, kein Urlaub, kein Feiertag, -> oben hoch
                                  if (!isWeekend() && getState("hm-rega.0.55182"/*Urlaub*/).val === false && getState("hm-rega.0.54978"/*Feiertag_heute*/).val === false) {
                                      log("Werktag, kein Urlaub, kein Feiertag: Fahre Jalousie hoch");
                                      Jalousie_oben_hoch();
                                  }
                              });
                              schedule({hour: 8, minute: 0}, function () {
                                  // wochenende -> oben hoch
                                  if (isWeekend()) {
                                      log("Wochenende: Fahre Jalousie hoch");
                                      Jalousie_oben_hoch();
                                  }
                                  // Feiertag, werktags -> oben hoch
                                  if (!isWeekend() && getState("hm-rega.0.54978"/*Feiertag_heute*/).val === true) {
                                      log("Werktag, Feiertag: Fahre Jalousie hoch");
                                      Jalousie_oben_hoch();
                                  }
                                  // Urlaub, werktags -> oben hoch
                                  if (!isWeekend() && getState("hm-rega.0.55182"/*Urlaub*/).val === true) {
                                      log("Werktag, Urlaub: Fahre Jalousie hoch");
                                      Jalousie_oben_hoch();
                                  }
                              });
                              
                              // Bei Sonnenuntergang (kleiner 4 Lux)
                              
                              on({id: 'hm-rpc.1.NEQ0322210.1.LUX', change: "ne"}, function (obj) {
                                 var value = obj.state.val;
                                 var oldValue = obj.oldState.val;
                                 console.log('*** Lux hat sich aktualisiert');
                                 if (getState("hm-rpc.1.NEQ0322210.1.LUX").val < 4 ) {
                                    console.log('*** Jalousie runter auf wahr setzen');
                                    setState('javascript.0.Rollladen_Hoch/Runter', true, true);  // aktualisiere Rolladen_Hoch/Runter mit wahr
                                 } else if (getState("hm-rpc.1.NEQ0322210.1.LUX").val > 100) {
                                    console.log('*** Jalousie runter auf unwahr setzen');
                                    setState('javascript.0.Rollladen_Hoch/Runter', false, true);  // aktualisiere Rolladen_Hoch/Runter mit unwahr
                                 }
                              });
                              
                              // -----------------------------------------------
                              // Aktionen
                              // -----------------------------------------------
                              
                              function Jalousie_oben_hoch() {
                                  // Abbruch bei deaktivierter Automatik
                                  if (getState("hm-rega.0.55181"/*Jalousie Automatik*/).val === false) { return; }
                              
                                  log("Jalousie oben hoch");
                              
                                  // Status setzen (Standard)
                                  lvJalBad = 100;
                                  lvJalFlur = 100;
                                  lvJalWohnrechts = 100;
                                  lvJalWohnlinks = 100;
                                  lvJalKueche = 100;
                              
                                  // Status setzen (Ausnahmen)
                                  if (getState("javascript.0.Jalousie.Sonnenschutz"/*Jalousie.Sonnenschutz*/).val === true) {
                                      lvJalWohnrechts = 0;
                                      lvJalWohnlinks = 0;
                                  }
                              
                                  // Ausführen
                                  setState("hm-rpc.1.MEQ0735410.1.LEVEL"/*Rollladen Badezimmer.LEVEL*/, lvJalBad);
                                  setState("hm-rpc.1.MEQ0735420.1.LEVEL"/*Rollladen Flur .LEVEL*/, lvJalFlur);
                                  setState("hm-rpc.1.MEQ0735434.1.LEVEL"/*Rollladen Wohnzimmer rechts .LEVEL*/, lvJalWohnrechts);
                                  setState("hm-rpc.1.MEQ0735459.1.LEVEL"/*Rollladen Wohnzimmer links .LEVEL*/, lvJalWohnlinks);
                                  setState("hm-rpc.1.MEQ0735469.1.LEVEL"/*Rollladen Fenster Küche .LEVEL*/, lvJalKueche);
                              
                              }
                              
                              function Jalousie_unten_hoch() {
                                  // Abbruch bei deaktivierter Automatik
                                  if (getState("hm-rega.0.55181"/*Jalousie Automatik*/).val === false) { return; }
                              
                                  log("Jalousie unten hoch");
                              
                                  // Status setzen (Standard)
                                  lvJalKZ = 100;
                                  lvJalHWR = 100;
                                  lvJalBad = 100;
                                  lvJalFlur = 100;
                                  lvJalWohnrechts = 100;
                                  lvJalWohnlinks = 100;
                                  lvJalBalkontuer = 100;
                                  lvJalSZ = 100;
                                  lvJalKueche = 100;
                                  lvJalBadoben = 1;
                              
                                  // Status setzen (Ausnahmen)
                                  if (getState("javascript.0.Jalousie.Sonnenschutz"/*Jalousie.Sonnenschutz*/).val === true) {
                                      lvJalWohnrechts = 40;
                                      lvJalWohnlinks = 40;
                                      if(getState("hm-rpc.2.0007D7099CF99C.1.STATE"/*Tür Flur.STATE*/).val == 2) {
                                          lvJalFlur = 60;
                                      } else {
                                          lvJalWohnrechts = 40;
                                      }
                                      lvJalWohnlinks = 40;
                                  }
                              
                                  // Ausführen
                                  setState("hm-rpc.1.MEQ0735305.1.LEVEL"/*Rollladen Kinderzimmer .LEVEL*/, lvJalKZ);
                                  setState("hm-rpc.1.MEQ0735367.1.LEVEL"/*Rollladen Abstellraum .LEVEL*/, lvJalHWR);
                                  setState("hm-rpc.1.MEQ0735410.1.LEVEL"/*Rollladen Badezimmer.LEVEL*/, lvJalBad);
                                  setState("hm-rpc.1.MEQ0735420.1.LEVEL"/*Rollladen Flur .LEVEL*/, lvJalFlur);
                                  setState("hm-rpc.1.MEQ0735434.1.LEVEL"/*Rollladen Wohnzimmer rechts .LEVEL*/, lvJalWohnrechts);
                                  setState("hm-rpc.1.MEQ0735459.1.LEVEL"/*Rollladen Wohnzimmer links .LEVEL*/, lvJalWohnlinks);
                                  setState("hm-rpc.1.MEQ0735466.1.LEVEL"/*Rollladen Balkontür Küche .LEVEL*/, lvJalBalkontuer);
                                  setState("hm-rpc.1.MEQ0735467.1.LEVEL"/*Rollladen Schlafzimmer .LEVEL*/, lvJalSZ);
                                  setState("hm-rpc.1.MEQ0735469.1.LEVEL"/*Rollladen Fenster Küche .LEVEL*/, lvJalKueche);
                                  setState("hm-rpc.1.LEQ1211399.3.STATE"/*Rollladen Fenster Bad oben .STATE*/, lvJalBadoben);
                              }
                              
                              function Jalousie_runter () {
                                  // Abbruch bei deaktivierter Automatik
                                  if (getState("hm-rega.0.55181"/*Jalousie Automatik*/).val === false) { return; }
                              
                                  log("Jalousie runter");
                              
                                  // Status setzen (Standard)
                                  lvJalKZ = 0;
                                  lvJalHWR = 0;
                                  lvJalBad = 0;
                                  lvJalFlur = 0;
                                  lvJalWohnrechts = 0;
                                  lvJalWohnlinks = 0;
                                  lvJalBalkontuer = 0;
                                  lvJalSZ = 0;
                                  lvJalKueche = 0;
                                  lvJalBadoben = 1;
                              
                                  // Status setzen (Ausnahmen)
                                  // Tür Flur Sperre (0 = geschlossen, 1 = gekippt, 2 = offen)
                                  if(getState("hm-rpc.2.0007D7099CF99C.1.STATE"/*Tür Flur.STATE*/).val == 2) {
                                      lvJalFlur = 100;
                                  }
                              
                                  // Ausführen
                                  setState("hm-rpc.1.MEQ0735305.1.LEVEL"/*Rollladen Kinderzimmer .LEVEL*/, lvJalKZ);
                                  setState("hm-rpc.1.MEQ0735367.1.LEVEL"/*Rollladen Abstellraum .LEVEL*/, lvJalHWR);
                                  setState("hm-rpc.1.MEQ0735410.1.LEVEL"/*Rollladen Badezimmer .LEVEL*/, lvJalBad);
                                  setState("hm-rpc.1.MEQ0735420.1.LEVEL"/*Rollladen Flur .LEVEL*/, lvJalFlur);
                                  setState("hm-rpc.1.MEQ0735434.1.LEVEL"/*Rollladen Wohnzimmer rechts .LEVEL*/, lvJalWohnrechts);
                                  setState("hm-rpc.1.MEQ0735459.1.LEVEL"/*Rollladen Wohnzimmer links .LEVEL*/, lvJalWohnlinks);
                                  setState("hm-rpc.1.MEQ0735466.1.LEVEL"/*Rollladen Balkontür Küche .LEVEL*/, lvJalBalkontuer);
                                  setState("hm-rpc.1.MEQ0735467.1.LEVEL"/*Rollladen Schlafzimmer .LEVEL*/, lvJalSZ);
                                  setState("hm-rpc.1.MEQ0735469.1.LEVEL"/*Rollladen Fenster Küche .LEVEL*/, lvJalKueche);
                                  setState("hm-rpc.1.LEQ1211399.2.STATE"/*Rollladen Fenster Bad oben .STATE*/, lvJalBadoben);
                              
                              }
                              
                              1 Reply Last reply Reply Quote 0
                              • Homer.J.
                                Homer.J. last edited by

                                Das ist dann die Ausgabe.

                                15:44:00.415

                                [info]

                                javascript.0 Stop script script.js.Rollladen_.Jalousien_ändern_script_Lux

                                15:44:00.442

                                [info]

                                javascript.0 Start javascript script.js.Rollladen_.Jalousien_ändern_script_Lux

                                15:44:00.443

                                [info]

                                javascript.0 script.js.Rollladen_.Jalousien_ändern_script_Lux: registered 1 subscription and 4 schedules

                                15:46:17.837

                                [info]

                                javascript.0 script.js.Rollladen_.Jalousien_ändern_script_Lux: *** Lux hat sich aktualisiert

                                15:48:51.619

                                [info]

                                javascript.0 script.js.Rollladen_.Jalousien_ändern_script_Lux: *** Lux hat sich aktualisiert

                                15:48:51.620

                                [info]

                                javascript.0 script.js.Rollladen_.Jalousien_ändern_script_Lux: *** Jalousie runter auf wahr setzen

                                15:48:51.621

                                [warn]

                                javascript.0 at Object. (script.js.Rollladen_.Jalousien_ändern_script_Lux:52:7)

                                1 Reply Last reply Reply Quote 0
                                • paul53
                                  paul53 last edited by

                                  Die Funktion Jalousie_runter() wird nirgends aufgerufen. Es fehlt der Trigger mit dem Funktionsaufruf (als letztes im Skript):

                                  on('javascript.0.Rollladen_Hoch/Runter', function(dp) {
                                     if(dp.state.val) Jalousie_runter();
                                  });
                                  
                                  1 Reply Last reply Reply Quote 0
                                  • paul53
                                    paul53 last edited by

                                    @Homer1976:

                                    [warn]

                                    javascript.0 at Object. (script.js.Rollladen_.Jalousien_ändern_script_Lux:52:7) `
                                    Es wird das setState() in Zeile 52 angemeckert. Gibt es denn den Datenpunkt 'javascript.0.Rollladen_Hoch/Runter' vom Typ Logikwert (boolean) ?

                                    Es kann auch sein, dass der Schrägstrich in der ID stört.

                                    1 Reply Last reply Reply Quote 0
                                    • Homer.J.
                                      Homer.J. last edited by

                                      // Bei Sonnenuntergang (kleiner 4 Lux)
                                      
                                      on({id: 'hm-rpc.1.NEQ0322210.1.LUX', change: "ne"}, function (obj) {
                                         var value = obj.state.val;
                                         var oldValue = obj.oldState.val;
                                         console.log('*** Lux hat sich aktualisiert');
                                         if (getState("hm-rpc.1.NEQ0322210.1.LUX").val < 4 ) {
                                            console.log('*** Jalousie runter auf wahr setzen');
                                            setState('javascript.0.Rollladen_Hoch/Runter', true, true);  // aktualisiere Rolladen_Hoch/Runter mit wahr
                                          } else if (getState("hm-rpc.1.NEQ0322210.1.LUX").val > 100) {
                                            console.log('*** Jalousie runter auf unwahr setzen');
                                            setState('javascript.0.Rollladen_Hoch/Runter', false, true);  // aktualisiere Rolladen_Hoch/Runter mit unwahr
                                            on('javascript.0.Rollladen_Hoch/Runter', function(dp) {
                                            if(dp.state.val) Jalousie_runter();
                                      });
                                      
                                         }
                                      });
                                      
                                      
                                      1 Reply Last reply Reply Quote 0
                                      • Homer.J.
                                        Homer.J. last edited by

                                        Hab es jetzt so weiß nicht ob es jetzt so richtig ist.

                                        Funktioniert noch nicht und das kommt in der Ausgabe.

                                        16:03:27.379

                                        [info]

                                        javascript.0 script.js.Rollladen_.Jalousien_ändern_script_Lux: *** Lux hat sich aktualisiert

                                        16:03:27.380

                                        [info]

                                        javascript.0 script.js.Rollladen_.Jalousien_ändern_script_Lux: *** Jalousie runter auf wahr setzen

                                        16:03:27.380

                                        [warn]

                                        javascript.0 at Object. (script.js.Rollladen_.Jalousien_ändern_script_Lux:52:7)

                                        1 Reply Last reply Reply Quote 0
                                        • paul53
                                          paul53 last edited by

                                          @Homer1976:

                                              // Status setzen (Standard)
                                              lvJalBad = 100;
                                              lvJalFlur = 100;
                                              lvJalWohnrechts = 100;
                                              lvJalWohnlinks = 100;
                                              lvJalKueche = 100;
                                          ```` `  
                                          

                                          Man sollte keine Variablen ohne das Schlüsselwort var deklarieren. Richtig:

                                              // Status setzen (Standard)
                                              var lvJalBad = 100,
                                              lvJalFlur = 100,
                                              lvJalWohnrechts = 100,
                                              lvJalWohnlinks = 100,
                                              lvJalKueche = 100;
                                          

                                          Das gilt auch für die anderen Funktionen.

                                          1 Reply Last reply Reply Quote 0
                                          • paul53
                                            paul53 last edited by

                                            @Homer1976:

                                                  setState('javascript.0.Rollladen_Hoch/Runter', false, true);  // aktualisiere Rolladen_Hoch/Runter mit unwahr
                                                  on('javascript.0.Rollladen_Hoch/Runter', function(dp) {
                                                  if(dp.state.val) Jalousie_runter();
                                            });
                                               
                                               }
                                            });
                                            ```` `  
                                            

                                            Nein, den Trigger mit dem Funktionsaufruf ganz an das Ende des Skripts setzen !

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            908
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

                                            5
                                            48
                                            3826
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo