Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Status anzeigen lassen und Steuerung mit demselben Widget

    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

    Status anzeigen lassen und Steuerung mit demselben Widget

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

      Folgendes beschäftigt mich seit ein paar Wochen. Anbei eine Beispielkonstellation, um es einfach zu halten (hier mit Nuki-Türschloss):

      Mit dem Widget "Select ValueList" steuert man den Datenpunkt "Türschloss" mit den Werten "Auf" / "Zu".
      9c94db81-78aa-4d7f-8754-789c4da9b784-image.png

      Anhand dem ausgewählten Wert wird mit Blockly dann entweder der Datenpunkt "UNLOCK" oder "LOCK" mit true angesprochen, damit z.B. das Türschloss geöffnet/verriegelt wird.
      aa9aac23-f4c6-4b9f-a839-55289c88d451-image.png

      Nun möchte man aber auch sehen, falls das Türschloss aus der Nuki-App oder am Schloss selber geöffnet/geschlossen wurde.
      6592e3d2-b2dc-4122-a34e-923550137d7a-image.png

      Nun stelle ich mir folgende Frage:
      Wenn z.B. das Schloss mit Nuki-App geöffnet wird, dann aktualisiert sich der Datenpunkt "Türschloss" mit "Auf". Dies wiederum steuert aber den Datenpunkt "UNLOCK".
      Wie kann man diese "Verkettung" umgehen?

      Ich habe es mit einer Variable gelöst, welche sich für 2 Sekunden auf "true" ändert, wenn eine Änderung ausserhalb ioBroker vorgenommen wird. Gibt es noch andere Lösungen?

      Asgothian K 2 Replies Last reply Reply Quote 0
      • Asgothian
        Asgothian Developer @Kusi last edited by Asgothian

        @kusi
        Es gibt 2 Möglichkeiten:

        Zum einen kannst du das “Auslösung durch” Feld nutzen.

        Wenn die vis steuert sollte sie den datenpunkt mit “steuere” ansprechen.
        Wenn das Schloss den datenpunt aktualisiert sollte es den du mit “aktualisiere” ansprechen. Wenn du dementsprechend triggers sollte es zu funktionieren.

        Damit kannst du unterscheiden ob die Änderung von der Vis oder dem Schloss kommt.

        Die 2. Möglichkeit ist den Ursprung der Änderung abzufragen - diesen bekommst du mit dem gleichen Baustein wie das benutzte “wert”.

        Wenn das Skript den datenpunkt ändert (vom Schloss getrieben) beinhaltet der Ursprung mit “.javascript.”. Wenn die vis das tut dann beinhaltet er “.vis.”

        A.

        1 Reply Last reply Reply Quote 0
        • K
          Kusi @Kusi last edited by Kusi

          @Asgothian vielen Dank für deine Unterstützung.

          Die Logik mit "steuere" und "aktualisiere" scheint mir logisch zu klingen.
          Heisst also, wenn z.B. Nuki selber den Datenpunkt "Türschloss" aktualisiert, dass untenstehendes Blockly nicht triggert?

          aa9aac23-f4c6-4b9f-a839-55289c88d451-image.png

          Wo findet man das "Auslösung durch" Feld? Weder in Blockly, noch im Widget finde ich diese Einstellung.

          Die 2. Möglichkeit hört sich auch spannend an.
          57147f54-123a-4977-9528-3643a879b405-image.png
          2d82a871-99b3-4240-bc1f-113f3a9d2631-image.png

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

            @kusi

            Schau mal genau auf den Falls Objekt... Block. Da findest Du:

            Screenshot 2021-03-26 at 08.53.13.png

            Wichtig ist das du in deinem Skript

            Screenshot 2021-03-26 at 08.55.08.png

            nicht den "steuere" Block zum aktualisieren nutzt (wie jetzt) sondern den "aktualisiere" Block nutzt.

            K 2 Replies Last reply Reply Quote 0
            • K
              Kusi @Asgothian last edited by Kusi

              @asgothian oben genanntes war ein Beispiel und habe ich diese Nacht zusammenstellt. Bitte obenstehende Konstellation vergessen!
              Ich zeige dir nun mein korrektes Blockly, welches aber ein wenig umfassender ist:

              Mit folgendem Blockly wird der Status vom Nuki beobachtet. Hier geht es jetzt vor allem um den Block "aktualisiere Türöffnung mit x" (x = 0, 1 oder 2). Wird der Status geändert, so soll sich der Wert im "Select ValueList"-Widget ändern.
              ffd5f36c-baf1-447a-96b9-a1fcf3fe65b5-image.png

              Mit folgendem Blockly werden dann die Funktionen geändert, wenn das "Select ValueList"-Widget über die vis geändert wird.
              90a47807-e434-4282-82b1-d87ab121b221-image.png

              Probehalber habe ich ein debug output eingefügt (vis-Steuerung).
              Dies wird aber IMMER angezeigt, auch wenn "Türöffnung" über das obere Blockly aktualisiert wird.

              Das Blockly funktioniert ansonsten einwandfrei, da ich die Variable "Änderung über Nuki" benutze. Ohne diese Variable habe ich aber eben die Verkettung, womit es Probleme gab.

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

                @asgothian sagte in Status anzeigen lassen und Steuerung mit demselben Widget:

                Schau mal genau auf den Falls Objekt... Block. Da findest Du:

                2eb11cf5-d777-4ed8-8b45-35d814cc5dda-image.png

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

                  @kusi

                  Bestätigte Änderung = Ergebnis von "Aktualisiere"
                  Unbestätigte Änderung = Ergebnis von "Steuere"

                  K 1 Reply Last reply Reply Quote 1
                  • K
                    Kusi @Asgothian last edited by

                    @asgothian sagte in Status anzeigen lassen und Steuerung mit demselben Widget:

                    @kusi

                    Bestätigte Änderung = Ergebnis von "Aktualisiere"
                    Unbestätigte Änderung = Ergebnis von "Steuere"

                    Wollte ich gerade fragen, weil mit "unbestätigte Änderung" funktioniert es.
                    a1910796-9da0-48f1-a1c9-40c5ad14963c-image.png

                    Meine Logik war umgekehrt.
                    So brauche ich die Variable nicht mehr.

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

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    827
                    Online

                    31.9k
                    Users

                    80.3k
                    Topics

                    1.3m
                    Posts

                    2
                    8
                    686
                    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