Home Away Controller es un Software pensando para ejecutar acciones en tus dispositivos domésticos cuando entras o cuando sales de casa.
Aunque algunos sistemas como Homekit o Google Assistant ya pueden hacerlo en base a la localización de tu teléfono móvil, esto puede implicar un consumo extra de batería. Este programa viene a solucionar ese problema, detectando si estás en casa o no comprobando únicamente si tu dispositivo está conectado a tu red Wifi.
Para detectar si estás en casa o no, existe un módulo denominado away_controllers
donde se encuentran algunas
utilidades que permiten detectar si estás en casa o no. La idea en este caso es ir extendiendo este módulo a través de
contribuciones de la comunidad.
Actualmente, los controllers que existen son:
- Movistar MitraStar HGU (
MovistarHGUMitraStarController
): este controller se conecta por SSH a tu router HGU de la marca MitraStar y comercializado por Movistar, y detecta si estás en casa o no, viendo el estado LAN y comprobando si la MAC de tu dispositivo está activa o no. - Ping (
PingController
): este controller lanza un ping a los dispositivos a controlar y marca en casa aquellos que respondan al ping.
Para interactuar con la domótica de tu casa cuando entras o sales, existe un módulo denominado devices_managers
que
permite interactuar con los dispositivos, para activarlos o desactivarlos, en función de tus necesidades. La idea en
este caso es ir extendiendo este módulo a través de contribuciones de la comunidad.
Actualmente, los managers que existen son:
- Homebrige (
HomeBridgeDeviceManager
): permite interactuar con tus dispositivos a través de HomeBridge.
Tanto los away controllers como los devices managers necesitan ser configurados, ya que necesitarás:
- Definir los dispositivos que indican si estás en casa o no.
- Establecer passwords para conectarte a tu router.
- Definir los dispositivos con los que interactuar.
- Establecer la forma de interactuar con esos dispositivos.
Tienes un ejemplo de configuración en el archivo config.json.template
:
away_controller
: Contiene la configuración del módulo que comprueba si estás en casa o no:class
: La clase del módulo que define si estás en casa o no.config
: La configuración específica del módulo.devices_to_control
: La lista de dispositivos que indican si estás en casa o no.
devices_managers
: Una lista de managers que gestionan los dispositivos con los que interactuar. Por cada uno:class
: La clase del módulo que permite interactuar con los dispositivos deseados.config
: La configuración específica del módulo.
host
: La dirección IP del router.user
: El usuario con el que conectarte al router (generalmente1234
).password
: La password de acceso al router (pegatina debajo del router).
Sin configuración específica
host
: La dirección IP de Homebridge.user
: El usuario con el que conectarte Homebridge (generalmenteadmin
).password
: La password de acceso al Homebridge.devices
: La lista de dispositivos con los que debe interactuar HomeBridge:id
: El ID único de dispositivo (lo puedes obtener llamando a la APIhttp://<HOMEBRIDGE_HOST>:8581/api/accessories
)type
: Tipo de dispositivo (On
,argetHeatingCoolingState
)home_value
: El valor a establecer al dispositivo cuando llegas a casa.null
para no ejecutar acción al llegar a casa.away_value
: El valor a establecer al dispositivo cuando sales de casa.null
para no ejecutar acción al salir de casa.
Para poder ejecutar, el programa necesita que definas la variable de entorno CONFIG_FILE
con el path del fichero de
configuración. Por ejemplo:
export CONFIG_FILE="/home/pi/home_away_controller/config.json"
cd home_away_controller
python3 /home/pi/home_away_controller/main.py
Lo ideal es que el programa ejecute cada minuto, cosa que puedes conseguir con una instrucción cron
tal que:
*/1 * * * * /home/pi/home_away_launcher.sh >> /home/pi/home_away_controller.log 2>&1