Tutorial: Instalar Zigbee2mqtt en Hassio para usar los dispositivos Xiaomi sin gateway

Si ya vimos como conseguir instalar el zigbee2mqtt para poder hacer uso de los dispositivos Xiaomi sin necesidad del gateway oficial, teniendo una total independencia de internet y de los servidores de Xiaomi, ahora podemos hacer la instalación del componente en nuestro Home Assistant, pero, en su instalación Hassio, la versión realizada por el mismo equipo de desarrolladores y que funciona de una forma compacta.

Este es el proceso a seguir para todos los que tienen hassio instalado. Previamente ya vimos como hacerlo en Raspbian, sería algo similar también para los que tienen docker, pero en vista de que tenemos también una gran parte de usuarios utilizando hassio vamos a plasmar aquí también las instrucciones.

  • Primero tenemos que ir a nuestro “Addons Store” y agregar la url: https://github.com/danielwelch/hassio-zigbee2mqtt para que pueda cargar la tienda.
    una vez realizado pulsamos agregar y luego instalar el addons.

  • Buscamos e Instalamos el Zigbee2mqtt

  • Crea un usuario mqtt para el complemento: Es recomendable un nuevo usuario para este complemento y no compartir el usuario con otros dispositivos.
  • Vamos a la configuración del complemento para que pueda funcionar correctamente. Abrimos el addons y en el area de configuracion agregamos la siguiente configuración
{
  "data_path": "/share/zigbee2mqtt",
  "homeassistant": true,
  "permit_join": true,
  "mqtt_base_topic": "zigbee2mqtt",
  "mqtt_server": "mqtt://ipbroker:puerto",
  "serial_port": "/dev/ttyACM0",  
  "mqtt_user": "Usuario mqtt para el addons",
  "mqtt_pass": "Password Mqtt para el addons"
}

Esta es la explicación de los parámetros de configuración:

Parámetro Tipo Necesario Descripción
data_path string Establezca esto en la ruta en la que desea que el complemento persista.Debe estar dentro del directorio /share . El valor predeterminado es /share/zigbee2mqtt .
homeassistant bool Establezca esto en true si desea la detección automática de MQTT.Consulte Integración con el Asistente de inicio para obtener más información.
permit_join bool Se recomienda dejar esto en false y usar el emparejamiento en tiempo de ejecución . Establezca esto como true cuando configure dispositivos nuevos; asegúrese de configurarlo nuevamente en falsecuando termine.
mqtt_server string La dirección del servidor MQTT. Asegúrate de incluir el protocolo.Ejemplo: mqtt://homeassistant
mqtt_base_topic string Prefijo para su tema MQTT
serial_port string Puerto serie para su stick CC2531.
mqtt_user string no Su nombre de usuario MQTT, si está configurado.
mqtt_pass string no Su contraseña MQTT, si está configurada.
debug bool no Establézcalo en true para habilitar el modo de depuración para zigbee-shepherd y zigbee2mqtt. Vea la wiki para más información.
err bool no Establézcalo en true para redirigir zigbee2mqtt stdout a out.log y stderr a err.log . Tanto out.log como err.log estarán ubicados en data_path arriba.

Consejos para la configuración del zigbee2mqtt en Hassio

¿Como saber el “Serial_Port” que le ha asignado tu Hassio al usb?

En nuestro caso es “/dev/ttyACM0” Casi siempre el 99% siempre le asigna ese, pero si estas dudando y quieres asegurarte. Realiza estos siguientes pasos.

Antes de conectar el USB CC2531

  • Ve al menú hass.io > System y pulgas en “Hardware”
  • Veras que en Serial estará “/dev/ttyAMA0”.

Después de conectar el USB CC2531

  • Ve al menu hass.io > System y pulgas en “Hardware”
  • Verás que en Serial adicional al anterior aparecerá el Nuevo que sera estará “/dev/ttyACM0”.

Así aparece cuando conectas tu USB CC2531 (Indicándole que ha asignado /dev/ttyACM0)

Agregando y modificando código yaml

Emparejamiento

La forma sugerida de emparejar sus dispositivos es habilitar la opción allow_join de permit_join desde Home Assistant usando MQTT en lugar de a través de la interfaz de usuario del complemento. A continuación se muestra una configuración de ejemplo que le permitirá habilitar y deshabilitar el emparejamiento de dispositivos desde la interfaz de Home Assistant:

Agregale el siguiente tag a tu etiqueta mqtt: para que pueda auto agregar los dispositivos que encuentre zigbee cuando emparejes.

