Home Instalación y configuración básica de Home Assistant
Post
Cancel

Instalación y configuración básica de Home Assistant

Vamos a realizar una instalación básica de Home Assistant en una Raspberry Pi y configuraremos los parámetros más básicos para poder comenzar a hacer cosas más avanzadas luego.

Home Assistant es un proyecto abierto que hace las veces de gestor domótico y controlador de todos los dispositivos IoT de nuestra casa. Nos permite controlar sensores, enchufes, iluminación, alarmas, etc. todo ello dentro del mismo ecosistema sin que ningún dato salga de nuestra casa, siendo nosotros quienes tengamos siempre el control de nuestros dispositivos.

Lista de componentes

Software que usaremos

  • Home Assistant.
  • En mi caso Visual Studio Code (pero cualquier editor de texto nos vale).
NombreRequisitosIncluye supervisorSoporta Add-onsSoporta SnapshotsIncluye OSUsa DockerMétodo
OSMínimosISO
SupervisedLinux, DockerScript
ContainerLinux, DockerDocker
CoreLinuxPython

Instalación

Usaremos balenaEtcher para flashear la microSD con la imagen más reciente de Home Assistant que está disponible aquí (según el dispositivo que utilicemos). Una vez hecho esto, nos aseguramos de que nuestra Raspberry Pi esté conectada por cable a internet (es posible usar Wifi pero no recomendable) y tan solo debemos insertar la microSD y conectarla a la corriente. La imagen más reciente de Home Assistant descargará los datos necesarios y se instalará automáticamente. (OJO: No estamos haciendo uso de Raspbian, estamos flasheando otra imagen directamente).

No necesitamos habilitar previamente el acceso por SSH ya que accederemos a HASS desde su dirección local por defecto: http://homeassistant.local:8123

Si no estuviera disponible (puede ocurrir en sistemas antiguos), sustituimos ‘homeassistant.local’ por la IP del dispositivo de la forma: http://192.168.1.2:8123 (Podemos consultar la IP del dispositivo en el área de control del router o usando un programa como Wireless Network Watcher.

La descarga e instalación puede durar entre 10 y 30 minutos dependiendo del sistema y la conexión a internet.

Una vez finalizada, veremos en nuestro navegador:

Pantalla de bienvenida Configuración de ubicación

Una vez rellenados ambos paneles llegamos a la pantalla principal de HASS. Aunque hemos rellenado detalles como la ubicación, zona horaria, etc. veremos que todos estos datos los vamos a poder cambiar más adelante mediante código así que no nos preocupan demasiado.

UI de Home Assistant - Lovelace

Es importante diferenciar que Lovelace es solo una interfaz gráfica de Home Assistant desde la que vamos a poder no solo ver nuestro sistema, sino también configurarlo. No obstante, la configuración desde Lovelace (interfaz más gráfica) está limitada. Algunos aspectos solo son configurables desde el ‘core’ de HASS, para eso necesitamos escribir en YAML.

Antes de seguir, vamos a instalar un add-on fundamental desde la interfaz de HASS. Se trata de Samba share necesario para acceder a la estructura de carpetas de HASS desde nuestro ordenador. Aunque es cierto que podemos modificar el código desde la interfaz web usando un editor en linea cómo File editor, hacerlo desde nuestro ordenador es más simple y rápido. Para ello vamos a la esquina inferior izquierda y pinchamos en Supervisor > Add-on store > Samba share > Install. Debemos configurar un nombre de usuario y contraseña en la pestaña de configuración antes de darle a Start.

Una vez iniciado vamos a añadir una unidad de red desde Windows. Vamos a Equipo > Conectar a una unidad de red > Seleccionamos una unidad y nos conectamos a:

(H:) \HOMEASSISTANT\config

Conexión a unidad de red

Introducimos las credenciales que hemos configurado antes y deberíamos estar viendo algo así:

Ubicaciones de red en Windows 10

La carpeta que nos interesa en principio es config. Entramos y, por defecto, tenemos varios archivos/carpetas pero lo que nos interesa es el archivo configuration.yaml

Contenido de config

Antes de empezar vamos a desgranar el significado de los archivos. Toda la documentación está disponible AQUÍ.

  • configuration.yaml –> Aquí escribimos la configuración básica de HASS y otras vinculaciones.
  • ui-lovelace.yaml –> Aquí configuramos la interfaz gráfica de HASS llamada Lovelace (lo que muestra, como lo muestra, etc.)
  • customize.yaml –> Aquí configuramos el aspecto (iconos, imágenes, como se muestran en la interfaz, etc.)
  • scripts.yaml –> Aquí podemos configurar scripts para ejecutar.
  • groups.yaml –> Nos permite crear agrupaciones de cosas (Ej: agrupar sensores que pertenecen a una misma habitación, etc.)
  • automations.yaml –> Nos permite establecer automatizaciones (triggers) entre dispositivos.
  • secrets.yaml –> ¡OJO! Este archivo es importante porque en el declaramos datos privados. Por ejemplo, claves API, coordenadas, contraseñas, tokens, etc. que necesitamos usar en otros ficheros. Las declaramos aquí de forma que todos los datos sensibles están en un solo sitio y no repartidos por múltiples ficheros.
  • config/www –> Directorio necesario si queremos mostrar imágenes en nuestra interfaz. Aquí guardamos archivos multimedia.
  • config/integrations –> Interesante para ubicar las integraciones de forma separada (lo veremos más adelante).
  • config/custom_components –> Para ubicar add-ons de terceros. Nos servirá también para instalar HACS.
  • config/themes –> Aquí ubicamos temas personalizados para la interfaz gráfica.

