FHEM Forum

FHEM - Hausautomations-Systeme => Zigbee => Thema gestartet von: satprofi am 23 Juni 2026, 20:06:26

Titel: MQTT protocol version 5
Beitrag von: satprofi am 23 Juni 2026, 20:06:26
Seit heute 16:38h startet Zigbee2mqtt nicht mehr, ausser dieser fehlermeldung
"MQTT retention requires protocol version 5"

was ist da passiert?
Titel: Aw: MQTT protocol version 5
Beitrag von: rabehd am 23 Juni 2026, 20:18:56
Vielleicht hast Du ein Update gemacht.
Was steht unter Einstellungen Info?
Titel: Aw: MQTT protocol version 5
Beitrag von: satprofi am 23 Juni 2026, 20:38:38
hallo.
habe jetzt version: 5 unter mqtt eingetragen, jetzt startet es aber mit diesem fehler
[2026-06-23 20:36:39] info:     z2m: Currently 6 devices are joined.
[2026-06-23 20:36:39] info:     z2m: Connecting to MQTT server at mqtt://192.168.0.52:1883
[2026-06-23 20:36:39] error:    z2m: MQTT failed to connect, exiting... (Connection refused: Unacceptable protocol version)
[2026-06-23 20:36:39] info:     z2m: Stopping zigbee-herdsman...
[2026-06-23 20:36:48] info:     zh:controller: Wrote coordinator backup to '/opt/zigbee2mqtt/data/coordinator_backup.json'
[2026-06-23 20:36:48] info:     zh:zstack:znp: closing
[2026-06-23 20:36:48] info:     zh:zstack:znp: Port closed
[2026-06-23 20:36:48] info:     z2m: Stopped zigbee-herdsman
Titel: Aw: MQTT protocol version 5
Beitrag von: Nobbynews am 23 Juni 2026, 20:53:32
Zitat von: satprofi am 23 Juni 2026, 20:06:26"MQTT retention requires protocol version 5"
Retention muss je Gerät gesondert aktiviert werden.
Schau doch mal in der configuration.yaml nach, ob es dort zu finden ist.
Wenn ja, einfach löschen.

MQTT2 kann kein v5.
Titel: Aw: MQTT protocol version 5
Beitrag von: satprofi am 23 Juni 2026, 21:03:34
Zitat von: Nobbynews am 23 Juni 2026, 20:53:32
Zitat von: satprofi am 23 Juni 2026, 20:06:26"MQTT retention requires protocol version 5"
Retention muss je Gerät gesondert aktiviert werden.
Schau doch mal in der configuration.yaml nach, ob es dort zu finden ist.
Wenn ja, einfach löschen.

MQTT2 kann kein v5.

Was meinst du genau? das steht bei jedem device

    retention: 5

das soll ich löschen?

und das ist das startfenster von z2m , das ja dann laufen sollte
Titel: Aw: MQTT protocol version 5
Beitrag von: Nobbynews am 23 Juni 2026, 21:11:16
Das wäre jedenfalls mein Vorgehen.
Vorher aber eine Sicherheitskopie der yaml machen.
Titel: Aw: MQTT protocol version 5
Beitrag von: satprofi am 23 Juni 2026, 21:18:51
bringt leider nichts. mach morgen weiter.
lg
Titel: Aw: MQTT protocol version 5
Beitrag von: Nobbynews am 23 Juni 2026, 21:27:12
Zitat von: satprofi am 23 Juni 2026, 21:18:51bringt leider nichts. mach morgen weiter.
Hast Du die Einstellung für v5 wieder zurückgedreht?
Steht bei mir auf v4, also Standard.
Titel: Aw: MQTT protocol version 5
Beitrag von: tostmann am 23 Juni 2026, 22:26:00
Nobbynews hat den Kern schon getroffen: das ist kein Zigbee-Problem, sondern reine MQTT-Protokoll-Sache. Das retention in Zigbee2MQTT ist ein MQTT-v5-Feature (Message-Expiry, in Sekunden). Sobald irgendwo in deiner configuration.yaml ein retention: steht, verlangt Z2M zwingend version: 5 — und verweigert sonst beim Start mit genau dieser Meldung.

Der Haken: FHEMs MQTT2_SERVER spricht nur MQTT 3.1.1 (= Protokoll-Version 4), kein v5. Deshalb kommt bei version: 5 sofort "Connection refused: Unacceptable protocol version" — der Broker lehnt v5 schlicht ab. Du kannst also nicht nach oben auf v5 ausweichen, du musst das retention raus.

Konkret in der .../zigbee2mqtt/configuration.yaml:

mqtt:
  server: mqtt://<dein-fhem-host>:1883
  version: 4        # oder ganz weglassen, 4 ist Default
  # KEIN  retention:  hier

Und weiter unten bei den devices: ebenfalls nachsehen, ob bei einzelnen Geraeten ein retention: gesetzt ist — auch die raus. Danach startet Z2M wieder sauber gegen den MQTT2_SERVER.

Der schlagartige Ausfall um 16:38 kommt vermutlich von einem Z2M-Auto-Update, das die Pruefung verschaerft hat (frueher Warnung, jetzt harter Start-Abbruch). Wenn du magst, poste mal die ersten Zeilen aus dem Z2M-Start-Log und deinen mqtt:-Block aus der config — dann sieht man, woher der retention-Eintrag ueberhaupt kam (global oder ein einzelnes Geraet).
Titel: Aw: MQTT protocol version 5
Beitrag von: satprofi am 23 Juni 2026, 22:37:25
hallo.
komischerweise rennt das jetzt wieder, in der yaml fehlen die retention jetzt. aber version trägt sich selbst ein. unter den logfiles sehe ich komische files, migration 1to2, migration 2to3 bis migration 4to5. in den files sind links zu einem z2m forumsthread.
wie stellt man jetzt dauerhaft die retention ab ?
Titel: Aw: MQTT protocol version 5
Beitrag von: tostmann am 23 Juni 2026, 22:59:36
Freut mich, dass es wieder läuft. Die eigentlich spannende Frage ist ja: wo kam das retention überhaupt her — von Hand hast du das vermutlich nicht bei jedem Gerät eingetragen.

retention ist keine Einstellung, die Zigbee2MQTT beim Pairing automatisch vom Gerät übernimmt (die Geräte-Definitionen setzen das nicht). Es ist eine reine Z2M-eigene Pro-Gerät-Option. Damit bleiben zwei realistische Quellen, und welche es bei dir ist, verrät ein Blick in die configuration.yaml:

1. Ein GLOBALER Block device_options: mit retention: ... — der gilt dann automatisch für ALLE Geräte. Das würde dein ,,steht bei jedem Gerät" am besten erklären.

2. Pro Gerät unter devices: (z.B. vom Z2M-Frontend gesetzt: Gerät → ,,Settings (specific)" → Feld ,,Retention"). Wenn du dort mal einen Wert eingetragen/gespeichert hast, schreibt Z2M ihn in die YAML.

Magst du mal nachsehen, ob bei dir ein device_options:-Block mit retention existiert, und welchen Wert es hatte? Dann wissen wir die Quelle sicher. Steht es global, reicht das eine Löschen dort — und es kommt auch nicht durch erneutes Pairing zurück.

Zwei Dinge zum Einordnen:

- Dass sich version: 4 von selbst einträgt, ist normal: Z2M ergänzt beim Start fehlende Standardwerte in der YAML. Harmlos, das ist der Default und muss so bleiben.

