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

Tutoriales

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ámetroTipoNecesarioDescripción
data_pathstringEstablezca esto en la ruta en la que desea que el complemento persista.Debe estar dentro del directorio /share . El valor predeterminado es /share/zigbee2mqtt .
homeassistantboolEstablezca 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_joinboolSe 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_serverstringLa dirección del servidor MQTT. Asegúrate de incluir el protocolo.Ejemplo: mqtt://homeassistant
mqtt_base_topicstringPrefijo para su tema MQTT
serial_portstringPuerto serie para su stick CC2531.
mqtt_userstringnoSu nombre de usuario MQTT, si está configurado.
mqtt_passstringnoSu contraseña MQTT, si está configurada.
debugboolnoEstablézcalo en true para habilitar el modo de depuración para zigbee-shepherd y zigbee2mqtt. Vea la wiki para más información.
errboolnoEstablé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.

¿Quieres montarte tu propio sistema Smart Home?

¿Te gustaría empezar poco a poco teniendo Google Home, Alexa o Home Assistant para controlar las luces, calefacción y otros electrodomésticos de la casa? ¡Te ayudamos! Entra en nuestro Grupo de Telégram de Domótica y también puedes entrar a nuestro Foro de Domótica donde podrás empezar a leer y preguntar tus dudas. Además, si quieres estar al tanto de las ofertas de domótica que salen a diario para poder hacerte un sistema de domótica low cost, entra a nuestro Canal de ofertas de domótica y no te perderás ni una o si lo prefieres y no tienes Telegram, puedes entrar a nuestra página de ofertas de domótica o Smart Home en Facebook. ¡Síguenos también en nuestro Facebook, Twitter o Instagram! ¡Te esperamos!

