Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Blockly Bewegungsmelder

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Blockly Bewegungsmelder

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

      Hallo zusammen,
      ich habe da einen Knoten im Kopf.

      Ich habe eine Lampe, die ich bspw. durch einen Taster oder ein Zeitscript geschaltet habe.
      Zusätzlich gibt es einen Bewegungsmelder

      Beide haben als Wert true oder false

      Ist die Lampe aus, also sie ist weder manuel durch den Taster noch durch das Zeitsript an, dann soll sie bei Bewegungserkennung auf true gehen und nachdem der Bewegungsmelder wieder false ist nach X-Minuten ausgehen = false.

      War die Lampe an (durch Taster oder Script) dann soll bei Bewegung nichts passieren...

      Hat jemand (idealerweise) ein Blockly XML für mich???
      LIEBEN DANK

      Lem

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

        @lemonbiter sagte: War die Lampe an (durch Taster oder Script) dann soll bei Bewegung nichts passieren...

        Blockly_temp.JPG

        lemonbiter David G. 2 Replies Last reply Reply Quote -1
        • lemonbiter
          lemonbiter @paul53 last edited by

          @paul53

          Lieber Paul danke Dir... könntest Du mir das XML dazu senden?
          Das wäre phenomenal

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

            @lemonbiter sagte: das XML dazu senden?

            <xml xmlns="https://developers.google.com/blockly/xml">
             <variables>
               <variable id="q;km{71bGl!j2zbH#==@">manuell_ein</variable>
               <variable type="timeout" id="timeout">timeout</variable>
             </variables>
             <block type="on_ext" id="z`zs_VDUYa5=}M^G{PO!" x="363" y="-36">
               <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
               <field name="CONDITION">ne</field>
               <field name="ACK_CONDITION"></field>
               <value name="OID0">
                 <shadow type="field_oid" id="`eyDCh%^h)31!9Yy!}tQ">
                   <field name="oid">0_userdata.0.Blockly.presence</field>
                 </shadow>
               </value>
               <statement name="STATEMENT">
                 <block type="controls_if" id="r_F:$ZB0Gd$9C_?l3,tE">
                   <value name="IF0">
                     <block type="logic_negate" id="Z;i~P!wB_2j0`Cbz!2=R">
                       <value name="BOOL">
                         <block type="variables_get" id="v$)VO`bG_OxAA8sx)6p6">
                           <field name="VAR" id="q;km{71bGl!j2zbH#==@">manuell_ein</field>
                         </block>
                       </value>
                     </block>
                   </value>
                   <statement name="DO0">
                     <block type="controls_if" id="efIYS9$JDW5F=e{[QuvM">
                       <mutation else="1"></mutation>
                       <value name="IF0">
                         <block type="on_source" id="c[MDxioP?N2B0|_`!%Y:">
                           <field name="ATTR">state.val</field>
                         </block>
                       </value>
                       <statement name="DO0">
                         <block type="timeouts_cleartimeout" id="+7P:8r8]7^Ekl]ECP_;j">
                           <field name="NAME">timeout</field>
                           <next>
                             <block type="control" id="VM[APx%b!irap,/L(Xhj">
                               <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                               <field name="OID">0_userdata.0.Blockly.Licht</field>
                               <field name="WITH_DELAY">FALSE</field>
                               <value name="VALUE">
                                 <block type="logic_boolean" id="X|yYOl}|gWD(Zq|,QYhK">
                                   <field name="BOOL">TRUE</field>
                                 </block>
                               </value>
                             </block>
                           </next>
                         </block>
                       </statement>
                       <statement name="ELSE">
                         <block type="timeouts_settimeout" id="i1EzqYO@$ni~+5Wo%_?@">
                           <field name="NAME">timeout</field>
                           <field name="DELAY">2</field>
                           <field name="UNIT">min</field>
                           <statement name="STATEMENT">
                             <block type="control" id="gsSrPb2+z|jAT0%u50o$">
                               <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                               <field name="OID">0_userdata.0.Blockly.Licht</field>
                               <field name="WITH_DELAY">FALSE</field>
                               <value name="VALUE">
                                 <block type="logic_boolean" id="986;r4ev02W.~HvZff)b">
                                   <field name="BOOL">FALSE</field>
                                 </block>
                               </value>
                             </block>
                           </statement>
                         </block>
                       </statement>
                     </block>
                   </statement>
                 </block>
               </statement>
               <next>
                 <block type="on_ext" id="$(L1w5;Re%^-t~A]fbG#">
                   <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                   <field name="CONDITION">ne</field>
                   <field name="ACK_CONDITION"></field>
                   <value name="OID0">
                     <shadow type="field_oid" id="rAL75*h,S1*~bhEro{0l">
                       <field name="oid">0_userdata.0.Blockly.Licht</field>
                     </shadow>
                   </value>
                   <statement name="STATEMENT">
                     <block type="variables_set" id="sQ0CrxWB^cZm(*AH1[?9">
                       <field name="VAR" id="q;km{71bGl!j2zbH#==@">manuell_ein</field>
                       <value name="VALUE">
                         <block type="logic_operation" id="/eFv$%#HjK/ju~q,(3lF" inline="false">
                           <field name="OP">AND</field>
                           <value name="A">
                             <block type="on_source" id="8+l}8fexD%z5b|}cJJMv">
                               <field name="ATTR">state.val</field>
                             </block>
                           </value>
                           <value name="B">
                             <block type="logic_operation" id="H%9!z.U*,ZW1g]H~~f_j" inline="false">
                               <field name="OP">OR</field>
                               <value name="A">
                                 <block type="logic_compare" id=":d3~{X?VE%*Li$m1te?e">
                                   <field name="OP">NEQ</field>
                                   <value name="A">
                                     <block type="on_source" id="fp#ZqBo*Pk7p5/l-}0Z5">
                                       <field name="ATTR">state.from</field>
                                     </block>
                                   </value>
                                   <value name="B">
                                     <block type="text" id="[{PMjetA`_f:RCp!:e~N">
                                       <field name="TEXT">system.adapter.javascript.0</field>
                                     </block>
                                   </value>
                                 </block>
                               </value>
                               <value name="B">
                                 <block type="logic_compare" id="rDh$.8][(6aV`}8(:K{A">
                                   <field name="OP">NEQ</field>
                                   <value name="A">
                                     <block type="on_source" id="+TGJFeJ}/HXDmg)!BJ/?">
                                       <field name="ATTR">state.c</field>
                                     </block>
                                   </value>
                                   <value name="B">
                                     <block type="text" id="~4#PmToF;@o:~_06C:|W">
                                       <field name="TEXT">script.js.BWM-Skript-Name</field>
                                     </block>
                                   </value>
                                 </block>
                               </value>
                             </block>
                           </value>
                         </block>
                       </value>
                       <next>
                         <block type="controls_if" id="knlMH/ET/z|`{Mh?;]1E">
                           <value name="IF0">
                             <block type="variables_get" id=";j^zggS:7ZFqipV#D]7v">
                               <field name="VAR" id="q;km{71bGl!j2zbH#==@">manuell_ein</field>
                             </block>
                           </value>
                           <statement name="DO0">
                             <block type="timeouts_cleartimeout" id="ZxMD=*UyNdTcL~j;GPF_">
                               <field name="NAME">timeout</field>
                             </block>
                           </statement>
                         </block>
                       </next>
                     </block>
                   </statement>
                 </block>
               </next>
             </block>
            </xml>
            

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

              @paul53

              Vielen lieben Dank... Aber iwie geht die Lampe nicht aus...Wenn ich das blockly sehe, sollte das licht nach Bewegungsmelder doch nach 2 Minutena usgehen oder?

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

                @lemonbiter sagte: sollte das licht nach Bewegungsmelder doch nach 2 Minutena usgehen oder?

                Ja, um 2 Minuten verzögert, wenn der BWM auf false geht (und bleibt). Das aber nur, wenn die Variable manuell_ein nicht true ist. Logge mal die Variable im BWM-Trigger.
                Den richtigen Namen Deines BWM-Skriptes hast Du eingegeben?

                lemonbiter 1 Reply Last reply Reply Quote 0
                • David G.
                  David G. @paul53 last edited by

                  @paul53

                  Was wird hier in die Variable eingetragen?
                  Screenshot_20230730_155900_Chrome.jpg

                  Werden da durch das "und" 2 Dinge eingetragen?

                  1 Reply Last reply Reply Quote 0
                  • crunchip
                    crunchip Forum Testing Most Active last edited by

                    @lemonbiter sagte in Blockly Bewegungsmelder:

                    sollte das licht nach Bewegungsmelder doch nach 2 Minutena usgehen oder?

                    sollte es sich z.b. um einen zigbee BWM handeln, braucht dieser ca 90 sec bis der DP auf false springt, ab da zählen anschliessend die 2 Min.

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

                      @paul53

                      Ich habe die Objekte angepasst und bei Bewegung und Lampe war aus geht die Lampe an... aber eben nicht aus

                      Angepasst habe ich die ObjektIDs des Bewegungsmelders und der Lampe und dann noch den ungleich Wert auf den Namen des Scriptes geändert

                      929c5458-8806-4534-8c6d-b53995be7109-image.png

                      569c6603-33a7-48e0-a878-7e63e5151231-image.png

                      paul53 1 Reply Last reply Reply Quote 0
                      • lemonbiter
                        lemonbiter @crunchip last edited by

                        @crunchip

                        Ja, das dachte ich mir... es ist ein aqara... der braucht immer... aber wenn er auf false ist geht das licht eben nicht nach 2 oder 3 Minuten aus

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

                          @lemonbiter
                          Der Skriptname ist falsch. Er muss mit "script.js." beginnen. Wahrscheinlich sind auch die Leerzeichen durch Unterstriche ersetzt. Schau im Tab "Objekte" unter "script.js" nach. Im Log wird bei Skriptstart auch der richtige Name angezeigt.
                          Vermutlich richtig: "script.js.Spielwiese.Bewegungsmelder_Licht_Kino_Wand"

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

                            @paul53

                            Ich habe jetzt folgendes eingetragen: scriptEnabled.Spielwiese.Bewegungsmelder_Licht_Kino_Wand
                            fdf62cad-e1aa-40da-90bb-484dd838a096-image.png

                            klappt nicht... 3 Minuten nachdem der Bewegungsmelder auf "False" gegangen ist, bleibt das Licht an, obwohl das Licht vorher "false" war

                            Aber dieses Blockly ist ein Wunder für mich... ich verstehe das Blockly leider nicht ... wo schreibt es die Werte in die Script Enabled etc....

                            29cbe4a7-8373-41ba-9d78-fab2f0ab5df5-image.png

                            paul53 crunchip 2 Replies Last reply Reply Quote 0
                            • paul53
                              paul53 @lemonbiter last edited by paul53

                              @lemonbiter sagte: scriptEnabled.Spielwiese.Bewegungsmelder_Licht_Kino_Wand

                              Falsch!
                              Richtig: "script.js.Spielwiese.Bewegungsmelder_Licht_Kino_Wand"

                              script_js.JPG

                              Blockly_temp.JPG

                              lemonbiter 1 Reply Last reply Reply Quote 0
                              • crunchip
                                crunchip Forum Testing Most Active @lemonbiter last edited by

                                @lemonbiter2e2bac61-dc3d-4520-a543-f8a91b6fc0ce-image.png

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

                                  @paul53

                                  Lieber Paul vielen Dank, dasss Du Dir so viel mühe gemacht hast. Es funktioniert.
                                  Magst Du mir kurz erklären, wie das Blockly funktioniert? Im Nachbauen bin ich ne 3+ aber im Verstehen habe ich als Note grade noch eine 5-

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

                                    @lemonbiter sagte: wie das Blockly funktionert?

                                    Die Variable manuell_ein wird nur auf true gesetzt, wenn sich der Wert von "Schalter" von false auf true ändert und die Quelle der Änderung nicht (!=) die Javascript-Instanz ist oder wenn die Quelle die Javascript-Instanz ist, darf es nicht das BWM-Skript selbst sein (!=), das true schreibt. Der Name des Skriptes wird im Kommentar (obj.state.c) mitgegeben.
                                    Wenn die Variable manuell_ein true ist, wird die BWM-Funktion gesperrt (falls nicht manuell_ein).

                                    David G. lemonbiter 3 Replies Last reply Reply Quote 1
                                    • David G.
                                      David G. @paul53 last edited by

                                      @paul53

                                      Da hänge ich mich nochmal mit meiner Frage von eben ein.
                                      Ist der Abschnitt wo die Variable "manuell ein" gesetzt wird eine verkürzte Form die was prüft?
                                      Bei "und" denkt man ja eher, dass die Variable auf 2 Sachen gesetzt wird.

                                      paul53 1 Reply Last reply Reply Quote 0
                                      • paul53
                                        paul53 @David G. last edited by paul53

                                        @david-g sagte: Bei "und" denkt man ja eher, dass die Variable auf 2 Sachen gesetzt wird.

                                        Das "und" ist eine logische Verknüpfung von zwei Bedingungen (Werten): Beide Bedingungen müssen true sein, damit das Ergebnis true wird. Das Ergebnis wird in die Variable gesetzt.

                                        David G. 1 Reply Last reply Reply Quote 0
                                        • David G.
                                          David G. @paul53 last edited by David G.

                                          @paul53
                                          Fungiert also als Prüfung?

                                          Jetzt habe ich in verstehen die 5-

                                          Wenn ich da nur "setzte auf Wert" mache wird nur true oder false in die Variable geschrieben.

                                          Durch das Und wird noch abgefragt, dass beide Ursprünge false sein müssen?

                                          EDIT
                                          Da war drin edit schneller als meine Frage.
                                          Kannte ich so noch nicht. Hatte das vermutlich morab mit falls geprüft.

                                          paul53 1 Reply Last reply Reply Quote 0
                                          • paul53
                                            paul53 @David G. last edited by

                                            @david-g sagte: Wenn ich da nur "setzte auf Wert" mache wird nur true oder false in die Variable geschrieben.

                                            Ja, wenn Wert nur true oder false enthält, wie es bei einem Schalter der Fall ist.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            783
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

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