Table of Contents

https://github.com/zigbee2mqtt/hassio-zigbee2mqtt

Instalación

Docker Supervised

https://www.home-assistant.io/installation/linux#install-home-assistant-supervised

No está soportada para Raspian, solo para Debian

Docker

Mapeaomos con /dev/ttyACM0 el dispositivo Zigbee USB, en nuestro caso el “Conbee II”

docker run -d --device /dev/ttyACM0:/dev/ttyACM0  --name homeassistant   --privileged   --restart=unless-stopped   -e TZ="Europe/Madrid"   -v /home/ruth/homeassistant:/config   --network=host   ghcr.io/home-assistant/home-assistant:stable

Vamos a “Devices & Services”

Y seleccionamos ConBee II para configurarlo

Seleccionamos “Keep radio Settings”

Aparece Success

Y ya nos aparece en “Configured” para poder usarla

Docker Antiguo

Fuente: https://github.com/home-assistant/supervised-installer

Instalamos raspbian

sudo dd if=2021-01-11-raspios-buster-armhf-lite.img of=/dev/mmcblk0 bs=4M && sync

Habilitar wifi

rootfs/etc/wpa_supplicant/wpa_supplicant.conf
country=ES
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
scan_ssid=1
ssid="<mi_red_wifi>"
psk="<mi_contraseña_wifi>"
key_mgmt=WPA-PSK
}

IP fija

En la partición rootfs editamos el fichero:

rootfs/etc/dhcpcd.conf

Depende si queremos editar wifi o cable ponemos eth0 o wlan0. Por ejemplo, poner por wifi la ip 192.168.1.191

interface wlan0
static ip_address=192.168.1.191/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1

Habilitar SSH

Creamos un fichero que se llame ssh en la partición boot. Da igual que esté vacio. Podemos hacer:

touch boot/ssh

Instalación de Docker

Como root

curl -sSL https://get.docker.com | sh
apt-get install -y apparmor-utils apt-transport-https avahi-daemon ca-certificates curl dbus jq network-manager socat software-properties-common
curl -Lo installer.sh https://raw.githubusercontent.com/home-assistant/supervised-installer/master/installer.sh
bash installer.sh --machine raspberrypi4

Adicionalmente metemos al usuario pi para que pueda ejecutar docker:

  usermod -aG docker pi

Imagen Core Home Assistant

Fuente: https://www.home-assistant.io/installation/raspberrypi

Nos descargamos Balena_Etcher desde el enlace: https://www.balena.io/etcher

Lo descomprimimos y lo ejecutamos:

./balenaEtcher-1.5.116-x64.AppImage

Seleccionamos Flash from url:

Ponemos la URL de la documentación:

https://github.com/home-assistant/operating-system/releases/download/5.11/hassos_rpi4-64-5.11.img.xz

Seleccionamos nuestra tarjeta SD:

Indica proceso de escritura de la tarjeta:

Ha finalizado:

Ya podemos acceder con la ip:

http://192.168.1.106:8123/

Creamos la cuenta de admin:

Introducimos nuestra ubicación (si queremos)

Nos detecta dispositivos compatibles para hacer integraciones. Las podemos hacer ahora o después desde “integrations”

Configuración de Wifi e IP fija

Vamos a Supervisor > System > Host

Para poder editar ficheros de configuración, instalamos el add-on “file editor”

Ahora ya podemos ir a File Editor y modificar ficheros. Por ejemplo el fichero de configuración:

Para poder subir ficheros, instalamos el addon de samba

Raspberry

Descargamos la ISO

