Configurazione e risoluzione dei problemi Zigbee
Descrizione
Per utilizzare dispositivi Zigbee con un controllore Wiren Board, occorrono:
- Modulo di espansione WBE2R-R-ZIGBEE v.2 (WBE2R-R-ZIGBEE v.1) oppure qualsiasi chiavetta USB Zigbee.
- Software aggiuntivo:
- zigbee2mqtt — un bridge per controllare i dispositivi Zigbee tramite MQTT, dispositivi supportati.
- wb-mqtt-zigbee — converte i topic di zigbee2mqtt secondo le Convenzioni MQTT di Wiren Board.
Le istruzioni di installazione sono riportate di seguito.
Copiare i comandi da queste istruzioni, incollarli nella console del controllore utilizzando Shift+Insert ed eseguirli premendo Enter. Se si verifica un errore, leggere attentamente l’output per istruzioni e suggerimenti.
Installazione e configurazione di zigbee2mqtt
Procedura di installazione
Il pacchetto zigbee2mqtt nella release stabile potrebbe essere meno aggiornato della versione upstream. La versione più recente è sempre disponibile nella release testing.
Si consiglia di installare un pacchetto precompilato dal nostro repository. Sono disponibili due pacchetti:
- zigbee2mqtt — la versione più recente; consigliata.
- zigbee2mqtt-1.18.1 — per gli adattatori WBE2R-R-ZIGBEE v.1 meno recenti, prodotti prima di gennaio 2022. Tabella delle revisioni.
Per installare la versione più recente, eseguire:
apt update && apt install zigbee2mqtt
Per installare la versione 1.18.1, necessaria per le revisioni Zigbee v1 da v1.1A a v1.2D, eseguire:
apt update && apt install zigbee2mqtt-1.18.1
Per installare la versione 2.1.1 per le revisioni Zigbee v1 v1.2D/2, v1.2E e v1.2F, eseguire:
apt update && apt install zigbee2mqtt-2.1.1
In alternativa, compilare dal codice sorgente seguendo le istruzioni.
Quindi configurare il bridge; vedere Configurazione.
Configurazione dell’avvio automatico
Dopo l’installazione del pacchetto, zigbee2mqtt si avvia automaticamente all’avvio del controllore. Utilizzare questi comandi per disabilitare o abilitare l’avvio automatico:
systemctl disable zigbee2mqtt
systemctl enable zigbee2mqtt
Configurazione
Se si utilizza il modulo di espansione WBE2R-R-ZIGBEE, verificare che nell’interfaccia web sia selezionato il modulo corretto Settings → Configs → Hardware Modules Configuration.
Nome della porta:
- quando si utilizza il modulo di espansione WBE2R-R-ZIGBEE, la porta si chiama
/dev/ttyMODx, dove x è il numero della porta; - quando si utilizza una chiavetta USB, la porta si chiama
/dev/ttyUSBx, dove x è il numero della porta, a partire da zero.
Configurazione:
- Aprire il file di configurazione per modificarlo (riferimento completo dei parametri in inglese):
nano /mnt/data/root/zigbee2mqtt/data/configuration.yaml- Il file di configurazione predefinito è il seguente:
homeassistant: false permit_join: false mqtt: base_topic: zigbee2mqtt server: 'mqtt://localhost' serial: port: /dev/ttyMOD4 adapter: zstack advanced: rtscts: false last_seen: epoch channel: 11 pan_id: GENERATE network_key: GENERATE ota: image_block_response_delay: 50 default_maximum_data_size: 60
- Modificare i parametri richiesti:
- Per il parametro port specificare il connettore in cui il modulo è fisicamente installato. Se è già specificata la porta corretta, lasciare il file invariato.
- Dopo il primo avvio del bridge, i valori sostituiscono GENERATE; non modificarli . Se vengono modificati, aggiornare o eliminare il backup.
- Fare clic su Ctrl+S per salvare le modifiche, Ctrl+X — per uscire dall’editor.
- Riavviare il servizio
zigbee2mqtt:systemctl restart zigbee2mqtt
È ora possibile installare il convertitore: i dispositivi Zigbee compariranno nella scheda Devices dell’interfaccia web standard del controllore.
Possibili problemi:
- Se nell’interfaccia web si seleziona il numero errato del connettore per il modulo di espansione Zigbee, il log mostrerà questo errore: z2m: Error: Error: Input/output error setting custom baud rate of 115200
Esempio di log:
# journalctl -u zigbee2mqtt --no-pager -n 30
May 12 13:53:25 wirenboard-AQLNJER2 systemd[1]: Started zigbee2mqtt.
May 12 13:53:25 wirenboard-AQLNJER2 npm[27834]: > zigbee2mqtt@2.1.1 start
May 12 13:53:25 wirenboard-AQLNJER2 npm[27834]: > node index.js
May 12 13:53:26 wirenboard-AQLNJER2 npm[27846]: Starting Zigbee2MQTT without watchdog.
May 12 13:53:32 wirenboard-AQLNJER2 npm[27846]: [2025-05-12 13:53:32] info: z2m: Logging to console, file (filename: log.log)
May 12 13:53:32 wirenboard-AQLNJER2 npm[27846]: [2025-05-12 13:53:32] info: z2m: Starting Zigbee2MQTT version 2.1.1 (commit #unknown)
May 12 13:53:32 wirenboard-AQLNJER2 npm[27846]: [2025-05-12 13:53:32] info: z2m: Starting zigbee-herdsman (3.2.5)
May 12 13:53:32 wirenboard-AQLNJER2 npm[27846]: [2025-05-12 13:53:32] info: zh:zstack:znp: Opening SerialPort with {"path":"/dev/ttyMOD3","baudRate":115200,"rtscts":false,"autoOpen":false}
May 12 13:53:32 wirenboard-AQLNJER2 npm[27846]: [2025-05-12 13:53:32] error: z2m: Error while starting zigbee-herdsman
May 12 13:53:32 wirenboard-AQLNJER2 npm[27846]: [2025-05-12 13:53:32] error: z2m: Failed to start zigbee-herdsman
May 12 13:53:32 wirenboard-AQLNJER2 npm[27846]: [2025-05-12 13:53:32] error: z2m: Check https://www.zigbee2mqtt.io/guide/installation/20_zigbee2mqtt-fails-to-start_crashes-runtime.html for possible solutions
May 12 13:53:32 wirenboard-AQLNJER2 npm[27846]: [2025-05-12 13:53:32] error: z2m: Exiting...
May 12 13:53:32 wirenboard-AQLNJER2 npm[27846]: [2025-05-12 13:53:32] error: z2m: Error: Error: Input/output error setting custom baud rate of 115200
May 12 13:53:32 wirenboard-AQLNJER2 systemd[1]: zigbee2mqtt.service: Main process exited, code=exited, status=1/FAILURE
May 12 13:53:32 wirenboard-AQLNJER2 systemd[1]: zigbee2mqtt.service: Failed with result 'exit-code'.
May 12 13:53:32 wirenboard-AQLNJER2 systemd[1]: zigbee2mqtt.service: Consumed 10.578s CPU time.
May 12 13:54:22 wirenboard-AQLNJER2 systemd[1]: Stopped zigbee2mqtt.
May 12 13:54:22 wirenboard-AQLNJER2 systemd[1]: zigbee2mqtt.service: Consumed 10.578s CPU time.
Interfaccia web (frontend)

L’interfaccia web di zigbee2mqtt viene eseguita su una porta separata e può rappresentare un rischio per la sicurezza: non abilitarla se non viene utilizzata; i dispositivi possono essere aggiunti e rimossi tramite il nostro convertitore.
Disponibile nella release testing L’accesso all’interfaccia web può essere protetto dall’autenticazione degli utenti del controllore. Vedere Servizi di terze parti nell’interfaccia web di Wiren Board.
Se è necessaria l’interfaccia web nativa di zigbee2mqtt, abilitarla nel file delle impostazioni:
- Aprire il file
configuration.yamlper modificarlo:nano /mnt/data/root/zigbee2mqtt/data/configuration.yaml
- Aggiungere questo blocco:
frontend: enabled: true port: 8081 host: 0.0.0.0
- Salvare e chiudere il file.
- Riavviare il servizio
zigbee2mqtt:systemctl restart zigbee2mqtt
L’interfaccia web del bridge zigbee2mqtt sarà disponibile all’indirizzo http://wb-ip-address:PORT. Ad esempio, se l’indirizzo IP del controllore è 192.168.42.1e la porta configurata è 8081, l’interfaccia web sarà disponibile all’indirizzo http://192.168.42.1:8081.
Accesso tramite cloud
È possibile accedere all’interfaccia web di zigbee2mqtt anche dall’esterno della rete locale. Se il controllore è connesso a Wiren Board Cloud, fare clic su Services nella pagina del controllore e aggiungere Zigbee2MQTT. Apparirà un pulsante che apre l’interfaccia da qualsiasi dispositivo connesso al proprio account cloud.
Verifica dello stato
Esistono due modi per verificare se z2m si è avviato correttamente:
1) Verificare brevemente lo stato operativo.
Il seguente è un output normale senza errori:
# systemctl status zigbee2mqtt
● zigbee2mqtt.service - zigbee2mqtt
Loaded: loaded (/lib/systemd/system/zigbee2mqtt.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2025-03-06 10:23:02 UTC; 1s ago
Main PID: 630240 (npm start)
Tasks: 26 (limit: 2340)
Memory: 34.0M
CPU: 2.087s
CGroup: /system.slice/zigbee2mqtt.service
├─630240 npm start
├─630262 sh -c node index.js
└─630263 node index.js
Mar 06 10:23:02 wirenboard-AQLNJER2 systemd[1]: Started zigbee2mqtt.
Mar 06 10:23:03 wirenboard-AQLNJER2 npm[630240]: > zigbee2mqtt@2.1.1 start
Mar 06 10:23:03 wirenboard-AQLNJER2 npm[630240]: > node index.js
Osservare la riga Active: active (running) since ... e l’assenza di errori o avvisi.
Se nel passaggio precedente è stato specificato un numero errato del connettore del modulo, l’output sarà simile al seguente:
# systemctl status zigbee2mqtt
● zigbee2mqtt.service - zigbee2mqtt
Loaded: loaded (/lib/systemd/system/zigbee2mqtt.service; enabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: exit-code) since Thu 2025-03-06 10:19:33 UTC; 5s ago
Main PID: 628249 (code=exited, status=1/FAILURE)
Tasks: 0 (limit: 2340)
Memory: 0B
CPU: 0
CGroup: /system.slice/zigbee2mqtt.service
La riga PID sopra indica un errore: Main PID: 628249 (code=exited, status=1/FAILURE).
2) Esaminare in dettaglio il log di zigbee2mqtt.
# journalctl -u zigbee2mqtt --no-pager -n 30
-- Journal begins at Tue 2025-03-04 16:14:09 UTC. --
Mar 06 14:17:00 wirenboard-AQLNJER2 npm[27126]: [2025-03-06 14:17:00] error: z2m: Exiting...
Mar 06 14:17:01 wirenboard-AQLNJER2 npm[27126]: [2025-03-06 14:17:01] error: z2m: Error: Failed to connect to the adapter (Error: SRSP - SYS - ping after 6000ms)
Mar 06 14:17:01 wirenboard-AQLNJER2 npm[27126]: at ZStackAdapter.start (/mnt/data/root/zigbee2mqtt/node_modules/.pnpm/zigbee-herdsman@3.2.5/node_modules/zigbee-herdsman/src/adapter/z-stack/adapter/zStackAdapter.ts:113:27)
Mar 06 14:17:01 wirenboard-AQLNJER2 npm[27126]: at Controller.start (/mnt/data/root/zigbee2mqtt/node_modules/.pnpm/zigbee-herdsman@3.2.5/node_modules/zigbee-herdsman/src/controller/controller.ts:136:29)
Mar 06 14:17:01 wirenboard-AQLNJER2 npm[27126]: at Zigbee.start (/mnt/data/root/zigbee2mqtt/lib/zigbee.ts:69:27)
Mar 06 14:17:01 wirenboard-AQLNJER2 npm[27126]: at Controller.start (/mnt/data/root/zigbee2mqtt/lib/controller.ts:142:13)
Mar 06 14:17:01 wirenboard-AQLNJER2 npm[27126]: at start (/mnt/data/root/zigbee2mqtt/index.js:161:5)
Mar 06 14:17:01 wirenboard-AQLNJER2 systemd[1]: zigbee2mqtt.service: Main process exited, code=exited, status=1/FAILURE
Mar 06 14:17:01 wirenboard-AQLNJER2 systemd[1]: zigbee2mqtt.service: Failed with result 'exit-code'.
Mar 06 14:17:01 wirenboard-AQLNJER2 systemd[1]: zigbee2mqtt.service: Consumed 14.449s CPU time.
Mar 06 14:18:19 wirenboard-AQLNJER2 systemd[1]: Stopped zigbee2mqtt.
...
I problemi e gli errori di avvio possono impedire gli avvii successivi del servizio. In questo caso, il comando seguente può azzerare gli errori:
# systemctl reset-failed zigbee2mqtt.service
Ad esempio, può essere utile per il seguente errore dopo la modifica del numero della porta nelle impostazioni di z2m:
# systemctl restart zigbee2mqtt
Job for zigbee2mqtt.service failed because the control process exited with error code.
See "systemctl status zigbee2mqtt.service" and "journalctl -xe" for details.
# systemctl reset-failed zigbee2mqtt.service
# systemctl restart zigbee2mqtt
Aggiornamento
Per aggiornare zigbee2mqtt alla versione più recente, aggiornare il software del controllore seguendo le istruzioni. Tutte le impostazioni e i dispositivi associati verranno conservati.
Se si dispone di un adattatore meno recente WBE2R-R-ZIGBEE v.1prodotto prima di gennaio 2022, la nuova versione non funzionerà. Sono disponibili tre opzioni:
- Programmare l’adattatore meno recente con un firmware più recente, istruzioni.
- Installare la versione del pacchetto compatibile con questi adattatori:
apt install zigbee2mqtt-1.18.1
- Sostituire l’adattatore con WBE2R-R-ZIGBEE v.2 oppure utilizzare una chiavetta USB supportata.
Impostazione della potenza di trasmissione
La potenza di trasmissione predefinita è 9 dBm. Per aumentarla (valori disponibili: 0…20 dBm):
- Aprire il file
configuration.yamlper modificarlo:nano /mnt/data/root/zigbee2mqtt/data/configuration.yaml
- Aggiungere al blocco
advanced:advanced: transmit_power: 20
- Salvare e chiudere il file.
- Riavviare il servizio
zigbee2mqtt:systemctl restart zigbee2mqtt
Convertitore wb-mqtt-zigbee
Disponibile dalla release wb-2606
Descrizione

