Skip to content
  • Home
  • 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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. MQTT "LWT"-Feature Wartezeit ?

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.2k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

MQTT "LWT"-Feature Wartezeit ?

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
4 Beiträge 2 Kommentatoren 538 Aufrufe 2 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.
  • W Offline
    W Offline
    WillyIobrok
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    Nehme gerade das LWT-Feature (Last Will/Testament) des MQTT adapters (Version 2.3.4) in Betrieb.

    Wenn ich also meinen ESP32 basierten "Client A" abschalte, möchte ich, daß der MQTT Broker Adapter auf dem ioBroker (Raspberry 4) nach einiger Zeit dem "Client B" mitteilt, daß Client A offline ist.

    Funktioniert auch soweit, aber es dauert ziemlich lange, bis der MQTT broker nach Abschalten eines MQTT clients die LWT-Message ("offline") an die anderen Clients weiterschickt (so ca. 30 ... 100 sek).
    Das ist mir viel zu lange.
    Deshalb suche ich nach einer Möglichkeit, diese Zeit auf z.B. 5 ... 10 sek zu verkürzen, habe aber bis jetzt nix gefunden - weder in der MQTT Oberfläche noch im Forum.
    Gibt's so eine Einstellung nicht?
    Wovon hängt denn diese Wartezeit ab ?

    Grüße,

    WillyIoBrok

    UncleSamU 1 Antwort Letzte Antwort
    0
    • W WillyIobrok

      Hallo zusammen,

      Nehme gerade das LWT-Feature (Last Will/Testament) des MQTT adapters (Version 2.3.4) in Betrieb.

      Wenn ich also meinen ESP32 basierten "Client A" abschalte, möchte ich, daß der MQTT Broker Adapter auf dem ioBroker (Raspberry 4) nach einiger Zeit dem "Client B" mitteilt, daß Client A offline ist.

      Funktioniert auch soweit, aber es dauert ziemlich lange, bis der MQTT broker nach Abschalten eines MQTT clients die LWT-Message ("offline") an die anderen Clients weiterschickt (so ca. 30 ... 100 sek).
      Das ist mir viel zu lange.
      Deshalb suche ich nach einer Möglichkeit, diese Zeit auf z.B. 5 ... 10 sek zu verkürzen, habe aber bis jetzt nix gefunden - weder in der MQTT Oberfläche noch im Forum.
      Gibt's so eine Einstellung nicht?
      Wovon hängt denn diese Wartezeit ab ?

      Grüße,

      WillyIoBrok

      UncleSamU Offline
      UncleSamU Offline
      UncleSam
      Developer
      schrieb am zuletzt editiert von
      #2

      @willyiobrok So wie ich das sehe, wird das Testament verschickt, sobald der Server mitbekommt, dass die Verbindung abgerissen ist.

      Nun scheint das Problem zu sein, dass das Timeout (bei dir) sehr hoch ist und der Server entsprechend auch sehr lange nicht bemerkt, dass der Client nicht mehr verbunden ist.

      Ich sehe die Lösung im Setzen des Keep-Alive (auf Seite des Clients) auf einen möglichst tiefen Wert.


      Versand:
      https://github.com/ioBroker/ioBroker.mqtt/blob/abb9adfbae66c88bcc377e484e5f496eea1f42a7/lib/server.js#L613-L621
      Fälle, in denen die Verbindung geschlossen wird:
      https://github.com/ioBroker/ioBroker.mqtt/blob/abb9adfbae66c88bcc377e484e5f496eea1f42a7/lib/server.js#L1064-L1069
      Keep-Alive:
      https://github.com/ioBroker/ioBroker.mqtt/blob/abb9adfbae66c88bcc377e484e5f496eea1f42a7/lib/server.js#L764

      Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
      ♡-lichen Dank an meine Sponsoren

      W 1 Antwort Letzte Antwort
      0
      • UncleSamU UncleSam

        @willyiobrok So wie ich das sehe, wird das Testament verschickt, sobald der Server mitbekommt, dass die Verbindung abgerissen ist.

        Nun scheint das Problem zu sein, dass das Timeout (bei dir) sehr hoch ist und der Server entsprechend auch sehr lange nicht bemerkt, dass der Client nicht mehr verbunden ist.

        Ich sehe die Lösung im Setzen des Keep-Alive (auf Seite des Clients) auf einen möglichst tiefen Wert.


        Versand:
        https://github.com/ioBroker/ioBroker.mqtt/blob/abb9adfbae66c88bcc377e484e5f496eea1f42a7/lib/server.js#L613-L621
        Fälle, in denen die Verbindung geschlossen wird:
        https://github.com/ioBroker/ioBroker.mqtt/blob/abb9adfbae66c88bcc377e484e5f496eea1f42a7/lib/server.js#L1064-L1069
        Keep-Alive:
        https://github.com/ioBroker/ioBroker.mqtt/blob/abb9adfbae66c88bcc377e484e5f496eea1f42a7/lib/server.js#L764

        W Offline
        W Offline
        WillyIobrok
        schrieb am zuletzt editiert von
        #3

        @unclesam
        Hmm, das dachte ich mir auch schon. Ich benutze als client einen ESP32 mit der Library "EspMQTTClient".
        Das einzige, was ich in der Doku unter "live", "life" oder "time gefunden habe ist:

        Change the keepalive interval (15 seconds by default)

        void setKeepAlive(uint16_t keepAliveSeconds);
        

        Aber 15 sek hört sich doch gar nicht soo schlimm an. Werde es aber trotzdem mal auf 5 sek kürzen.

        Schau ma mal :-)

        Erstmal vielen Dank,

        WillyIoBrok

        W 1 Antwort Letzte Antwort
        0
        • W WillyIobrok

          @unclesam
          Hmm, das dachte ich mir auch schon. Ich benutze als client einen ESP32 mit der Library "EspMQTTClient".
          Das einzige, was ich in der Doku unter "live", "life" oder "time gefunden habe ist:

          Change the keepalive interval (15 seconds by default)

          void setKeepAlive(uint16_t keepAliveSeconds);
          

          Aber 15 sek hört sich doch gar nicht soo schlimm an. Werde es aber trotzdem mal auf 5 sek kürzen.

          Schau ma mal :-)

          Erstmal vielen Dank,

          WillyIoBrok

          W Offline
          W Offline
          WillyIobrok
          schrieb am zuletzt editiert von
          #4

          @UncleSam
          habs jetzt mit 5s keepalive interval ausprobiert, ja, es geht schneller ! Vielen Dank für den Tip
          (allerdings dauerts trotzdem noch bis zu 20 sek, damit kann/muß ich aber jetzt leben)

          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

          391

          Online

          32.5k

          Benutzer

          81.7k

          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