Skip to content
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Bestätigt/Acknowledged-Flag Bedeutung - ein Mysterium ;-)

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.1k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.1k

Bestätigt/Acknowledged-Flag Bedeutung - ein Mysterium ;-)

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
62 Beiträge 14 Kommentatoren 19.5k Aufrufe 14 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • paul53P paul53

    @loredo sagte: liefert das externe Gerät dann den neuen Wert als Bestätigung zurück oder eben den alten Wert wieder. In beiden Fällen wird der Adapter aber die Antwort dann mit ack=true schreiben.

    Im dritten Fall, dass das Gerät sich nicht zurück meldet, schreibt ein Geräte-Adapter nichts zurück. Das würde wohl eher dem Fall "nicht annehmen" entsprechen.

    LoredoL Offline
    LoredoL Offline
    Loredo
    Developer
    schrieb am zuletzt editiert von Loredo
    #34

    @paul53 sagte in Bestätigt/Acknowledged-Flag Bedeutung - ein Mysterium 😉:

    @loredo sagte: liefert das externe Gerät dann den neuen Wert als Bestätigung zurück oder eben den alten Wert wieder. In beiden Fällen wird der Adapter aber die Antwort dann mit ack=true schreiben.

    Im dritten Fall, dass das Gerät sich nicht zurück meldet, schreibt ein Geräte-Adapter nichts zurück. Das würde wohl eher dem Fall "nicht annehmen" entsprechen.

    Jaein, das kommt eben ganz drauf an. Einige Adapter reagieren leider so, selbst wenn sie eigentlich "verbunden" sind und werten die Rückmeldung (oder eben das Fehlen jener) nicht gut aus. Ist zumindest meine bescheidene Beobachtung und ist nicht der Anspruch, den ich an einen gut implementierten Adapter hätte.

    paul53P 1 Antwort Letzte Antwort
    0
    • LoredoL Loredo

      @paul53 sagte in Bestätigt/Acknowledged-Flag Bedeutung - ein Mysterium 😉:

      @loredo sagte: liefert das externe Gerät dann den neuen Wert als Bestätigung zurück oder eben den alten Wert wieder. In beiden Fällen wird der Adapter aber die Antwort dann mit ack=true schreiben.

      Im dritten Fall, dass das Gerät sich nicht zurück meldet, schreibt ein Geräte-Adapter nichts zurück. Das würde wohl eher dem Fall "nicht annehmen" entsprechen.

      Jaein, das kommt eben ganz drauf an. Einige Adapter reagieren leider so, selbst wenn sie eigentlich "verbunden" sind und werten die Rückmeldung (oder eben das Fehlen jener) nicht gut aus. Ist zumindest meine bescheidene Beobachtung und ist nicht der Anspruch, den ich an einen gut implementierten Adapter hätte.

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #35

      @loredo
      Es entspricht der Philosophie von ioBroker, dass der Datenpunkt ein Sollzustands-Datenpunkt (val = neuer Wert, ack = false) bleibt, solange die Rückmeldung ausbleibt.

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      LoredoL 1 Antwort Letzte Antwort
      1
      • K Offline
        K Offline
        klassisch
        Most Active
        schrieb am zuletzt editiert von
        #36

        Ich hatte mir zum ack Thema mal den github-iobroker-wiki-Artikel notiert: https://github.com/ioBroker/ioBroker/wiki/Adapter-Development-Documentation#commands-and-statuses

        Ist das noch aktuell?

        paul53P 1 Antwort Letzte Antwort
        0
        • paul53P paul53

          @loredo
          Es entspricht der Philosophie von ioBroker, dass der Datenpunkt ein Sollzustands-Datenpunkt (val = neuer Wert, ack = false) bleibt, solange die Rückmeldung ausbleibt.

          LoredoL Offline
          LoredoL Offline
          Loredo
          Developer
          schrieb am zuletzt editiert von
          #37

          @paul53 Es ist halt ein Unterschied nicht zu reagieren oder etwas nicht anzunehmen und zurückzuweisen. Nicht zu reagieren, obwohl man das Kommando wahrgenommen hat, ist halt nicht zu unterscheiden davon, dass der Adapter einfach nicht läuft. Ich finde es aber wichtig das zu unterscheiden. IMHO sollte ein laufender Adapter immer etwas tun, aber mir persönlich reicht da ein einfacher Logeintrag nicht. Ich möchte das auch Event basiert verarbeiten können und auch direkt im Admin Adapter sehen können, ohne das Log zu durchforsten.

          Die von dir besagte Philosophie stört mich nicht selten und hinterlässt bei mir oft den Eindruck eines nur halb fertigen Adapters. 🤷‍♂️
          Es ist aber erlaubt, dass du eine andere Meinung hast als ich 😉

          1 Antwort Letzte Antwort
          0
          • K klassisch

            Ich hatte mir zum ack Thema mal den github-iobroker-wiki-Artikel notiert: https://github.com/ioBroker/ioBroker/wiki/Adapter-Development-Documentation#commands-and-statuses

            Ist das noch aktuell?

            paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von paul53
            #38

            @klassisch sagte: Ist das noch aktuell?

            Ja, und es beschreibt es so, wie ich geschrieben habe.
            Beispiel: HomeMatic, Datenpunkt MANUAL_MODE: Darüber schaltet man den Thermostaten in den manuellen Modus und man übergibt den manuellen Sollwert. Dieser Datenpunkt wird nie bestätigt.

            Anmerkung: ioBroker ist ursprünglich aus einer Erweiterung für HomeMatic hervorgegangen. Das ist für Dich sicher nicht neu, aber wahrscheinlich für @Loredo.

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            LoredoL 1 Antwort Letzte Antwort
            1
            • paul53P paul53

              @klassisch sagte: Ist das noch aktuell?

              Ja, und es beschreibt es so, wie ich geschrieben habe.
              Beispiel: HomeMatic, Datenpunkt MANUAL_MODE: Darüber schaltet man den Thermostaten in den manuellen Modus und man übergibt den manuellen Sollwert. Dieser Datenpunkt wird nie bestätigt.

              Anmerkung: ioBroker ist ursprünglich aus einer Erweiterung für HomeMatic hervorgegangen. Das ist für Dich sicher nicht neu, aber wahrscheinlich für @Loredo.

              LoredoL Offline
              LoredoL Offline
              Loredo
              Developer
              schrieb am zuletzt editiert von Loredo
              #39

              @paul53 Korrekt. Nein das ist nicht neu für mich, sondern an vielen Stellen sehr offensichtlich (was nicht schlimm ist). Ich kenne ioBroker auch schon seit etlichen Jahren, auch wenn ich ihn noch nicht so lange aktiv nutze.
              Das ist für mich aber deshalb nicht dauerhaft in Stein gemeißelt, sondern kann sich weiterentwickeln 😉
              Ich habe für meinen Adapter entschieden, dass ich das Verhalten so sinnvoller finde. Vor allem auch deshalb, weil eine Darstellung der tatsächlich korrekten Werte über eine externe GUI möglich sein soll. Da stört es, wenn in der GUI dann plötzlich aber Werte angezeigt werden, die gar nicht dem Ist-Zustand entsprechen. Meine oberste Priorität ist immer, den Ist-Zustand zu jeder möglichen Zeit richtig anzuzeigen, nicht den Soll-Zustand.

              paul53P 1 Antwort Letzte Antwort
              0
              • LoredoL Loredo

                @paul53 Korrekt. Nein das ist nicht neu für mich, sondern an vielen Stellen sehr offensichtlich (was nicht schlimm ist). Ich kenne ioBroker auch schon seit etlichen Jahren, auch wenn ich ihn noch nicht so lange aktiv nutze.
                Das ist für mich aber deshalb nicht dauerhaft in Stein gemeißelt, sondern kann sich weiterentwickeln 😉
                Ich habe für meinen Adapter entschieden, dass ich das Verhalten so sinnvoller finde. Vor allem auch deshalb, weil eine Darstellung der tatsächlich korrekten Werte über eine externe GUI möglich sein soll. Da stört es, wenn in der GUI dann plötzlich aber Werte angezeigt werden, die gar nicht dem Ist-Zustand entsprechen. Meine oberste Priorität ist immer, den Ist-Zustand zu jeder möglichen Zeit richtig anzuzeigen, nicht den Soll-Zustand.

                paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von paul53
                #40

                @loredo sagte: Ist-Zustand zu jeder möglichen Zeit richtig anzuzeigen, nicht den Soll-Zustand.

                Dann muss aber auch der Wert mit dem Ist-Wert überschrieben werden - nicht nur das Ack-Flag. Der Fehlversuch wird dann natürlich in der History mit aufgezeichnet.

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                LoredoL 1 Antwort Letzte Antwort
                1
                • paul53P paul53

                  @loredo sagte: Ist-Zustand zu jeder möglichen Zeit richtig anzuzeigen, nicht den Soll-Zustand.

                  Dann muss aber auch der Wert mit dem Ist-Wert überschrieben werden - nicht nur das Ack-Flag. Der Fehlversuch wird dann natürlich in der History mit aufgezeichnet.

                  LoredoL Offline
                  LoredoL Offline
                  Loredo
                  Developer
                  schrieb am zuletzt editiert von Loredo
                  #41

                  @paul53 sagte in Bestätigt/Acknowledged-Flag Bedeutung - ein Mysterium 😉:

                  @loredo sagte: Ist-Zustand zu jeder möglichen Zeit richtig anzuzeigen, nicht den Soll-Zustand.

                  Dann muss aber auch der Wert mit dem Ist-Wert überschrieben werden - nicht nur das Ack-Flag.

                  Hatte ich ja oben auch so geschrieben, dass ich oldState mit ack=true ergänzt von z.B. q=0x40 zurückschreibe 😉
                  oldState muss sich halt der laufende Adapter selbst organisieren, weshalb es auch unschön ist, wenn Änderungen an Objekten passieren, während der Adapter nicht läuft. der JS-Controller wäre besser dafür geeignet, oldState (also nur die States mit ack=true) für alle Adapter bereitzuhalten, aber sowas gibts wohl bisher nicht.

                  By the way, da fällt mir gerade wieder der Bug ein, der mir bei der Entwicklung begegnet ist:
                  getForeignStateAsync() liefert nur ack: false

                  Dadurch muss man beim zurückschreiben (je nachdem, wie lange der Adapter schon läuft) trotzdem nochmal explizit ack=true setzen. Das aber nur am Rande erwähnt, weil es auch was mit der Nutzung der ack Werte zu tun hat. Das macht es leider derzeit auch schwierig den ack-Wert außerhalb von Events abzuprüfen, weil der Wert eben immer false ist und nie true </OffTopic>

                  1 Antwort Letzte Antwort
                  0
                  • W Wildbill

                    @klassisch History (oder influx oder sonstige) reagieren auf die Stgate-Änderung an sich, egal ob ack true oder nicht.
                    Sobald sich was ändert, wird geschrieben. Wenn Du jetzt einen Adapter-Datenpunkt mit 1 beschreibst und dieser dann vom Adapter auf 2 rückgemeldet wird (z.B. beim Harmony-Adapter zum Starten von Activities) so wird sowohl die 1, als auch die 2 weggespeichert.

                    Gruss, Jürgen

                    M Offline
                    M Offline
                    Marty56
                    schrieb am zuletzt editiert von
                    #42

                    @wildbill
                    das stimmt und ich finde es bedauerlich!
                    Ich hätte gerne, dass ich mit setState() steuern könnte, ob ein Wert im History Adapter an die jeweilige DB übertragen wird.

                    HW:NUC (16 GB Ram)
                    OS: Debian Bullseye, Promox V7, node v16.x npm 8.19.3

                    HomoranH CodierknechtC apollon77A 3 Antworten Letzte Antwort
                    0
                    • W Wildbill

                      @klassisch History (oder influx oder sonstige) reagieren auf die Stgate-Änderung an sich, egal ob ack true oder nicht.
                      Sobald sich was ändert, wird geschrieben. Wenn Du jetzt einen Adapter-Datenpunkt mit 1 beschreibst und dieser dann vom Adapter auf 2 rückgemeldet wird (z.B. beim Harmony-Adapter zum Starten von Activities) so wird sowohl die 1, als auch die 2 weggespeichert.

                      Gruss, Jürgen

                      HomoranH Nicht stören
                      HomoranH Nicht stören
                      Homoran
                      Global Moderator Administrators
                      schrieb am zuletzt editiert von
                      #43

                      @wildbill sagte in Bestätigt/Acknowledged-Flag Bedeutung - ein Mysterium 😉:

                      z.B. beim Harmony-Adapter zum Starten von Activities

                      da ist es ja tatsächlich so dass ein "working" über einen anderen Wert als der initiale oder der Zielwert ist.
                      Ich finde es richtig wenn das auch geloggt wird, da damit die korrekte Funktion ind Gänze abgebildet wird.

                      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                      1 Antwort Letzte Antwort
                      1
                      • M Marty56

                        @wildbill
                        das stimmt und ich finde es bedauerlich!
                        Ich hätte gerne, dass ich mit setState() steuern könnte, ob ein Wert im History Adapter an die jeweilige DB übertragen wird.

                        HomoranH Nicht stören
                        HomoranH Nicht stören
                        Homoran
                        Global Moderator Administrators
                        schrieb am zuletzt editiert von
                        #44

                        @marty56 sagte in Bestätigt/Acknowledged-Flag Bedeutung - ein Mysterium 😉:

                        Ich hätte gerne, dass ich mit setState() steuern könnte, ob ein Wert im History Adapter an die jeweilige DB übertragen wird.

                        Das wäre Bilanzfälschung! 😂
                        Entweder ich logge jede Veränderung um auch später jeden Eingriff sehen zu können, oder ich lasse es.
                        "Beweise manipulieren" zu können, indem man aktiv bei bestimmten Aktionen die Spuren verwischt, halte ich für keine gute Idee!

                        Ist jetzt absichtlich überspitzt formuliert!

                        kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                        M 1 Antwort Letzte Antwort
                        3
                        • M Marty56

                          @wildbill
                          das stimmt und ich finde es bedauerlich!
                          Ich hätte gerne, dass ich mit setState() steuern könnte, ob ein Wert im History Adapter an die jeweilige DB übertragen wird.

                          CodierknechtC Online
                          CodierknechtC Online
                          Codierknecht
                          Developer Most Active
                          schrieb am zuletzt editiert von
                          #45

                          @marty56 sagte in Bestätigt/Acknowledged-Flag Bedeutung - ein Mysterium 😉:

                          Ich hätte gerne, dass ich mit setState() steuern könnte, ob ein Wert im History Adapter an die jeweilige DB übertragen wird.

                          Wie @Homoran schon schrieb: Das wäre „geschummelt“ 😉
                          Aber Du kannst ja beim Abfragen der DB die Datensätze ohne ack wegfiltern.

                          "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                          Proxmox 9.0.17 LXC|8 GB|Core i7-6700
                          HmIP|ZigBee|Tasmota|Unifi
                          Zabbix Cerrtified Specialist
                          Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                          1 Antwort Letzte Antwort
                          1
                          • HomoranH Homoran

                            @marty56 sagte in Bestätigt/Acknowledged-Flag Bedeutung - ein Mysterium 😉:

                            Ich hätte gerne, dass ich mit setState() steuern könnte, ob ein Wert im History Adapter an die jeweilige DB übertragen wird.

                            Das wäre Bilanzfälschung! 😂
                            Entweder ich logge jede Veränderung um auch später jeden Eingriff sehen zu können, oder ich lasse es.
                            "Beweise manipulieren" zu können, indem man aktiv bei bestimmten Aktionen die Spuren verwischt, halte ich für keine gute Idee!

                            Ist jetzt absichtlich überspitzt formuliert!

                            M Offline
                            M Offline
                            Marty56
                            schrieb am zuletzt editiert von
                            #46

                            @homoran Ok. Netter Nonsense Witz, ha ha!

                            HW:NUC (16 GB Ram)
                            OS: Debian Bullseye, Promox V7, node v16.x npm 8.19.3

                            1 Antwort Letzte Antwort
                            0
                            • M Marty56

                              @wildbill
                              das stimmt und ich finde es bedauerlich!
                              Ich hätte gerne, dass ich mit setState() steuern könnte, ob ein Wert im History Adapter an die jeweilige DB übertragen wird.

                              apollon77A Offline
                              apollon77A Offline
                              apollon77
                              schrieb am zuletzt editiert von
                              #47

                              @marty56 dann erstelle dir einen Schattenstate und sortiere per Skript oder irgendeiner Logik aus und logge den dann. Easy

                              Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                              • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                              • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                              M 1 Antwort Letzte Antwort
                              1
                              • apollon77A apollon77

                                @marty56 dann erstelle dir einen Schattenstate und sortiere per Skript oder irgendeiner Logik aus und logge den dann. Easy

                                M Offline
                                M Offline
                                Marty56
                                schrieb am zuletzt editiert von
                                #48

                                @apollon77 Ja, dass mit dem "Schattenstate" habe ich natürlich gemacht. Dennoch nicht besonders elegant

                                HW:NUC (16 GB Ram)
                                OS: Debian Bullseye, Promox V7, node v16.x npm 8.19.3

                                apollon77A 1 Antwort Letzte Antwort
                                0
                                • M Marty56

                                  @apollon77 Ja, dass mit dem "Schattenstate" habe ich natürlich gemacht. Dennoch nicht besonders elegant

                                  apollon77A Offline
                                  apollon77A Offline
                                  apollon77
                                  schrieb am zuletzt editiert von
                                  #49

                                  @marty56 da diese Anforderung meiner Meinung nach ein Edge Case ist finde ich die Lösung sehr elegant ;-)) (ich weiß das du das so nicht hören wolltest 😉 )

                                  Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                                  • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                                  • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                                  1 Antwort Letzte Antwort
                                  3
                                  • apollon77A apollon77

                                    Hi All,

                                    weil ich im Forum und in GitHub in letzter Zeit vermehrt darüber gestolpert bin, möchte ich heute mal ein paar Zeilen zum Thema Bestätigt/Acknowledged-Flag beim setzen von State-Werten schreiben.

                                    Wer jetzt denkt, das weiß ich doch alles ... lest doch vllt. noch ein Stück weiter 🙂

                                    Aber fangen wir doch mal an mit einer kleinen Preisfrage (und bevor jemand fragt: Die Belohnung ist Wissen 🙂 )

                                    Kleine Preisfrage ...

                                    Was genau bedeutet es "bestätigt/acknowleged" beim Setzen von State Werten auf "true" zu setzen?

                                    Antwort A: Ich als User (bzw mein Skript) setzt "bestätigt" auf "true" um zu sagen das ich bestätige das der Wert so sein soll. (Ich bestätige dem Gerät das der Wert mein Wunsch ist.)

                                    Antwort B: Das Gerät (bzw. der Adapter der das Gerät anbindet) zeigt mit "bestätigt" auf "true", das dies der Wert ist der beim Gert gerade wirklich gesetzt ist (Das Gerät hat diesen Wert als "echt" bestätigt.)

                                    Bevor Ihr weiterlest beantwortet die Frage mal für euch ... ... ...

                                    ....

                                    ....

                                    ....

                                    Wer für sich bei Antwort A gelandet ist, der sollte in jedem Fall weiterlesen, weil für Ihn schreibe ich das ganze 🙂 Alle anderen dürfen zur Überprüfung Ihres Wissens natürlich auch gern weiterlesen.

                                    Ok, wie ist es denn nun mit ack=true?

                                    Antwort B ist korrekt.

                                    Der "acknowledged" Flag (Deutsch "Bestätigt") kennzeichnet einen Wert ,der vom Gerät (bzw. vom Adapter auf Basis von Rückmeldungen vom Gerät - oder "bester Annahme") bestätigt wurde, als der Wert der gerade gesetzt ist. Es ist also "die Realität".
                                    Im Normalfall setzen ausschließlich Adapter (bzw. eigene Skripte die den Status eines States "kennen") Werte mit ack=true. Es gibt nur sehr wenige Anwendungsfälle wo es Sinn macht das ein User bzw. ein Skript einen Wert mit ack=true setzt!
                                    Jeder Adapter sollte jegliche Wertänderungen mit ack=true einfach ignorieren und nichts tun! Falls er es doch tut ist es ein Sonderfall oder ein Bug im Adapter 🙂

                                    Bestätigte Werte werden im Admin "grün" angezeigt um zu visualisieren das der Wert direkt vom Adapter kommt und es der Wert sein sollte der dort gerade real ist.

                                    Und wozu nutze ich dann ack=false?

                                    Mit "Acknowledged=false" (was auch überall die Standardeinstellung ist) steuert man ein Gerät. Darauf sollten Adapter (wenn States schreibbar sind) dann auch reagieren und eine Steueraktion auslösen und den Wert zum Gerät senden.

                                    Admin Zeigt Werte mit "ack=false" in rot an, um zu zeigen das man diesem Wert im ersten Schritt nicht uneingeschränkt vertrauen darf, weil das Gerät noch nichts dazu gesagt hat.

                                    Im Normalfall wird der Adapter direkt (oder über Updates dann vom Gerät) nach einer Steueraktion einen neuen bestätigten Wert nach der erfolgten Steuerung setzen - das kann der Wert sein den man gesendet hat oder ein anderer!
                                    Im Admin sieht man das das der gesetzte Wert kurz rot ist und dann kurz darauf von einem "grünen" Wert überschrieben wird. Das ist der Idealfall.

                                    Was heisst es wenn ein Wert "rot" bleibt?

                                    Am Ende kann es grob drei Fälle geben wenn ein Wert "rot" (also unbestätigt) bleibt:

                                    • Der Adapter bzw. das Skript die diesen State normalerweise abarbeiten werden gerade nicht ausgeführt. Dann nimmt niemand die Steueraktion entgegen und es bleibt halt so.
                                    • Aus irgendeinem Grund konnte der Adapter die Steueraktion nicht ausführen (zB. weil das Gerät gerade offline ist) und hat auch keinen anderen neuen Wert vom Gerät. Dann könnte es im Logfile was zu finden geben.
                                    • Es ist ein "write only State". Ein Write Only State (zB oft bei "Buttons) triggern bei Betätigung mit dem Wert "true" etwas, aber ausser dem "Trigger" haben sie keinen Wert. Ob so ein State vom Adapter wieder zurückgesetzt wird auf zB False mit ack=true ist Adapterspezifisch und nicht ganz so einfach zu definieren. Das jetzt hier genauer auszuführen würde diesen Rahmen deutlich sprengen.

                                    Gibts das auch nochmal ausführlicher?

                                    Ja, @haus-automatisierung hat das Thema uch in einem Video verarbeitet: Wer also die Erklärung gerne noch einmal in bewegten Bildern (mit ein paar Beispielen) sehen möchte:

                                    https://www.youtube.com/watch?v=p5FyeifYUnw

                                    Und bei eigenen Skripten?

                                    Wenn Ihr Adapter-States steuern wollt ist das oben genannte genau so wichtig. Die "setState"-Methode hat den "ack"-Flag als dritten Parameter. Wenn er weggelassen wird oder auf false steht ist es eine "Steuern" Aktion, sonst wird der Wert "Aktualisiert" (ohne Steuerung). In Blockly und Rulez ist die Terminologie die gleiche.

                                    Für eigene States (in zB 0_userdata.0.* oder javascript.X.*) obliegt es formal Euch wie Ihr arbeiten wollt. Wer die Unterscheidung, ob ein Wert "erfolgreich verarbeitet und umgesetzt" ist vs. "das wollte ich steuern" nicht braucht, kann den ack-Flag ignorieren ... Eine normale subscription auf einen State Wert liefert beide Wert-Änderungen, kann aber über Zusatzparameter eingeschränkt werden auf nur "ack: false" als Beispiel.
                                    Aus Erfahrung sorgt das dann aber dafür das man in dem Umfeld gern mit "ack=true" arbeitet damit es im Admin "nicht als rot dargestellt wird" ... das kann hat zu einer Falle führen weil man dann immer umdenken muss.

                                    Ich persönlich versuche auch in Skripten mit korrekten ack-Flags zu arbeiten, um zu sehen ob ein Wert eine Steuerung ist oder der bestätigte Wert. Muss aber jeder für Sich entscheiden.

                                    Gibts im Admin noch andere Farben?

                                    In seltenen Fällen (bzw aktuell bei eher ausgewählten Adaptern) kann man noch State Werte in gelb sehen. Diese weisen an sich darauf hin das der Wert in irgendeiner Hinsicht als "Stale" (denke am besten als "veraltet" übersetzt) anzusehen ist. Das wird über das sogenannte "q" (aka "quality") Flag am State Wert gesteuert mit dem ein Adapter mitgeben kann das/ob ein Wert nur eine Annahme ist oder das Gerät aktuell offline ist und daher der Wert der "zuletzt bekannte aber potentiell veraltete" ist.
                                    Das nutzen momentan nicht so viele Adapter - kommt vllt mal wieder mehr in Mode 🙂

                                    Ich hoffe der kleine Exkurs hat mehr Fragen beantwortet als neue aufgeworfen - falls doch bitte einfach Fragen!
                                    Eine aktuelle Idee ist das auch in der Admin UI etwas besser darzustellen das dort klarer wird das "bestätigt" bedeutet.

                                    Ingo

                                    U Offline
                                    U Offline
                                    UKek
                                    schrieb am zuletzt editiert von
                                    #50

                                    Der Beitrag hat mir sehr geholfen, vielen Dank!

                                    Wie ist das aber mit VIS Buttons?
                                    Offenbar nutzen die immer "Steuere ID.."

                                    Kann ich mit einem Button einen Datenpunkt setzen?
                                    Natürlich könnte ich mit einem Script laufend den Datenpunkt abfragen und ihn beim Ändern des Wertes aktualisieren.
                                    Aber das muß doch auch einfach aus dem Widget heraus gehen?

                                    Viele Grüße
                                    Uwe

                                    apollon77A haus-automatisierungH 2 Antworten Letzte Antwort
                                    0
                                    • HomoranH Nicht stören
                                      HomoranH Nicht stören
                                      Homoran
                                      Global Moderator Administrators
                                      schrieb am zuletzt editiert von
                                      #51

                                      @ukek sagte in Bestätigt/Acknowledged-Flag Bedeutung - ein Mysterium 😉:

                                      Offenbar nutzen die immer "Steuere ID.."
                                      Kann ich mit einem Button einen Datenpunkt setzen?

                                      so herum ist das kein Problem.

                                      nur mit ACK (aktualisiere) kann man keinen Adapter zum steuern bewegen.

                                      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                      1 Antwort Letzte Antwort
                                      0
                                      • U UKek

                                        Der Beitrag hat mir sehr geholfen, vielen Dank!

                                        Wie ist das aber mit VIS Buttons?
                                        Offenbar nutzen die immer "Steuere ID.."

                                        Kann ich mit einem Button einen Datenpunkt setzen?
                                        Natürlich könnte ich mit einem Script laufend den Datenpunkt abfragen und ihn beim Ändern des Wertes aktualisieren.
                                        Aber das muß doch auch einfach aus dem Widget heraus gehen?

                                        Viele Grüße
                                        Uwe

                                        apollon77A Offline
                                        apollon77A Offline
                                        apollon77
                                        schrieb am zuletzt editiert von
                                        #52

                                        @ukek was genau willst du „setzen“? Verstehe die Frage nicht.

                                        Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                                        • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                                        • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                                        U 1 Antwort Letzte Antwort
                                        0
                                        • apollon77A apollon77

                                          @ukek was genau willst du „setzen“? Verstehe die Frage nicht.

                                          U Offline
                                          U Offline
                                          UKek
                                          schrieb am zuletzt editiert von
                                          #53

                                          @apollon77 Ich setze einen Datenpunkt (Klima-Auto), dass mein Klimagerät automatisch oder manuell laufen soll.
                                          Automatisch bedeutet: je nach Solarüberschuß geht es an/aus und steuert sich selbständig zwischen 18-23 Grad.
                                          Der Datenpunkt (Klima-Auto) wird also erst abgefragt, wenn Solarüberschuß besteht.

                                          Ich könnte den Datenpunkt "rot" lassen und erst bei der Aktion "Solarüberschuß" aktualisieren?
                                          Oder soll/kann ich den gleich als "aktualisiere ID.." vom Button setzen?

                                          LG Uwe

                                          apollon77A 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          663

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe