Se trata de Home Assistant, un proyecto de software libre que nos permite tener un sistema centralizado para la domótica de nuestra casa.
Introducción
Home Assistant es un proyecto de software libre, programador en Python, y con una creciente comunidad de aficionados detrás que están desarrollando sus propios componentes para la interconexión de multitud de dispositivos:- Sensores.
- Interruptores.
- Enchufes.
- Servicios web.
- Comandos de sistema.
- Etc.
- Sensor. Cualquier cosa capaz de obtener información: sensores de movimiento, sensores de temperatura, estado de un ordenador, velocidad de conexión, información obtenida de una página web, etc.
- Interruptor. Cualquier cosa capaz de cambiar de estado: interruptores eléctricos, encender y apagar ordenadores, activar y desactivar servicios, etc.
- Reproductores multimedia. Cualquier cosa que reproduzca medios: televisores inteligentes, reproductores software, Chromecast, etc.
- Seguimiento de dispositivos. Cualquier cosa que cambie de lugar: posicionamiento GPS, detección por Wifi, por Bluetooth, etc.
- Automatismos. Son reglas que establece el usuario para que ocurran cosas cuando se dan ciertas circunstancias en el resto de elementos: que se enciendan las luces cuando no hay sol, estamos en un rango de horas y hay alguien en casa, que se enciendan cosas cuando un servicio está en un estado.... El límite es la imaginación.
Instalación
Home Assistant se puede instalar en cualquier ordenador que tenga Python. No es necesariamente sólo para Linux, se puede instalar también en OSX y en Windows.Pero el verdadero potencial es que la aplicación no necesita grandes recursos, y podemos aprovechar estos pequeños micro-ordenadores como Raspberry u Orange Pi para montar un servidor dedicado.
Estas son las instrucciones para instalar "Home Assistant" en armbian (distribución de Debian para ARM) en Orange Pi Zero. Casi todo está basado en la documentación "oficial"
https://home-assistant.io/docs/installation/armbian/
aunque con las modificaciones realizadas por mí para que funcione correctamente.
Paso 1:
Instalamos todos los paquetes necesarios si no los tenemos ya:sudo apt-get update
sudo apt-get install python3-dev python3-pip
Paso 2:
Vamos a ejecutar el programa con un usuario específico, de modo que lo creamos, tanto el usuario como su grupo asociado:sudo addgroup homeassistantEl último comando es para que el usuario tenga permitido acceder a internet.
sudo adduser --system --ingroup homeassistant homeassistant
sudo usermod -G aid_inet homeassistant
Paso 3:
Creamos un entorno virtual para Python asociado al usuario que hemos creado. De este modo, todos los paquetes instalados sólo afectarán al entorno virtual y no a todo el sistema:sudo pip3 install --upgrade virtualenv
sudo mkdir /srv/homeassistant
sudo chown homeassistant:homeassistant /srv/homeassistant
sudo mkdir /var/lib/home-assistant
sudo chown -R homeassistant:homeassistant /var/lib/home-assistant
Cambiamos al usuario que acabamos de crear y entramos y ejecutamos el entorno virtual:
sudo su -s /bin/bash homeassistant
virtualenv -p python3 /srv/homeassistant
source /srv/homeassistant/bin/activate
Paso 4:
Instalamos homeassistant con el nuevo usuario que hemos creado y lo configuramos como servicio:pip3 install --upgrade homeassistant
Ejecutamos por primera vez HomeAssistant para que cree la configuración en el directorio que hemos establecido (/var/lib/home-assistant):
hass --config /var/lib/home-assistant
Una vez que todo ha ido bien, detenemos la ejecución con Ctrl-C.
Paso 5:
Creamos un servicio para ejecutar Home Asistant. El fichero se denominará /etc/init.d/hass y su contenido será el siguiente:#!/bin/sh
### BEGIN INIT INFO
# Provides: hass
# Required-Start: $local_fs $network $named $time $syslog
# Required-Stop: $local_fs $network $named $time $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: Home\ Assistant
### END INIT INFO
# /etc/init.d Service Script for Home Assistant
# Created with: https://gist.github.com/naholyr/4275302#file-new-service-sh
PRE_EXEC=""
RUN_AS="homeassistant"
BIN="/usr/local/bin/hass"
PID_FILE="/tmp/hass.pid"
CONFIG_DIR="/var/lib/home-assistant"
FLAGS="-v -c $CONFIG_DIR --pid-file $PID_FILE --daemon"
REDIRECT=">> $CONFIG_DIR/home-assistant.log 2>&1"
start() {
if [ -f $PID_FILE ] && kill -0 $(cat $PID_FILE) 2> /dev/null; then
echo 'Service already running' >&2
return 1
fi
echo 'Starting service…' >&2
local CMD="$PRE_EXEC $BIN $FLAGS $REDIRECT"
su -c "$CMD" $RUN_AS
echo 'Service started' >&2
}
stop() {
if [ ! -f "$PID_FILE" ] || ! kill -0 $(cat "$PID_FILE") 2> /dev/null; then
echo 'Service not running' >&2
return 1
fi
echo 'Stopping service…' >&2
kill $(cat "$PID_FILE")
while ps -p $(cat "$PID_FILE") > /dev/null 2>&1; do sleep 1;done;
echo 'Service stopped' >&2
}
install() {
echo "Installing Home Assistant Daemon (hass-daemon)"
echo "999999" > $PID_FILE
chown $RUN_AS $PID_FILE
mkdir -p $CONFIG_DIR
chown $RUN_AS $CONFIG_DIR
}
uninstall() {
echo -n "Are you really sure you want to uninstall this service? That cannot be undone. [yes|No] "
local SURE
read SURE
if [ "$SURE" = "yes" ]; then
stop
rm -fv "$PID_FILE"
echo "Notice: The config directory has not been removed"
echo $CONFIG_DIR
update-rc.d -f hass remove
rm -fv "$0"
echo "Home Assistant Daemon has been removed. Home Assistant is still installed."
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
install)
install
;;
uninstall)
uninstall
;;
restart)
stop
start
;;
*)
echo "Usage: $0 {start|stop|restart|install|uninstall}"
esac
Una vez creado el servicio, hay que darle permisos de ejecución y activarlo al inicio:
sudo chmod +x /etc/init.d/hass
update-rc.d hass defaults
Utilización
Una vez instalado como servicio, podremos iniciar o detener Home Assistant mediante los siguientes comandos:service hass start
service hass stop
Destacar también que existe un fichero de log en el directorio /var/lib/home-assistant, que sería conveniente por facilidad enlazarlo en el directorio /var/log:
ln -s /var/lib/home-assistant/home-assistant.log /var/log/hass.log
Instalación de componentes adicionales
Home Assistant tal como lo hemos instalado funciona como un servicio aislado que se ejecuta en un entorno virtual de Python.Cuando activemos en la configuración algún elemento nuevo, todos los componentes necesarios de Python normalmente se instalarán automáticamente en el directorio deps dentro de /var/lib/home-assistant. Esta instalación la realiza directamente el usuario homeassistant.
Si en alguna ocasión la instalación de un componente de Python fallase (cosa que podemos comprobar monitorizando el fichero de log) podemos realizarla a mano ejecutando el entorno virtual, de la siguiente manera:
sudo su -s /bin/bash homeassistant
source /srv/homeassistant/bin/activate
pip3 install COMPONENTE
Y eso es todo por hoy. Espero que os guste.
No hay comentarios:
Publicar un comentario