Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst] Blockly Licht über Bewegungsmelder, Dauerlicht über Taster

    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

    [gelöst] Blockly Licht über Bewegungsmelder, Dauerlicht über Taster

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

      Genau so ist es. Laut Log wird bei Bewegung getriggert und nach 15s nochmal. Wollen zu ich das nicht, aber es ist so.

      Ich nehme nur der Einfachheit halber einen Taster zum ein und einen zum Ausschalten. 1. hab ich zwei Taster dran und

      2. muss ich ja sonst wieder abfragen ob das Licht an ist oder nicht

      1 Reply Last reply Reply Quote 0
      • rantanplan
        rantanplan last edited by

        Ich hab da mal vorbereitet… 😉

        Allerdings nicht getestet.
        147_badlicht.png

        ! <block xmlns="http://www.w3.org/1999/xhtml" type="procedures_defnoreturn" id="-Ts^et}f~sjE_@F_b@Zr" x="-287.6651715072096" y="462.5000152587891"><mutation><arg name="x"></arg></mutation> <field name="NAME">LeuchteSchalten</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"><block type="comment" id="*6FI2{TA*|L*sW+,L(}?"><field name="COMMENT">Funktion Leuchte ein- oder ausschalten</field> <next><block type="controls_if" id="9?aGD0/BVm_Gr=?2ms+r"><value name="IF0"><block type="logic_compare" id="Yv]yu9}8NM]KwDy7Dkc5"><field name="OP">NEQ</field> <value name="A"><block type="get_value" id="7DWzNGXN52r-5ejij|N%"><field name="ATTR">val</field> <field name="OID">ID auswählen</field></block></value> <value name="B"><block type="variables_get" id="WOJ,=X],[ZWF1cE5o.B#"><field name="VAR">x</field></block></value></block></value> <statement name="DO0"><block type="control" id="*B4#g]93@QAUExJcA+k4"><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="L}Bsm|]1G@6~G)e^!?(i"><field name="VAR">x</field></block></value></block></statement></block></next></block></statement></block> !

        Grüße

        1 Reply Last reply Reply Quote 0
        • rantanplan
          rantanplan last edited by

          Upps

          Mir ist noch ein kleiner Schönheitsfehler aufgefallen.

          Wenn man im Bad hin und her läuft, kann es sein das der BM mehrmals Bewegung meldet.

          In meinem Beispiel würde dann jedesmal ein neuer Timer von 3 Min. gestartet.

          Kriegst Du das alleine hin?

          Grüße

          1 Reply Last reply Reply Quote 0
          • E
            emmpee last edited by

            Denke schon. Ich guck mir das an wenn ich wieder zu Hause bin. Danke dir erstmal [emoji4]

            Sind die Blöcke normal untereinander eingehängt oder können die auch solo stehen?

            1 Reply Last reply Reply Quote 0
            • AlCalzone
              AlCalzone Developer last edited by

              @emmpee:

              @Alcalzone: Ich hatte auch den Verdacht, das die Variable vom Taster vielleicht auf true steht, deswegen am Anfang des Scriptes das Setzen aller Variablen auf false. Aber auch nach dem Neustart des Scriptes hat sich das Verhalten nicht geändert. `
              Die Variable hast du selbst definiert und existiert nur innerhalb des Skripts. Ich meinte den tatsächlichen Datenpunkt "Taster oben….PRESS_SHORT", den du im Block

              Falls Objekt "Bewegungsmelder Bad.MOTION"
              

              abfragst. Der wird von Skript-Neustarts nicht beeinflusst, da es keine Skript-Variable ist, sondern ein Datenpunkt.

              1 Reply Last reply Reply Quote 0
              • E
                emmpee last edited by

                Ich meinte es mit der Variablen so, dass sie, aus welchen Gründen auch immer, vielleicht in einem undefinierten Zustand ist und habe deswegen am Anfang des Scriptes alles erstmal definiert auf 0 gesetzt. War nur so ein Gedanke. Ich kenne sowas aus meinem Job mit Alarm oder Brandmeldeanlagen. Wenn die in kurzer Zeit zu oft stromlos gemacht werden, können Ausgänge einen undefinierten Zustand annehmen, der weder 0 noch richtig 1 ist, und reagieren dann auch bis Neustart überhaupt nicht.

                1 Reply Last reply Reply Quote 0
                • E
                  emmpee last edited by

                  Also Rantanplan, was Du da mal vorbereitet hast…läuft. 🙂

                  Super, danke dafür. Jetzt muss ich´s nur noch verstehen, sonst weiß ich beim nächsten Mal wieder nicht weiter.

                  Den timeout stop habe ich eingefügt, somit ist Dein "Schönheitsfehler" weg. Wenn ich das richtig verstanden habe, läuft sonst bei jeder Bewegung ein Timer los und das Licht bleibt dann, gefühlt, ewig an.

                  Ich zerpflück jetzt mal alles um zu verstehen, was da abgeht.

                  Ich danke Euch Jungs, es wird nicht das letzte Mal sein, das wir uns "sehen" 🙂

                  1 Reply Last reply Reply Quote 0
                  • rantanplan
                    rantanplan last edited by

                    @emmpee:

                    Ich danke Euch Jungs, es wird nicht das letzte Mal sein, das wir uns "sehen" 🙂 `
                    Immer wieder gerne :!:

                    Danke für die Rückmeldung.

                    (Meinen kleinen Fehler hätte ich mit einer weiteren Hilfvariablen gelöst 😉 )

                    Grüße

                    1 Reply Last reply Reply Quote 0
                    • AlCalzone
                      AlCalzone Developer last edited by

                      @emmpee:

                      Ich meinte es mit der Variablen so, dass sie, aus welchen Gründen auch immer, vielleicht in einem undefinierten Zustand ist und habe deswegen am Anfang des Scriptes alles erstmal definiert auf 0 gesetzt. War nur so ein Gedanke. `
                      In JavaScript (im Hintergrund von Blockly) sind Variablen zum Start tatsächlich undefined. Die sind dann aber nicht mal 0, mal 1, sondern haben einfach keinen Wert, bis man ihnen einen zuweist.

                      Der "reset" am Anfang ist daher in einigen Fällen sogar angebracht.

                      1 Reply Last reply Reply Quote 0
                      • E
                        emmpee last edited by

                        @rantanplan: ich merk schon, das Du auf die Dinger stehst 🙂 🙂

                        @Alcalzone: dann war mein Gedanke ja garnicht so verkehrt, geschadet hat´s auf alle Fälle nicht 🙂

                        1 Reply Last reply Reply Quote 0
                        • Segway
                          Segway last edited by

                          Hallo,

                          ich hoffe ich stelle mich nicht ins Abseits damit, aber es gibt auch eine Alternative direkt über die CCU2 ohne jegliches Script und Programm:

                          Ich habe einen Funkschalter-Bewegungsmelder HM-Sen-MDIR-WM55 sowie einen 2-fach Funkschalteraktor Unterputz HM-LC-Sw2-FM

                          Damit habe ich per Direktverknüpfung (DV) per Tastendruck Short –> Lampe 1 sowie Tastendruck LONG --> Lampe 2 geschaltet.

                          Nun noch eine DV angelegt die Lampe 1 per Bewegung einschaltet und die Art der Verweildauer von absolut auf mindestens ändern - Dauer kann individuell gewählt werden.

                          Licht ein per Taster = Dauerlicht

                          Licht ein per Bewegungserkennung = Dauer aktiv

                          So wollte ich es haben und funktioniert auch. Wie gesagt ist einfach nur ein Alternative mehr wollte ich nicht sagen. Wer es über das Blockly macht geht genauso gut 🙂

                          1 Reply Last reply Reply Quote 0
                          • E
                            emmpee last edited by

                            Du stellst Dich keineswegs ins Abseits. Ich hatte es am Anfang genauso. Es kommt zwar in der Fragestellung nicht raus, aber ich wollte zu unterschiedlichen Zeiten unterschiedliche Verzögerungen (in der Nacht zum Pinkeln kürzer als morgens zum Zähneputzen) und das geht mit der Methode nicht.

                            1 Reply Last reply Reply Quote 0
                            • Segway
                              Segway last edited by

                              @emmpee:

                              Du stellst Dich keineswegs ins Abseits. Ich hatte es am Anfang genauso. Es kommt zwar in der Fragestellung nicht raus, aber ich wollte zu unterschiedlichen Zeiten unterschiedliche Verzögerungen (in der Nacht zum Pinkeln kürzer als morgens zum Zähneputzen) und das geht mit der Methode nicht. `

                              Jo das stimmt! Damit ginge es nicht 🙂

                              So hat jeder seine individuelle Lösung 🙂

                              Gesendet von iPhone mit Tapatalk

                              1 Reply Last reply Reply Quote 0
                              • E
                                emmpee last edited by

                                Du sagst es ist 🙂

                                1 Reply Last reply Reply Quote 0
                                • rantanplan
                                  rantanplan last edited by

                                  @emmpee

                                  Setzt Du bitte noch ein [gelöst] in den Betreff.

                                  Grüße

                                  1 Reply Last reply Reply Quote 0
                                  • Segway
                                    Segway last edited by

                                    Doch nochmal eine Frage:

                                    Kann ich irgendwo abgreifen wodurch das Licht eingeschaltet wurde ? Also entweder durch Bewegungsmelder (BM) oder durch Betätigen des Tasters ? Und wenn durch BM wäre eine Info der Zeit evtl. auch noch nice.

                                    Wahrscheinlich nur durch ein Programm oder ?

                                    1 Reply Last reply Reply Quote 0
                                    • rantanplan
                                      rantanplan last edited by

                                      @Segway:

                                      Doch nochmal eine Frage:

                                      Kann ich irgendwo abgreifen wodurch das Licht eingeschaltet wurde ? Also entweder durch Bewegungsmelder (BM) oder durch Betätigen des Tasters ? Und wenn durch BM wäre eine Info der Zeit evtl. auch noch nice.

                                      Wahrscheinlich nur durch ein Programm oder ? `
                                      Das Beispiel hat zwei Trigger.

                                      Einen für BM der Andere für Taster.

                                      Da kannst Du eine zusätzliche Variable/Datenpunkt setzen.

                                      Grüße

                                      1 Reply Last reply Reply Quote 0
                                      • Segway
                                        Segway last edited by

                                        Okay,

                                        ich probiere das mal grad aus. Wo muss ich denn den Code "hinpacken" - arbeite zum ersten Mal mit Blockly?

                                        Und welchen zus. Datenpunkt soll ich setzen - sorry für die Anfängerfrage :oops:

                                        1 Reply Last reply Reply Quote 0
                                        • rantanplan
                                          rantanplan last edited by

                                          @Segway:

                                          Okay,

                                          ich probiere das mal grad aus. Wo muss ich denn den Code "hinpacken" - arbeite zum ersten Mal mit Blockly?

                                          Und welchen zus. Datenpunkt soll ich setzen - sorry für die Anfängerfrage :oops: `
                                          Kein Problem.

                                          Habe aber gerade wenig Zeit 😞

                                          Den Datenpunkt musst Du Dir wohl selbst anlegen.

                                          Wahrscheinlich kommst Du aber auch schon mit einer lokalen Variablen aus.

                                          Lies Dir mal einige Beiträge zu Blockly durch.

                                          Da werden schon die meisten Fragen beantwortet.

                                          Wenn Du nicht zurecht kommst, ruhig noch mal Fragen.

                                          Muss jetzt los.

                                          Grüße

                                          1 Reply Last reply Reply Quote 0
                                          • M
                                            marphDE last edited by

                                            habe das Script auch mal so nachgebaut, allerdings mit der Ausnahme das ich keine Taster zum auswerten der manuellen Schaltung nutze sondern einfach den momentanen Status der Lampe auswerte um zu entscheiden ob manuell geschalten oder nicht.

                                            Leider geht bei mir die Lampe anscheinen nicht mehr aus nach den 3 Minuten.

                                            Wenn der Bewegugsmelder auslöst sehe ich im Log auch 2 aufeinander folgende Meldungen wie folgt:

                                            hue.0	2018-02-06 20:58:02.780	info	final lightState for Philips_hue.Regal_Bad:{"bri":254,"on":true,"level":100}
                                            zwave.0	2018-02-06 20:57:55.345	info	Update zwave.0.NODE2
                                            hue.0	2018-02-06 20:57:54.817	info	final lightState for Philips_hue.Regal_Bad:{"bri":254,"on":true,"level":100}
                                            javascript.0	2018-02-06 20:57:36.702	info	script.js.Bad.Skript1: registered 8 subscriptions and 1 schedule
                                            
                                            

                                            4060_bildschirmfoto_2018-02-06_um_21.24.47.png

                                            Kann mir jemand helfen ?

                                            Lg,

                                            Martin

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            894
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            8
                                            48
                                            11303
                                            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