Creando un hogar inteligente: Lo que faltaba en tu vida se llama Apilio

Si tienes dispositivos inteligentes en casa, posiblemente hayas oído hablar de IFTTT, la conocida plataforma web que permite conectar entre sí una gran cantidad de servicios y dispositivos, creando acciones simples tipo «si <ocurre esto>… entonces <haz esto>»

De igual forma, es posible que estés utilizando Smart Life / Tuya (más sobre Smart Life aquí) para controlar tus dispositivos inteligentes, ya que existe una gran cantidad de dispositivos — bombillas, interruptores, sensores de presencia, sensores de temperatura, detectores de puerta abierta/cerrada, sensores de humedad, etc. — que se gestionan desde esta app.

TE INTERESA:

Creando un hogar inteligente (parte 1): Aplicación Smart Life

Tanto IFTTT como Smart Life permiten crear automatizaciones simples, pero ¿qué ocurre cuando necesitas una automatización más complicada que tenga en cuenta varias condiciones? Ahí es donde Apilio marca la diferencia y, en este artículo, te voy a contar qué puede hacer.

» Acceder a Apilio «

¿Qué es Apilio?

Apilio es una plataforma web que utiliza variables, condiciones y bloques de lógica (logicblocks) para crear automatizaciones más avanzadas de lo que puedes conseguir con IFTTT o Smart Life / Tuya.

En mi opinión, es una herramienta muy útil si las automatizaciones simples tipo «si… entonces…» se quedan cortas para tus automatizaciones

La buena noticia es que Apilio tiene integración nativa con IFTTT, Smart Life / Tuya y Philips Hue, por lo que puedes utilizar todos tus dispositivos y servicios sin trabajo adicional.

¿Cómo funciona Apilio?

Apilio utiliza tres elementos: variables, condiciones y bloques de lógica (logicblocks).

Las variables permiten almacenar valores de tipo numérico, texto o booleano (verdad/falso) en la memoria de Apilio. Así, por ejemplo, puedes crear variables para almacenar la última temperatura medida en casa, si hay alguien en casa, etc.

Las condiciones permiten establecer reglas para desencadenar acciones. Puedes definir condiciones basadas en valores de variables que hayas guardado (por ejemplo, HayAlguienEnCasa = TRUE) o en eventos (por ejemplo, si es una hora del día en particular, si un interruptor se enciende, si la temperatura de una habitación supera un umbral, si un sensor detecta movimiento, si el sol ya se ha puesto, etc.)

Por último, los logicblocks permiten definir un conjunto de acciones que se ejecutarán si se dan una o varias condiciones. Es posible combinar condiciones con operadores AND («Y») y OR («O») para crear lógicas más complejas. Al igual que se definen acciones que se ejecutarán si la lógica se evalua positivamente («THEN»), se pueden definir acciones que se ejecutarán si se evalúa negativamente («ELSE»).

Entre las acciones que podemos definir se encuentran actuaciones sobre dispositivos inteligentes de Smart Life o Philips Hue (por ejemplo, encender o apagar una bombilla), applets de IFTTT o incluso llamadas a servicios web externos (vía webhooks).

La forma de crear estas variables, condiciones y logicblocks es muy sencilla y no requiere ningún conocimiento de programación.

Alguns de los logicblocks que tengo configurados

Algunas funcionalidades únicas de Apilio

Condiciones que solo reportan un estado si se mantiene durante un tiempo

Esto es útil para, por ejemplo, sensores de puerta que pueden indicar momentáneamente valores erróneos debido a vibraciones, ya que puedes filtrar esos reportes falsos.

En mi caso, la puerta del garaje reporta cerrado-abierto-abierto en menos de 1 segundo cuando se cierra debido a la vibración del golpe, por lo que mi condición PuertaAbierta tiene un retardo de 10 segundos. Solo si el estado de «puerta abierta» se mantiene durante 10 segundos, se desencadenan los logicblocks que tienen asociada la condición de puerta abierta.