Para configurar nginx:

    server {
        server_name  ha.lobo99.info;
        client_max_body_size 20M;
        proxy_buffering off;

    location / {
        proxy_pass http://192.168.1.15:8123;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_buffering off;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

    # Opcional: redirecciona HTTP a HTTPS si tienes SSL configurado
    if ($scheme != "https") {
        return 301 https://$host$request_uri;
    }
}

En home assistant instalamos el add-on “file editor” y modificamos el fichero /homeassistant/configuration.yaml y añadimos

http:
  use_x_forwarded_for: true
  trusted_proxies:
    - 192.168.1.200  # IP de tu servidor Nginx

MQTT

Spotify

Fuente: https://www.home-assistant.io/integrations/spotify/

Vamos a la web de developers de spotify y creamos una app:

https://developer.spotify.com/dashboard/

Nos dará un client y un secret, lo guardamos.

Damos a editar aplicación y ponemos la url que comprobará el token de nuestro servidor, en este caso:

http://192.168.1.106:8123/auth/external/callback

Pones el client y el secret en el fichero

/config/configuration.yaml

Reiniciamos para que coja los cambios:

Configuration > Server Controls > RESTART

Para hacer la integración, vamos a:

Configuration > Integrations > ADD INTEGRATION

Seleccionamos Spotify:

En la url pone la ip de nuestro server y el client_id y nos aparece esta pantalla de validación de spotify

Ya nos aparece configurado:

Volvemos a reiniciar para que coja los cambios

Para probarlo, abrimos spotify en el móvil o el pc. En home assistant vamos a:

Developer tools > SERVICES

En entity nos aparece spotify:

En service data añadimos una playlist:

entity_id: media_player.spotify_joselegido
media_content_id: https://open.spotify.com/playlist/4kPUSDh6ELg2QX251qM6zi?si=cEt1dw6mRYiulWN4uj9o4w
media_content_type: playlist

Nos queda así:

Si pulsamos CALL SERVICE nos pone la playlist donde tengamos ejecutando Spotify

Google Home

Para poner música en google home:

Developer Tools > Services 
Service:
media_player.play_media
Service Data:
entity_id: media_player.google_home
media_content_id: https://mediavod-lvlt.rtve.es/resources/TE_SHETACA/mp3/0/6/1613119445760.mp3
media_content_type: music

Configuración HUB

Fuente: https://www.bujarra.com/jugando-con-cubos-magicos-en-home-assistant/

Gateway ConBee II Zigbee: https://www.amazon.es/dp/B07PZ7ZHG5/

Cubos de alixpress: https://es.aliexpress.com/item/32895216845.html

Instalamos el add-on deCONZ

Supervisor > Add-on Store

Pulsamos INSTALL (tarda un poco) seleccionamos “Show in sidebar” y START, nos dirá que falta configurar. Pulsamos “GO TO CONFIGURATION”

Pulsamos el desplegable de “device” y seleccionamos nuestro hub USB

Pulsamos SAVE (el de arriba) y volvemos al menú anterior.

Pulsamos OPEN WEB UI y luego Phoscon. Nos aparece nuestro USB. Pulsamos en él

Ponemos una contraseña:

Pulsamos: Proceed without lights para ir al siguiente punto

Abrimos el menú y seleccionamos switches > Add new switch

Seleccionamos Other. Abrimos el cubo y apretamos el botón de link hasta que se apague la luz azul, primero parpadea pero se apaga en seguida. Después de unos 10 segundos, se ha emparejado y nos aparece esto en la pantalla. Pulsamos Ready

Reiniciamos el host entero para que coja bien los cambios. Al reiniciar ya me ha hecho la integración, no sé si son necesarios estos pasos.

Ahora habilitamos para que pueda hacer integración con terceros, en este caso con home assistant. Nos da 60 segundos para hacerlo abriendo otra ventana

Creamos la integración con deCONZ. Abrimos otra ventana y dejamos la de la cuenta atrás a un lado:

Configuration > Integrations > deCONZ

Evento con el dado

configuration > Devices > Mi Magic Cube

Pulsamos Automations, seleccionamos el movimiento (por ejemplo shaken) y en actions ponemos por ejemplo:

 Service: 
 media_player.play_media
 Entity:
 media_player.google_home
Data:
entity_id: media_player.google_home
media_content_id: 'https://mediavod-lvlt.rtve.es/resources/TE_SHETACA/mp3/0/6/1613119445760.mp3'
media_content_type: audio/mp3

Sensor humedad (Mi Flora)

Listado

1 - C4:7C:8D:6C:32:14
2 - C4:7C:8D:6C:13:75
3 - C4:7C:8D:6C:0A:98
4 - C4:7C:8D:6C:16:60
5 - C4:7C:8D:6C:07:3A
6 - C4:7C:8D:6C:0A:8E
 

Son sensores bluetooth no Zigbee

Para sabes la MAC lanzamos el comando para scanear:

bluetoothctl scan on
$ bluetoothctl 
Discovery started
[CHG] Device 56:60:BB:D0:56:D1 Comedor
[NEW] Device C4:7C:8D:6C:13:75 Flower care
[NEW] Device B8:78:2E:1E:90:2A B8-78-2E-1E-90-2A

Es la MAC C4:7C:8D:6C:13:75 de Flower care

Añadimos lo siguiente en configuration.yml:

sensor:
  - platform: miflora
    mac: "C4:7C:8D:6C:13:75"
    name: Flower 2
    force_update: true
#    median: 3
    monitored_conditions:
      - moisture
      - light
      - temperature
      - conductivity
      - battery
    scan_interval: 60

Podemos añadir por tipo de planta. El valor del sensor es flower_2, se cambia espacio por _

plant:                                                                                                                                                                          
  # Orchidaceae, Phalaenopsis                                                                                                                                                   
  orchid:                                                                                                                                                                       
    sensors:                                                                                                                                                                    
      moisture: sensor.flower_2_moisture                                                                                                                                        
      battery: sensor.flower_2_battery                                                                                                                                          
      temperature: sensor.flower_2_temperature                                                                                                                                  
      conductivity: sensor.flower_2_conductivity                                                                                                                                
      brightness: sensor.flower_2_light_intensity                                                                                                                               
    min_moisture: 15                                                                                                                                                            
    max_moisture: 65                                                                                                                                                            
    min_battery: 20                                                                                                                                                             
    min_conductivity: 350                                                                                                                                                       
    max_conductivity: 2000                                                                                                                                                      
    min_temperature: 15                                                                                                                                                         
    max_temperature: 32                                                                                                                                                         
    min_brightness: 2000                                                                                                                                                        
    max_brightness: 30000                                                                                                                                                       
#    check_days: 3 

Reiniciamos para que coja los cambios