Wiren BoardDocumentazione
Documentazione · Italiano

Configurazione e risoluzione dei problemi Zigbee

revisione 108432

Descrizione

Per utilizzare dispositivi Zigbee con un controllore Wiren Board, occorrono:

  1. Modulo di espansione WBE2R-R-ZIGBEE v.2 (WBE2R-R-ZIGBEE v.1) oppure qualsiasi chiavetta USB Zigbee.
  2. Software aggiuntivo:

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.
  • Numerazione delle porte dei moduli di espansione (WB 6.7–8.4)
    Numerazione delle porte dei moduli di espansione (WB 6.7–8.4)
  • Numerazione delle porte dei moduli di espansione (WB 8.5, 8M)
    Numerazione delle porte dei moduli di espansione (WB 8.5, 8M)
  • Configurazione:

    1. 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
      
    2. 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.
    3. Fare clic su Ctrl+S per salvare le modifiche, Ctrl+X — per uscire dall’editor.
    4. 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)

    Illustrazione della configurazione e risoluzione dei problemi di Zigbee
    Interfaccia di zigbee2mqtt

    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:

    1. Aprire il file configuration.yaml per modificarlo:
      nano /mnt/data/root/zigbee2mqtt/data/configuration.yaml
      
    2. Aggiungere questo blocco:
      frontend:
        enabled: true
        port: 8081
        host: 0.0.0.0
      
    3. Salvare e chiudere il file.
    4. 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):

    1. Aprire il file configuration.yaml per modificarlo:
      nano /mnt/data/root/zigbee2mqtt/data/configuration.yaml
      
    2. Aggiungere al blocco advanced:
      advanced:
        transmit_power: 20
      
    3. Salvare e chiudere il file.
    4. Riavviare il servizio zigbee2mqtt:
      systemctl restart zigbee2mqtt
      


    Convertitore wb-mqtt-zigbee

    Disponibile dalla release wb-2606

    Descrizione

    Illustrazione della configurazione e risoluzione dei problemi di Zigbee
    Dispositivo Zigbee nella scheda Devices — l’intestazione mostra il friendly_name

    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:

    1. Si iscrive ai topic zigbee2mqtt/ e riceve lo stato del bridge, l’elenco dei dispositivi, i log e gli eventi.
    2. Crea dispositivi WB virtuali in /devices/ — pubblicando i metadati (/meta) e i valori dei controlli secondo le convenzioni MQTT di WB.
    3. 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/.../on e pubblica la richiesta corrispondente in zigbee2mqtt/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.

    Illustrazione della configurazione e risoluzione dei problemi di Zigbee
    Flusso dei dati attraverso il convertitore wb-mqtt-zigbee

    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

    Illustrazione della configurazione e risoluzione dei problemi di Zigbee
    Aggiunta di un dispositivo; dispositivo associato più recentemente '0xa4c1385da71ff53c'

    I dispositivi possono essere aggiunti singolarmente o insieme. Per aggiungere nuovi dispositivi:

    1. Aprire l’interfaccia web del controllore e selezionare la scheda Devices.
    2. 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.
    3. Attivare l’interruttore Permit join.
    4. Seguire le istruzioni del dispositivo Zigbee: in genere, tenere premuto il pulsante pair per alcuni secondi e attendere che l’indicatore lampeggi.
    5. 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.
    6. Ripetere i passaggi 4 e 5 per ogni dispositivo Zigbee.
    7. 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:

    1. Aprire il file di configurazione per modificarlo:
      nano /mnt/data/root/zigbee2mqtt/data/configuration.yaml
      
    2. Individuare, nella sezione devices il proprio dispositivo.
    3. Variazione friendly_name.
    4. Salvare il file di configurazione e riavviare il servizio:
      systemctl restart zigbee2mqtt
      
    5. Nella scheda Devices dovrebbe comparire un dispositivo con il nome specificato.
    6. 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.

    Controllo di un dispositivo

    Illustrazione della configurazione e risoluzione dei problemi di Zigbee
    Esempi di controlli del dispositivo: un interruttore e un elenco a discesa

    I dispositivi si azionano mediante controlli standard: interruttori o elenchi a discesa.

    Rimozione di dispositivi

    1. Verificare che, nel widget del dispositivo Zigbee2MQTT , l’interruttore Permit join sia disattivato.
    2. Disassociare il dispositivo dal coordinatore. In genere è necessario tenere premuto il pulsante di associazione per 5 secondi; consultare la documentazione del dispositivo.
    3. Verificare che, nel dispositivo Zigbee2MQTT del widget , il campo Last removed mostri il nome del dispositivo da rimuovere.
    4. Rimuovere dall’interfaccia web il widget del dispositivo Zigbee disconnesso facendo clic sull’icona del cestino nell’intestazione.

    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'.
    
    Illustrazione della configurazione e risoluzione dei problemi di Zigbee
    Esempio di problemi all’avvio di zigbee2mqtt con npm start
    Illustrazione della configurazione e risoluzione dei problemi di Zigbee
    Esempio di avvio riuscito di zigbee2mqtt con npm start

    Spesso il passaggio precedente rivela un problema senza identificarne la causa. In tal caso, esaminare i log:

    1. Arrestare il servizio:
      systemctl stop zigbee2mqtt
      
    2. Passare alla directory di zigbee2mqtt:
      cd /mnt/data/root/zigbee2mqtt/
      
    3. 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.
    4. 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:

    1. Scaricare lo script seguendo le istruzioni del repository.
    2. Arrestare zigbee2mqtt:
      systemctl stop zigbee2mqtt
      
    3. 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:

    1. Eseguire il backup del file configuration.yaml.
    2. Rimuovere la versione corrente: apt remove zigbee2mqtt.
    3. Nel file configuration.yaml aggiungere il tipo di adattatore adapter alla sezione serial. Esempio per il nostro modulo:
      serial:
        port: /dev/ttyMOD1
        adapter: zstack
      
    4. 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 sezione serial.
    • 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.

    Tutti i pacchetti z2m

    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).

    Elenco per WB7 (release 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