Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. DP wurde aktualisiert anerkannt ist "egal","Update","Befehl"

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    DP wurde aktualisiert anerkannt ist "egal","Update","Befehl"

    This topic has been deleted. Only users with topic management privileges can see it.
    • FredF
      FredF Most Active Forum Testing @XxJooO last edited by

      @XxJooO sagte in DP wurde aktualisiert anerkannt ist "egal","Update","Befehl":

      Können diese ein ack=true senden?

      Bis jemand der sich besser auskennt das bejaht, sage ich, das selbst angelegte Datenpunkte kein ack=true senden können.

      F UncleSam 2 Replies Last reply Reply Quote 0
      • F
        fastfoot @FredF last edited by fastfoot

        @FredF sagte in DP wurde aktualisiert anerkannt ist "egal","Update","Befehl":

        Bis jemand der sich besser auskennt das bejaht, sage ich, das selbst angelegte Datenpunkte kein ack=true senden können.

        Na, ob ich mich besser auskenne sei dahingestellt. Das ack Flag kommt ja von acknowledge=Bestätigung, und das funktioniert so:

        • Ein DP wird mit einem Wert gesteuert, das ack flag steht auf false
        • Der DP ändert sich zu dem neuen Wert
        • Ein Adapter reagiert darauf und steuert die Hardware entsprechend an
        • Dann wird vom Adapter diese Ansteuerung bestätigt, d.h. er setzt das ack-Flag auf true
        • Das bedeutet mW nicht, dass die Hardware auch entsprechend reagiert hat

        Zum Spielen ein Skript, welches eine Lampe anschaltet:
        Die ersten beiden Einträge kommen vom ansteuern durch das Skript, die beiden letzten vom Adapter, man sieht auch schön die Verzögerung von. 113ms
        Play.PNG

        22:01:56.068	info	javascript.1 (686) Start javascript script.js.Aktiv.ScriptBL
        22:01:56.073	info	javascript.1 (686) script.js.Aktiv.ScriptBL: registered 1 subscription and 0 schedules
        22:01:56.080	info	javascript.1 (686) script.js.Aktiv.ScriptBL: ack: false
        22:01:56.080	info	javascript.1 (686) script.js.Aktiv.ScriptBL: Wert: true
        22:01:56.193	info	javascript.1 (686) script.js.Aktiv.ScriptBL: ack: true
        22:01:56.194	info	javascript.1 (686) script.js.Aktiv.ScriptBL: Wert: true
        

        Normalerweise gibt es in einem Skript keinen Grund, dieses Flag abzufragen, deshalb ist egal wohl fast immer eine gute Wahl

        XxJooO AlCalzone 2 Replies Last reply Reply Quote 1
        • XxJooO
          XxJooO @fastfoot last edited by XxJooO

          @UncleSam,

          könntest Du mal kurz sagen, warum Du dann in dem anderen thread gesagt hast, dass Du "Update" für sinnvoll hältst? Kannst Du einen kurzen Anwendungsfall konstruieren? Bei dem mässigen Echo auf meine Frage könnte das vielleicht noch einige Andere interessieren...

          Vielen Dank an Alle, die bislang geantwortet haben!

          PS: Beim Rückändern meiner Scripteinstellungen ergibt sich gerade bei mir die Frage ob alias-Werte, die auf Sensoren Datenpunkte verweisen deren ack-Status übernehmen?

          paul53 1 Reply Last reply Reply Quote 0
          • UncleSam
            UncleSam Developer @FredF last edited by

            @FredF sagte in DP wurde aktualisiert anerkannt ist "egal","Update","Befehl":

            Bis jemand der sich besser auskennt das bejaht, sage ich, das selbst angelegte Datenpunkte kein ack=true senden können.

            Blockly kenne ich leider gar nicht, aber in JavaScript kann man einfach setState() mit ack: true aufrufen (siehe Doku).

            Die Unterscheidung zwischen Befehl und Update ist sehr wichtig bei Datenpunkten aus Adaptern: Befehl kommt von ausserhalb des Adapters und Update von innerhalb.

            Beispiel:

            • Ich will eine Lampe einschalten
            • Ich schicke den Befehl "Lampe = ein"
            • Der Adapter erkennt den Befehl und schaltet die Lampe ein
            • Sobald der Adapter die Lampe erfolgreich eingeschaltet hat, schickt er das Update "Lampe = ein"
            • Erst jetzt sollte ein Skript darauf reagieren, dass die Lampe eingeschaltet wurde (es könnte ja sein, dass der Adapter nicht läuft oder die Lampe nicht eingeschaltet werden kann; dann möchte ich ja in meinem Skript die Aktion nicht ausführen)
            FredF 1 Reply Last reply Reply Quote 2
            • FredF
              FredF Most Active Forum Testing @UncleSam last edited by

              @UncleSam sagte in DP wurde aktualisiert anerkannt ist "egal","Update","Befehl":

              Blockly kenne ich leider gar nicht,

              Um das vielleicht rund zu machen, hier mal die JS codes der verschiedenen anerkannt Zustände eines Falls Triggers.
              0d9ed172-bf19-411a-a232-584aa60dbcb5-grafik.png

              on({id: 'default', change: "ne"}, function (obj) {
               var value = obj.state.val;
               var oldValue = obj.oldState.val;
              });
              


              on({id: 'default', change: "ne", ack: true}, function (obj) {
               var value = obj.state.val;
               var oldValue = obj.oldState.val;
              });
              


              on({id: 'default', change: "ne", ack: false}, function (obj) {
               var value = obj.state.val;
               var oldValue = obj.oldState.val;
              });
              

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

                @XxJooO sagte:

                ob alias-Werte, die auf Sensoren Datenpunkte verweisen deren ack-Status übernehmen?

                Ja.

                @FredF sagte:

                sage ich, das selbst angelegte Datenpunkte kein ack=true senden können.

                Wenn selbst angelegte Datenpunkte durch ein (Blockly-)Skript geschrieben werden, setzt "aktualisiere" ack auf true. Oder JS:

                setState(id, wert, true); 
                
                1 Reply Last reply Reply Quote 1
                • AlCalzone
                  AlCalzone Developer @fastfoot last edited by

                  @fastfoot sagte in DP wurde aktualisiert anerkannt ist "egal","Update","Befehl":

                  Dann wird vom Adapter diese Ansteuerung bestätigt, d.h. er setzt das ack-Flag auf true
                  Das bedeutet mW nicht, dass die Hardware auch entsprechend reagiert hat

                  Eigentlich ist ACK dafür gedacht, dass die Änderung erfolgt ist. Wenn einige Adapter das nicht so handhaben, ist es nicht korrekt.

                  paul53 F 2 Replies Last reply Reply Quote 1
                  • paul53
                    paul53 @AlCalzone last edited by paul53

                    @AlCalzone sagte:

                    Wenn einige Adapter das nicht so handhaben, ist es nicht korrekt.

                    Wenn es keine Rückmeldung gibt (433 MHz, IR), bleibt nichts anderes übrig.

                    AlCalzone 1 Reply Last reply Reply Quote 0
                    • F
                      fastfoot @AlCalzone last edited by fastfoot

                      @AlCalzone sagte in DP wurde aktualisiert anerkannt ist "egal","Update","Befehl":

                      Eigentlich ist ACK dafür gedacht, dass die Änderung erfolgt ist. Wenn einige Adapter das nicht so handhaben, ist es nicht korrekt.

                      Mein Verständnis davon war bisher, dass ack 'nur' bedeutet, dass der Befehl an die Hardware gesendet wurde. zB im Fall der Hue Bridge oder auch FritzBox, wie sollte ein Adapter wissen ob der Befehl auch wirklich umgesetzt wurde, wenn das Polling nur alle paar Sekunden erfolgt? Ich denke zumindest dass eine Prüfung auch nicht immer möglich ist(Hat Alexa die Sprachausgabe auch wirklich gemacht?).

                      EDIT: Versuch macht klug. Die Hue Bridge zumindest gibt irgend eine Rückmeldung an den Adapter, und der wertet die auch richtig aus.

                      Lampe vom Strom -> Befehl zum Einschalten -> Adapter setzt ack=true und liefert gleichzeitig den richtigen Wert false
                      
                      1 Reply Last reply Reply Quote 0
                      • AlCalzone
                        AlCalzone Developer @paul53 last edited by

                        @paul53 sagte in DP wurde aktualisiert anerkannt ist "egal","Update","Befehl":

                        Wenn es keine Rückmeldung gibt (433 MHz, IR), bleibt nichts anderes übrig.

                        @fastfoot sagte in DP wurde aktualisiert anerkannt ist "egal","Update","Befehl":

                        wenn das Polling nur alle paar Sekunden erfolgt?

                        Stimmt natürlich. Ich bin eher in den Gefilden unterwegs, wo direkte Kommunikation erfolgt.

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        480
                        Online

                        32.0k
                        Users

                        80.4k
                        Topics

                        1.3m
                        Posts

                        7
                        15
                        719
                        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