Agrega los demás Códigos

input_boolean:
  zigbee_permit_join:
    name: Allow devices to join
    initial: off
    icon: mdi:cellphone-wireless

timer:
  zigbee_permit_join:
    name: Time remaining
    duration: 600 # Updated this to the number of seconds you wish

sensor:
  - platform: mqtt
    name: Bridge state
    state_topic: "zigbee2mqtt/bridge/state"
    icon: mdi:router-wireless

group:
  zigbee_group:
    name: Zigbee
    entities:
      - input_boolean.zigbee_permit_join
      - timer.zigbee_permit_join
      - sensor.bridge_state

automation:
  - id: enable_zigbee_join
    alias: Enable Zigbee joining
    hide_entity: true
    trigger:
      platform: state
      entity_id: input_boolean.zigbee_permit_join
      to: 'on'
    action:
    - service: mqtt.publish
      data:
        topic: zigbee2mqtt/bridge/config/permit_join
        payload: 'true'
    - service: timer.start
      data:
        entity_id: timer.zigbee_permit_join
  - id: disable_zigbee_join
    alias: Disable Zigbee joining
    trigger:
    - entity_id: input_boolean.zigbee_permit_join
      platform: state
      to: 'off'
    action:
    - data:
        payload: 'false'
        topic: zigbee2mqtt/bridge/config/permit_join
      service: mqtt.publish
    - data:
        entity_id: timer.zigbee_permit_join
      service: timer.cancel
    hide_entity: true
  - id: disable_zigbee_join_timer
    alias: Disable Zigbee joining by timer
    hide_entity: true
    trigger:
    - platform: event
      event_type: timer.finished
      event_data:
        entity_id: timer.zigbee_permit_join
    action:
    - service: mqtt.publish
      data:
        topic: zigbee2mqtt/bridge/config/permit_join
        payload: 'false'
    - service: input_boolean.turn_off
      data:
        entity_id: input_boolean.zigbee_permit_join
Detalles

1. En el “Timer:” la etiqueta Duration: xxxx sera el tiempo en milisegundos que durara active el “Permit_Join” que sera lo que permite que el addons en conjunto con usb descubrir los equipos zigbee.
2. Para emparejar un dispositivo sera de la misma forma que emparejas el mismo con su gateway propietario. Ej: si para emparejar un sensor temperatura de Aqara xiaomi es pulsar por 5 segundos el botón sera el mismo proceso a utilizar aquí.
3. Admite todos los dispositivos que utilicen el protocolo Zigbee. También podrás encontrar una lista de dispositivos que han sido utilizado y el desarrollador de este addons ha probado correctamente. https://github.com/Koenkk/zigbee2mqtt/wiki/Supported-devices

4. Esta es la url que te podrá aclarar como emparejar algunos dispositivos los cuales no tengas el conocimiento de como hacerlo.
https://github.com/Koenkk/zigbee2mqtt/wiki/Pairing-devices

Logs

En este log que aparece casi en todos los addons y este no sera la excepción, podrás ver la actividad del complemento y los eventos.

Recomendamos que cuando inicies el proceso de emparejamiento vayas al log para que puedas ver en el momento que se empareja así como cualquier error que pueda ocurrir.

En nuestro caso como podrán ver el nombre “0x00158d0001f400e8” que seria el nombre que el Addons colocado al dispositivo que acabas de agregar es muy feo y difícil de recorder para poder aplicar los automations que queremos o cualquier otra cosa, por lo que hemos cambiado el friendly_name. que esta en la carpeta
/share/zigbee2mqtt/ en el archivo configuration.yaml.

¿Has podido hacerlo funcionar? ¿Necesitas ayuda?

IMPORTANTE: Con el fin de ayudaros de una forma más directa, he creado un grupo en Telegram de Home Assistant en Español donde podemos ayudarnos todos así como evitar que os quedéis atascados, si tenéis telegram podéis pulsar aquí para uniros y si no lo tenéis, os recomiendo que os lo instaléis ya que lo usaremos en el tutorial para notificarnos.

La entrada Tutorial: Instalar Zigbee2mqtt en Hassio para usar los dispositivos Xiaomi sin gateway se publicó primero en Domótica en Casa.

Eduardo Ruiz

Informático de vocación, apasionado de la tecnología y blogger desde hace mucho tiempo, escribo de lo que me entretiene y disfruto con ello. Si deseas seguirme, usa el rss del blog o en mi perfil de .