Esta funcionalidad también es útil si, por ejemplo, quieres disparar un logicblock si una luz lleva encendida durante 30 minutos. En mi caso, recibo una notificación si la luz del baño lleva 30 minutos encendida y se apaga directamente si lleva 45 minutos encendia, ya que probablemente me la he dejado encendida por error.

Condiciones que vuelven a un valor falso pasado un tiempo

Esto es útil para, por ejemplo, sensores de movimiento que solo reportan que se ha detectado movimiento, pero no que ha dejado de detectarse. Es posible configurar que, por ejemplo, pasado 1 minuto, la condición de movimiento detectado vuelva a ser falsa.

Ejemplo: Mis cámaras de seguridad Netatmo generan un aviso en IFTTT cuando detectan a una persona, y desde IFTTT actualizo a TRUE una variable booleana llamada PersonaDetectada. Dado que la cámara no genera ningún aviso cuando deja de detectarse a esa persona, tengo configurado que al cabo de un minuto la variable vuelva a FALSE automáticamente.

Ejecución de logicblocks en ciertos momentos del día, de la semana, del mes, etc.

Gracias a los eventos de tiempo basados en expresiones cron, es posible programar casi cualquier condición temporal (todos los domingos a las 10:00, el día 7 de cada mes a las 11:00, todos los días de lunes a viernes a las 17:00, etc.)

Ejemplo: Tengo programado que todos los días a las 22:00 se compruebe si las puertas de casa están cerradas y, en caso contrario, me avisa.

Retardos entre acciones

En la lista de acciones a ejecutar por un logicblock, es posible configurar retardos fijos o aleatorios. De esta forma, por ejemplo, puedes hacer que se encienda una luz y, pasados dos minutos, se apague. El uso de retardos aleatorios puede ser útil si quieres simular que hay alguien en casa para disuadir a los cacos.

Ejemplo: Si mis cámaras exteriores detectan movimiento, se encienden las luces exteriores y, al cambio de 3 minutos, se apagan.

Ejecución de logicblocks y modificación de variables mediante llamadas Web

Aunque IFTTT incluye integración directa con Apilio, es posible que quieras acceder desde otros servicios (por ejemplo, Atajos de Siri). La buena noticia es que puedes hacerlo con solo una llamada Web.

Ejemplo: He definido un atajo de Siri que cierra la puerta del garaje si, estando en el coche, le digo al iPhone «Oye Siri, cierra la puerta del garaje».

Llamadas a servicios Web como acciones de Apilio

Si quieres integrar Apilio con un servicio que permite llamadas vía Web, puedes añadir estas llamadas como acciones de un logicblock.

Esto se puede utilizar, por ejemplo, para que un logicblock envíe una notificación al móvil (usando el servicio gratuito Vybit), un altavoz Echo diga algo (usando el servicio VoiceMonkey), que Telegram te haga una llamada de voz (usando el servicio CallMeBot), etc.

Ejemplo: Si se detecta movimiento en la escalera cuando no hay nadie en casa, recibo una notificación en el móvil usando la app Vybit.

Integración con IFTTT

Permite realizar llamadas desde IFTTT a logicblocks o modificar variables, así como ejecutar applets de IFTTT como acciones de un logicblock.

Ejemplo: Si un sensor de movimiento de ventana de Netatmo, que se integra con IFTTT pero no con Smart Life, detecta movimiento, se actualiza la variable booleana netatmo_mov_ventana_cocina.

Integración con Smart Life / Tuya

Permite crear condiciones en base a estados de dispositivos del hogar configurados en Smart Life, así como ejecutar acciones sobre dispositivos de Smart Life o incluso rutinas creadas en Smart Life en logicblocks

Ejemplo: Si el sensor del techo de la escalera detecta movimiento, se activa una condición que dispara un logicblock.

Integración con Philips Hue

Permite ejecutar acciones sobre tus luces inteligentes en logicblocks. En mi caso, no tengo luces de este tipo, por lo que no he podido probar estas automatizaciones.

¿Qué se puede automatizar con Apilio?

Las posibilidades de automatización son casi infinitas, pero a continuación os traigo algunos ejemplos de lo que yo he automatizado en casa con Apilio:

