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

                                          @paul53
                                          Mist- doch noch nicht verstanden...
                                          ich habe nun zum Test einmal die ObjektID der Lampe geändert und schwups... bei Bewegung geht die erste Lampe an und nicht die neue!? So sieht das veränderte Script aus:

                                          3f758cf6-f918-47ad-96fb-9521617984e0-image.png

                                          Muss ich da an anderer Stelle noch was ändern?

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

                                            @lemonbiter sagte: Muss ich da an anderer Stelle noch was ändern?

                                            Es muss auch "Kino Küche.on" gesteuert werden.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            426
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

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