wb-mqtt-zigbee è il nuovo convertitore che mappa i dati di zigbee2mqtt nei topic dei dispositivi virtuali. Visualizza i dispositivi Zigbee nell’interfaccia web del controllore Wiren Board e li controlla.
Il convertitore wb-mqtt-zigbee traduce in russo i nomi dei controlli dei dispositivi Zigbee utilizzando un proprio dizionario. Se il nome di un controllo rimane in inglese, non è ancora presente nel dizionario. Contattarci tramite il portale di assistenza tecnica, e aggiungeremo la traduzione in un aggiornamento futuro.
Funzionamento
Zigbee2mqtt si collega al coordinatore Zigbee, rileva i dispositivi e pubblica tutte le informazioni sul broker MQTT. Lo spazio dei nomi dei topic viene configurato nella configurazione di zigbee2mqtt (/mnt/data/root/zigbee2mqtt/data/configuration.yaml, parametro base_topic) e il valore predefinito è zigbee2mqtt. Il convertitore quindi:
- Si iscrive ai topic
zigbee2mqtt/e riceve lo stato del bridge, l’elenco dei dispositivi, i log e gli eventi. - Crea dispositivi WB virtuali in
/devices/— pubblicando i metadati (/meta) e i valori dei controlli secondo le convenzioni MQTT di WB. - Inoltra i comandi in senso inverso: quando un utente seleziona un valore da un elenco a discesa, sposta un cursore o aziona un interruttore nell’interfaccia web del controllore, il servizio riceve un comando da
/devices/.../one pubblica la richiesta corrispondente inzigbee2mqtt/bridge/request/....
Lo schema seguente mostra il flusso dei dati attraverso il broker MQTT (mosquitto): i topic di zigbee2mqtt a sinistra e quelli del controllore Wiren Board a destra. Le frecce sono bidirezionali: gli stati dei dispositivi fluiscono da sinistra a destra, i comandi da destra a sinistra.

