Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [Gelöst] [Blockly] Rollladen mit Lux wert fahren

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.4k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    964

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

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

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
48 Beiträge 5 Kommentatoren 5.1k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • cvidalC Offline
    cvidalC Offline
    cvidal
    Forum Testing
    schrieb am zuletzt editiert von
    #3

    @Matzebhv:

    Moin Christian,

    der Trigger per Astro-Funktion wird nur einmal ausgeführt. In deinem Fall für Heute um 18:01:37 +20 Minuten.

    Gruß

    Matze `

    Ja so habe ich das ja seit ein Paar Monaten am laufen.

    Möchte ja weg von der Astrofunktion und es über einen Lichtsensor triggern nur leider weiß ich nicht genau wie…

    Gruß Christian

    1 Antwort Letzte Antwort
    0
    • paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #4

      @cvidal:

      Rollos mit dem Homematic Funk-Lichtsensor abends runter fahren lassen.

      Mein Problem ist die Logik wie ich das so Einstellen kann das der Trigger nur einmal auslöst und nicht alle paar Minuten meine Rollos runterfahren wenn ich die Abends mal wieder hochfahren möchte. `
      Auf Helligkeit (< Schwellwert) triggern und Skriptvariable prüfen: Wenn Rollo dann runterfährt, die Skriptvariable auf false setzen.

      2. Trigger auf Sonnenuntergang setzt die Skriptvariable wieder auf true.

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      1 Antwort Letzte Antwort
      0
      • cvidalC Offline
        cvidalC Offline
        cvidal
        Forum Testing
        schrieb am zuletzt editiert von
        #5

        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 Antwort Letzte Antwort
        0
        • paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #6

          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;
            }
          });
          

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          1 Antwort Letzte Antwort
          0
          • cvidalC Offline
            cvidalC Offline
            cvidal
            Forum Testing
            schrieb am zuletzt editiert von
            #7

            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 Antwort Letzte Antwort
            0
            • cvidalC Offline
              cvidalC Offline
              cvidal
              Forum Testing
              schrieb am zuletzt editiert von
              #8

              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 Antwort Letzte Antwort
              0
              • paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von
                #9

                @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;
                   }
                });
                

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                1 Antwort Letzte Antwort
                0
                • paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von
                  #10

                  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.

                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                  1 Antwort Letzte Antwort
                  0
                  • cvidalC Offline
                    cvidalC Offline
                    cvidal
                    Forum Testing
                    schrieb am zuletzt editiert von
                    #11

                    @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 Antwort Letzte Antwort
                    0
                    • Homer.J.H Offline
                      Homer.J.H Offline
                      Homer.J.
                      schrieb am zuletzt editiert von
                      #12

                      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 Antwort Letzte Antwort
                      0
                      • Homer.J.H Offline
                        Homer.J.H Offline
                        Homer.J.
                        schrieb am zuletzt editiert von
                        #13
                        // -----------------------------------------------
                        // 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 Antwort Letzte Antwort
                        0
                        • paul53P Offline
                          paul53P Offline
                          paul53
                          schrieb am zuletzt editiert von
                          #14

                          @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.

                          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                          1 Antwort Letzte Antwort
                          0
                          • Homer.J.H Offline
                            Homer.J.H Offline
                            Homer.J.
                            schrieb am zuletzt editiert von
                            #15

                            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 Antwort Letzte Antwort
                            0
                            • paul53P Offline
                              paul53P Offline
                              paul53
                              schrieb am zuletzt editiert von
                              #16

                              @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 !

                              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                              1 Antwort Letzte Antwort
                              0
                              • Homer.J.H Offline
                                Homer.J.H Offline
                                Homer.J.
                                schrieb am zuletzt editiert von
                                #17
                                // -----------------------------------------------
                                // 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 Antwort Letzte Antwort
                                0
                                • Homer.J.H Offline
                                  Homer.J.H Offline
                                  Homer.J.
                                  schrieb am zuletzt editiert von
                                  #18

                                  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 Antwort Letzte Antwort
                                  0
                                  • paul53P Offline
                                    paul53P Offline
                                    paul53
                                    schrieb am zuletzt editiert von
                                    #19

                                    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();
                                    });
                                    

                                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                    1 Antwort Letzte Antwort
                                    0
                                    • paul53P Offline
                                      paul53P Offline
                                      paul53
                                      schrieb am zuletzt editiert von
                                      #20

                                      @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.

                                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                      1 Antwort Letzte Antwort
                                      0
                                      • Homer.J.H Offline
                                        Homer.J.H Offline
                                        Homer.J.
                                        schrieb am zuletzt editiert von
                                        #21
                                        // 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 Antwort Letzte Antwort
                                        0
                                        • Homer.J.H Offline
                                          Homer.J.H Offline
                                          Homer.J.
                                          schrieb am zuletzt editiert von
                                          #22

                                          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 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          517

                                          Online

                                          32.6k

                                          Benutzer

                                          82.2k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe