FHEM Forum

FHEM - Hardware => Server - Linux => Thema gestartet von: betateilchen am 15 Oktober 2026, 14:39:49

Titel: (erledigt) MQTT error: write EPIPE (beim Starten von zigbee2mqtt)
Beitrag von: betateilchen am 15 Oktober 2026, 14:39:49
Heute Vormittag habe ich festgestellt, dass ich keine zigbee Geräte mehr schalten kann.
Nach einiger Suche habe ich festgestellt, dass mein zigbee2mqtt nicht mehr erreichbar ist.

Beim Versuch, z2m manuell zu starten, passiert folgendes:

udo@z2m:/opt/zigbee2mqtt$ node index.js
Starting Zigbee2MQTT without watchdog.
{"level":"error","message":"z2m: MQTT error: write EPIPE","timestamp":"2026-10-15 12:29:38"}
{"level":"error","message":"z2m: MQTT error: write EPIPE","timestamp":"2026-10-15 12:29:40"}

Kann jemand etwas mit der Meldung anfangen?


Die einzige Änderung, die ich heute gemacht hatte, war das Update der Proxmox Instanz heute Morgen gegen die neuen Pakete von Proxmox.
Titel: Aw: MQTT error: write EPIPE (beim Starten von zigbee2mqtt)
Beitrag von: TomLee am 15 Oktober 2026, 15:31:06
Folgendes bekomme ich vorgeschlagen zu prüfen:

EPIPE heißt: die TCP-Verbindung zum Broker steht, aber der Broker legt sofort wieder auf. Netz/Proxmox-Firewall würde ich damit eher ausschließen, das sähe nach ECONNREFUSED oder Timeout aus.

Mein erster Verdacht ist eine doppelte Client-ID. Die muss am Broker eindeutig sein. Kommt ein zweiter Client mit derselben ID, wirft der Broker den ersten kommentarlos raus. Laufen zwei z2m-Instanzen (z.B. der systemd-Dienst und dein manuelles node index.js), kicken die sich gegenseitig im Sekundentakt. Das passt zu deinem Log (12:29:38, 12:29:40).
systemctl status zigbee2mqtt
ps aux | grep -i zigbee

Sonst:

Gegentest: z2m stoppen und aus dem z2m-Container mit den Daten aus der configuration.yaml verbinden, mit derselben Client-ID:
mosquitto_sub -d -h <server> -p <port> -u <user> -P <pw> -i <client_id> -t '#'
Titel: Aw: MQTT error: write EPIPE (beim Starten von zigbee2mqtt)
Beitrag von: betateilchen am 15 Oktober 2026, 16:38:30
Danke, die meisten Vorschläge kann ich aber sicher ausschließen.


Der entscheidende Hinweis war die Frage nach dem Log - danke dafür!
Gedanklich bin ich nicht davon ausgegangen, dass z2m überhaupt bis zum mqtt server durchkommt, deshalb hatte ich da noch nicht nachgeschaut.

Im Log des mqtt server steht beim Verbindungsversuch:

nanomq[689]: 2026-10-15 16:27:19 [709] WARN  /home/runner/work/nanomq/nanomq/nng/src/sp/protocol/mqtt/mqtt_parser.c:1359 nano_msg_notify: mqttjs_3800e36e online!
nanomq[689]: 2026-10-15 16:27:19 [710] ERROR /home/runner/work/nanomq/nanomq/nng/src/sp/transport/mqtt/broker_tcp.c:691 tcptran_pipe_recv_cb: Size of packet exceeds limitation: 0x95
nanomq[689]: 2026-10-15 16:27:19 [710] WARN  /home/runner/work/nanomq/nanomq/nng/src/sp/transport/mqtt/broker_tcp.c:895 tcptran_pipe_recv_cb: tcptran_pipe_recv_cb: recv_error rv: 149
nanomq[689]: 2026-10-15 16:27:19 [710] WARN  /home/runner/work/nanomq/nanomq/nng/src/sp/protocol/mqtt/mqtt_parser.c:1363 nano_msg_notify: mqttjs_3800e36e offline!
nanomq[689]: 2026-10-15 16:27:19 [709] INFO  /home/runner/work/nanomq/nanomq/nng/src/supplemental/nanolib/mqtt_db.c:959 delete_dbtree_node: Delete retain msg at node: [#]

Also habe ich mich auf die Suche nach dem Parameter für die packet-size gemacht und den Wert von 16kB (default) auf 256kB erhöht.

Und schon funktioniert z2m wieder.

Danke für den Schubs in die richtige Richtung.