Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Status ack true/false vs. Rückmeldung

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    340

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    306

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

Status ack true/false vs. Rückmeldung

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
knxhomekitmqttstatus
4 Beiträge 2 Kommentatoren 1.3k Aufrufe 1 Beobachtet
  • Ä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.
  • S Offline
    S Offline
    Sandro
    schrieb am zuletzt editiert von Sandro
    #1

    Hallo!

    Ich komme aus der KNX Welt (und die möchte ich jetzt mit ioBroker verbinden). Dort wird typischerweise über einen Status (dort Gruppenadresse) ein Schaltbefehl ausgesandt und wenn der Aktor das erledigt hat, sendet er ne Rückmeldung über ne andere Gruppenadresse. Sowas ähnliches soll meines Verständnisses nach auch mit dem Setzen von Status mit oder ohne ack in ioBroker erreicht werden. Korrigiert mich wenn ich mich irre :-)

    Nun ich möchte zunächst den KNX Server per MQTT mit dem ioBroker verbinden und über den Homekit Adapter in ioBroker die Siri Anbindung von KNX erreichen.

    In meinem Kopf soweit klar ist, dass bei einem Schalten über KNX die Rückmeldung per MQTT übertragen wird und dann den Status im ioBroker setzt. Was mir noch nicht ganz klar ist: wenn ich über Homekit schalte, wird ja zunächst ein Status in ioBroker gesetzt. Der würde dann per MQTT übertragen, das KNX System führt es aus und es geht zurück zum ioBroker über die Rückmeldung (per MQTT). Den Status noch mal zu setzen bringt ja aber nichts. Vor allem nicht für den Fall, dass was schiefgelaufen ist. Denn dann kommt ja ggf. keine Rückmeldung...

    Wie bringe ich das zusammen?

    Danke und Grüße,
    Sandro

    AsgothianA 1 Antwort Letzte Antwort
    0
    • S Sandro

      Hallo!

      Ich komme aus der KNX Welt (und die möchte ich jetzt mit ioBroker verbinden). Dort wird typischerweise über einen Status (dort Gruppenadresse) ein Schaltbefehl ausgesandt und wenn der Aktor das erledigt hat, sendet er ne Rückmeldung über ne andere Gruppenadresse. Sowas ähnliches soll meines Verständnisses nach auch mit dem Setzen von Status mit oder ohne ack in ioBroker erreicht werden. Korrigiert mich wenn ich mich irre :-)

      Nun ich möchte zunächst den KNX Server per MQTT mit dem ioBroker verbinden und über den Homekit Adapter in ioBroker die Siri Anbindung von KNX erreichen.

      In meinem Kopf soweit klar ist, dass bei einem Schalten über KNX die Rückmeldung per MQTT übertragen wird und dann den Status im ioBroker setzt. Was mir noch nicht ganz klar ist: wenn ich über Homekit schalte, wird ja zunächst ein Status in ioBroker gesetzt. Der würde dann per MQTT übertragen, das KNX System führt es aus und es geht zurück zum ioBroker über die Rückmeldung (per MQTT). Den Status noch mal zu setzen bringt ja aber nichts. Vor allem nicht für den Fall, dass was schiefgelaufen ist. Denn dann kommt ja ggf. keine Rückmeldung...

      Wie bringe ich das zusammen?

      Danke und Grüße,
      Sandro

      AsgothianA Offline
      AsgothianA Offline
      Asgothian
      Developer
      schrieb am zuletzt editiert von
      #2

      @Sandro

      Für diesen Zweck gibt es im ioBroker das "acknowledge". Du kannst einen State mit oder ohne "acknowledge" setzen (siehe doku zu setState).

      Die Logik dahinter ist das du, wenn du eine Aktion ausführen willst, den State ohne "acknowledge" setzt, und derjenige, der den State auswertet diesen bei Erfolg mit acknowledge bestätigt (gleichen wert) oder auf den dann aktiven Wert setzt - auch mit acknowledge.

      In wie weit das immer im Zusammenspiel mit dem Yahka Adapter an allen Stellen funktioniert muss ich ausprobieren - in ein paar Fällen hat es schon erfolgreich geklappt.

      Im Zusammenspiel mit den getrennten Messages im KNX müsstest du beim Versenden der Nachricht an KNX einen Timeout starten. Kommt die Rueckmeldung mit dem Erfolg, dann kannst du den Wert mit acknowledge bestätigen und den Timeout löschen. Wenn der Timeout kommt dann kannst du die Fehlerbehandlung durchführen.

      In diesem Zusammenhang ist es natürlich wichtig, das du im on() mit dem du auf Änderungen am Wert reagierst nur auf Änderungen reagierst bei denen acknowledge=false ist.

      A.

      ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
      "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

      S 1 Antwort Letzte Antwort
      0
      • AsgothianA Asgothian

        @Sandro

        Für diesen Zweck gibt es im ioBroker das "acknowledge". Du kannst einen State mit oder ohne "acknowledge" setzen (siehe doku zu setState).

        Die Logik dahinter ist das du, wenn du eine Aktion ausführen willst, den State ohne "acknowledge" setzt, und derjenige, der den State auswertet diesen bei Erfolg mit acknowledge bestätigt (gleichen wert) oder auf den dann aktiven Wert setzt - auch mit acknowledge.

        In wie weit das immer im Zusammenspiel mit dem Yahka Adapter an allen Stellen funktioniert muss ich ausprobieren - in ein paar Fällen hat es schon erfolgreich geklappt.

        Im Zusammenspiel mit den getrennten Messages im KNX müsstest du beim Versenden der Nachricht an KNX einen Timeout starten. Kommt die Rueckmeldung mit dem Erfolg, dann kannst du den Wert mit acknowledge bestätigen und den Timeout löschen. Wenn der Timeout kommt dann kannst du die Fehlerbehandlung durchführen.

        In diesem Zusammenhang ist es natürlich wichtig, das du im on() mit dem du auf Änderungen am Wert reagierst nur auf Änderungen reagierst bei denen acknowledge=false ist.

        A.

        S Offline
        S Offline
        Sandro
        schrieb am zuletzt editiert von Sandro
        #3

        Danke für die Antwort :-)

        Das mit dem Timer leuchtet ein, aber ist mir auch irgendwie unheimlich. Entweder wäre der in Homekit angezeigte Status für ne gewisse Zeit lang ungewiss oder ich muss ich ihn gleich zurücksetzen und warten was ein unnötiges hin und her wäre

        Ich hab mir den Yahka Adapter jetzt noch mal angeschaut. Es gibt für den Zustand auch die Option ioBroker.State.OnlyACK, der den Zustand nur an Homekit übermittelt, wenn ack = true ist.

        Schaltet man in Homekit kommt der Status mit ack = false rein, aus KNX kommt der Status mit ack = true aus MQTT. Soweit so gut. Mein Plan ist jetzt also auch in iobroker mit zwei Objekten zu arbeiten. Eins zum Schalten (Homekit --> KNX) und das andere für die Rückmeldung (KNX --> Homekit). Das Objekt für die Rückmeldung soll dann auf das Schaltobjekt gespiegelt werden.

        Mein aktuelles Problem:

        on('mqtt.0.status.wohnen-licht', 'mqtt.0.schalten.wohnen-licht')
        

        Mappt zwar den Status, aber nicht das ack Flag. Der Status in Homekit ändert sich also nicht.

        Wie krieg ich denn das hin?
        SetForeignState(...) gibt es scheinbar nicht. Hab also gerade keine Idee, wie ich nen Status außerhalb von javascript.0 so setzen kann wie ich möchte.

        Grüße

        Edit: Oder geht das doch? Habe gerade das folgende Beispiel gefunden (http://iobroker.blogspot.com/2017/07/einfache-script-beispiele.html) Ich hatte glaube ich nur mit createState(...) probiert einen Status im mqtt Adapter anzulegen, was scheiterte und ihn unter javascript einordnete. Aber mit setState(...) kann ich Zustände außerhalb des Javascript Adapters schreiben? Dann könnte ich ja über die JSON Notation ohne weiteres auch das ack = true mitgeben. Kann das erste heute Abend probieren, aber wollte das noch in die Runde werfen ;-)

        S 1 Antwort Letzte Antwort
        0
        • S Sandro

          Danke für die Antwort :-)

          Das mit dem Timer leuchtet ein, aber ist mir auch irgendwie unheimlich. Entweder wäre der in Homekit angezeigte Status für ne gewisse Zeit lang ungewiss oder ich muss ich ihn gleich zurücksetzen und warten was ein unnötiges hin und her wäre

          Ich hab mir den Yahka Adapter jetzt noch mal angeschaut. Es gibt für den Zustand auch die Option ioBroker.State.OnlyACK, der den Zustand nur an Homekit übermittelt, wenn ack = true ist.

          Schaltet man in Homekit kommt der Status mit ack = false rein, aus KNX kommt der Status mit ack = true aus MQTT. Soweit so gut. Mein Plan ist jetzt also auch in iobroker mit zwei Objekten zu arbeiten. Eins zum Schalten (Homekit --> KNX) und das andere für die Rückmeldung (KNX --> Homekit). Das Objekt für die Rückmeldung soll dann auf das Schaltobjekt gespiegelt werden.

          Mein aktuelles Problem:

          on('mqtt.0.status.wohnen-licht', 'mqtt.0.schalten.wohnen-licht')
          

          Mappt zwar den Status, aber nicht das ack Flag. Der Status in Homekit ändert sich also nicht.

          Wie krieg ich denn das hin?
          SetForeignState(...) gibt es scheinbar nicht. Hab also gerade keine Idee, wie ich nen Status außerhalb von javascript.0 so setzen kann wie ich möchte.

          Grüße

          Edit: Oder geht das doch? Habe gerade das folgende Beispiel gefunden (http://iobroker.blogspot.com/2017/07/einfache-script-beispiele.html) Ich hatte glaube ich nur mit createState(...) probiert einen Status im mqtt Adapter anzulegen, was scheiterte und ihn unter javascript einordnete. Aber mit setState(...) kann ich Zustände außerhalb des Javascript Adapters schreiben? Dann könnte ich ja über die JSON Notation ohne weiteres auch das ack = true mitgeben. Kann das erste heute Abend probieren, aber wollte das noch in die Runde werfen ;-)

          S Offline
          S Offline
          Sandro
          schrieb am zuletzt editiert von
          #4

          Noch zwei Updates dazu falls einer ein ähnliches Problem hat

          1. Ein Mapping von einem State auf den anderen funktioniert natürlich wunderbar. Meine sind so benannt, dass ich den Zielstate mit einem replace ermitteln und dann setzten kann, mit ack = true oder false wie es eben passt

          2. Es gibt in Yahka als InOut Funktion auch ioBroker.Multistate
            Damit kann man unterschiedliche Objekte für Lesen und Schreiben angeben. Genau das was ich brauchte

          1 Antwort Letzte Antwort
          0

          Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

          Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

          Mit deinem Input könnte dieser Beitrag noch besser werden 💗

          Registrieren Anmelden
          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

          548

          Online

          32.8k

          Benutzer

          82.8k

          Themen

          1.3m

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

          • Du hast noch kein Konto? Registrieren

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