Herramientas de usuario

Herramientas del sitio


informatica:software:home_assistant

Home Assistant

Sistema de automatización del hogar o domótica.

Todas las notas se centran en la imagen de Home Assistant para Raspberry Pi 2 (la que uso actualmente). Home Assitant también puede ser instalado a través de una imagen de Docker.

Instalación

El método recomendado para tener Home Assistant es instalar el Home Assistant Operating System en una Raspberry Pi (a partir del modelo 3).

Configuración

La gran mayoría de los cambios en el fichero configuration.yaml requieren un reinicio de Home Assistant para ver los cambios. Esto se hace desde el botón Reiniciar de la sección Configuración → Controles del servidor → Administrador del servidor.

Los ficheros de configuración utilizan la sintaxis YAML

https://community.home-assistant.io/t/when-to-use-in-yaml-files/62790/4

Usuarios

La buena práctica es tener un usuario con permisos de administrador / propietario y otro normal para el uso de Home Assistant día a día.

Personas

Una persona es un ser vivo de interés para nuestra instalación de Home Assistant. Podemos vincularlo a un usuario existente de Home Assistant o no. Se hace para luego asociarle automatizaciones o sensores, por ejemplo, si tenemos una mascota con un rastreador GPS.

Para añadir personas, vamos al panel lateral y pulsamos en AjustesPersonas.

Seguimiento de personas

También se puede instalar la aplicación móvil de Home Assistant en el móvil de las personas que queramos controlar.

Automatizaciones

La base de toda automatización se compone de 3 elementos:

  • trigger: disparador; el evento que activa la automatización.
  • condition: condición
  • action: acción a realizar.

Por ejemplo:

  • trigger: Cuando Fulanito entre en casa
  • condition: y sea de noche
  • action: encender las luces del pasillo.

Se pueden crear en el fichero configuration.yaml dentro del apartado automation:

automation: 
  - alias: Example with multiple time values in a single time trigger
    trigger:
      - platform: time
        at:
          - "05:00:00"
          - "06:00:00"
          - "10:00:00"
    action:
      choose: ...

O en un fichero aparte indicando lo siguientes en configuration.yaml:

automation: !include automations.yaml

Donde automations.yaml sería el fichero en el que almacenaremos las automatizaciones.

Por defecto, cuando se crea una automatización, se activa. Si no queremos este comportamiento, tendremos que añadirle initial_state: false

automation:
  - alias: Example with multiple time values in a single time trigger
    trigger:
      - platform: time
        at:
          - "05:00:00"
          - "06:00:00"
          - "10:00:00"
    action:
      choose: ...

Si queremos poder editarlas desde la interfaz web, la automatización debe tener un identificador único:

automation:
  - id: notificacion_puerta_principal
    alias: Puerta principal (aviso) 
    description: Indica si se abre o cierra la puerta principal
    trigger:
      ...
    action:
      ...
  • alias: nombre que aparecerá en el listado de automatizaciones
  • description: detalle sobre la automatización (opcional)

Detector de presencia

Device Tracker

Utilizar el router para rastrear dispositivos y así poder rastrear personas, por ejemplo.

# Ejemplo de configuration.yaml para un router Technicolor
device_tracker:
  - platform: thomson # Thomson es lo mismo que Technicolor
    host: 192.168.0.1 # La IP que tenga el router
    username: usuario_administracion
    password: contraseña
    new_device_defaults:
      track_new_devices: true

Podemos usar ping para hacer la detección:

- platform: ping
    hosts:
      nombre_host: 192.168.0.10

Al usar esta integración (Device Tracker) se creará el fichero known_devices.yaml en el mismo directorio que configuration.yaml. Tiene este aspecto:

fulanito:
  icon:
  mac:
  name: Fulanito Pérez
  picture:
  track: true

menganito:
  icon:
  mac:
  name: Menganito Rodríguez
  picture:
  track: true

Base de datos

Home Assistant utiliza una base de datos para mantener un historial de eventos y sus parámetros. Por defecto, Home Assistant utiliza una base de datos SQLite que se almacena en el directorio de configuración (/ruta/config/home-assistant_v2.db).

Si se quiere utilizar un servidor de base de datos en su lugar, es necesario utilizar el componente recorder. Un ejemplo de configuración en el fichero configuration.yaml:

recorder:
  purge_keep_days: 7
  db_url: mysql://usuario_bd:contraseña@direccion_servidor/nombre_base_datos?charset=utf8
  exclude:
    domains:
      - sun
    entities:
      - sensor.*_linkquality

Tablas

  • events: eventos que ocurren.
  • recorder_runs
  • schema_changes
  • states: estados de los elementos.

Las tablas events y states están relacionadas por el campo event_id (clave primaria de events).

Las fechas en base de datos son almacenadas por Home Assistant en UTC, así que depende del usuario/aplicación hacer la traducción a la zona horaria de interés.

Consultas

Las 10 entidades más utilizadas/registradas:

SELECT entity_id, 
       COUNT(*) as count 
FROM states 
GROUP BY entity_id 
ORDER BY count DESC 
LIMIT 10

Consultar el tamaño actual de la base de datos:

SELECT table_schema "Nombre base de datos",
       ROUND(SUM(data_length + index_length) / 1024 / 1024, 1) "Tamaño (MB)" 
FROM information_schema.tables 
GROUP BY table_schema

Estados de un sensor en un determinado rango temporal:

SELECT state, last_changed 
FROM states
WHERE
  entity_id = 'sensor.luz_salon'
  AND last_changed BETWEEN
    '2020-07-05 00:00:00.000000' AND '2020-07-07 00:00:00.000000';

Complementos

Advanced SSH & Web Terminal

Este complemento permite iniciar sesión en nuestra instancia de Home Assistant utilizando SSH o mediante un terminal web.

Antes de iniciarlo, hay que configurarlo con una contraseña para el usuario SSH o estableciendo claves mediante la configuración del complemento.

Podemos utilizarlo para actualizar el núcleo de Home Assistant:

ha core update

Zigbee2MQTT

informatica/software/home_assistant.txt · Última modificación: por tempwin