Configuración extra

PD: El contenido por defecto de el directorio config puede ser distinto la primera vez que se inicia. Algunas carpetas/archivos hay que crearlos manualmente.

Editar el campo homeassistant: del archivo configuration.yaml ANULARÁ todos los cambios que hagamos por medio de la interfaz de Lovelace, ya que Home Assistant da prioridad a la configuración declarada en código. Hay ciertas cosas que sin embargo NO podemos configurar de otra manera que no sea mediante código YAML; si quieres configurar solo lo estrictamente necesario para poder seguir tocando cosas desde la interfaz no modifiques el campo homeassistant:.

Si quieres ver la sintaxís básica de YAML puedes aquí. Vamos por partes:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# Configuración por defecto:
homeassistant:
  name: Home
  latitude: !secret home_latitude
  longitude: !secret home_longitude
  elevation: !secret elevation 
  unit_system: metric
  temperature_unit: C
  time_zone: Europe/Madrid
  packages: !include_dir_named integrations
  customize: !include customize.yaml
  
lovelace:
  mode: yaml
  
frontend:
  themes: !include_dir_merge_named themes
  javascript_version: latest
  
person:
  - name: Alejandro
    id: alejandro

weather:
  - platform: openweathermap
    api_key: !secret openweathermapkeyforweather
    mode: daily

updater:
  include_used_components: true    
  
api:
config:
conversation:
history:
logbook:
map:
mobile_app:
ssdp:
sun:
http:
stream:
system_health:
zeroconf:
discovery:
media_extractor:

# Otras ubicaciones:
zone:
  - name: Otra ubicacion
    latitude: !secret otra_ubicacion_latitude 
    longitude: !secret otra_ubicacion_longitude  
    radius: 100

# Text to speech:
tts:
  - platform: google_translate
    language: es

# Incluir:
group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
  • homeassistant:
    • name: Nombre de la casa
    • latitude: Latitud
    • longitude: Longitud
    • elevation: Elevación metros sobre el mar
    • unit_system: Sistema de unidades (métrico, imperial)
    • temperature_unit: Unidad de temperatura (C, F, etc)
    • time_zone: Zona horaria
    • packages: Creamos la carpeta «integrations» para separar las integraciones en un directorio aparte.
    • customize: incluimos en la configuración el archivo customize.yaml
  • lovelace:
    • Indicamos a HASS que vamos a editar la interfaz gráfica mediante código.
  • frontend:
    • Incluimos el directorio (hay que crearlo) themes para instalar temas personalizados.
    • Indicamos que queremos usar siempre la última versión de JavaScript del navegador.
  • person: Para crear/editar usuarios
    • Indicamos el nombre del usuario
    • Indicamos el id que recibirá en HASS
    • Podemos indicar más detalles como dispositivos rastreadores para trackear nuestra posición, imágen de perfil personalizada, etc.
  • weather: Si se deja en blanco se usa la fuente por defecto de HASS. Yo uso OpenWeatherMap
    • platform: plataforma para obtener los datos.
    • api_key: Clave API de la plataforma que usemos.
    • mode: Información que vamos a mostrar del tiempo.
  • updater: Comprueba la versión actual de HASS respecto a nuevas versiones.

  • zone: Para crear ubicaciones personalizadas.
    • name: Nombre de la ubicación.
    • latitude: Latitud.
    • longitude: Longitud.
    • radius: Radio dentro del cual tenemos que encontrarnos para que HASS registre que estamos en esa ubicación.
    • icon: Icono personalizado.
  • tts: Herramienta para leer texto escrito.
    • Por defecto la plataforma es Google Translate.
    • Podemos especificar el idioma con language.
  • Incluimos otros ficheros que veremos más adelante. Si no los especificamos aquí, no se usará su contenido aunque los editemos.
    • group: !include groups.yaml
    • automation: !include automations.yaml
    • script: !include scripts.yaml
    • scene: !include scenes.yaml

Una vez que hemos guardado el contenido editado, volvemos a la interfaz de HASS para reiniciar el sistema. Para ello, antes de nada, hacemos click en nuestro nombre, abajo del todo en la esquina inferior izquierda, lo que nos lleva a un panel de configuración donde debemos activar el modo avanzado. Esto nos permitirá comprobar la validez de cada cambio que hagamos en el código ANTES de reiniciar.

Ahora si, vamos a Configuración > Controles del servidor y pulsamos en Validación de la configuración:

Validación de la configuración

Si todo ha ido bien, en esa misma página, más abajo, pulsamos en Reiniciar y confirmamos la operación. En unos 30~40 segundos se reiniciará. Desde el apartado de configuración podemos entrar al apartado de Zonas y/o Personas y ver los cambios que hemos guardado.

Toda la configuración de mi servidor de Home Assistant está disponible en mi repositorio de Github.

This post is licensed under CC BY 4.0 by the author.

Integraciones y componentes personalizados en Home Assistant

Configuración de la interfaz gráfica (‘Lovelace’) de Home Assistant