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
Y seleccionamos ConBee II para configurarlo
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:
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
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