Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [Gelöst] Blockly Trigger Abhängigkeit

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Gelöst] Blockly Trigger Abhängigkeit

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

      Hi Zusammen,
      komme gerade nicht weiter 😧 Vielleicht stehe ich auch komplett auf dem Schlauch.

      Was ich machen möchte:
      In der Visualisierung möchte ich einen Hauptschalter für die Lichter in einen Raum haben (true/false).
      Wenn eine oder mehrere dieser Lampe eingeschaltet werden, springt der Schalter auf true (Signalisieren das eine oder mehrere Lampen brennen). Ich kann mit mit diesen Schalter auch alle Lampen gleichzeitig wieder ausschalten.
      So weit so gut. Jetzt aber das Problem: Wenn ich jetzt implementiere das wenn der Hauptschalter von Hand auf true gestellt wird, das alle Lichter angehen funktioniert das noch... ABER wenn ich jetzt eine der Einzellampen einschalte wird ja der Wert des Hauptschalters aufgrund der oben genannten Prüfung auf true gesetzt und das triggert an das alle Lichter eingeschaltet werden

      In der Suche bin ich ständig auf den Hinweis mit "Entprellen" gestoßen. Aber das funktioniert nicht bzw. habe ich es auch nicht verstanden wie das mit der Variable funktionieren soll. Oder gibt es es hier tatsächlich einen eigenen Baustein denn ich nur nicht gefunden habe??

      AlCalzone W mickym 3 Replies Last reply Reply Quote 0
      • AlCalzone
        AlCalzone Developer @draexler last edited by AlCalzone

        @draexler Ein Datenpunkt kann bestätigt (ACK=true) oder gesteuert (ACK=false) werden. ACK=false bedeutet, dass die Statusänderung eine Aktion ausführen soll, ACK=false ist quasi eine Rückmeldung.

        Du solltest also beim Betätigen des Schalters ACK=false setzen (ist Standard, ggf. musst du hier nichts ändern). Beim Aktualisieren des "Hauptschalters" mit dem Status der Einzellampen muss ACK=true genutzt werden, damit dann nichts passiert.

        draexler 1 Reply Last reply Reply Quote 1
        • draexler
          draexler @AlCalzone last edited by draexler

          @alcalzone: danke dir für die Schnelle Antwort.
          Kannst du mir mit eine Screenshot zeigen wo ich das finde?
          Bzw. noch als Ergänzung. Das Problem tritt auf wenn ich nach dem ich den Hauptschalter mit Funktion ergänzt habe bei TRUE alle Lampen einzuschalten. Schalte ich anschließend z.B. über HomeKit eine einzelne Lampe ein wird geprüft und das Datenobjekt des Hauptschalters springt auf TRUE. Aktiviert aber damit auch die Funktion das alle Lampen eingeschaltet werden.
          Bildschirmfoto 2021-07-20 um 23.50.54.png

          1 Reply Last reply Reply Quote 0
          • W
            Wildbill @draexler last edited by

            @draexler Dafür böte sich auch der Szenen - Adapter (scenes) an. Eine Szene erstellen in der alle Lampen enthalten sind und im VIS dann den Trigger der Szene als zu schaltenden Datenpunkt. Dann kannst Du per VIS die Szene ein - und ausschalten und der Trigger-Datenpunkt wird auch nur true, wenn die Szene aktiv ist, also alle Lampen leuchten.

            Gruß, Jürgen

            draexler 1 Reply Last reply Reply Quote 1
            • draexler
              draexler @Wildbill last edited by

              @wildbill: danke dir für die Idee 😊
              Aber ich möchte das der schalter schon true ist wenn noch nicht alle Lampen des Raumes leuchten.

              1 Reply Last reply Reply Quote 0
              • mickym
                mickym Most Active @draexler last edited by mickym

                @draexler Nachdem in meinen Augen, das Problem bei Dir eher ein logisches ist und keines Deiner Logikmaschine. Ich arbeite mit NodeRed - aber wie gesagt - umsetzen kannst Du das mit allen Maschinen.

                Was ich bei Dir verstehe sind folgende Dinge:

                1. Sobald eine Lampe in einem Raum eingeschaltet wird, dann ist der Status Deines Hauptschalters an. (Bei mir auch).
                2. Wenn Du möchtest das beim Schalten des Hauptschalters alle Lichter angehen, dann kannst Du das nur mit einem selbst definiertem Datenpunkt machen oder Du arbeitest wie schon angesprochen mit den ACK Flags. VIS schickt immer unbestätigt den Status aus (ACK=False) - wenn Du also den Status aufgrund einer Zustandsänderung einschaltest - könnte man das ggf. hier unterscheiden.
                3. Wenn Du nun einzelne Lampen zusätzlich einschaltest würde das die anderen Lampen nicht einschalten, weil Du diesen Vorgang bestätigt schaltest, während VIS das unbestätigt macht. (also der Status des Hauptschalters wird nicht aktualisiert (ACK=true) und nicht gesteuert (wie bei VIS - ACK= false).
                4. Ein sogenanntes Entprellen würde Dir nicht helfen. Das prüft nur, ob der Hauptschalter bereits eingeschaltet ist oder nicht und blockt somit einen weiteren Einschaltvorgang - würde aber ggf. auch verhindern, dass Du über VIS weiterhin alles einschaltest.

                Ich hoffe, ich habe mich verständlich ausgedrückt.

                Im Prinzip musst Du bei dem Hauptschalter - ich sehe Du machst ja schon steuern bzw. aktualisieren, dass Du nur dann die anderen Lichtschalter einschaltest, wenn der Hauptschalter gesteuert und nicht aktualisiert wird - das unterscheidest Du in dem Du nicht Auslösung egal nimmst:

                a09fbbf0-4401-4abf-a585-3c3a817891ae-image.png

                bestätigt werden die Änderungen des Hauptschalters durch die anderen Lampen.
                unbestätigt wird die Änderung durch VIS.

                Also hast Du letztlich für aktives Schalten nur ein Trigger für Deinen Hauptschalter - nämlich die "unbestätigte Änderung" durch VIS. Alle Statusupdates durch die anderen Lampen haben mit Aktualisierung zu erfolgen (und sind deshalb "bestätigte Änderungen") und triggern deshalb nicht das Einschalten der anderen Lampen. Ich hoffe, ich habs verständlich ausgedrückt.

                Also falls der untere Teil der Hauptschalter ist, der alle anderen Lampen einschaltet, stell den mal auf Auslösung - unbestätigte Änderung.

                Der obere Teil aktualisiert ja (und steuert) nicht, deshalb sollte die Änderung dort ja bestätigt sein.

                draexler 1 Reply Last reply Reply Quote 1
                • draexler
                  draexler @mickym last edited by

                  @mickym Ich sage jetzt einfach mal WOW 🙂 Das war die Lösung. Nach den ersten Test funktioniert es wunderbar. Ich danke dir vielmals @mickym

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  811
                  Online

                  32.0k
                  Users

                  80.5k
                  Topics

                  1.3m
                  Posts

                  4
                  7
                  263
                  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