Wiren BoardDocumentación
Documentación · Español

Configuración y solución de problemas de Zigbee

revisión 108432

Descripción

Para utilizar dispositivos Zigbee con un controlador Wiren Board, necesita:

  1. Módulo de expansión WBE2R-R-ZIGBEE v.2 (WBE2R-R-ZIGBEE v.1) o cualquier adaptador USB Zigbee.
  2. Software adicional:

A continuación se proporcionan las instrucciones de instalación.

Copie los comandos de estas instrucciones y péguelos en la consola del controlador mediante Shift+Insert y ejecútelos pulsando Enter. Si se produce un error, lea atentamente la salida para consultar las instrucciones y sugerencias.

Instalación y configuración de zigbee2mqtt

Procedimiento de instalación

El paquete zigbee2mqtt de la versión estable puede estar por detrás de la versión del proyecto original. La versión más reciente siempre está disponible en la versión testing.

Recomendamos instalar un paquete precompilado de nuestro repositorio. Hay dos paquetes disponibles:

  • zigbee2mqtt: la versión más reciente; recomendada.
  • zigbee2mqtt-1.18.1 — para adaptadores WBE2R-R-ZIGBEE v.1 antiguos fabricados antes de enero de 2022. Tabla de revisiones.

Para instalar la versión más reciente, ejecute:

apt update && apt install zigbee2mqtt

Para instalar la versión 1.18.1, necesaria para las revisiones de Zigbee v1 desde v1.1A hasta v1.2D, ejecute:

apt update && apt install zigbee2mqtt-1.18.1

Para instalar la versión 2.1.1 en las revisiones v1.2D/2, v1.2E y v1.2F de Zigbee v1, ejecute:

apt update && apt install zigbee2mqtt-2.1.1

Como alternativa, compile a partir del código fuente siguiendo las instrucciones.

A continuación, configure el puente; consulte Configuración.

Configuración del inicio automático

Tras instalar el paquete, zigbee2mqtt se inicia automáticamente cuando arranca el controlador. Utilice estas órdenes para desactivar o activar el inicio automático:

systemctl disable zigbee2mqtt
systemctl enable zigbee2mqtt

Configuración

Si utiliza el módulo de expansión WBE2R-R-ZIGBEE, asegúrese de que se ha seleccionado el módulo correcto en la interfaz web Settings → Configs → Hardware Modules Configuration.

Nombre del puerto:

  • al utilizar el módulo de expansión WBE2R-R-ZIGBEE, el puerto se denomina /dev/ttyMODx, donde x es el número de puerto;
  • al utilizar un adaptador USB, el puerto se denomina /dev/ttyUSBx, donde x es el número de puerto, empezando por cero.
  • Numeración de los puertos de módulos de expansión (WB 6.7–8.4)
    Numeración de los puertos de módulos de expansión (WB 6.7–8.4)
  • Numeración de los puertos de módulos de expansión (WB 8.5, 8M)
    Numeración de los puertos de módulos de expansión (WB 8.5, 8M)
  • Configuración:

    1. Abra el archivo de configuración para editarlo (referencia completa de parámetros en inglés):
      nano /mnt/data/root/zigbee2mqtt/data/configuration.yaml
      
      El archivo de configuración predeterminado tiene este aspecto:
      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. Cambie los parámetros necesarios:
      • El parámetro port especifique el conector en el que está instalado físicamente el módulo. Si ya se ha especificado el puerto correcto, deje el archivo sin cambios.
      • Después del primer inicio del puente, unos valores sustituyen a GENERATE; no los cambie. Si los cambia, actualice o elimine la copia de seguridad.
    3. Haga clic en Ctrl+S para guardar los cambios, Ctrl+X — para salir del editor.
    4. Reinicie el servicio zigbee2mqtt:
      systemctl restart zigbee2mqtt
      

    Ahora puede instalar el convertidor; los dispositivos Zigbee aparecerán en la pestaña Devices de la interfaz web estándar del controlador.


    Posibles problemas:

    • Si selecciona en la interfaz web un número de conector incorrecto para el módulo de expansión Zigbee, el registro mostrará este error: z2m: Error: Error: Input/output error setting custom baud rate of 115200

    Ejemplo de registro:

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

    Interfaz web (frontend)

    Ilustración de la configuración y resolución de problemas de Zigbee
    Interfaz de zigbee2mqtt

    La interfaz web de zigbee2mqtt se ejecuta en un puerto independiente y puede suponer un riesgo de seguridad. No la active si no la utiliza: los dispositivos se pueden añadir y eliminar mediante nuestra convertidor.

    Disponible en la versión testing El acceso a la interfaz web se puede proteger mediante la autenticación de usuarios del controlador. Consulte Servicios de terceros en la interfaz web de Wiren Board.

    Si necesita la interfaz web nativa de zigbee2mqtt, habilítela en el archivo de ajustes:

    1. Abra el archivo configuration.yaml para editarlo:
      nano /mnt/data/root/zigbee2mqtt/data/configuration.yaml
      
    2. Añada este bloque:
      frontend:
        enabled: true
        port: 8081
        host: 0.0.0.0
      
    3. Guarde y cierre el archivo.
    4. Reinicie el servicio zigbee2mqtt:
      systemctl restart zigbee2mqtt
      

    La interfaz web del puente zigbee2mqtt estará disponible en http://wb-ip-address:PORT. Por ejemplo, si la dirección IP del controlador es 192.168.42.1y el puerto configurado es 8081, la interfaz web estará disponible en http://192.168.42.1:8081.

    Acceso desde la nube

    También se puede acceder a la interfaz web de zigbee2mqtt desde fuera de la red local. Si el controlador está conectado a Wiren Board Cloud, haga clic en Services en la página del controlador y añada Zigbee2MQTT. Aparecerá un botón que abre la interfaz desde cualquier dispositivo con una sesión iniciada en su cuenta de la nube.

    Comprobación del estado

    Hay dos formas de comprobar si z2m se ha iniciado correctamente:

    1) Compruebe brevemente su estado de funcionamiento.

    La siguiente es una salida normal sin errores:

    # 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
    

    Observe la línea Active: active (running) since ... y la ausencia de errores o advertencias.

    Si especificó un número de conector del módulo incorrecto en el paso anterior, la salida tendrá un aspecto similar a este:

    # 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 línea PID anterior indica un error: Main PID: 628249 (code=exited, status=1/FAILURE).

    2) Examine detalladamente el registro de 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.
    ...
    

    Los problemas y errores de arranque pueden impedir que el servicio se inicie posteriormente. En este caso, el siguiente comando puede restablecer los errores:

    # systemctl reset-failed zigbee2mqtt.service
    

    Por ejemplo, esto puede ayudar con el siguiente error tras cambiar el número de puerto en los ajustes de 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
    

    Actualización

    Para actualizar zigbee2mqtt a la versión más reciente, actualice el software del controlador siguiendo las instrucciones. Se conservarán todos los ajustes y los dispositivos emparejados.

    Si dispone de un adaptador antiguo WBE2R-R-ZIGBEE v.1fabricado antes de enero de 2022, la nueva versión no funcionará. Hay tres opciones:

    Ajuste de la potencia de transmisión

    La potencia de transmisión predeterminada es de 9 dBm. Para aumentarla (valores disponibles: 0…20 dBm):

    1. Abra el archivo configuration.yaml para editarlo:
      nano /mnt/data/root/zigbee2mqtt/data/configuration.yaml
      
    2. Añada al bloque advanced:
      advanced:
        transmit_power: 20
      
    3. Guarde y cierre el archivo.
    4. Reinicie el servicio zigbee2mqtt:
      systemctl restart zigbee2mqtt
      


    Convertidor wb-mqtt-zigbee

    Disponible desde la versión wb-2606

    Descripción

    Ilustración de la configuración y resolución de problemas de Zigbee
    Dispositivo Zigbee en la pestaña Devices: el encabezado muestra el friendly_name

    wb-mqtt-zigbee es el convertidor nuevo que asigna los datos de zigbee2mqtt a temas de dispositivos virtuales. Muestra los dispositivos Zigbee en la interfaz web del controlador Wiren Board y los controla.

    El convertidor traduce los nombres de los controles de los dispositivos Zigbee wb-mqtt-zigbee al ruso mediante su propio diccionario. Si el nombre de un control permanece en inglés, aún no está en el diccionario. Póngase en contacto con nosotros mediante portal de soporte técnico, y añadiremos la traducción en una próxima actualización.

    Funcionamiento

    Zigbee2mqtt se conecta al coordinador Zigbee, descubre dispositivos y publica toda la información en el broker MQTT. El espacio de nombres de los temas se configura en la configuración de zigbee2mqtt (/mnt/data/root/zigbee2mqtt/data/configuration.yaml, parámetro base_topic), y su valor predeterminado es zigbee2mqtt. A continuación, el convertidor:

    1. Se suscribe a los temas zigbee2mqtt/ y recibe el estado del puente, la lista de dispositivos, los registros y los eventos.
    2. Crea dispositivos virtuales WB en /devices/ — publicación de metadatos (/meta) y los valores de control según WB MQTT Conventions.
    3. Retransmite los comandos de vuelta: cuando un usuario selecciona un valor de una lista desplegable, mueve un control deslizante o acciona un interruptor en la interfaz web del controlador, el servicio recibe un comando de /devices/.../on y publica la solicitud correspondiente en zigbee2mqtt/bridge/request/....

    El diagrama siguiente muestra el flujo de datos a través del bróker MQTT (mosquitto): los temas de zigbee2mqtt a la izquierda y los temas del controlador Wiren Board a la derecha. Las flechas son bidireccionales: los estados de los dispositivos circulan de izquierda a derecha y los comandos, de derecha a izquierda.

    Ilustración de la configuración y resolución de problemas de Zigbee
    Flujo de datos a través del convertidor wb-mqtt-zigbee

    Instalación

    Advertencia: la instalación del nuevo convertidor puede hacer que los scripts personalizados dejen de funcionar wb-rules, especialmente cuando las reglas utilizaban el valor de cadena ONy ahora utilizan el valor booleano 1 para un interruptor. wb-mqtt-zigbee se instala automáticamente con el paquete zigbee2mqttsi wb-zigbee2mqttno estaba ya instalado. De lo contrario, instálelo con:

    apt update && apt install wb-mqtt-zigbee
    

    A continuación, el dispositivo Zigbee2MQTT aparecerá en la pestaña Devices de la interfaz web estándar del controlador.

    Añadir dispositivos

    Ilustración de la configuración y resolución de problemas de Zigbee
    Adición de un dispositivo; dispositivo emparejado más recientemente '0xa4c1385da71ff53c'

    Los dispositivos se pueden añadir individualmente o juntos. Para añadir nuevos dispositivos:

    1. Abra la interfaz web del controlador y seleccione la pestaña Devices.
    2. Busque el widget del dispositivo Zigbee2MQTT y compruebe su estado en el campo State. Debe indicar online. Si acaba de instalar zigbee2mqtt, espere un par de minutos.
    3. Habilite el interruptor Permit join.
    4. Siga las instrucciones del dispositivo Zigbee: normalmente, mantenga pulsado su botón de emparejamiento durante unos segundos y espere a que el indicador parpadee.
    5. Al añadir un dispositivo, el campo Last joined del widget Zigbee2MQTT muestra la dirección IEEE del dispositivo (por ejemplo, 0xa4c1385da71ff53c), y el contador de dispositivos aumenta en uno por cada dispositivo añadido.
    6. Repita los pasos 4 y 5 para cada dispositivo Zigbee.
    7. Finalice la incorporación de dispositivos desactivando Permit join.

    Cambiar friendly_name

    friendly_name es un nombre de dispositivo definido por el usuario. Mantenga el predeterminado o establezca uno propio:

    1. Abra el archivo de configuración para editarlo:
      nano /mnt/data/root/zigbee2mqtt/data/configuration.yaml
      
    2. Busque su dispositivo en la sección devices.
    3. Cambiar friendly_name.
    4. Guarde el archivo de configuración y reinicie el servicio:
      systemctl restart zigbee2mqtt
      
    5. En la pestaña Devices debe aparecer un dispositivo con el nombre indicado.
    6. Elimine el widget con el nombre antiguo haciendo clic en el icono de papelera de su encabezado.

    El nuevo nombre debe ser único para cada dispositivo y no debe contener una barra / y debe cumplir los requisitos de los parámetros y Convenciones MQTT de Wiren Board.

    Control de un dispositivo

    Ilustración de la configuración y resolución de problemas de Zigbee
    Ejemplos de controles de dispositivo: un interruptor y una lista desplegable

    Los dispositivos se manejan mediante controles estándar: interruptores o listas desplegables.

    Eliminación de dispositivos

    1. Asegúrese de que, en el widget del dispositivo Zigbee2MQTT , el interruptor Permit join está desactivado.
    2. Desempareje el dispositivo del coordinador. Normalmente es necesario mantener pulsado su botón de emparejamiento durante 5 segundos; consulte la documentación del dispositivo.
    3. Compruebe que el campo Last removed del widget del dispositivo Zigbee2MQTT muestra el nombre del dispositivo que se está eliminando.
    4. Elimine de la interfaz web el widget del dispositivo Zigbee desconectado haciendo clic en el icono de la papelera de su encabezado.

    Traducciones de los canales de los dispositivos

    Disponible desde la versión wb-2609 Los nombres de los canales de los dispositivos Zigbee se muestran en el idioma seleccionado de la interfaz web.

    Modelo del dispositivo

    Disponible desde la versión wb-2609 Para los dispositivos nuevos, el modelo se muestra ahora en el título de la tarjeta. Los dispositivos Zigbee2MQTT también tienen un canal Model.

    Solución de problemas

    Si zigbee2mqtt no funciona correctamente, compruebe el estado del servicio y los registros detallados. Para ejecutar órdenes, conéctese al controlador mediante SSH.

    Para ver el estado actual y los mensajes más recientes del registro, ejecute:

    # 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'.
    
    Ilustración de la configuración y resolución de problemas de Zigbee
    Ejemplo de problemas al iniciar zigbee2mqtt con npm start
    Ilustración de la configuración y resolución de problemas de Zigbee
    Ejemplo de inicio correcto de zigbee2mqtt con npm start

    A menudo, el paso anterior revela un problema sin identificar su causa. En ese caso, examine los registros:

    1. Detenga el servicio:
      systemctl stop zigbee2mqtt
      
    2. Vaya al directorio de zigbee2mqtt:
      cd /mnt/data/root/zigbee2mqtt/
      
    3. Inicie zigbee2mqtt manualmente, imprimiendo todos los mensajes en la consola, 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
      
      Aquí se ve inmediatamente que el puerto configurado es incorrecto.
    4. Tras identificar y corregir el problema, vuelva a iniciar el servicio:
      systemctl start zigbee2mqtt
      

    Si al ejecutar npm start inicia automáticamente el servicio correctamente, deténgalo pulsando Ctrl+C.

    En ocasiones es necesario desactivar el inicio automático del servicio. Utilice estas órdenes para controlarlo:

    systemctl disable zigbee2mqtt
    systemctl enable zigbee2mqtt
    

    Resolución de problemas

    La versión 1.18.1 no se inicia tras una actualización

    La consola muestra:

    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!
    

    Instale la versión anterior del paquete nodejs:

    apt install nodejs=16.20.2-deb-1nodesource1
    

    zigbee2mqtt informa de un error del módulo

    Determine si el problema está en zigbee2mqtt, en su configuración o en el módulo.

    Primero, compruebe que el módulo esté configurado correctamente; consulte la documentación del módulo de expansión.

    Si la configuración es correcta, pruebe el módulo con el script de terceros check-cc2652p:

    1. Descargue el script siguiendo las instrucciones del repositorio.
    2. Detenga zigbee2mqtt:
      systemctl stop zigbee2mqtt
      
    3. Ejecute la orden sustituyendo el puerto por el suyo:
      python3 ./check_cc2652p.py /dev/ttyMOD4
      

    Si la respuesta contiene información sobre las versiones del firmware y del módulo, el módulo funciona. Por lo tanto, el problema está en zigbee2mqtt: un puerto incorrecto u otro fallo.

    Ejemplo de salida correcta:

    # 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 al actualizar zigbee2mqtt a la versión 2.1.1

    Si zigbee2mqtt no se inicia después de actualizar a la versión 2.1.1, con los siguientes síntomas:

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

    pruebe los siguientes pasos:

    1. Haga una copia de seguridad del archivo configuration.yaml.
    2. Elimine la versión actual: apt remove zigbee2mqtt.
    3. En el archivo configuration.yaml añada el tipo de adaptador adapter a la sección serial. Ejemplo para nuestro módulo:
      serial:
        port: /dev/ttyMOD1
        adapter: zstack
      
    4. Vuelva a instalar el paquete: apt update && apt install zigbee2mqtt.

    Archivo de configuración sustituido accidentalmente al actualizar zigbee2mqtt a 2.1.1

    Al actualizar zigbee2mqtt a 2.1.1 desde una versión anterior, el sistema pregunta si desea instalar un archivo de configuración nuevo o conservar el antiguo:

    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
    

    Si eligió accidentalmente sustituir el archivo y zigbee2mqtt no arranca con un error como este:

    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
    

    restaure el arranque y la configuración eliminada de la siguiente manera:

    • No elimine el archivo ~/zigbee2mqtt/data/coordinator_backup.json. Si lo elimina, tendrá que volver a emparejar todos los dispositivos.
    • Detenga el servicio con systemctl stop zigbee2mqtt.
    • Realice una copia de seguridad de la configuración existente:
      cp ~/zigbee2mqtt/data/configuration.yaml ~/zigbee2mqtt/data/configuration.yaml-wb-backup
    • Restaure la configuración anterior:
      cp ~/zigbee2mqtt/data/configuration.yaml.dpkg-old ~/zigbee2mqtt/data/configuration.yaml
    • Compruebe que el archivo especifica el tipo de adaptador: debe contener la línea adapter: zstack. Si falta, añádalo a la sección serial.
    • Reinicie el servicio con systemctl restart zigbee2mqtt.

    zigbee2mqtt debería iniciarse utilizando la configuración existente antes de la actualización.

    Archivo de todas las versiones (Pool)

    Contiene todos los paquetes z2m, tanto las compilaciones de prueba como las versiones publicadas. También proporciona las fechas de publicación, que no se muestran en el repositorio normal. Estas ayudan a determinar cuándo se introdujo un error o una función en el sistema.

    Todos los paquetes de z2m

    Historial de una versión específica (p. ej., 2.1.1)

    Finalidad: investigar incidentes y averiguar la fecha de publicación de una compilación concreta.

    Versión oficial (Packages)

    Esta es la lista aprobada de paquetes que un controlador (por ejemplo, WB7) ve mediante apt update. Un paquete solo se incluye tras las pruebas y el registro oficial de la versión (por ejemplo, la rama 2507).

    Lista para WB7 (versión 2507)

    Finalidad: comprobar qué versión de z2m está disponible para una instalación limpia o una actualización en el controlador de un usuario.

    Convertidor antiguo

    • wb-zigbee2mqtt

    Enlaces útiles