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.
    • dslraser
      dslraser Forum Testing Most Active @FredF last edited by

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

      Update erwartet ack = true

      wo wir schon mal dabei sind, was genau macht Befehl ?

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

        @FredF,

        das ist erst mal einleuchtend. Bei dem DP handelt es sich um einen selbst erstellten. Können diese ein ack=true senden? Wenn ja, wie kann man das einrichten? Dann müsste ich im Umkehrschluss in all meinen Scripten prüfen, ob ein ack=true überhaupt gesendet wird... Oder ob einige durch die Änderung auf "Update" gar nicht triggern und ich habe es nicht bemerkt.

        FredF 1 Reply Last reply Reply Quote 0
        • FredF
          FredF Most Active Forum Testing @dslraser last edited by

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

          wo wir schon mal dabei sind, was genau macht Befehl ?

          das Gegenteil von Update, also ack = false

          1 Reply Last reply Reply Quote 1
          • 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

                              491
                              Online

                              32.0k
                              Users

                              80.4k
                              Topics

                              1.3m
                              Posts

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