1. Home Assistant – Instalar

Revisado: 2021-07-27

Home Assistant es una aplicación abierta, tipo local con la gestión básica para iniciar un proyecto de IOT para el hogar u oficina.

Permite acceder a la información y control de los dispositivos mediante una página web de configuración simplificada, personalizada, facilitando la instalación básica para iniciar con los conceptos básicos.

Ésta sección muestra notas tomadas como documentación simplificada al realizar un proyecto básico de IOT.

La forma de implementarla para este proyecto es un Raspberry Pi, por tener un servidor dedicado y de bajo consumo energético, aunque puede inslalarse en otras plataformas.

Referencia: https://www.home-assistant.io/installation/


1. Instalación manual con Raspbian en Raspberry Pi

Para la implementación de un broker simplificado que gestione las conexiones con cada dispositivo se usa un Raspberry Pi con su sistema operativo «Raspberry pi OS»  a partir del año 2020, antes conocido como»Raspbian». Dado que la documentación se inició en el 2018, se mantienen ambos nombres para la documentación.

En adelante, se considera que el Raspbian ya se encuentra instalado, actualizado, operativo y con dirección IP fija, de no ser así puede seguir las instrucciones de la sección Raspberry Pi OS-Instalar

A partir de aquí se resumen los pasos para la instalación de Home Assistant

Para la instalación se recomienda actualizar Rasbian a la fecha, puede usar las indicaciones en la sección correspondiente Raspbian-Actualizar

algunos componentes adicionales para actualizar

sudo apt-get install -y python3 python3-dev python3-venv
sudo apt-get install -y python3-pip libffi-dev libssl-dev libjpeg-dev zlib1g-dev
sudo apt-get install -y autoconf build-essential libopenjp2-7 libtiff5 tzdata

Luego se continua con el proceso de instalación en entorno virtual.

Referencia: https://www.home-assistant.io/docs/installation/raspberry-pi/


2. Crea un Entorno virtual en Python

  • Crear un usuario para homeassistant
    sudo useradd -rm homeassistant -G dialout,gpio,i2c
  • Crear un directorio de trabajo
    cd /srv
    sudo mkdir homeassistant
    sudo chown homeassistant:homeassistant homeassistant
    
  • Configurar un entorno virtual, ajustar la versión de Python acorde a la disponible y que se encuentre probada. El resto de instrucciones se mantienen iguales.
sudo -u homeassistant -H -s
cd /srv/homeassistant
python3 -m venv .
source bin/activate
  • Añadir los componentes Python

hasta el momento,  la linea de shell debe tener la forma de:
(homeassistant) homeassistant@raspberrypi:/srv/homeassistant $

donde se puede escribir la instrucción:

python3 -m pip install wheel

3. Instala homeassistant en entorno virtual

Iniciar el proceso de instalación, en la línea de shell mostrada en el estado anterior, se escribe:

pip3 install homeassistant

donde se puede observar el progreso de instalación de la siguiente forma:

(homeassistant) homeassistant@raspberry:/srv/homeassistant $ pip3 install homeassistant
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting homeassistant
  Downloading https://files.pythonhosted.org/packages/87/c9/f41fcf931501f07ef9ca12365fd09eb879f6755618f375b058a229d9c94b/homeassistant-0.103.6-py3-none-any.whl (6.0MB)
    100% |████████████████████████████████| 6.0MB 53kB/s
Collecting cryptography==2.8 (from homeassistant)
  Downloading https://files.pythonhosted.org/packages/be/60/da377e1bed002716fb2d5d1d1cab720f298cb33ecff7bf7adea72788e4e4/cryptography-2.8.tar.gz (504kB)
    100% |████████████████████████████████| 512kB 343kB/s
  Installing build dependencies ... done
...

El programa se puede iniciar usando la instrucción. Esperar con paciencia, toma tiempo la primera ejecución.

hass

Durante el proceso de instalación, (o esperado al menos 5 minutos) una vez que se ha llegado al proceso de:

[homeassistant.bootstrap] Home Assistant initialized in 525.83s
[homeassistant.core] Starting Home Assistant
(MainThread) [homeassistant.core] Timer:starting

o en otro caso, observe los tiempos:

2021-07-23 06:06:09 WARNING (Recorder) [homeassistant.components.recorder.util] The system could not validate that the sqlite3 database at //home/homeassistant/.homeassistant/home-assistant_v2.db was shutdown cleanly
2021-07-23 06:08:15 WARNING (MainThread) [homeassistant.bootstrap] Waiting on integrations to complete setup: cloud
2021-07-23 06:11:38 WARNING (MainThread) [homeassistant.bootstrap] Waiting on integrations to complete setup: zeroconf

se debe ingresar vía web para ingresar los datos de usuario, palabra clave, ubicación geográfica y así completar la instalación.

Para el ejemplo mostrado debería ingresar desde un navegador de internet a la dirección asignada en el proceso de instalación:

192.168.10.100:8123

Cuando se termine el proceso de instalación en la página web, será necesario configurar el inicio automático, así al reiniciar el Raspberry Pi, todo continúe funcionando normalmente.

– se debe salir del proceso de la consola con las teclas Ctrl-C

– regresar al usuario básico con la instrucción:  exit


4. Configura el inicio automático de Home Assistant

Crear un archivo de servicio con nombre semejante al mostrado en la instrucción:

sudo nano -w /etc/systemd/system/home-assistant@homeassistant.service

El contenido del archivo siguen las siguientes instrucciones:

[Unit]
Description=Home Assistant
After=network-online.target 

[Service]
Type=simple
User=%i
ExecStart=/srv/homeassistant/bin/hass -c "/home/homeassistant/.homeassistant"

[Install]
WantedBy=multi-user.target

Configure el autoinicio de Home Assistant con la instrucción:

sudo systemctl enable home-assistant@homeassistant

Para probar que todo funciona bién se reinicia el Raspberry Pi con la instruccion sudo reboot


5. Modo avanzado para administrador

Para comprobar que las configuraciones sean las correctas u otras opciones de administrador, se puede activar las opciones de modo avanzado para el usuario administrador desde la sección «administrador/modo avanzado»

Se activan y muestran los botones en «configuración/controles de servidor»


Referencia: Python Virtual enviroment

https://www.home-assistant.io/docs/autostart/systemd/