Navigation

    Logo
    • Registrieren
    • Anmelden
    • Suche
    • Aktuell
    • Tags
    • Ungelesen
    • Kategorien
    • Unreplied
    • Beliebt
    • GitHub
    • Docu
    • Hilfe
    1. Übersicht
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Blockly Script Zeitgesteuert mit 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 Script Zeitgesteuert mit Bewegungsmelder

    Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
    • S
      schererV zuletzt editiert von schererV

      Hallo zusammen und ein frohes neues Jahr ,

      habe folgende Situation.
      Habe im Badezimmer an die Spiegelschrankbeleuchtung einen Sonoff angeschlossen und habe noch einen Bewegungsmelder im Badezimmer von Xiaomi stehen.

      Der alte Script war : Bewegungsmelder erkennt Bewegung -sonoff(mit tasmota) schaltet Lampe ein - Sonoff schaltet Lampe nach 60 sec Verzögerung Lampe wieder aus.

      Aber Nachts ist die Lampe zu hell.
      Würde gerne das die Lampe nur zwischen 05 Uhr und 22 Uhr angeht.
      Bekomme es aber nicht hin.
      Angeht die Lampe nach erkannter Bewegung aber beim ausgehen nach 60 sec. schaltet der Sonoff ständig an und aus . Bis ich den Schalter ausmache oder den Script anhalte!

      Script.jpg

      <block xmlns="https://developers.google.com/blockly/xml" type="schedule" id="/5a37CegSk|=RS`D+i%m" x="-762" y="-212">
        <field name="SCHEDULE">* * 5-22 * * *</field>
        <statement name="STATEMENT">
          <block type="controls_if" id=",9_Nr-P-{%Fd+Tc0-=Nu">
            <value name="IF0">
              <block type="logic_compare" id=";_i]cfZdrmL/qXWB6PuO">
                <field name="OP">EQ</field>
                <value name="A">
                  <block type="get_value" id="05hB:}da}@CQX_^vBlC@">
                    <field name="ATTR">val</field>
                    <field name="OID">mihome.0.devices.sensor_motion_aq2_158d000222cce0.state</field>
                  </block>
                </value>
                <value name="B">
                  <block type="logic_boolean" id="we]ZUh]3i@HjcetV$L#.">
                    <field name="BOOL">TRUE</field>
                  </block>
                </value>
              </block>
            </value>
            <statement name="DO0">
              <block type="control" id="}6;6~]L4/!BY.JwxYt#d">
                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                <field name="OID">sonoff.0.Sonoff Badezimmer.POWER</field>
                <field name="WITH_DELAY">FALSE</field>
                <value name="VALUE">
                  <block type="logic_boolean" id="PDGjw4AYy[^(T_9;v]R|">
                    <field name="BOOL">TRUE</field>
                  </block>
                </value>
                <next>
                  <block type="control" id=";fBOHC6Xnv6I*z2Bqi;z">
                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                    <field name="OID">sonoff.0.Sonoff Badezimmer.POWER</field>
                    <field name="WITH_DELAY">TRUE</field>
                    <field name="DELAY_MS">1</field>
                    <field name="UNIT">min</field>
                    <field name="CLEAR_RUNNING">FALSE</field>
                    <value name="VALUE">
                      <block type="logic_boolean" id="Lf?Tk}6d2~/+sCR;xYF/">
                        <field name="BOOL">FALSE</field>
                      </block>
                    </value>
                  </block>
                </next>
              </block>
            </statement>
          </block>
        </statement>
      </block>
      

      Hoffe habe es etwas verständlich erklärt.

      Würde mich über eure Hilfe freuen .

      S 1 Antwort Letzte Antwort Antworten Zitieren 0
      • S
        schererV @schererV zuletzt editiert von schererV

        Sorry. Hier stand das gleiche

        Wszene 1 Antwort Letzte Antwort Antworten Zitieren 0
        • Wszene
          Wszene @schererV zuletzt editiert von Wszene

          @schererV

          Ich würde es so machen
          Beim Trigger (falls Objekt - ObjektID) noch den Bewegungsmelder eintragen
          Bildschirmfoto 2021-01-05 um 18.22.27.png

          <xml xmlns="https://developers.google.com/blockly/xml">
            <block type="on" id="2c(iZx;+/u/Ybx+~5DF8" x="-712" y="-388">
              <field name="OID">Object ID</field>
              <field name="CONDITION">true</field>
              <field name="ACK_CONDITION"></field>
              <statement name="STATEMENT">
                <block type="controls_if" id=",9_Nr-P-{%Fd+Tc0-=Nu">
                  <value name="IF0">
                    <block type="logic_operation" id="0LGSq-jI,Wm],IM_;$y%" inline="false">
                      <field name="OP">AND</field>
                      <value name="A">
                        <block type="logic_compare" id=";_i]cfZdrmL/qXWB6PuO">
                          <field name="OP">EQ</field>
                          <value name="A">
                            <block type="get_value" id="05hB:}da}@CQX_^vBlC@">
                              <field name="ATTR">val</field>
                              <field name="OID">mihome.0.devices.sensor_motion_aq2_158d000222cce0.state</field>
                            </block>
                          </value>
                          <value name="B">
                            <block type="logic_boolean" id="we]ZUh]3i@HjcetV$L#.">
                              <field name="BOOL">TRUE</field>
                            </block>
                          </value>
                        </block>
                      </value>
                      <value name="B">
                        <block type="time_compare_ex" id="BL7(vk[x4!Uc9/8{ka@#">
                          <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true" actual_time="true"></mutation>
                          <field name="USE_ACTUAL_TIME">TRUE</field>
                          <field name="OPTION">between</field>
                          <value name="START_TIME">
                            <shadow type="text" id="v-r[Iak){uL4QQj?0BNq">
                              <field name="TEXT">05:00</field>
                            </shadow>
                          </value>
                          <value name="END_TIME">
                            <shadow type="text" id="3)p`BvrQ#XUw3ZH4h9ff">
                              <field name="TEXT">22:00</field>
                            </shadow>
                          </value>
                        </block>
                      </value>
                    </block>
                  </value>
                  <statement name="DO0">
                    <block type="control" id="}6;6~]L4/!BY.JwxYt#d">
                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                      <field name="OID">sonoff.0.Sonoff Badezimmer.POWER</field>
                      <field name="WITH_DELAY">FALSE</field>
                      <value name="VALUE">
                        <block type="logic_boolean" id="PDGjw4AYy[^(T_9;v]R|">
                          <field name="BOOL">TRUE</field>
                        </block>
                      </value>
                      <next>
                        <block type="control" id=";fBOHC6Xnv6I*z2Bqi;z">
                          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                          <field name="OID">sonoff.0.Sonoff Badezimmer.POWER</field>
                          <field name="WITH_DELAY">TRUE</field>
                          <field name="DELAY_MS">1</field>
                          <field name="UNIT">min</field>
                          <field name="CLEAR_RUNNING">FALSE</field>
                          <value name="VALUE">
                            <block type="logic_boolean" id="Lf?Tk}6d2~/+sCR;xYF/">
                              <field name="BOOL">FALSE</field>
                            </block>
                          </value>
                        </block>
                      </next>
                    </block>
                  </statement>
                </block>
              </statement>
            </block>
          </xml>
          
          paul53 1 Antwort Letzte Antwort Antworten Zitieren 0
          • paul53
            paul53 @Wszene zuletzt editiert von paul53

            @Wszene sagte:

            Ich würde es so machen

            ... und ich so, damit das Licht nicht ausgeht, wenn innerhalb der Ausverzögerung wieder Bewegung erkannt wird.

            EDIT: Funktioniert so nicht.

            Wszene Frank Zoellner F B 4 Antworten Letzte Antwort Antworten Zitieren 3
            • Wszene
              Wszene @paul53 zuletzt editiert von

              @paul53

              Stimmt daran habe ich nicht gedacht
              Aber das wäre mir bestimmt aufgefallen wenn ich es getestet hätte 😊

              1 Antwort Letzte Antwort Antworten Zitieren 0
              • S
                schererV zuletzt editiert von

                Danke euch beiden. Jetzt läuft der Script so wie er soll

                1 Antwort Letzte Antwort Antworten Zitieren 1
                • Frank Zoellner
                  Frank Zoellner @paul53 zuletzt editiert von

                  @paul53 Hi mal ne kurze Frage zum Verständnis, was ist Wert in dem Blockly ?

                  paul53 1 Antwort Letzte Antwort Antworten Zitieren 0
                  • paul53
                    paul53 @Frank Zoellner zuletzt editiert von

                    @frank-zoellner sagte: was ist Wert in dem Blockly ?

                    Das ist der Wert des Trigger-Datenpunktes und sieht in neueren Versionen des Javascript-Adapters etwas anders aus.

                    Bild_2022-11-02_201925509.png

                    Frank Zoellner 1 Antwort Letzte Antwort Antworten Zitieren 0
                    • Frank Zoellner
                      Frank Zoellner @paul53 zuletzt editiert von

                      @paul53 ah ok, also dann tru oder false je nachdem ... verstehe...

                      1 Antwort Letzte Antwort Antworten Zitieren 0
                      • F
                        funcarv3r @paul53 zuletzt editiert von

                        @paul53
                        Ich verwende das Script für eine Alarmanlage, funktioniert soweit gut. Ich bekomme es leider nicht hin das der Alarm immer nur für 20 Sekunden zu hören ist.

                        Wenn ein Fenster geöffnet wird, schaltet der Alarm ein, wenn es geschlossen wird, ist der Alarm für weitere 20 Sekunden zu hören. Wenn das Fenster jedoch weiter geöffnet bleibt, ist auch der Alarm weiterhin zu hören. Hier hätte ich gerne das auch hier der Alarm nach einer eingestellten Zeit abschaltet. Wie kann ich das umsetzen?

                        Hintergrund ist der, das Ganze ist für die Alarmanlage unseres Wohnmobils und wir haben über ein Kabel die Fahrräder auf dem Heckträger gesichert. Wenn jetzt jemand das Kabel durchschneidet soll der Alarm natürlich nicht die nächsten 3 Stunden plärren...

                        Codierknecht paul53 2 Antworten Letzte Antwort Antworten Zitieren 0
                        • Codierknecht
                          Codierknecht Developer Most Active @funcarv3r zuletzt editiert von

                          @funcarv3r sagte in Blockly Script Zeitgesteuert mit Bewegungsmelder:

                          das Script

                          Zeigen!
                          Das sieht bei jedem leicht anders aus.

                          https://forum.iobroker.net/topic/51555/hinweise-für-gute-forenbeiträge

                          F 1 Antwort Letzte Antwort Antworten Zitieren 0
                          • F
                            funcarv3r @Codierknecht zuletzt editiert von

                            @codierknecht
                            3ddf71bb-f909-4b7b-aa2e-5189516ec919-image.png

                            Codierknecht 1 Antwort Letzte Antwort Antworten Zitieren 0
                            • Codierknecht
                              Codierknecht Developer Most Active @funcarv3r zuletzt editiert von

                              @funcarv3r
                              Du brauchst einen weiteren timeout für den "Falls"-Teil.

                              55ad0c93-c2d0-4cb4-833b-546304796a7f-image.png

                              "Wert = Wahr" kannst Du Dir bei bool'schen Werten schenken.
                              Eine solche Prüfung ergibt ja auch nur wahr oder falsch. Also kann man da einfach direkt den Wert einsetzen - ohne weitere Prüfung.
                              Der Wert selbst kann ja auch nur wahr oder falsch sein.

                              F 1 Antwort Letzte Antwort Antworten Zitieren 0
                              • F
                                funcarv3r @Codierknecht zuletzt editiert von

                                @codierknecht
                                Perfekt, danke, funktioniert.

                                Was ich nicht verstehe ist, ich hatte es so meine ich schon versucht, und es hat nicht funktioniert. Hm ... Vielleicht hab ich irgendwas vergessen ...

                                1 Antwort Letzte Antwort Antworten Zitieren 0
                                • paul53
                                  paul53 @funcarv3r zuletzt editiert von

                                  @funcarv3r sagte: Alarm immer nur für 20 Sekunden zu hören ist.

                                  Blockly_temp.JPG

                                  Codierknecht 1 Antwort Letzte Antwort Antworten Zitieren 0
                                  • Codierknecht
                                    Codierknecht Developer Most Active @paul53 zuletzt editiert von

                                    @paul53
                                    Damit trötet die Sirene beim Öffnen eines Fensters zwar für 20 sec. los, der Alarm wird aber beim Schließen nicht beendet 😉

                                    paul53 1 Antwort Letzte Antwort Antworten Zitieren 0
                                    • paul53
                                      paul53 @Codierknecht zuletzt editiert von paul53

                                      @codierknecht sagte: der Alarm wird aber beim Schließen nicht beendet

                                      Ja, er wird nicht vorzeitig beendet. Ist das bei 20 s erforderlich?
                                      Mit dem 2. Timeout wird er auch nicht vorzeitig beendet.

                                      EDIT: Da ein Selektor zum Triggern verwendet wird, kann der sonst-Zweig ohnehin nicht so ausgewertet werden, denn es kann mehr als ein Fenster geöffnet werden (auch innerhalb von 20 s).

                                      Codierknecht 1 Antwort Letzte Antwort Antworten Zitieren 0
                                      • Codierknecht
                                        Codierknecht Developer Most Active @paul53 zuletzt editiert von

                                        @paul53
                                        Stimmt auch wieder.
                                        Wie immer ist Deine Lösung die elegantere 😉

                                        1 Antwort Letzte Antwort Antworten Zitieren 0
                                        • A
                                          AXMLM zuletzt editiert von

                                          So habe ich es gelöst. aktuell funkzt und der Bewegungsmelder muss nicht umgelötet werden.

                                          003908b1-684c-4d66-b708-6f24796b167b-image.png

                                          1 Antwort Letzte Antwort Antworten Zitieren 0
                                          • C
                                            chuck2941 zuletzt editiert von

                                            Ich habe mir ein Skript gebastelt, nach Sonnenuntergang soll der Hue Bewegungsmelder eingeschaltet werden.
                                            Wenn er dann Bewegung erkennt sollen zwei Lampen angehen, nach 4 min sollen diese wieder ausgehen falls keine Bewegung mehr erkannt wird, falls doch noch Bewegung erkannt wird, sollen sie an bleiben.
                                            Nach Sonnenaufgang wird der Bewegungsmelder wieder ausgeschaltet.
                                            Den Stop Timeout Block habe ich eben erst hinzugefügt, ich hatte gelesen der muss mit rein.
                                            Ohne diesen funktioniert es auch.
                                            Würde aber gerne wissen wie man das Skript evtl. einfacher, besser machen könnte.

                                            a31b25e5-74d4-47ce-b2a6-b491b0a2431b-image.png

                                            Codierknecht paul53 2 Antworten Letzte Antwort Antworten Zitieren 0
                                            • Erster Beitrag
                                              Letzter Beitrag

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            968
                                            Online

                                            31.9k
                                            Benutzer

                                            80.3k
                                            Themen

                                            1.3m
                                            Beiträge

                                            blockly
                                            10
                                            36
                                            7291
                                            Lade mehr Beiträge
                                            • Älteste zuerst
                                            • Neuste zuerst
                                            • Meiste Stimmen
                                            Antworten
                                            • In einem neuen Thema antworten
                                            Anmelden zum Antworten
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo