Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Script nur ausführen wenn Bewegung erkannt.

    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

    Script nur ausführen wenn Bewegung erkannt.

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

      Ich glaub so funktioniert es, mach es zumindest gerade, keine Ahnung ob das logisch ist...

      f80dcfd4-b983-4704-b513-d0ddbe5f2768-image.png

      Falls noch jemand eine Verbesserung sieht, kann er diese gerne vorschlagen.

      1 Reply Last reply Reply Quote 0
      • Codierknecht
        Codierknecht Developer Most Active @oggy1 last edited by

        @oggy1 sagte in Script nur ausführen wenn Bewegung erkannt.:

        Hat jemand ein Tipp oder die Lösung wie ich das Script entsprechend erweitern muss?

        So wie @paul53 es gezeigt hat.

        1. Es reagiert bei der Tür auf "größer als letztes". Also nur dann, wenn der Wert von false (0) auf true (1) wechselt.
          Was also völlig richtig ist.
        2. Es prüft in dem unter 1) genannten Moment, ob eine Bewegung erkannt wurde.
          Wenn man geht, sollte eine Bewegung erkannt sein. Öffnet man dann die Tür, werden die folgenden Schritte ausgeführt.
          Kommt man, sollte nach aller Erfahrung im Moment der Türöffnung noch keine Bewegung erkannt sein. Die nächsten Schritte werden also nicht ausgeführt.

        Die Frage ist also: Wie prüfst Du, ob Fenster geöffnet sind?
        Und bitte: Blockly nicht als XML, sondern als Screenshot. Nur wenige hier haben Lust, ein Blockly erst importieren zu müssen um einen Blick darauf zu werfen.

        O 1 Reply Last reply Reply Quote 0
        • O
          oggy1 @Codierknecht last edited by

          @codierknecht said in Script nur ausführen wenn Bewegung erkannt.:

          Die Frage ist also: Wie prüfst Du, ob Fenster geöffnet sind?

          Das mach ich mit einem abgeänderten Script vom YT EddyD's SmartHome
          74827ab5-a55b-4332-87d0-78200e72ac54-image.png

          Ohne Bewegungsmelder funktioniert das ohne Probleme.
          Mit Bewegungsmelder und so wie @paul53 es gezeigt hat, benötige ich für die richtige Ausgabe meist zwei Versuche (Tür auf (falsche Antwort), Tür zu, Tür auf (richtige Antwort).
          Aber so scheint es aktuell zu funktionieren, alle Test verliefen bis jetzt ohne Fehler.
          2a4e1d18-4093-4eb2-8f24-83cc19691566-image.png

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

            @oggy1 sagte: Schließt man das Fenster, dann ist es angeblich noch immer offen, man muss die Tür nochmal schließen und erst bei zweiten öffnen der Tür wird dann der richtige Status angesagt.

            Ich bin nicht davon ausgegangen, dass du die Wohnungstür offen lässt, während du noch offene Fenster schließt.

            Codierknecht O 2 Replies Last reply Reply Quote 2
            • Codierknecht
              Codierknecht Developer Most Active @oggy1 last edited by Codierknecht

              @oggy1

              1. Warum "steuerst" Du da?
                Eigene DP werden mit "Aktualisiere" geändert.
              2. Sind die "Wohnungstür" im Trigger und in den Steuer-Blöcken identisch? Dan hast Du Dir da eine feine Dauerschleife gebaut.

              Schau Dir bitte nochmal @paul53's Vorschlag genau an. Da ist nirgends davon die Rede, dass da noch DP verändert werden.
              Die Logik dahingter ist doch eigentlich simpel:
              Triggern wenn Türe geöffnet wurde. Wenn zusätzlich Bewegung erkannt wurde: Fensterstatus ermitteln und Ansage.

              Ersetze doch einfach mal in @paul53's Vorschlag den Kommentar durch einen Debug-Block. Ich bin mir ziemlich sicher, dass das einwandfrei funktioniert. Das Problem scheint mir eher in der Prüfung der Fenster zu stecken. Wobei ich noch nicht so genau weiß, an welcher Ecke.
              Ich finde das auch reichlich "drüber". Die Prüfung der offenen Fenster zum Beispiel stoßen bei mir die Fenster selbst an. Ich weiß also jederzeit, wie viele Fenster offen sind.
              385ebc82-c40f-41ba-b69c-6e3798321139-grafik.png
              Das ließe sich auch ohne viel Aufwand um eine Liste der Fenster erweitern.
              Das verlagert den "Rechenaufwand" auf einen anderen Zeitpunkt - das Öffnen oder Schließen der Fenster.

              1 Reply Last reply Reply Quote 1
              • Codierknecht
                Codierknecht Developer Most Active @paul53 last edited by Codierknecht

                @paul53 sagte in Script nur ausführen wenn Bewegung erkannt.:

                Ich bin nicht davon ausgegangen, dass du die Wohnungstür offen lässt, während du noch offene Fenster schließt.

                Auf die Idee dürften vermutlich die wenigsten kommen 😉

                Edit
                @oggy1
                Dass dann keine Meldung kommt, ist doch wohl klar, oder?
                Der Trigger ist schließlich die Tür - nicht die Fenster.

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

                  @paul53 said in Script nur ausführen wenn Bewegung erkannt.:

                  Ich bin nicht davon ausgegangen, dass du die Wohnungstür offen lässt, während du noch offene Fenster schließt.

                  Bleibt auch nicht offen.

                  Ich erkläre es so.

                  1. Person verlässt die Wohnung, es wird der letzte Status angesagt also zum Beispiel "Bis später", weil das die letzte Ansage war, unabhängig ob das stimmt oder nicht.
                    Nun sind aber noch Fenster offen, was Person 1 aber nicht weiß, weil diese eine falsche Ansage hatte.
                  2. Person verlässt die Wohnung und bekommt jetzt die richtige Meldung, dass noch Fenster offen sind. Also Tür wird wieder geschlossen, es werden die Fenster geschlossen und nun wird die Tür wieder geöffnet. Jetzt erfolgt erstmal eine eine falsche Ansage, dass angeblich diese Fenster noch immer offen sind. Nun macht man die Tür wieder zu und nochmal auf und erst jetzt erfolgt wieder die richtige Meldung "Bis später".
                  1 Reply Last reply Reply Quote 0
                  • O
                    oggy1 @Codierknecht last edited by

                    @codierknecht said in Script nur ausführen wenn Bewegung erkannt.:

                    Auf die Idee dürften vermutlich die wenigsten kommen

                    Die Tür ist zu wenn die Fenster geschlossen werden, keine Ahnung, wie ihr auf die Idee kommt, dass diese offen ist.

                    Ja, der Trigger ist die Tür und dieser soll erst ausgeführt werden, wenn der Bewegungsmelder eine Bewegung erkennt.

                    Also beim verlassen der Wohnung
                    Bewegungsmelder --> Türkontakt auf --> Abfrage welche Fenster offen sind --> Ausgabe über Alexa --> Tür zu......

                    Beim betreten der Wohnung
                    Türkontakt auf --> Bewegungsmelder erkennt Bewegung --> Tür zu --> Alexa schweigt

                    So funktioniert es aktuell, wie ich es habe und das auch dann, wenn man bei geöffneter Wohnungstür fix die Fenster schließt, weil die Frau gerade an der geöffneten Wohnungstür wartet. Ja, sowas soll es geben...

                    Nun folgt erstmal ein längerer Test, mal schauen ob es reibungslos funktioniert.

                    Codierknecht 1 Reply Last reply Reply Quote 0
                    • Codierknecht
                      Codierknecht Developer Most Active @oggy1 last edited by

                      @oggy1 sagte in Script nur ausführen wenn Bewegung erkannt.:

                      Ja, der Trigger ist die Tür und dieser soll erst ausgeführt werden, wenn der Bewegungsmelder eine Bewegung erkennt.

                      Falsche Denkweise.
                      Der "Trigger" ist der Auslöser. Und das ist nunmal die Tür.
                      Der Bewegungsmelder kommt nur als zusätzliche Bedingung ins Spiel.

                      1 Reply Last reply Reply Quote 0
                      • Codierknecht
                        Codierknecht Developer Most Active last edited by

                        @oggy1
                        Bei mir sähe das in etwa so aus:

                        75a62869-0af8-43b1-af94-2ee539fa11c9-grafik.png

                        O 1 Reply Last reply Reply Quote 0
                        • O
                          oggy1 @Codierknecht last edited by

                          Da mein oben aufgeführtes Script aktuell sehr gut funktioniert, würde ich jetzt noch einen Schritt weiter gehen.

                          Ich würde jetzt gern noch Licht und Geräte hinzufügen, aber so, dass erst die Fenster, dann das Licht und zum Schluss die Geräte abgefragt werden.

                          Die Kategorien habe ich schon angelegt, aber jetzt weiß ich im Script nicht wirklich weiter.

                          Aber wie kann ich das, verständlich für Anfänger, jetzt umsetzen? Die Ausgabe erfolgt immer auf dem selben Echo Dot im Flur.

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          897
                          Online

                          31.9k
                          Users

                          80.2k
                          Topics

                          1.3m
                          Posts

                          3
                          15
                          401
                          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