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-Ersatz für BWM "Time No Motion"?

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Blockly-Ersatz für BWM "Time No Motion"?

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

      Hi
      habe Hardware bei mir getauscht und die neuen Typen liefern keinen Datenpunkt "Time No Motion".

      Nun habe ich versucht über den Zeitstempel des Datenpunktes "Occupacy" dies nachzubauen, aber es gelingt nicht da der Zeitstempel auch durch anderen Einflüsse als eine Bewegung verändert wird.

      In den Triggern angewendet auf den Occupacy DP bin nicht fündig geworden.

      Gibt es dazu bereits eine geschickte Idee ohne jetzt wieder mit Timern agieren zu müssen?

      haus-automatisierung 1 Reply Last reply Reply Quote 0
      • haus-automatisierung
        haus-automatisierung Developer Most Active @Dieter_P last edited by

        @dieter_p Das sollte doch mit dem Zeitstempel in „Letzte Änderung“ lösbar sein?

        D 1 Reply Last reply Reply Quote 1
        • D
          Dieter_P @haus-automatisierung last edited by Dieter_P

          @haus-automatisierung

          hatte ich auch vermutet/probiert. Und Nutze die DP-Werte 0/1/2 u.a. um auf der VIS mir das zu visualisieren.

          Funktioniert aber leider praktisch nicht:

          d924adf8-898b-434f-a1cb-421cb9da96ba-image.png

          Schaue ich mir manuell den Zeitstempel an, ist er älter als 5 Minuten:
          ee66c097-ef2e-428e-b948-aa9008ff4747-image.png

          Trotzdem wird durch das Blockly der Status schon fast 10 Sekündlich verändert:
          16c4886d-9b9e-4c19-8e8d-0ec867e86fb7-image.png

          haus-automatisierung paul53 2 Replies Last reply Reply Quote 0
          • haus-automatisierung
            haus-automatisierung Developer Most Active @Dieter_P last edited by haus-automatisierung

            @dieter_p 30000 ms ist ja auch größer als 10 Sekunden 🙂 Deine Bedingung mal genauer anschauen

            EDIT: Oder ich verstehe die Ansteuerung nicht (was ist 0, 1, 2?). Es könnte auch daran liegen, dass der Sonst-Fall ausgeführt wird obwohl die erste Bedingung zutrifft. Warum arbeitest Du mit zwei getrennten "falls"-Blöcken?

            Und: "Aktuelle Zeit als Millisekunden" gibt die den "Millisekunden-Teil" der aktuellen Zeit. Also das ist nie größer als 999

            1 Reply Last reply Reply Quote 1
            • paul53
              paul53 @Dieter_P last edited by paul53

              @dieter_p sagte: Funktioniert aber leider praktisch nicht:

              Nicht "Millisekunden", sondern "Datum-Objekt":

              Blockly_temp.JPG

              Unter welchen Bedingungen soll der DP "BWM_Flur" die Werte 0/1/2 annehmen?

              D 1 Reply Last reply Reply Quote 1
              • D
                Dieter_P @paul53 last edited by Dieter_P

                @paul53

                Danke. also so?

                4c19db07-58eb-46b0-84be-66b79771a6c6-image.png

                @paul53 said in Blockly-Ersatz für BWM "Time No Motion"?:

                Unter welchen Bedingungen soll der DP "BWM_Flur" die Werte 0/1/2 annehmen?

                Status 0 Letzte Bewegung vor weniger als 5 Minuten

                Status 1 Letzte Bewegung vor weniger als 10 Minuten

                Status 2 Letzte Bewegung > 10 Minuten

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

                  @dieter_p sagte: also so?

                  Ist "BWM_Flur" ein Adapter-Datenpunkt? Denn du verwendest steuere.
                  Falls ja, dann besser so:

                  Blockly_temp.JPG

                  Du schreibst den DP alle 10 s, auch dann, wenn er sich nicht ändern soll.

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

                    @paul53 said in Blockly-Ersatz für BWM "Time No Motion"?:

                    Ist "BWM_Flur" ein Adapter-Datenpunkt? Denn du verwendest steuere.

                    Nein, ist ein manuell angelegter Datenpunkt unter 0_Userdata

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

                      @dieter_p sagte: manuell angelegter Datenpunkt unter 0_Userdata

                      Dann verwende den Block "aktualisiere".

                      Blockly_temp.JPG

                      D 1 Reply Last reply Reply Quote 1
                      • D
                        Dieter_P @paul53 last edited by

                        @paul53

                        Danke Euch. Funktioniert 🙂

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

                          @dieter_p funktionieren tut es, aber was genau willst du erreichen ? Du hast da dauerhaft alle 10 Sekunden einen heartbeat der 90% der Zeit nichts macht.

                          Erklär doch mal was du genau haben willst, dann lässt sich das sicherlich einfacher und besser lösen.

                          A.

                          D 1 Reply Last reply Reply Quote 0
                          • D
                            Dieter_P @Asgothian last edited by

                            @asgothian said in Blockly-Ersatz für BWM "Time No Motion"?:

                            Erklär doch mal was du genau haben willst, dann lässt sich das sicherlich einfacher und besser lösen.

                            Gerne, ich mag überhaupt keine Zeitschleifen und wenn das besser geht 👍

                            Dieser Fall ist einfach nur auf der VIS eine Darstellung um Rückschlüsse zu ziehen (manuell) wann wo was in welchem Raum los ist. Mag sein, dass ich auf diese Stati mal etwas weiteres definieren/automatisien möchte wie z.B. <5Min keiner im Raum -> Dreh die Lüftung hoch zB aber das ist aktuell nicht der Fall.

                            Mit "Time No Motion" hatte ich hier eine für mich einfach auswertbare Option.

                            Asgothian 1 Reply Last reply Reply Quote 0
                            • Asgothian
                              Asgothian Developer @Dieter_P last edited by

                              @dieter_p sagte in Blockly-Ersatz für BWM "Time No Motion"?:

                              Gerne, ich mag überhaupt keine Zeitschleifen und wenn das besser geht

                              Besser und besser.

                              Diese Methode ist halt Ressurcenverschwendung, da du pro BWM einen Heartbeat hat, der letztendlich nur in verhaeltnismaessig seltenen Fällen wirklich was tut. Selbst wenn der BWM alle 20 Minuten auslöst werden nur bei ca. 0.16% der Heartbeats irgendwelche Aktionen durchführt. Das ist ineffektiv.

                              Wie du schon merkst bin ich absolut kein Freund von Heartbeats - insbesondere wenn man gleich mehrere davon laufen lässt. Insbesondere wenn du das obige Skript für (z.Bsp.) 5 BWM in Kopie einsetzt geht zu festen Zeiten die Systemlast hoch weil gleich 5x das gleiche ausgeführt wird, "gleichzeitig". (nicht wirklich gleichzeitig, aber zumindest fast)

                              Letztendlich ist der Wegfall des Time No Motion DP auf genau diesen Umstand zurück zu führen. Auch wenn ich den nicht aktiv beseitigt habe - nachdem der in den Zigbee-Herdsman-Converters wegen Ressourcenverschwendung entfallen ist habe ich mich aktiv dagegen entschieden diesen im Zigbee-Adapter wieder aufstehen zu lassen.

                              Auch wenn Du Zeitschleifen nicht magst ist das folgende Konstrukt deutlich besser, angehängt an den Trigger auf den BWM:
                              Screenshot 2025-08-13 at 15.23.00.png

                              Ja, das ist eine Zeitschleife, aber dafür wird die nur aktiv wenn der BWM wirklich ausloest.

                              A.

                              paul53 1 Reply Last reply Reply Quote 1
                              • paul53
                                paul53 @Asgothian last edited by

                                @asgothian sagte: ist das folgende Konstrukt deutlich besser

                                ... oder dieses Konstrukt:

                                Blockly_temp.JPG

                                D 1 Reply Last reply Reply Quote 2
                                • D
                                  Dieter_P @paul53 last edited by Dieter_P

                                  @paul53 @Asgothian

                                  Danke Euch. Funktioniert und hab nun alle umgebaut.

                                  Darf ich Euch mal etwas dazu fragen was mir noch nie klar war.

                                  Solche Funktionen wie "Zyklus", timouts wie "timeout" und Variablen wie "CNT".

                                  Sind die global im IOB gültig? D.H. ich kann von jedem Blockly darauf zugreifen und ändern? Oder gelten solche Dinge immer nur für das eine Blockly auf dem sie angewendet sind und alles was ich überfreifend nutzen möchte muß ich über einen angelegten Datenpunkt führen? Letzteres war meine bisherige Herangehensweise.

                                  Danke!

                                  paul53 Asgothian 2 Replies Last reply Reply Quote 0
                                  • paul53
                                    paul53 @Dieter_P last edited by paul53

                                    @dieter_p sagte: Sind die global im IOB gültig?

                                    Funktionen und Variablen sind nur innerhalb des Skripts gültig. Deshalb kann man in einem anderen Skript die gleichen Bezeichner wählen, ohne dass sie sich gegenseitig in die Quere kommen.
                                    EDIT: 4 Variablenbezeichner sind global in ioBroker.

                                    1 Reply Last reply Reply Quote 1
                                    • Asgothian
                                      Asgothian Developer @Dieter_P last edited by Asgothian

                                      @dieter_p sagte in Blockly-Ersatz für BWM "Time No Motion"?:

                                      etzteres war meine bisherige Herangehensweise.

                                      Das ist die korrekte Herangehensweise.

                                      A.

                                      Nachtrag: Das soll nicht heissen dass es nicht auch anders geht - das sind aber meiner Meinung nach Sonderlösungen mit ihren eigenen Eigenheiten, Vorteilen und Nachteilen. Im Standard sollte es heissen: Skript-Intern: Variablen. Skript-übergreifend; Datenpunkte.

                                      D 1 Reply Last reply Reply Quote 3
                                      • D
                                        Dieter_P @Asgothian last edited by

                                        @asgothian said in Blockly-Ersatz für BWM "Time No Motion"?:

                                        Skript-Intern: Variablen. Skript-übergreifend; Datenpunkte

                                        Das hoffe selbst ich behalten zu können. Danke

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

                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        793
                                        Online

                                        32.0k
                                        Users

                                        80.4k
                                        Topics

                                        1.3m
                                        Posts

                                        4
                                        18
                                        199
                                        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