Installazione
Attenzione: l’installazione del nuovo convertitore può compromettere gli script personalizzati wb-rules, soprattutto dove le regole utilizzavano il valore stringa ONe ora utilizzano il valore booleano 1 per un interruttore. wb-mqtt-zigbee viene installato automaticamente con il pacchetto zigbee2mqttse wb-zigbee2mqttnon era già installato. In caso contrario, installarlo con:
apt update && apt install wb-mqtt-zigbee
L’interfaccia web standard del controllore mostrerà quindi il dispositivo Zigbee2MQTT nella scheda Devices.
Aggiunta di dispositivi

I dispositivi possono essere aggiunti singolarmente o insieme. Per aggiungere nuovi dispositivi:
- Aprire l’interfaccia web del controllore e selezionare la scheda Devices.
- Individuare il widget del dispositivo Zigbee2MQTT e verificarne lo stato nel campo State. Deve indicare online. Se zigbee2mqtt è appena stato installato, attendere un paio di minuti.
- Attivare l’interruttore Permit join.
- Seguire le istruzioni del dispositivo Zigbee: in genere, tenere premuto il pulsante pair per alcuni secondi e attendere che l’indicatore lampeggi.
- Durante l’aggiunta di un dispositivo, il campo Last joined del widget Zigbee2MQTT mostra l’indirizzo IEEE del dispositivo (ad esempio 0xa4c1385da71ff53c), e il numero di dispositivi aumenta di uno per ogni dispositivo aggiunto.
- Ripetere i passaggi 4 e 5 per ogni dispositivo Zigbee.
- Terminare l’aggiunta dei dispositivi disabilitando Permit join.
Modifica di friendly_name
friendly_name è un nome del dispositivo definito dall’utente. Mantenere quello predefinito o impostarne uno personalizzato:
- Aprire il file di configurazione per modificarlo:
nano /mnt/data/root/zigbee2mqtt/data/configuration.yaml
- Individuare, nella sezione devices il proprio dispositivo.
- Variazione friendly_name.
- Salvare il file di configurazione e riavviare il servizio:
systemctl restart zigbee2mqtt
- Nella scheda Devices dovrebbe comparire un dispositivo con il nome specificato.
- Rimuovere il widget con il vecchio nome facendo clic sull’icona del cestino nell’intestazione.
Il nuovo nome deve essere univoco per ciascun dispositivo, non deve contenere una barra obliqua / e deve rispettare i requisiti del parametro e Convenzioni MQTT di Wiren Board.
- Modifica di friendly_name
-
Widget del dispositivo con friendly_name predefinito
-
Modifica di friendly_name nel file di configurazione
-
Widget del dispositivo con il nuovo friendly_name
Controllo di un dispositivo

