Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Rollläden nur in bestimmtem Zimmer steuern

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Rollläden nur in bestimmtem Zimmer steuern

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

      Hallo
      Ich habe alle meine Rollläden von Homematic nun in iot eingebunden.
      Die Steuerung ist allerdings grauenerregend.
      Alexa, Rollladen Wohnzimmer West 100%?
      Rauf runter funktioniert nicht und in einem Raum mit mehreren Rollläden fragt sie ständig welchen ich meine. Ich habe Gruppen in der App angelegt.

      Nun meine Frage, ob dieses Skript so Ok ist, damit funktioniert es wunderbar.
      Oder gibt es da ein Problem, dass ich noch nicht gesehen habe?
      Der Trigger ist ein Datenpunkt, den ich in iot eingebunden habe.

      Unbenannt.JPG

      Asgothian 1 Reply Last reply Reply Quote 0
      • Asgothian
        Asgothian Developer @G.Hawk last edited by

        @Martin-0
        Prinzipiell geht es so, aber:

        • Besser den Trigger auf "ist Größer als vorher", dafür das "falls Wert von ... = wahr" weg.
        • Warum die 1 Sekunde Wartezeit zwischen dem Trigger und dem Start der Aktion ?
        • Warum die Wartezeiten beim Ansteuern der Rolläden ?
        • Auf jeden Fall vor die beiden Timeouts jeweils einen Block "lösche Timeout" der die jeweiligen Timeouts löscht falls sie noch aktiv sind, sonst kann es zu interessanten Effekten kommen.
        • Ich würde eine variable "Echo Name" anlegen, und als erstes einmal den Wert vom Datenpunkt "Echo Device Name" da rein speichern, so das die Falls in der Folge immer nur die Variable abfragen müssen und nicht immer asynchron auf die Objekte zugreifen.
        G 1 Reply Last reply Reply Quote 0
        • G
          G.Hawk @Asgothian last edited by

          @Asgothian
          Die Wartezeit mache ich, damit er auch sicher umgeschaltet hat.
          Wie mache ich das mit dem Stop Timeout?
          Ehrlich gesagt habe ich das noch nie verstanden, er stoppt doch sowieso nach den 3 Sekunden, oder?

          Asgothian 1 Reply Last reply Reply Quote 0
          • Asgothian
            Asgothian Developer @G.Hawk last edited by

            @Martin-0
            Es gibt einen extra Block im Blockly dafür. (der mit dem "clear" im Screenshot)
            Screenshot 2020-09-21 at 16.02.11.png

            Und dieser Block dient dazu zu verhindern das wenn der Trigger ein zweites mal angestossen wird während der Timeout noch läuft nicht ein 2. timeout gestartet wird.

            Das mit dem "sicher umgeschaltet" habe ich nicht verstanden. Der Trigger feuert bei "jeder" Änderung des Datenpunktes. Du schaust 1 Sekunde später nach ob der immer noch umgeschaltet ist - das wuerde ja bedeuten das der Datenpunkt zwischendurch einfach mal nur kurz auf Wahr und dann wieder auf Falsch springt. In dem Fall wird der Timeout doppelt gestartet.
            Noch schlechter ist es wenn der Datenpunkt innerhalb 1 Sekunde von falsch auf wahr auf falsch und wieder auf wahr wechselt, weil er instabil ist. Dann hättest Du Insgesamt 3 Timeouts laufen, von denen 2 dann auch noch die Aktionen an den Rolläden auslösen wollen.

            G 1 Reply Last reply Reply Quote 0
            • G
              G.Hawk @Asgothian last edited by

              @Asgothian

              So?
              Unbenannt.JPG

              Asgothian 1 Reply Last reply Reply Quote 0
              • Asgothian
                Asgothian Developer @G.Hawk last edited by Asgothian

                @Martin-0
                Anders herum. Der "stop timeout" Block muss vor den Timeout, nicht dahinter.

                Auch: Setz mal bitte die Haken bei "löschen falls läuft" in den Ansteuerungen mit Verzögerung.

                Und: Die Variable "Echo_name" sollte das "wert von object ID Echo Device Name" in den Falls blöcken ersetzen. Die Texte mit den korrekten Namen brauchst du fuer den Vergleich schon.

                G 1 Reply Last reply Reply Quote 0
                • G
                  G.Hawk @Asgothian last edited by

                  @Asgothian
                  Verstanden mit dem Timeout habe ich das jetzt nicht.
                  Was macht das denn an der Stelle?

                  Unbenannt.JPG

                  Asgothian 1 Reply Last reply Reply Quote 0
                  • Asgothian
                    Asgothian Developer @G.Hawk last edited by Asgothian

                    @Martin-0

                    Wenn der Trigger das erste mal kommt wird ein Timeout gestartet.

                    3 Sekunden später soll etwas passieren.

                    Wenn der Trigger aber nach 2 Sekunden noch einmal aktiv wird, dann sorgt der "stop timeout" das der erste gestartete Timeout abgebrochen wird. Danach wird Wieder ein Timeout gestartet, der 3 Sekunden später eine Aktion auslöst. Die Aktion wird also nur 1 mal ausgeführt, nicht mehrmals.

                    Und nochmal zur Variable "Echo Name" - im Kontext deines alten Skriptes:

                    1600692100956-unbenannt.jpg

                    G 1 Reply Last reply Reply Quote 0
                    • G
                      G.Hawk @Asgothian last edited by

                      @Asgothian
                      Ah ok.
                      Es gibt nur ein Problem: Jetzt fahren alle Rollläden runter

                      Asgothian 1 Reply Last reply Reply Quote 0
                      • Asgothian
                        Asgothian Developer @G.Hawk last edited by

                        @Martin-0 Siehe Screenshot in meiner Antwort. Du hast den falschen Baustein durch die Variable "Echo Name" ersetzt. 🙂

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

                          Noch als Erklärung, warum es Sinn macht die lokale Variable zu benutzen.

                          Stell Dir den Objektbaum wie ein Nachschlagewerk vor. Du kannst da zu jedem Objekt den wert nachschlagen. (Buch auf, Seite finden, wert lesen, buch zu).

                          Wenn du jetzt zum gleichen Objekt den Wert mehrmals in einem Skript brauchst, macht es Sinn das Du dir den im Vorfeld einmal aus dem Nachschlagewerk holst und speicherst, an statt jedes mal von neuem nachzuschlagen.

                          Trotzdem musst du den geholten Wert weiterhin mit den "Konstanten" ("Wohnzimmer", "Antons Zimmer" ... ) vergleichen wenn du sicher stellen willst das im richtigen Zimmer die Rolläden fahren 🙂

                          G 1 Reply Last reply Reply Quote 0
                          • G
                            G.Hawk @Asgothian last edited by

                            @Asgothian
                            Jetzt aber:
                            Unbenannt.JPG

                            Asgothian 1 Reply Last reply Reply Quote 0
                            • Asgothian
                              Asgothian Developer @G.Hawk last edited by Asgothian

                              @Martin-0
                              Jo.. so ist schon schöner 🙂
                              p.s. ich bin jetzt erstmal weg. Weitere Antworten erst in einer Stunde oder so.

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

                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              583
                              Online

                              32.0k
                              Users

                              80.5k
                              Topics

                              1.3m
                              Posts

                              2
                              13
                              452
                              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