Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Entwicklung
  4. wie ack-Eigenschaft genau behandeln?

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    757

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    18
    1
    6.1k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.5k

wie ack-Eigenschaft genau behandeln?

Scheduled Pinned Locked Moved Entwicklung
adapter entwicklung ack
4 Posts 3 Posters 384 Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • ELKE Offline
    ELKE Offline
    ELK
    wrote on last edited by
    #1

    Hallo!
    Ich entwickle einen Adapter, der angeschlossene Hardware steuern soll. Diese ist aber nicht zu 100% zuverlässig.
    In onStateChange bekomme ich also die Info, dass der Benutzer den Wert geändert haben möchte, also steht ack auf false und der gewünschte Wert in state.val.
    Dies leite ich an die Hardware weiter, die im Erfolgsfall die Statusänderung bestätigt, woraufhin ich setState mit ack=true machen kann, fertig.
    Nach dem Informieren der Hardware schaue ich per setTimeout nach ein paar Sekunden nach, ob es geklappt hat, also die Bestätigung kam. Wenn nicht, mache ich ein paar erneute Versuche.
    Nun endlich die Frage: Wenn ich nun nach ein paar Versuchen zum Ergebnis komme, dass der gewünschte Befehl nicht abschließend ausgeführt werden konnte ("Hardware klemmt"), wie gehe ich mit state.val und ack um?
    Einfach so lassen würde ja wohl bedeuten "wird gerade auf x gesetzt, ist aber noch nicht fertig", was evtl. zu Verwirrung führen könnte.
    Wieder zurücksetzen auf den vorherigen Wert mit ack=true? Dann müsste ich mir den alten Wert noch irgendwo merken. Oder finde ich den in state? stat.previousval oder so?
    Scheint mir alles nicht so toll zu sein. Gibt es da ein übliches Vorgehen?

    paul53P 1 Reply Last reply
    0
    • ELKE ELK

      Hallo!
      Ich entwickle einen Adapter, der angeschlossene Hardware steuern soll. Diese ist aber nicht zu 100% zuverlässig.
      In onStateChange bekomme ich also die Info, dass der Benutzer den Wert geändert haben möchte, also steht ack auf false und der gewünschte Wert in state.val.
      Dies leite ich an die Hardware weiter, die im Erfolgsfall die Statusänderung bestätigt, woraufhin ich setState mit ack=true machen kann, fertig.
      Nach dem Informieren der Hardware schaue ich per setTimeout nach ein paar Sekunden nach, ob es geklappt hat, also die Bestätigung kam. Wenn nicht, mache ich ein paar erneute Versuche.
      Nun endlich die Frage: Wenn ich nun nach ein paar Versuchen zum Ergebnis komme, dass der gewünschte Befehl nicht abschließend ausgeführt werden konnte ("Hardware klemmt"), wie gehe ich mit state.val und ack um?
      Einfach so lassen würde ja wohl bedeuten "wird gerade auf x gesetzt, ist aber noch nicht fertig", was evtl. zu Verwirrung führen könnte.
      Wieder zurücksetzen auf den vorherigen Wert mit ack=true? Dann müsste ich mir den alten Wert noch irgendwo merken. Oder finde ich den in state? stat.previousval oder so?
      Scheint mir alles nicht so toll zu sein. Gibt es da ein übliches Vorgehen?

      paul53P Offline
      paul53P Offline
      paul53
      wrote on last edited by
      #2

      @ELK sagte in:

      "wird gerade auf x gesetzt, ist aber noch nicht fertig", was evtl. zu Verwirrung führen könnte.

      Wieso Verwirrung ? Genau das sagt ack = false aus und wird als Rückgabe vom Adapter erwartet.

      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

      1 Reply Last reply
      0
      • ELKE Offline
        ELKE Offline
        ELK
        wrote on last edited by
        #3

        ok. Dann bleibt im Fehlerfalle also der Status auf dem Wunschwert und ack auf false.
        Hätte ja auch sein können, dass ein ack=false zu interpretieren ist als "in Arbeit, bitte später nochmal nachschauen". Aber offenbar ist es eher "sollte (irgendwann damals mal) geändert werden, hat bis jetzt aber noch nicht geklappt."
        Schön, spart mir Aufwand ;-)

        OliverIOO 1 Reply Last reply
        0
        • ELKE ELK

          ok. Dann bleibt im Fehlerfalle also der Status auf dem Wunschwert und ack auf false.
          Hätte ja auch sein können, dass ein ack=false zu interpretieren ist als "in Arbeit, bitte später nochmal nachschauen". Aber offenbar ist es eher "sollte (irgendwann damals mal) geändert werden, hat bis jetzt aber noch nicht geklappt."
          Schön, spart mir Aufwand ;-)

          OliverIOO Offline
          OliverIOO Offline
          OliverIO
          wrote on last edited by
          #4

          @ELK
          wenn dann die hardware regelmäßig abgefragt wird, dann wird bei der nächsten ordentlichen abfrage
          der Datenpunkt neu geschrieben und dann wieder mit ack bestätigt.
          wenn der adapter feststellt, das die Ansteuerung der Hardware nicht mehr funktioniert, dann sollte die Connection Eigenschaft auf false gesetzt werden, dann geht der adapter auf rot. dann muss erst das Problem grundsätzlich gelöst werden.

          Meine Adapter und Widgets
          TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
          Links im Profil

          1 Reply Last reply
          0

          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

          With your input, this post could be even better 💗

          Register Login
          Reply
          • Reply as topic
          Log in to reply
          • Oldest to Newest
          • Newest to Oldest
          • Most Votes


          Support us

          ioBroker
          Community Adapters
          Donate

          586

          Online

          32.8k

          Users

          82.7k

          Topics

          1.3m

          Posts
          Community
          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
          ioBroker Community 2014-2025
          logo
          • Login

          • Don't have an account? Register

          • Login or register to search.
          • First post
            Last post
          0
          • Home
          • Recent
          • Tags
          • Unread 0
          • Categories
          • Unreplied
          • Popular
          • GitHub
          • Docu
          • Hilfe