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. Blockly
  5. Bewegungsmelder mit Dauer-An /Dauer-Aus Funktion

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

Bewegungsmelder mit Dauer-An /Dauer-Aus Funktion

Geplant Angeheftet Gesperrt Verschoben Blockly
blocklyscenes
15 Beiträge 4 Kommentatoren 2.0k Aufrufe 3 Watching
  • Ä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.
  • M Offline
    M Offline
    Muchul
    schrieb am zuletzt editiert von Muchul
    #4

    Hier mein Blokly dazu:
    Ich habe da noch weitere Funktionen drin, wie Schaltung wenn es dunkel wird und auch eine Dimmung ab 23 uhr.
    Aber du kannst die Funktionen ja Rausnehmen.

    <block xmlns="http://www.w3.org/1999/xhtml" type="on" id="1:+;MB0lYbi~SK?n%E}x" x="-1813" y="-616">
      <field name="OID">zigbee.0.00158d0003fb0098.occupancy</field>
      <field name="CONDITION">any</field>
      <field name="ACK_CONDITION"></field>
      <statement name="STATEMENT">
        <block type="controls_if" id="r.).SB$~oiak./`$W1s1">
          <value name="IF0">
            <block type="logic_operation" id="[}TfD(makZp]Wvsz!r;u">
              <field name="OP">AND</field>
              <value name="A">
                <block type="logic_compare" id="4ZhXvz(@{oDYV#V`+#2w">
                  <field name="OP">EQ</field>
                  <value name="A">
                    <block type="get_value" id="S~+_KWPsNi7D-sQR6)w!">
                      <field name="ATTR">val</field>
                      <field name="OID">zigbee.0.00158d0003fb0098.occupancy</field>
                    </block>
                  </value>
                  <value name="B">
                    <block type="logic_boolean" id="Jhu68kkfU0jx_~_~|*4a">
                      <field name="BOOL">TRUE</field>
                    </block>
                  </value>
                </block>
              </value>
              <value name="B">
                <block type="time_compare_ex" id="HFeO=z[A]%ubi!UJvs!A">
                  <mutation end_time="true" actual_time="true"></mutation>
                  <field name="USE_ACTUAL_TIME">TRUE</field>
                  <field name="OPTION">not between</field>
                  <value name="START_TIME">
                    <shadow type="text" id="1[(WPy+={:AiX{b?hvgd">
                      <field name="TEXT">12:00</field>
                    </shadow>
                    <block type="time_astro" id="/Wdf{7nyr%j5@MynFkm|">
                      <field name="TYPE">sunrise</field>
                      <field name="OFFSET">0</field>
                    </block>
                  </value>
                  <value name="END_TIME">
                    <shadow type="text" id="`QEn)Bq-kHk`*tVUG,Z5">
                      <field name="TEXT">18:00</field>
                    </shadow>
                    <block type="time_astro" id="fP[sz*#g8T`v61RaHxYL">
                      <field name="TYPE">sunset</field>
                      <field name="OFFSET">-45</field>
                    </block>
                  </value>
                </block>
              </value>
            </block>
          </value>
          <statement name="DO0">
            <block type="timeouts_cleartimeout" id="ZUWkLrRP@7|1x%H?ug)L">
              <field name="NAME">timeout4</field>
              <next>
                <block type="controls_if" id="l9l5MVw5v$1)O+!?p{ax">
                  <mutation else="1"></mutation>
                  <value name="IF0">
                    <block type="time_compare_ex" id="+8O2N7*5JO3wk+YuhiF:">
                      <mutation end_time="true" actual_time="true"></mutation>
                      <field name="USE_ACTUAL_TIME">TRUE</field>
                      <field name="OPTION">not between</field>
                      <value name="START_TIME">
                        <shadow type="text" id="VVD]BPwhhHayK_MA|F.G">
                          <field name="TEXT">06:00</field>
                        </shadow>
                      </value>
                      <value name="END_TIME">
                        <shadow type="text" id=".H)3+N#EDgFkk~$C.OGl">
                          <field name="TEXT">23:00</field>
                        </shadow>
                      </value>
                    </block>
                  </value>
                  <statement name="DO0">
                    <block type="control" id="m~pnL!oL*NaH(+T|be^l">
                      <mutation delay_input="false"></mutation>
                      <field name="OID">zigbee.0.000b57fffe30fa58.brightness</field>
                      <field name="WITH_DELAY">FALSE</field>
                      <value name="VALUE">
                        <block type="math_number" id="O8/?L0w*s`rvW-7@JbtN">
                          <field name="NUM">50</field>
                        </block>
                      </value>
                    </block>
                  </statement>
                  <statement name="ELSE">
                    <block type="control" id="mVNhKtAV,~Z`/e(%1py~">
                      <mutation delay_input="false"></mutation>
                      <field name="OID">zigbee.0.000b57fffe30fa58.brightness</field>
                      <field name="WITH_DELAY">FALSE</field>
                      <value name="VALUE">
                        <block type="math_number" id="jkF;t^H2u=2DRQ;J0c8A">
                          <field name="NUM">100</field>
                        </block>
                      </value>
                    </block>
                  </statement>
                  <next>
                    <block type="timeouts_settimeout" id="@fSo/||p?=SI2W_|;amb">
                      <field name="NAME">timeout4</field>
                      <field name="DELAY">30</field>
                      <field name="UNIT">sec</field>
                      <statement name="STATEMENT">
                        <block type="controls_if" id="Hmoo~L{dL1jr%!8=NB;v">
                          <value name="IF0">
                            <block type="logic_compare" id="^ZxVoN:*~|$X.K`pGWSj">
                              <field name="OP">EQ</field>
                              <value name="A">
                                <block type="get_value" id="w~QR3i2jz17bls`W?8#O">
                                  <field name="ATTR">val</field>
                                  <field name="OID">1Virtuelle_Geräte.0.Flur_Licht_manuell</field>
                                </block>
                              </value>
                              <value name="B">
                                <block type="logic_boolean" id="^J!=4v%Cq%?]RrB6R[xu">
                                  <field name="BOOL">FALSE</field>
                                </block>
                              </value>
                            </block>
                          </value>
                          <statement name="DO0">
                            <block type="control" id="C1Qopj~~AaGq(]iZe@BL">
                              <mutation delay_input="false"></mutation>
                              <field name="OID">zigbee.0.000b57fffe30fa58.brightness</field>
                              <field name="WITH_DELAY">FALSE</field>
                              <value name="VALUE">
                                <block type="math_number" id="/`MmN8?`J~Sq/U/)];?]">
                                  <field name="NUM">0</field>
                                </block>
                              </value>
                            </block>
                          </statement>
                        </block>
                      </statement>
                    </block>
                  </next>
                </block>
              </next>
            </block>
          </statement>
        </block>
      </statement>
    </block>
    

    BWM_Flur.JPG

    1 Antwort Letzte Antwort
    0
    • paul53P paul53

      @freak1051 sagte:

      soll der Touch die Dauerlicht-Funktion an/abschalten.

      Wenn der Touch ein Taster ist, der togglen soll, sollte es so funktionieren:

      Blockly_temp.JPG

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von paul53
      #5

      @paul53 sagte:

      Wenn der Touch ein Taster ist

      Wenn der Touch jedoch den Aktor enthält, der direkt von der Taste umgeschaltet wird, sollte es so funktionieren:

      Blockly_temp.JPG

      Export:

      <xml xmlns="http://www.w3.org/1999/xhtml">
       <variables>
         <variable type="" id="J?SRdnY^Iwq2c3:ZdG0a">licht</variable>
         <variable type="" id="vpjv.#|)AVRg=4L96v`V">bwm</variable>
         <variable type="" id="#Qd!`lG{ye^7ebGe`vGG">dauerlicht</variable>
       </variables>
       <block type="comment" id="N@{t%%iI^]D-#.UCLJcD" x="-238" y="-563">
         <field name="COMMENT">BWM</field>
         <next>
           <block type="on_ext" id="f|bj?-E,4}3(fr{_qg@I">
             <mutation items="1"></mutation>
             <field name="CONDITION">ne</field>
             <field name="ACK_CONDITION"></field>
             <value name="OID0">
               <shadow type="field_oid" id="E:Tfbtr8,=o-siW$?fM;">
                 <field name="oid">default</field>
               </shadow>
             </value>
             <statement name="STATEMENT">
               <block type="controls_if" id="nTbcU|mc]UO7ga}ld;3B">
                 <value name="IF0">
                   <block type="logic_negate" id="rRyx[_Rpv]yIM+LF`.S5">
                     <value name="BOOL">
                       <block type="variables_get" id="^cYw=t?O.qKxNY;r6TI+">
                         <field name="VAR" id="#Qd!`lG{ye^7ebGe`vGG" variabletype="">dauerlicht</field>
                       </block>
                     </value>
                   </block>
                 </value>
                 <statement name="DO0">
                   <block type="variables_set" id="q%cV%=$./8T0lKh)s-K`">
                     <field name="VAR" id="vpjv.#|)AVRg=4L96v`V" variabletype="">bwm</field>
                     <value name="VALUE">
                       <block type="on_source" id="_^Z{ED0B|8FJ2)VzWtr5">
                         <field name="ATTR">state.val</field>
                       </block>
                     </value>
                     <next>
                       <block type="control" id="Y%+P976ss3n^^LdSeM91">
                         <mutation delay_input="false"></mutation>
                         <field name="OID">Object ID</field>
                         <field name="WITH_DELAY">FALSE</field>
                         <value name="VALUE">
                           <block type="variables_get" id="4H^u$!x~|%]~V#6m{Vj:">
                             <field name="VAR" id="vpjv.#|)AVRg=4L96v`V" variabletype="">bwm</field>
                           </block>
                         </value>
                       </block>
                     </next>
                   </block>
                 </statement>
               </block>
             </statement>
             <next>
               <block type="comment" id="kjjmLopy%Mj[^f7$=q{q">
                 <field name="COMMENT">Lichtaktor</field>
                 <next>
                   <block type="variables_set" id="dEI5[*)P|b%Cllm%{_Qj">
                     <field name="VAR" id="J?SRdnY^Iwq2c3:ZdG0a" variabletype="">licht</field>
                     <value name="VALUE">
                       <block type="get_value" id="P,)W@Bu[-*le;xhVpFl4">
                         <field name="ATTR">val</field>
                         <field name="OID">ID auswählen</field>
                       </block>
                     </value>
                     <next>
                       <block type="on_ext" id="G2^IChJ~h]+%W^-SMBaK">
                         <mutation items="1"></mutation>
                         <field name="CONDITION">ne</field>
                         <field name="ACK_CONDITION"></field>
                         <value name="OID0">
                           <shadow type="field_oid" id="rZJH[[^h$mYxI3/q`M@l">
                             <field name="oid">default</field>
                           </shadow>
                         </value>
                         <statement name="STATEMENT">
                           <block type="variables_set" id="R|UblWWs`M=9u~$8J(tH">
                             <field name="VAR" id="J?SRdnY^Iwq2c3:ZdG0a" variabletype="">licht</field>
                             <value name="VALUE">
                               <block type="on_source" id="qaALVuZWYw,g!`D[|L4i">
                                 <field name="ATTR">state.val</field>
                               </block>
                             </value>
                             <next>
                               <block type="controls_if" id="g0-[wb7|KK)/^TNMW$,Z">
                                 <mutation else="1"></mutation>
                                 <value name="IF0">
                                   <block type="variables_get" id="IXy?VBV9kCHkW_nb)0.~">
                                     <field name="VAR" id="J?SRdnY^Iwq2c3:ZdG0a" variabletype="">licht</field>
                                   </block>
                                 </value>
                                 <statement name="DO0">
                                   <block type="controls_if" id="0h72l]OHu_d3/KBlrl^^">
                                     <value name="IF0">
                                       <block type="logic_negate" id="xGtaxEU)2.ae@CaQGA4K">
                                         <value name="BOOL">
                                           <block type="variables_get" id="kMHnB,1%UMz607WrG+d7">
                                             <field name="VAR" id="vpjv.#|)AVRg=4L96v`V" variabletype="">bwm</field>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
                                     <statement name="DO0">
                                       <block type="variables_set" id="eHC/Svin:uDB@82v6HkM">
                                         <field name="VAR" id="#Qd!`lG{ye^7ebGe`vGG" variabletype="">dauerlicht</field>
                                         <value name="VALUE">
                                           <block type="logic_boolean" id="JMMD}ET`~t04.Z(x6gEU">
                                             <field name="BOOL">TRUE</field>
                                           </block>
                                         </value>
                                       </block>
                                     </statement>
                                   </block>
                                 </statement>
                                 <statement name="ELSE">
                                   <block type="variables_set" id="SR(mk(27%*,j;`Xa5tF~">
                                     <field name="VAR" id="#Qd!`lG{ye^7ebGe`vGG" variabletype="">dauerlicht</field>
                                     <value name="VALUE">
                                       <block type="logic_boolean" id="uaJzg)DKmQ`rE3ENP60V">
                                         <field name="BOOL">FALSE</field>
                                       </block>
                                     </value>
                                     <next>
                                       <block type="variables_set" id="8?5}[qjWN^165(Sv/]C.">
                                         <field name="VAR" id="vpjv.#|)AVRg=4L96v`V" variabletype="">bwm</field>
                                         <value name="VALUE">
                                           <block type="logic_boolean" id="dEEw5=-hmx7]PQ+Ie+P=">
                                             <field name="BOOL">FALSE</field>
                                           </block>
                                         </value>
                                       </block>
                                     </next>
                                   </block>
                                 </statement>
                               </block>
                             </next>
                           </block>
                         </statement>
                       </block>
                     </next>
                   </block>
                 </next>
               </block>
             </next>
           </block>
         </next>
       </block>
      </xml>
      

      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

      F 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @paul53 sagte:

        Wenn der Touch ein Taster ist

        Wenn der Touch jedoch den Aktor enthält, der direkt von der Taste umgeschaltet wird, sollte es so funktionieren:

        Blockly_temp.JPG

        Export:

        <xml xmlns="http://www.w3.org/1999/xhtml">
         <variables>
           <variable type="" id="J?SRdnY^Iwq2c3:ZdG0a">licht</variable>
           <variable type="" id="vpjv.#|)AVRg=4L96v`V">bwm</variable>
           <variable type="" id="#Qd!`lG{ye^7ebGe`vGG">dauerlicht</variable>
         </variables>
         <block type="comment" id="N@{t%%iI^]D-#.UCLJcD" x="-238" y="-563">
           <field name="COMMENT">BWM</field>
           <next>
             <block type="on_ext" id="f|bj?-E,4}3(fr{_qg@I">
               <mutation items="1"></mutation>
               <field name="CONDITION">ne</field>
               <field name="ACK_CONDITION"></field>
               <value name="OID0">
                 <shadow type="field_oid" id="E:Tfbtr8,=o-siW$?fM;">
                   <field name="oid">default</field>
                 </shadow>
               </value>
               <statement name="STATEMENT">
                 <block type="controls_if" id="nTbcU|mc]UO7ga}ld;3B">
                   <value name="IF0">
                     <block type="logic_negate" id="rRyx[_Rpv]yIM+LF`.S5">
                       <value name="BOOL">
                         <block type="variables_get" id="^cYw=t?O.qKxNY;r6TI+">
                           <field name="VAR" id="#Qd!`lG{ye^7ebGe`vGG" variabletype="">dauerlicht</field>
                         </block>
                       </value>
                     </block>
                   </value>
                   <statement name="DO0">
                     <block type="variables_set" id="q%cV%=$./8T0lKh)s-K`">
                       <field name="VAR" id="vpjv.#|)AVRg=4L96v`V" variabletype="">bwm</field>
                       <value name="VALUE">
                         <block type="on_source" id="_^Z{ED0B|8FJ2)VzWtr5">
                           <field name="ATTR">state.val</field>
                         </block>
                       </value>
                       <next>
                         <block type="control" id="Y%+P976ss3n^^LdSeM91">
                           <mutation delay_input="false"></mutation>
                           <field name="OID">Object ID</field>
                           <field name="WITH_DELAY">FALSE</field>
                           <value name="VALUE">
                             <block type="variables_get" id="4H^u$!x~|%]~V#6m{Vj:">
                               <field name="VAR" id="vpjv.#|)AVRg=4L96v`V" variabletype="">bwm</field>
                             </block>
                           </value>
                         </block>
                       </next>
                     </block>
                   </statement>
                 </block>
               </statement>
               <next>
                 <block type="comment" id="kjjmLopy%Mj[^f7$=q{q">
                   <field name="COMMENT">Lichtaktor</field>
                   <next>
                     <block type="variables_set" id="dEI5[*)P|b%Cllm%{_Qj">
                       <field name="VAR" id="J?SRdnY^Iwq2c3:ZdG0a" variabletype="">licht</field>
                       <value name="VALUE">
                         <block type="get_value" id="P,)W@Bu[-*le;xhVpFl4">
                           <field name="ATTR">val</field>
                           <field name="OID">ID auswählen</field>
                         </block>
                       </value>
                       <next>
                         <block type="on_ext" id="G2^IChJ~h]+%W^-SMBaK">
                           <mutation items="1"></mutation>
                           <field name="CONDITION">ne</field>
                           <field name="ACK_CONDITION"></field>
                           <value name="OID0">
                             <shadow type="field_oid" id="rZJH[[^h$mYxI3/q`M@l">
                               <field name="oid">default</field>
                             </shadow>
                           </value>
                           <statement name="STATEMENT">
                             <block type="variables_set" id="R|UblWWs`M=9u~$8J(tH">
                               <field name="VAR" id="J?SRdnY^Iwq2c3:ZdG0a" variabletype="">licht</field>
                               <value name="VALUE">
                                 <block type="on_source" id="qaALVuZWYw,g!`D[|L4i">
                                   <field name="ATTR">state.val</field>
                                 </block>
                               </value>
                               <next>
                                 <block type="controls_if" id="g0-[wb7|KK)/^TNMW$,Z">
                                   <mutation else="1"></mutation>
                                   <value name="IF0">
                                     <block type="variables_get" id="IXy?VBV9kCHkW_nb)0.~">
                                       <field name="VAR" id="J?SRdnY^Iwq2c3:ZdG0a" variabletype="">licht</field>
                                     </block>
                                   </value>
                                   <statement name="DO0">
                                     <block type="controls_if" id="0h72l]OHu_d3/KBlrl^^">
                                       <value name="IF0">
                                         <block type="logic_negate" id="xGtaxEU)2.ae@CaQGA4K">
                                           <value name="BOOL">
                                             <block type="variables_get" id="kMHnB,1%UMz607WrG+d7">
                                               <field name="VAR" id="vpjv.#|)AVRg=4L96v`V" variabletype="">bwm</field>
                                             </block>
                                           </value>
                                         </block>
                                       </value>
                                       <statement name="DO0">
                                         <block type="variables_set" id="eHC/Svin:uDB@82v6HkM">
                                           <field name="VAR" id="#Qd!`lG{ye^7ebGe`vGG" variabletype="">dauerlicht</field>
                                           <value name="VALUE">
                                             <block type="logic_boolean" id="JMMD}ET`~t04.Z(x6gEU">
                                               <field name="BOOL">TRUE</field>
                                             </block>
                                           </value>
                                         </block>
                                       </statement>
                                     </block>
                                   </statement>
                                   <statement name="ELSE">
                                     <block type="variables_set" id="SR(mk(27%*,j;`Xa5tF~">
                                       <field name="VAR" id="#Qd!`lG{ye^7ebGe`vGG" variabletype="">dauerlicht</field>
                                       <value name="VALUE">
                                         <block type="logic_boolean" id="uaJzg)DKmQ`rE3ENP60V">
                                           <field name="BOOL">FALSE</field>
                                         </block>
                                       </value>
                                       <next>
                                         <block type="variables_set" id="8?5}[qjWN^165(Sv/]C.">
                                           <field name="VAR" id="vpjv.#|)AVRg=4L96v`V" variabletype="">bwm</field>
                                           <value name="VALUE">
                                             <block type="logic_boolean" id="dEEw5=-hmx7]PQ+Ie+P=">
                                               <field name="BOOL">FALSE</field>
                                             </block>
                                           </value>
                                         </block>
                                       </next>
                                     </block>
                                   </statement>
                                 </block>
                               </next>
                             </block>
                           </statement>
                         </block>
                       </next>
                     </block>
                   </next>
                 </block>
               </next>
             </block>
           </next>
         </block>
        </xml>
        

        F Offline
        F Offline
        freak1051
        schrieb am zuletzt editiert von freak1051
        #6

        @paul53

        Habe jetzt es Soweit schon mal gemacht:

        SkriptPaul53Fragen.png

        Occupancy ist der Ausgang meines Bewegungsmelders. Dieser bleibt wie gesagt ca. 100 Sekunden auf High, sobald er eine Bewegung bekommen hat.

        Office Tasmota POWER ist der Taster/Aktor. Folglich: Wenn Bewegung dann schalte ein. Soweit verstanden.

        SkriptPaul53Fragen_1.png

        Hier Setze ich wahrscheinlich nun auch den Office Tasmota Power ein, falls ich manuell darauf klicke, dass er Das licht einschält. Soweit auch verstanden.

        Zum Verständnis:

        SkriptPaul53Fragen_2.png

        Bei ID Auswählen habe ich ja gesagt ich mach den Office Tasmota POWER rein, und Wert (unteres Kästchen) übernimmt dann den Wert, den ich in eben dieser Object ID auslese ?

        paul53P 1 Antwort Letzte Antwort
        0
        • F freak1051

          Hallo Zusammen,

          ich bin jetzt seit n paar Tagen daran, zu versuchen, ein Bewegungsmelder mit ner Dauer-An/Dauer-Aus Funktion zu Scripten.

          Leider bin ich absolut unwissend was Java-Script anbelangt (Bin SPS-Progammierer und kann auch C# als Hochsprache). Es mangelt also nicht an der Logik. Aber dennoch nutz ich Blockly

          Das Ganze soll so aufgebaut werden:

          Ein Sonoff-Tasmota Touch schält eine konventionelle Lampe. Dies soll also mein Aktor sein. Gleichzeitig soll der Touch die Dauerlicht-Funktion an/abschalten.
          Ein Tradifri-Bewegungsmelder im Raum soll den Aktor auch ansteuern. Dieser Hat die Eigenschaft @Stock, dass er bei einer detektierten Bewegung sowieso 2 Minuten schält.
          Der Raum ist Ankleide+Büro. Bedeutet 2 Minuten zum Ankleiden reichen, bzw. bei Bewegung, was man ja so macht beim Anziehen, reagiert der Bewegungsmelder sowieso. Im "Büro-Betrieb" möchte ich über den Touch das Dauerlicht einschalten, da hier die Bewegungen nicht ausreichen, um den Melder anzusprechen.

          Die Kirsche auf der Sahne wäre, wenn ich das Dauer-An/Dauer-Aus noch mit der Alexa triggern könnte. Wobei das (denke ich) weniger das Problem ist. Genial wäre natürlich, wenn ich über die Alexa/Touch die Zeit des Bewegungsmelders noch abwürgen könnte, da das Ankleidezimmer ans Schlafzimmer angrenzt. Hier ist dann klar, dass ich das 2-Minuten Dauer-High des Melders Ignoriere.

          Ich sag es mal in SPS-Logik:

          Bewegungsmelder-Betrieb mit Internem Timer des Ikea-Bewegungsmelders. Parallel Dazu ein Dauerbetrieb über Eingang Tasmota/Alexa.
          Wenn die Lampe per Bewegungsmelder ausgelöst wurde, setz ich mir nen Schmier-Merker, damit ich, wenn dieser Aktiv ist, und ich dann händisch Ausschalte, die NEUE Bewegung erst detektiert wird, über die fallende Flanke (Zustandsübergang 1-0) erfolgt hat. Im SPS bereich wäre das ganze Kein Problemm. aber Blockly/Java-Script raubt mit hier noch den letzen nerv.

          Ich denke, dass es über Java-Script absolut kein Problem ist, (wäre es in C# auch nicht) wenn man die Sprache könnte 🙂

          Kann mir hier jemand helfen.

          Habe als Ansatz ehrlich gesagt nicht viel. Aktuell nur eine Falls Statusänderung, dann mache Licht an, über Bewegungsmelder, und das gleiche Per Alexa und "virtuellem" Gerät, um ne Routine anzuwerfen, Wobei es das denke ich nicht braucht, weil ich ja theoretisch direkt den Tasmoata anwerfen kann.

          Vielen Dank schonmal im Vorraus

          Daniel

          ====== EDIT: In SubCategory verschoben==========

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von paul53
          #7

          @freak1051 sagte:

          SPS-Progammierer und kann auch C#

          Mit C-Kenntnissen sollte die Einarbeitung in Javascript nicht schwer fallen.
          Gegenüber der zyklischen Programm-Abarbeitung in einer SPS funktioniert Javascript Ereignis gesteuert, woran man sich erst einmal gewöhnen muss. Die Javascript-Doku zu ioBroker kennst Du ?

          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

          F 1 Antwort Letzte Antwort
          0
          • F freak1051

            @paul53

            Habe jetzt es Soweit schon mal gemacht:

            SkriptPaul53Fragen.png

            Occupancy ist der Ausgang meines Bewegungsmelders. Dieser bleibt wie gesagt ca. 100 Sekunden auf High, sobald er eine Bewegung bekommen hat.

            Office Tasmota POWER ist der Taster/Aktor. Folglich: Wenn Bewegung dann schalte ein. Soweit verstanden.

            SkriptPaul53Fragen_1.png

            Hier Setze ich wahrscheinlich nun auch den Office Tasmota Power ein, falls ich manuell darauf klicke, dass er Das licht einschält. Soweit auch verstanden.

            Zum Verständnis:

            SkriptPaul53Fragen_2.png

            Bei ID Auswählen habe ich ja gesagt ich mach den Office Tasmota POWER rein, und Wert (unteres Kästchen) übernimmt dann den Wert, den ich in eben dieser Object ID auslese ?

            paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von
            #8

            @freak1051 sagte:

            Hier Setze ich wahrscheinlich nun auch den Office Tasmota Power ein

            Ja. Darauf deutet auch der Variablenbezeichner hin.

            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 paul53

              @freak1051 sagte:

              SPS-Progammierer und kann auch C#

              Mit C-Kenntnissen sollte die Einarbeitung in Javascript nicht schwer fallen.
              Gegenüber der zyklischen Programm-Abarbeitung in einer SPS funktioniert Javascript Ereignis gesteuert, woran man sich erst einmal gewöhnen muss. Die Javascript-Doku zu ioBroker kennst Du ?

              F Offline
              F Offline
              freak1051
              schrieb am zuletzt editiert von
              #9

              @paul53

              Ich liebe zyklische Abarbeitung :)

              Nee ich habe ich der Technikerschule vieles mit Arduino, C# usw gemacht. Mir fehlt hier eigentlich nur ein "while(true) {} " :)

              Mit ist schon klar, dass ich hier Objektorientiert arbeite, ich tu mich nur Mega schwer mit dem Blocky. Allerdings finde ich die Syntax von JavaScript auch sehr Gewöhungsbedürftig. If -Else gibt es hier nicht, zumindest nicht in der Form oder ?

              paul53P 1 Antwort Letzte Antwort
              0
              • F freak1051

                @paul53

                Ich liebe zyklische Abarbeitung :)

                Nee ich habe ich der Technikerschule vieles mit Arduino, C# usw gemacht. Mir fehlt hier eigentlich nur ein "while(true) {} " :)

                Mit ist schon klar, dass ich hier Objektorientiert arbeite, ich tu mich nur Mega schwer mit dem Blocky. Allerdings finde ich die Syntax von JavaScript auch sehr Gewöhungsbedürftig. If -Else gibt es hier nicht, zumindest nicht in der Form oder ?

                paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von
                #10

                @freak1051 sagte in ewegungsmelder mit Dauer-An /Dauer-Aus Funktion:

                If -Else gibt es hier nicht, zumindest nicht in der Form oder ?

                Doch, gibt es.

                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
                • F Offline
                  F Offline
                  freak1051
                  schrieb am zuletzt editiert von freak1051
                  #11

                  Soweit bin ich jetzt:

                  SkriptPaul53Fragen_3.png

                  nur jetzt noch Logische Fragen:

                  Warum muss ich (direkt unter dem Kommentar) die Variable Licht schon mal auf den Wert des Schalters setzen, wenn ich danach, getriggert durch die Zustandsänderung, wieder Licht auf die den Zustand des Sonoff-Touch setze?. Ist das nicht doppelt gemoppelt?

                  Weiter in der Logik:

                  Wenn der BWM nicht ist, dann setzte Dauerlicht. Ich muss allerdings am BWM vorbei um den Taster zu schalten. Folglich ist der BWM nie aus wenn ich an den Taster laufe

                  Denke hier wird mein Problem liegen:

                  Der BWM wird immer High sein, wenn ich an den Taster laufe um Dauerlicht einzuschalten. Also komm ich Hier doch in eine Selbsthaltung rein ?!

                  Zudem Funktioniert mein Dauer-Aus doch auch nicht. Weil wenn ich den Schalter Aus-tapse und der bewegungsmelder Detektiert, geht er doch wieder an, oder?`

                  Ich denke, ich werde hier doch abwarten müssen und ein zusätzlichen Sonoff Switch bestellen. Dann kann ich den Wandschalter (Touch) tatsächlich NUR als Sensor/Eingang nutzen und diesen Per Touch oder Alexa steuern. Und dessen Status dann nehmen um höher Priorisiert zu sagen, wenn BWM ein Und Dauer an, dann bleib an.

                  Mit der Dauer-Aus habe ich dann och ein Kleines Problem, könnte ja aber ein zusätzliches Virtuelles Gerät mittels Alexa anlegen, welches die Höchste prio hat.

                  paul53P 1 Antwort Letzte Antwort
                  0
                  • F freak1051

                    Soweit bin ich jetzt:

                    SkriptPaul53Fragen_3.png

                    nur jetzt noch Logische Fragen:

                    Warum muss ich (direkt unter dem Kommentar) die Variable Licht schon mal auf den Wert des Schalters setzen, wenn ich danach, getriggert durch die Zustandsänderung, wieder Licht auf die den Zustand des Sonoff-Touch setze?. Ist das nicht doppelt gemoppelt?

                    Weiter in der Logik:

                    Wenn der BWM nicht ist, dann setzte Dauerlicht. Ich muss allerdings am BWM vorbei um den Taster zu schalten. Folglich ist der BWM nie aus wenn ich an den Taster laufe

                    Denke hier wird mein Problem liegen:

                    Der BWM wird immer High sein, wenn ich an den Taster laufe um Dauerlicht einzuschalten. Also komm ich Hier doch in eine Selbsthaltung rein ?!

                    Zudem Funktioniert mein Dauer-Aus doch auch nicht. Weil wenn ich den Schalter Aus-tapse und der bewegungsmelder Detektiert, geht er doch wieder an, oder?`

                    Ich denke, ich werde hier doch abwarten müssen und ein zusätzlichen Sonoff Switch bestellen. Dann kann ich den Wandschalter (Touch) tatsächlich NUR als Sensor/Eingang nutzen und diesen Per Touch oder Alexa steuern. Und dessen Status dann nehmen um höher Priorisiert zu sagen, wenn BWM ein Und Dauer an, dann bleib an.

                    Mit der Dauer-Aus habe ich dann och ein Kleines Problem, könnte ja aber ein zusätzliches Virtuelles Gerät mittels Alexa anlegen, welches die Höchste prio hat.

                    paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von
                    #12

                    @freak1051 sagte in ewegungsmelder mit Dauer-An /Dauer-Aus Funktion:

                    Warum muss ich (direkt unter dem Kommentar) die Variable Licht schon mal auf den Wert des Schalters setzen

                    Es ist in diesem Fall nicht nötig, da die Variable Licht nur innerhalb der Trigger-Calback-Funktion ausgewertet wird. Würde sie noch woanders ausgewertet, müsste sie so beim Skriptstart gesetzt werden.

                    @freak1051 sagte in ewegungsmelder mit Dauer-An /Dauer-Aus Funktion:

                    Folglich ist der BWM nie aus wenn ich an den Taster laufe

                    Dann ist eine Auswertung der Quelle ohne einen Taster-Datenpunkt nicht möglich.

                    @freak1051 sagte in ewegungsmelder mit Dauer-An /Dauer-Aus Funktion:

                    Funktioniert mein Dauer-Aus doch auch nicht.

                    Das wäre ein dritter Zustand: Dauer-Aus/Dauer-Ein/Auto(BWM). Unter welchen Umständen soll dieser erreicht 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
                    • F Offline
                      F Offline
                      freak1051
                      schrieb am zuletzt editiert von
                      #13

                      Hier mal eine Übersicht:

                      SkriptPaul53Fragen_4.png

                      Am Roten Kreis ist bisher ein BWM eingebaut, welcher anstatt des Konventionellen Lichtschalters fungiert. Diesen Kann ich auch auf Dauer AN oder Dauer AUS setzen.

                      Zu 90 % ist er aber im BWM Auto Betrieb. Allerdings erkennt dieser, aufgrund der niedrigen Position erst recht spät. Also muss man im Dunkeln recht weit in den Raum reinlaufen, bis das Licht angeht.

                      Um dies zu ändern war der Plan an diese Stelle einen Sonoff Touch zu setzen, welcher das Licht schällt, und den neuen BWM überhalb des PC´s zu setzten. Somit läuft man um den Raumtrenner und der BWM macht seine Arbeit wie gewohnt, nur zuverlässiger.

                      Die Dauer AN Funktion wird gebraucht um am PC/Schreibtisch zu arbeiten. Früher wurde angemacht, aber meist (weil es ja sonst immer von alleine ausgeht) Vergessen zum ausmachen. (Nervig wenn man eigentlich ins Bett gegangen ist :) )

                      Die Dauer Aus Funktion soll auch schaltbar sein, wird genutzt wenn einer der 2 Bewohner (meist die Frau) schon im Bett ist und der andere ( meistens ich) noch am PC sitzt un zockt. Damit nicht bei jeder zweiten Bewegung das Licht eingeht und der schlafende gestört wird.

                      Soll die Funktion sein.

                      So wie ich das aktuell sehe brauche ich eigentlich 2 Losgelöste Schalter (Touch) und einen Switch, welchen ich direkt vor die Lampe setze.

                      Somit könnte ich Dauer ein/dauer aus schalten und die Touch als abfragen verwenden, OHNE das sie Direkt eine Last schalten. Wenn keiner der Taster aktiv ist ist die BWM-Auto Funktion scharf.

                      Die Taster kann ich einfach über ne Alexa Steuern.

                      Nun ist nur die Frage die ich mir stellen muss: Wenn ich eh schon bestelle, kaufe ich Zusätzlich einen 2-kanaligen Sonoff Touch, um Dauer An/Dauer aus zu realisieren, oder nehme ich den einkanaligen, welchen ich aktuell habe, und mach mit ihm die Steuerung Dauer An/BWM -Auto und wenn ich Dauer Aus möchte gehts nur über die Alexa. Denke um einen zusätzlichen Schalter (Sonoff Switch oder Pow oder sowas ) komme ich nicht herum

                      paul53P 1 Antwort Letzte Antwort
                      0
                      • F freak1051

                        Hier mal eine Übersicht:

                        SkriptPaul53Fragen_4.png

                        Am Roten Kreis ist bisher ein BWM eingebaut, welcher anstatt des Konventionellen Lichtschalters fungiert. Diesen Kann ich auch auf Dauer AN oder Dauer AUS setzen.

                        Zu 90 % ist er aber im BWM Auto Betrieb. Allerdings erkennt dieser, aufgrund der niedrigen Position erst recht spät. Also muss man im Dunkeln recht weit in den Raum reinlaufen, bis das Licht angeht.

                        Um dies zu ändern war der Plan an diese Stelle einen Sonoff Touch zu setzen, welcher das Licht schällt, und den neuen BWM überhalb des PC´s zu setzten. Somit läuft man um den Raumtrenner und der BWM macht seine Arbeit wie gewohnt, nur zuverlässiger.

                        Die Dauer AN Funktion wird gebraucht um am PC/Schreibtisch zu arbeiten. Früher wurde angemacht, aber meist (weil es ja sonst immer von alleine ausgeht) Vergessen zum ausmachen. (Nervig wenn man eigentlich ins Bett gegangen ist :) )

                        Die Dauer Aus Funktion soll auch schaltbar sein, wird genutzt wenn einer der 2 Bewohner (meist die Frau) schon im Bett ist und der andere ( meistens ich) noch am PC sitzt un zockt. Damit nicht bei jeder zweiten Bewegung das Licht eingeht und der schlafende gestört wird.

                        Soll die Funktion sein.

                        So wie ich das aktuell sehe brauche ich eigentlich 2 Losgelöste Schalter (Touch) und einen Switch, welchen ich direkt vor die Lampe setze.

                        Somit könnte ich Dauer ein/dauer aus schalten und die Touch als abfragen verwenden, OHNE das sie Direkt eine Last schalten. Wenn keiner der Taster aktiv ist ist die BWM-Auto Funktion scharf.

                        Die Taster kann ich einfach über ne Alexa Steuern.

                        Nun ist nur die Frage die ich mir stellen muss: Wenn ich eh schon bestelle, kaufe ich Zusätzlich einen 2-kanaligen Sonoff Touch, um Dauer An/Dauer aus zu realisieren, oder nehme ich den einkanaligen, welchen ich aktuell habe, und mach mit ihm die Steuerung Dauer An/BWM -Auto und wenn ich Dauer Aus möchte gehts nur über die Alexa. Denke um einen zusätzlichen Schalter (Sonoff Switch oder Pow oder sowas ) komme ich nicht herum

                        paul53P Offline
                        paul53P Offline
                        paul53
                        schrieb am zuletzt editiert von
                        #14

                        @freak1051 sagte:

                        Die Dauer AN Funktion wird gebraucht um am PC/Schreibtisch zu arbeiten.

                        Dauer AN sollte mit dem Skript oben trotz ansprechendem BWM funktionieren, wenn man per Touch aus- und gleich wieder einschaltet.
                        Für Dauer AUS benötigt man einen weiteren Datenpunkt.

                        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
                        • R Offline
                          R Offline
                          roolix
                          schrieb am zuletzt editiert von roolix
                          #15

                          Hallo,

                          ich dachte mir, bevor ich einen weiteren Thread aufmache, hänge ich mich mal mit hier an, denn die Funktion, die ich realisieren will, ist sehr ähnlich:

                          1. BWM (Xiaomi RTCGQ01LM) schaltet das Licht ein und geht nach einiger Zeit wieder automatisch aus
                          2. Parallel soll per Taster (Xiaomi WXKG01LM) das Licht ein- und ausgeschaltet werden können, mit einem Toggle.
                          3. Ist das Licht per BWM eingeschaltet, soll es auch per Taster ausschaltbar sein.

                          Geschaltet wird ein Tradfri LED-Treiber 10W (IKEA ICPSHC24-10EU-IL-1) mit einer Ledberg-LED-Leiste.

                          Mein kleines Problem liegt lt. log "nur" darin, dass nach einem regulären Timeout ein Schalten per Taster einen clearTimeout-Fehler bringt:

                          200303-210845-Window.jpg

                          200303-210911-Window.jpg

                          Hat jemand eine Idee, wie ich den vermeiden kann?

                          btw:
                          a) stelle ich bei der Occupancy auf "wurde geändert", schaltet das Licht nach 60s wieder ein (occupancy steht nach Bewegung 60s auf true)
                          b) da ich unterschiedliche Helligkeiten nach unterschiedlichen Zeiten erreichen will (BWM <> Taster), wird beim BMW beispielhaft dir Helligkeit angesteuert, beim Taster der Einfachheit halber aktuell nur der State direkt
                          c) Verbesserungspotential an dem gesamten Blockly ist willkommen, meine Javascript-Kenntnisse sind, könnt ihr euch denken, miserabel

                          as of August '23
                          RPi4
                          Plattform: linux
                          RAM: 3.75 GB
                          Node.js: v18.17.1
                          NPM: 9.6.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

                          724

                          Online

                          32.7k

                          Benutzer

                          82.3k

                          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