Encender las luces exteriores de la casa si, estando entre la puesta del sol y el amanecer, un sensor de movimiento detecta alguien delante de la puerta.

Apagar todas las luces si todos los habitantes de la casa se han marchado.

Enviar una notificación al móvil si una luz lleva más de 15 minutos encendida, y apagarla directamente si lleva más de 30 minutos

Encender la luz del garaje si alguno de los sensores de movimiento instalados detecta actividad y el sensor de iluminación marca que no hay luz ambiental.

Hacer sonar una sirena si, no habiendo nadie en casa, alguno de los sensores de movimiento detecta actividad.

Abrir la puerta del garaje cuando me acerco con el coche a menos de 50 metros

Llamarme por teléfono (vía Telegram) si me he ido de casa pero me he dejado abierta alguna de las dos puertas del garaje

Si quieres ver más posibles usos de Apilio, su propia web incluye una buena colección.

Un ejemplo: Notificación al móvil si se detecta movimiento sin haber nadie en casa

Este logicblock envía una notificación a mi móvil si mi mujer y yo estamos fuera de casa pero el sensor de movimiento de la escalera detecta movimiento.

La lógica que se evalúa es una combinación de tres condiciones:

Si_ambos_fuera_de_casa: Es una variable que se pone a TRUE desde IFTTT cuando tanto mi móvil como el de mi mujer están fuera de un radio de 300 metros de casa. Para detectar esto, utilizo la app de mi termostato inteligente Tado, que ambos tenemos instalada en el móvil, pero existen otros servicios que permiten hacer esto mismo.

PIR_escalera_pasamanos_mov: Esta condición de pone a TRUE cuando el sensor de movimiento del pasamanos (abajo de la escalera) detecta movimiento.

PIR_escalera_arriba_p2_mov: Esta condición de pone a TRUE cuando el sensor de movimiento de arriba de la escalera detecta movimiento.

Para que este logicblock se dispare, es necesario que ambos estemos fuera de casa, y que uno o ambos de los dos sensores de movimiento detecte actividad. Esto se indica así:

Si_ambos_fuera_de casa Y (PIR_escalera_pasamanos_mov O PIR_escalera_arriba_p2_mov)

En caso de que las condiciones se evalúen de manera positiva, se envía la notificación a través de una llamada web al servicio Vybit. En caso de que se evalúen de manera negativa, no se hace nada.

¿Cuánto cuesta Apilio?

Apilio ofrece varias modalidades:

Modo gratuito | Modo Esencial | Modo Pro
Gratis | $0,95/mes | $3,40/mes

1 logicblock

Envía/recibe eventos una vez por minuto

Integrado con IFTTT

Históricos de logs durante 24h

3 logicblocks

Envía/recibe eventos una vez por segundo

Integrado con IFTTT

Históricos de logs durante 1 semana

Permite retrasar acciones

Permite pasar parámetros a acciones de IFTTT

75 logicblocks

Envía/recibe eventos una vez por segundo

Integrado con IFTTT

Históricos de logs durante 1 mes

Permite retrasar acciones

Permite pasar parámetros a acciones de IFTTT

Permite exportar logs a CSV

Permite enlazar condiciones de manera compleja

Permite modos de ejecución

Permite condiciones avanzadas de tiempo (cron)

Ofrece una API REST

Además, si quieres probarlo, Apilio ofrece una prueba gratuita con todas las funcionalidades activas durante 14 días sin necesidad de introducir ninguna forma de pago. Es lo que yo utilicé antes de decidirme a contratarlo.

¿Merece la pena?

Si eres un entusiasta de la automatización del hogar, desde luego que sí, ya que ofrece unas posibilidades de automatización que no son posibles con otras plataformas, y con integración con IFTTT, Smart Life / Tuya y Philips Hue.

Además, a diferencia de otros servicios que he probado, ofrecen un soporte excelente vía chat o en sus propios foros, donde tanto el equipo de Apilio como otros usuarios se vuelcan para ayudar.