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