I dispositivi si azionano mediante controlli standard: interruttori o elenchi a discesa.
Rimozione di dispositivi
- Verificare che, nel widget del dispositivo Zigbee2MQTT , l’interruttore Permit join sia disattivato.
- Disassociare il dispositivo dal coordinatore. In genere è necessario tenere premuto il pulsante di associazione per 5 secondi; consultare la documentazione del dispositivo.
- Verificare che, nel dispositivo Zigbee2MQTT del widget , il campo Last removed mostri il nome del dispositivo da rimuovere.
- Rimuovere dall’interfaccia web il widget del dispositivo Zigbee disconnesso facendo clic sull’icona del cestino nell’intestazione.
-
Dispositivo rimosso più recentemente
-
Rimozione del widget di un dispositivo Zigbee
Traduzioni dei canali dei dispositivi
Disponibile dalla release wb-2609 I nomi dei canali dei dispositivi Zigbee vengono visualizzati nella lingua selezionata dell’interfaccia web.
Modello dispositivo
Disponibile dalla release wb-2609 Per i nuovi dispositivi, il modello viene ora mostrato nel titolo della scheda. I dispositivi Zigbee2MQTT hanno anche un canale Model.
Risoluzione dei problemi
Se zigbee2mqtt non funziona correttamente, verificare lo stato del servizio e i log dettagliati. Per eseguire i comandi, collegarsi al controllore tramite SSH.
Per visualizzare lo stato corrente e gli ultimi messaggi del log, eseguire:
# systemctl status zigbee2mqtt
● zigbee2mqtt.service - zigbee2mqtt
Loaded: loaded (/lib/systemd/system/zigbee2mqtt.service; enabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: exit-code) since Fri 2022-05-13 10:06:04 +04; 3s ago
Process: 25986 ExecStart=/usr/bin/npm start (code=exited, status=1/FAILURE)
Main PID: 25986 (code=exited, status=1/FAILURE)
May 13 10:06:04 wirenboard-AYXIHFQ6 systemd[1]: zigbee2mqtt.service: Main process exited, code=exited, status=1/FAILURE
May 13 10:06:04 wirenboard-AYXIHFQ6 systemd[1]: zigbee2mqtt.service: Unit entered failed state.
May 13 10:06:04 wirenboard-AYXIHFQ6 systemd[1]: zigbee2mqtt.service: Failed with result 'exit-code'.