16 Comentarios

  1. Sheik

    Buen tutorial.
    ¿Alguien ha logrado emparejas las bombillas de Philips (Philips Hue)?
    Tengo todos los dispositivos de Xiaomi funcionando perfectamente desde hace unas semanas pero no hay manera de emparejar esas bombillas
    Un saludo

    Reply
    • eduardo

      Hola, las Philips si son el modelo que pienso, van por WiFi, no Zigbee, necesitas extraer el token para poder usarlas, pero no lo haces a través de este método

      Reply
      • Sheik

        Hola Eduardo, no conozco los modelos wifi que comentas, las que yo tengo venian con un bridge Zigbee de Philips.
        He probado varios procesos para resetearlas y desemparejarlas pero no hay manera que las reconozca.
        Un saludo

        Reply
  2. Raul

    Buenas noches.. estoy siguiendo el manual y no se donde poner los códigos del apartado (Agregando y modificando código yaml) ¿podrias dacirme donde van? esos para crear el menu para el emparejamiento??

    Muchas gracias

    Reply
    • Sheik

      Hola Ruben van al fichero normal de configuración de home assistant que suele ser el fichero configuracion.yaml ubicado en /config en hass.io
      Suele ser un fichero unico o varios si has decidido separar cada apartado/componente en un fichero.
      Espero haberte ayudado

      Reply
  3. Jose

    Buenas, he seguido el tutorial y no me arranca el server, me pone esto: “zigbee2mqtt:error 2018-10-2 14:09:34 Not connected to MQTT server!”.
    He visto que en las automatizaciones hay referencias a carpetas dentro de la carpeta zigbee2mqtt. Yo dentro de esa carpeta solo tengo 3 archivos y ninguna carpeta. Y la otra duda es si en el mqtt_server es la ip de nuestra raspberry.
    Gracias.

    Reply
    • eduardo

      En la carpeta zigbee2mqtt debes tener algunas carpetas, entre ellas una llamada data que es donde se encuentra la configuración, revisa que al hacer el git clone no falle

      Reply
  4. zumbio

    Buenas,

    no se si he entendido bien, con un aparato usb cc2531 puedo conectar todos los dispositibos zigbee que tenga o sólo uno con cada usb??

    Es decir, con esto conectado a la raspberry y correctamente configurado https://www.banggood.com/es/Wireless-Zigbee-CC2531-Sniffer-Bare-Board-Packet-Protocol-Analyzer-Module-USB-Interface-Dongle-p-1227206.html?gmcCountry=ES&currency=EUR&createTmp=1&utm_source=googleshopping&utm_medium=cpc_union&utm_content=2zou&utm_campaign=ssc-es-all&gclid=CjwKCAiAz7TfBRAKEiwAz8fKOJb47SjmXRzTqKnLV1MAaU7YWICHghsVoRPp6cdGhdumzaun_QQdLxoCISEQAvD_BwE&cur_warehouse=CN
    ¿Podría hacer uso de todos los sensores o actuadores zigbee que tenga en casa?

    Gracias

    Reply
  5. Pedro J.

    Hola.
    Ando loco con este tema ya que tengo un error “zigbee2mqtt:error 3/2/2019, 1:58:12 PM Not connected to MQTT server!” y no doy con la forma de corregir esto

    En la configuración tengo puesto lo siguiente:
    {
    “data_path”: “/share/zigbee2mqtt”,
    “homeassistant”: true,
    “permit_join”: true,
    “mqtt_base_topic”: “zigbee2mqtt”,
    “mqtt_server”: “mqtt://192.168.1.64:1883”,
    “serial_port”: “/dev/ttyACM0”,
    “devices”: [],
    “network_key”: [],
    “mqtt_user”: “mosquito”,
    “mqtt_pass”: “moroto”
    }
    El valor para el parámetro mqtt_server, he probado también con el puerto 8883 con el mismo resultado.
    El serial_port es el correcto, he probado incluyendo el parámetro disable_led y efectivamente el led se apaga.

    El contenido del archivo configuration.yaml que está en \\hassio\share\zigbee2mqtt es el siguiente:

    homeassistant: true
    mqtt:
    base_topic: zigbee2mqtt
    password: moroto
    server: mqtt://192.168.1.64:1883
    user: mosquito
    permit_join: true
    serial:
    port: /dev/ttyACM0

    y el log me muestra esto:
    [Info] Configuration file found: /share/zigbee2mqtt/configuration.yaml
    [Info] Configuration written to /share/zigbee2mqtt/configuration.yaml
    2019-03-02T14:29:44: PM2 log: Launching in no daemon mode
    2019-03-02T14:29:45: PM2 log: App [npm:0] starting in -fork mode-
    2019-03-02T14:29:45: PM2 log: App [npm:0] online
    > zigbee2mqtt@1.1.1 start /zigbee2mqtt-1.1.1
    > node index.js
    zigbee2mqtt:info 3/2/2019, 2:29:51 PM Logging to directory: ‘/share/zigbee2mqtt/log/2019-03-02.14-29-51’
    zigbee2mqtt:info 3/2/2019, 2:29:55 PM Starting zigbee2mqtt version 1.1.1 (commit #unknown)
    zigbee2mqtt:info 3/2/2019, 2:29:55 PM Starting zigbee-shepherd
    zigbee2mqtt:info 3/2/2019, 2:29:58 PM Error while starting zigbee-shepherd, attemping to fix… (takes 60 seconds)
    zigbee2mqtt:info 3/2/2019, 2:30:58 PM Starting zigbee-shepherd
    zigbee2mqtt:info 3/2/2019, 2:30:59 PM zigbee-shepherd started
    zigbee2mqtt:info 3/2/2019, 2:30:59 PM Coordinator firmware version: ‘20190109’
    zigbee2mqtt:info 3/2/2019, 2:30:59 PM Currently 0 devices are joined:
    zigbee2mqtt:warn 3/2/2019, 2:30:59 PM `permit_join` set to `true` in configuration.yaml.
    zigbee2mqtt:warn 3/2/2019, 2:30:59 PM Allowing new devices to join.
    zigbee2mqtt:warn 3/2/2019, 2:30:59 PM Set `permit_join` to `false` once you joined all devices.
    zigbee2mqtt:info 3/2/2019, 2:30:59 PM Zigbee: allowing new devices to join.
    zigbee2mqtt:info 3/2/2019, 2:30:59 PM Connecting to MQTT server at mqtt://192.168.1.64:1883
    zigbee2mqtt:info 3/2/2019, 2:31:00 PM zigbee-shepherd ready
    zigbee2mqtt:error 3/2/2019, 2:31:09 PM Not connected to MQTT server!
    zigbee2mqtt:error 3/2/2019, 2:31:19 PM Not connected to MQTT server!
    zigbee2mqtt:error 3/2/2019, 2:31:29 PM Not connected to MQTT server!

    ¿alguna ayuda sobre el motivo de porqué no se conecta?.
    Gracias y saludos

    Reply
    • eduardo

      No estoy seguro, pero en mi caso tengo server: mqtt://192.168.1.64:1883 con comilla simple en la parte de la dirección, así server: ‘mqtt://192.168.1.64:1883’. Otra cosa que puedes comprobar es si el puerto está abierto (no tengas ningún firewall activado. Además, ahora que lo veo, tengo mi configuración así:


      mqtt:
      base_topic: zigbee2mqtt
      server: 'mqtt://IPDELSERVIDOR' aqui yo tengo 'mqtt://localhost' porque está en la misma máquina
      user: usuario
      password: contraseña

      Reply
      • Pedro J. Reguera

        Hola Eduardo.
        Gracias,
        Por más que lo intento no soy capaz de que las dichosas comillas se queden en el configuration.yaml (que hay en share/zigbee2mqtt ).

        Cada vez que arranco el sistema se las quita, por mucho que modifique el susodicho archivo. Si pongo las comillas simples en la configuración del addon se quedan ahí, pero en el archivo primero NO. He probado (sin comillas, claro) con el puerto y sin el puerto, y con localhost y con la ip de la raspberry, pero nada.

        Descarto que no se conecte bien ya que si por elj. incluyo en la configuración (del addon) “disable_led”: “yes” el led se apaga.

        También he redireccionado el puerto del router, pero no debería de ser ya que no “salgo” a internet.

        Reply
  6. Antua

    He seguido el tuto y me ha ido bien, todo sin errores, pero a la hora de añadir dispositivos, los encuentros tal como dice en el tutorial en el archivo configuration.taml del addon pero no aparecen en home assistant de forma automática. No se que falta por hacer. Alguna ayuda. Gracias!

    Reply
    • eduardo

      Yo lo uso con Home Assistant sin Hass.io y hay que añadir lo de Home Assistant en la configuración así como en Home Assistant configurar el discovery de MQTT, ¿lo tienes puesto?

      Reply
  7. Yllelder

    Pues me ha funcionado perfecto. Muchas gracias.

    Reply

Contestar

Tu e-mail no será publicadoRequired fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Lost Password

Registro