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.
    • 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
                                          • lemonbiter
                                            lemonbiter @paul53 last edited by

                                            @paul53 sagte in Blockly Bewegungsmelder:

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

                                            Ganz lieben Dank... Perfetto

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            950
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            4
                                            24
                                            1143
                                            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