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"
{{:informatica:iot:home_assistant_01.png|}}
Y seleccionamos ConBee II para configurarlo
{{:informatica:iot:home_assistant_01.png|}}
Seleccionamos "Keep radio Settings"
{{:informatica:iot:home_assistant_03.png|}}
Aparece Success
{{:informatica:iot:home_assistant_04.png|}}
Y ya nos aparece en "Configured" para poder usarla
{{:informatica:iot:home_assistant_05.png|}}
===== 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=""
psk=""
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:
{{:informatica:iot:home_01.png|}}
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
{{:informatica:iot:home_02.png|}}
Seleccionamos nuestra tarjeta SD:
{{:informatica:iot:home_03.png|}}
Indica proceso de escritura de la tarjeta:
{{:informatica:iot:home_04.png|}}
Ha finalizado:
{{:informatica:iot:home_05.png|}}
Ya podemos acceder con la ip:
http://192.168.1.106:8123/
Creamos la cuenta de admin:
{{:informatica:iot:home_06.png|}}
Introducimos nuestra ubicación (si queremos)
Nos detecta dispositivos compatibles para hacer integraciones. Las podemos hacer ahora o después desde "integrations"
{{:informatica:iot:home_07.png|}}
==== 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"
{{:informatica:iot:home_10.png|}}
Ahora ya podemos ir a File Editor y modificar ficheros. Por ejemplo el fichero de configuración:
{{:informatica:iot:home_12.png|}}
{{:informatica:iot:home_11.png|}}
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
{{:informatica:iot:home_13.png|}}
Pones el client y el secret en el fichero
/config/configuration.yaml
{{:informatica:iot:home_14.png|}}
Reiniciamos para que coja los cambios:
Configuration > Server Controls > RESTART
{{:informatica:iot:home_15.png|}}
Para hacer la integración, vamos a:
Configuration > Integrations > ADD INTEGRATION
{{:informatica:iot:home_08.png|}}
Seleccionamos Spotify:
{{:informatica:iot:home_09.png|}}
En la url pone la ip de nuestro server y el client_id y nos aparece esta pantalla de validación de spotify
{{:informatica:iot:home_16.png|}}
Ya nos aparece configurado:
{{:informatica:iot:home_17.png|}}
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:
{{:informatica:iot:home_18.png|}}
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í:
{{:informatica:iot:home_19.png|}}
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
{{:informatica:iot:home_20.png|}}
Pulsamos INSTALL (tarda un poco) seleccionamos "Show in sidebar" y START, nos dirá que falta configurar. Pulsamos "GO TO CONFIGURATION"
{{:informatica:iot:home_21.png|}}
Pulsamos el desplegable de "device" y seleccionamos nuestro hub USB
{{:informatica:iot:home_22.png|}}
Pulsamos SAVE (el de arriba) y volvemos al menú anterior.
Pulsamos OPEN WEB UI y luego Phoscon. Nos aparece nuestro USB. Pulsamos en él
{{:informatica:iot:home_23.png|}}
Ponemos una contraseña:
{{:informatica:iot:home_24.png|}}
Pulsamos: Proceed without lights para ir al siguiente punto
Abrimos el menú y seleccionamos switches > Add new switch
{{:informatica:iot:home_25.png|}}
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
{{:informatica:iot:home_26.png|}}
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
{{:informatica:iot:home_29.png|}}
{{:informatica:iot:home_30.png|}}
Creamos la integración con deCONZ. Abrimos otra ventana y dejamos la de la cuenta atrás a un lado:
Configuration > Integrations > deCONZ
{{:informatica:iot:home_27.png|}}
{{:informatica:iot:home_28.png|}}
====== 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