- retention (MQTT-v5-Message-Expiry, dein Problem) nicht verwechseln mit retain (MQTT ,,retained messages", schon in v3.1.1). retain: true ist mit MQTT2_SERVER völlig in Ordnung und darf bleiben — nur retention muss raus.
Titel: Aw: MQTT protocol version 5
Beitrag von: satprofi am 23 Juni 2026, 23:16:57
also retention ist ein eingabefeld bei allen devices. kann mich nicht erinnern jemals dort was eingetragen zu haben. meine yaml ist spartanisch, habe nichts spezielles eingetragen. auch habe uch keine autoupdates aktiv. gibt eh nur version 2, und das seit 2024
Titel: Aw: MQTT protocol version 5
Beitrag von: tostmann am 23 Juni 2026, 23:25:16
Was wirklich gesetzt war, siehst du am schnellsten direkt in der Datei statt im Frontend. In der configuration.yaml, in der du gerade retention entfernt hast:

grep -n retention configuration.yaml

Kommt da nichts mehr zurück, ist alles sauber (passt zu ,,läuft jetzt") und es war ein einzelner Eintrag, kein Wert pro Gerät. Kommt noch eine Zeile — typischerweise in einem globalen device_options:-Block — dann war genau das die Quelle, die auf alle Geräte durchschlug und deinen Eindruck ,,bei allen devices" erklärt.
Titel: Aw: MQTT protocol version 5
Beitrag von: passibe am 23 Juni 2026, 23:54:23
Doku lesen hilft ...



Es gibt 2x version in der z2m-Konfiguration.

Einmal das "top level" version, einmal das mqtt: untergeordnete version:
version: 5
[...]
mqtt:
    version: 4
kann natürlich auch in umgekehrter Reihenfolge sein (so ist es bei mir, das "top level" version steht ganz unten):
[...]
mqtt:
    version: 4
[...]
version: 5

Was jetzt hier für Verwirrung sorgen kann, ist, dass das mqtt: untergeordnete version optional ist (siehe unten). Es kann also gut sein, dass eure bzw. @satprofi deine, configuration.yaml das gar nicht enthält! (Meine enthält das auch nicht). Deshalb hast du vermutlich die ganze Zeit das falsche version bearbeitet. Dass das immer zurückspringt auf 5 ist auch nicht weiter verwunderlich, denn:

Dieses "top level" version betrifft die Version der configuration.yaml selbst bzw. des Konfigurationsschemas. Das ist alles hier erklärt: https://www.zigbee2mqtt.io/guide/configuration/configuration-update.html
Wichtig ist dort auch der rote Kasten:
ZitatDo not edit the version setting manually. If you do, you run the risk of corrupting your configuration.yaml, the migration system may no longer work properly.
Weil sich das Konfigurationsschema mal ändern kann, gibt es dann auch diese migration-Dateien (wird auch unter o.g. link erklärt).

Weder die migration-Dateien, noch das "top level" version haben aber irgendetwas mit der MQTT-Version zu tun.



Nachdem das jetzt hoffentlich geklärt ist, zum ursprünglichen Problem:
Wenn ich mich recht erinnere und diesem Issue (https://github.com/Koenkk/zigbee2mqtt/issues/26136) hier traue, hängt das mit dem Update auf eine Version neuer als 2.1.0 zusammen (wurde aber schon am 01. Februar 2025 veröffentlicht, vielleicht solltest du auch mal öfter updaten).
Dort wurde retention wahrscheinlich zu allen Geräten hinzugefügt. Ist retention hinzugefügt, aber nicht (https://github.com/Koenkk/zigbee2mqtt/releases/tag/2.1.0)mqtt:
[...]
    version: 5
eingetragen, erscheint genau die Fehlermeldung die du heute hattest (habe es grade bei mir getestet).

Das sagt auch die MQTT-Dokumentationsseite (https://www.zigbee2mqtt.io/guide/configuration/mqtt.html) selbst, dass man die MQTT-Version manuell auf 5 stellen muss, wenn man retention aktiviert hat (beachte – zu oben – "Optional"!):
mqtt:
[...]
    # Optional: MQTT protocol version (default: 4), set this to 5 if you
    # use the 'retention' device specific configuration
    version: 4

Dass FHEM MQTT Version 5 nicht unterstützt unterstützt ist für die Fehlermeldung, die du heute hattest, übrigens völlig egal! Es geht in der Fehlermeldung allein um eine falsche configuration.yaml, nämlich dass ein irgendwo aktiviertes retention im Widerspruch steht zum fehlenden version: 5 unter mqtt:.
Denn erst wenn man version: 5 hinzufügt, wird offenbar, dass FHEM kein MQTT Version 5 unterstützt. Dann gibt es nämlich auch eine ganz andere Fehlermeldung:
[2026-06-23 23:36:26] info: z2m: Connecting to MQTT server at mqtt://fhem
[2026-06-23 23:36:26] error: z2m: MQTT failed to connect, exiting... (Connection refused: Unacceptable protocol version)

Deshalb musst du hier, wie auch schon von den anderen geraten, eigentlich nichts weiter tun, als überall, wo du retention siehst, retention zu löschen. An mqtt: brauchst du eigentlich gar nicht rum zu spielen, weil – solange da nicht version: 5 steht – ohnehin die für FHEM passende Version 4 der Standardwert ist.

Automatisch bzw. wie durch Zauberhand aktiviert sich retention übrigens nicht wieder; zumindest ist mir das seit dem Update auf 2.1.0, was inzwischen auch schon über ein Jahr her ist, nicht passiert und ich habe davon auch noch nicht gehört bzw. jetzt auch nichts in den GitHub issues gefunden. Du musst jetzt also nichts weiter tun, damit das nicht nochmal auftritt.

Wenn du nach dem Löschen von retention immer noch Probleme hast, dann bitte – und das auch für zukünftige Threads beherzigen – einfach mal deine configuration.yaml posten (ggfs. Passwörter und sonst unnötige Sachen entfernen).



Dann noch zu @tostmann: Bitte nächtes Mal ein bisschen aufpassen mit den KI-Antworten.

Das hier
Zitat von: tostmann am 23 Juni 2026, 22:59:36- Dass sich version: 4 von selbst einträgt, ist normal: Z2M ergänzt beim Start fehlende Standardwerte in der YAML. Harmlos, das ist der Default und muss so bleiben.
ist nämlich nicht zutreffend:
Titel: Aw: MQTT protocol version 5
Beitrag von: satprofi am 24 Juni 2026, 08:55:47
hallo.
danke fur die Erklärungen. habe z2m nur nach vorlage für linux installiert, und da nur meinen mqtt server eingetragen. alles andere befüllte sich alkein.
das retention stand gestern bei allen tuyas
homeassistant:
  enabled: false
frontend:
  enabled: true
mqtt:
  base_topic: zigbee2mqtt
  server: mqtt://192.168.0.52
  keepalive: 60
advanced:
  network_key:
    - 124
    - 166
    - 91
    - 77
    - 205
    - 163
    - 133
    - 219
    - 38
    - 167
    - 188
    - 80
    - 23
    - 6
    - 185
    - 24
  pan_id: 63310
  ext_pan_id:
    - 135
    - 45
    - 111
    - 95
    - 187
    - 174
    - 241
    - 225
  transmit_power: 53
  log_level: error
devices:
  '0x8c73dafffecf1824':
    friendly_name: SNZB-06P_Sonoff
    no_occupancy_since:
      - 20
    disable_automatic_update_check: false
  '0xa4c1383e3a61b8da':
    friendly_name: Zigbee_extender
    description: Router_GigaPro4k
  '0xa4c138716aefda54':
    friendly_name: TuyaMotion_3
    description: Tür_Waschküche
    homeassistant:
      name: TuyaMotion_3
    throttle: 10
  '0xa4c138cbece33f18':
    friendly_name: TuyaMotion_2
    description: Büro
    throttle: 10
    homeassistant:
      name: TuyaMotion_2
  '0xa4c1380f26b8259e':
    friendly_name: TuyaMotion_4
    description: Speis
    throttle: 10
    homeassistant:
      name: TuyaMotion_4
  '0xa4c1382604b7c8b8':
    friendly_name: TuyaMotion_5
    description: TuyaMotion_5
version: 5
Titel: Aw: MQTT protocol version 5
Beitrag von: passibe am 24 Juni 2026, 13:45:03
Das sieht doch gut aus! Ab jetzt dürfte dann alles laufen
Titel: Aw: MQTT protocol version 5
Beitrag von: satprofi am 24 Juni 2026, 13:55:27
ja, aber warum kamen die einträge dazu? bei allen 4 tuyas stand das drinn, ob es ewig drin stand weiss ich nicht. mal sehen wie lange das wieder so bleibt. meine nächsten zigbees sind am zulauf, jetzt sind ja amazon prime days.
Titel: Aw: MQTT protocol version 5
Beitrag von: passibe am 24 Juni 2026, 17:33:52
Hmm, sicher, dass es kein Update war? Ist schon komisch, wie gesagt, bei mir kam das (meine ich) jedenfalls seit diesem Update vor ca. einem Jahr, nicht plötzlich dazu.

Das ist auch nicht direkt nach dem Hinzufügen der Tuyas zum Netzwerk passiert, oder?
Titel: Aw: MQTT protocol version 5
Beitrag von: satprofi am 24 Juni 2026, 20:46:45
nein, die liefen 14 tage sauber. heute auch 2 neue devices rapid hinzugefügt.