Spesso il passaggio precedente rivela un problema senza identificarne la causa. In tal caso, esaminare i log:
- Arrestare il servizio:
systemctl stop zigbee2mqtt
- Passare alla directory di zigbee2mqtt:
cd /mnt/data/root/zigbee2mqtt/
- Avviare manualmente zigbee2mqtt, stampando tutti i messaggi nella console, con
npm start:# npm start > zigbee2mqtt@1.18.1 start /mnt/data/root/zigbee2mqtt > node index.js Zigbee2MQTT:info 2022-05-13 09:59:30: Logging to console and directory: '/mnt/data/root/zigbee2mqtt/data/log/2022-05-13.09-59-19' filename: log.txt Zigbee2MQTT:info 2022-05-13 09:59:30: Starting Zigbee2MQTT version 1.18.1 (commit #unknown) Zigbee2MQTT:info 2022-05-13 09:59:30: Starting zigbee-herdsman (0.13.71) Zigbee2MQTT:error 2022-05-13 09:59:39: Error while starting zigbee-herdsman Zigbee2MQTT:error 2022-05-13 09:59:39: Failed to start zigbee Zigbee2MQTT:error 2022-05-13 09:59:39: Exiting... Zigbee2MQTT:error 2022-05-13 09:59:39: Error: Error while opening serialport 'Error: Error: No such file or directory, cannot open /dev/ttyUSB01' at Znp.<anonymous> (/mnt/data/root/zigbee2mqtt/node_modules/zigbee-herdsman/dist/adapter/z-stack/znp/znp.js:136:32) at Generator.next (<anonymous>) at /mnt/data/root/zigbee2mqtt/node_modules/zigbee-herdsman/dist/adapter/z-stack/znp/znp.js:27:71 at new Promise (<anonymous>) at __awaiter (/mnt/data/root/zigbee2mqtt/node_modules/zigbee-herdsman/dist/adapter/z-stack/znp/znp.js:23:12) at SerialPort.<anonymous> (/mnt/data/root/zigbee2mqtt/node_modules/zigbee-herdsman/dist/adapter/z-stack/znp/znp.js:134:49) at SerialPort._error (/mnt/data/root/zigbee2mqtt/node_modules/zigbee-herdsman/node_modules/@serialport/stream/lib/index.js:198:14) at /mnt/data/root/zigbee2mqtt/node_modules/zigbee-herdsman/node_modules/@serialport/stream/lib/index.js:242:12 npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! zigbee2mqtt@1.18.1 start: `node index.js` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the zigbee2mqtt@1.18.1 start script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in: npm ERR! /root/.npm/_logs/2022-05-13T05_59_39_596Z-debug.log
- Qui è subito evidente che la porta configurata è errata.
- Dopo aver identificato e risolto il problema, avviare nuovamente il servizio:
systemctl start zigbee2mqtt
Se l’esecuzione di npm start avvia automaticamente il servizio con successo, arrestarlo premendo Ctrl+C.
A volte è necessario disabilitare l’avvio automatico del servizio. Utilizzare questi comandi per controllarlo:
systemctl disable zigbee2mqtt
systemctl enable zigbee2mqtt
Risoluzione dei problemi
La versione 1.18.1 non si avvia dopo un aggiornamento
La console mostra:
Zigbee2MQTT version 1.18.1. Does not accept version node. Zigbee2MQTT requires node version ^10 ^12 ^14 |
| ^15 || ^16, you are running v20.5.1!
Installare la versione precedente del pacchetto nodejs:
apt install nodejs=16.20.2-deb-1nodesource1
zigbee2mqtt segnala un errore del modulo
Determinare se il problema riguarda zigbee2mqtt, la sua configurazione o il modulo.
Verificare innanzitutto che il modulo sia configurato correttamente; vedere la documentazione del modulo di espansione.
Se la configurazione è corretta, testare il modulo con lo script di terze parti check-cc2652p:
- Scaricare lo script seguendo le istruzioni del repository.
- Arrestare zigbee2mqtt:
systemctl stop zigbee2mqtt
- Eseguire il comando, sostituendo la porta con la propria:
python3 ./check_cc2652p.py /dev/ttyMOD4
Se la risposta contiene informazioni sulla versione del firmware e del modulo, il modulo funziona. Il problema riguarda quindi zigbee2mqtt: una porta errata o un altro guasto.
Esempio di output riuscito:
# python3 ./check_cc2652p.py /dev/ttyMOD4
SYS Version response detected for CC2652:
Transport Version: 2
Product ID: 1 — CC2652 Zigbee Module.
Major Release: 2
Minor Release: 7
Maintenance Release: 1
Stack Version: 2.7.1 — Indicates Z-Stack compatibility.
Revision: 6bb1340100 — Firmware Revision Details.
Additional asynchronous data detected. Skipping:
Raw data: 81fe0345c4f2dd00ad
Problema durante l’aggiornamento di zigbee2mqtt alla versione 2.1.1
Se zigbee2mqtt non si avvia dopo l’aggiornamento alla versione 2.1.1, con i seguenti sintomi:
> zigbee2mqtt@2.1.1 start
> node index.js
node:internal/modules/cjs/loader:1051
throw err;
^
Error: Cannot find module 'semver'
Require stack:
- /mnt/data/root/zigbee2mqtt/index.js
at Module._resolveFilename (node:internal/modules/cjs/loader:1048:15)
provare i passaggi seguenti:
- Eseguire il backup del file
configuration.yaml. - Rimuovere la versione corrente:
apt remove zigbee2mqtt. - Nel file
configuration.yamlaggiungere il tipo di adattatoreadapteralla sezioneserial. Esempio per il nostro modulo:serial: port: /dev/ttyMOD1 adapter: zstack
- Reinstallare il pacchetto:
apt update && apt install zigbee2mqtt.
File di configurazione sostituito accidentalmente durante l’aggiornamento di zigbee2mqtt a 2.1.1
Durante l’aggiornamento di zigbee2mqtt a 2.1.1 da una versione precedente, il sistema chiede se installare un nuovo file di configurazione o mantenere quello precedente:
File configuration «/mnt/data/root/zigbee2mqtt/data/configuration.yaml»
==> Modified s since installation (by you or by a script).
==> The author of the package has supplied an updated version.
What should be done? The following options are available:
Y or I : install the version provided by the maintainer of the package
N or O : keep the installed at the current time version
D : show the differences between the versions
Z : start a shell command line to inspect the situation
By default the system keeps the current version file configuration. *** configuration.yaml (Y/I/N/O/D/Z) [by default N] ? y
Se è stata scelta accidentalmente la sostituzione del file e zigbee2mqtt non si avvia con un errore simile al seguente:
zh:adapter:zstack:manager: Configuration is not consistent with adapter state/backup!
zh:adapter:zstack:manager: - PAN ID: configured=43787, adapter=47905
zh:adapter:zstack:manager: - Extended PAN ID: configured=00124b0030d540fa, adapter=00124b0030d540fa
zh:adapter:zstack:manager: - Network Key: configured=d9bf90f96d74b793c1f136ecee3660cf, adapter=ab64f03813fd7cc36c6f3383b7d58ad9
zh:adapter:zstack:manager: - Channel List: configured=11, adapter=11
zh:adapter:zstack:manager: Please update configuration to prevent further issues.
zh:adapter:zstack:manager: If you wish to re-commission your network, please remove coordinator backup at /mnt/data/root/zigbee2mqtt/data/coordinator_backup.json.
zh:adapter:zstack:manager: Re-commissioning your network will require re-pairing of all devices!
z2m: Error while starting zigbee-herdsman
z2m: Failed to start zigbee-herdsman
ripristinare l’avvio e la configurazione eliminata come segue:
- Non eliminare il file
~/zigbee2mqtt/data/coordinator_backup.json. Eliminarlo renderà necessario associare nuovamente tutti i dispositivi. - Arrestare il servizio con
systemctl stop zigbee2mqtt. - Eseguire il backup della configurazione esistente:
cp ~/zigbee2mqtt/data/configuration.yaml ~/zigbee2mqtt/data/configuration.yaml-wb-backup
- Ripristinare la configurazione precedente:
cp ~/zigbee2mqtt/data/configuration.yaml.dpkg-old ~/zigbee2mqtt/data/configuration.yaml
- Verificare che il file specifichi il tipo di adattatore: deve contenere la riga
adapter: zstack. Se manca, aggiungerla alla sezioneserial. - Riavviare il servizio con
systemctl restart zigbee2mqtt.
zigbee2mqtt dovrebbe avviarsi utilizzando la configurazione esistente prima dell’aggiornamento.
Archivio di tutte le versioni (Pool)
Contiene tutti i pacchetti z2m, sia le build testing sia quelle rilasciate. Riporta anche le date di pubblicazione, che il repository normale non mostra. Queste aiutano a stabilire quando un errore o una funzione è stato introdotto nel sistema.
Cronologia di una versione specifica (ad es. 2.1.1)
Scopo: analisi degli incidenti e individuazione della data di rilascio di una particolare build.
Release ufficiale (Packages)
È l’elenco approvato dei pacchetti che un controllore (ad esempio WB7) vede tramite apt update. Un pacchetto viene incluso solo dopo i test e la registrazione della release ufficiale (ad esempio, ramo 2507).
Scopo: verificare quale versione di z2m è disponibile per un’installazione pulita o un aggiornamento sul controllore di un utente.
Convertitore precedente
- wb-zigbee2mqtt
Collegamenti utili
- Documentazione di zigbee2mqtt
- Utilizzo dei dispositivi Zigbee tramite Zigbee2mqtt e Node-RED
- Collegamento di dispositivi Zigbee a un controllore Wiren Board e scrittura di script wb-rules
- Compilazione di zigbee2mqtt dal codice sorgente
- Aggiornamenti locali OTA del firmware tramite zigbee2mqtt






