Domótica

Domótica: Introducción con IFTTT, Webhoooks y Switchur

La domótica cada día es más accesible, y cualquiera puede empezar a automatizar su casa de manera muy sencilla. Hace ya tiempo que estuve estudiando qué sistema implantar, y comencé interesándome sobre Z-Wave a través de Domótica Doméstica, un portal estupendo donde puedes aprender un montón sobre esta tecnología. Ahí puedes aprender las ventajas, y también los inconvenientes de Z-Wave, y uno de los requisitos importantes de este tipo de solución es que requiere un controlador, tipo Eedomus, Jeedom o similares. Por distintas razones, no llegué a implantarlo en casa, y ahora he comenzado con una solución diferente, que te contaré a continuación.

Una de las herramientas más utilizadas a la hora de crear automatizaciones en IFTTT: IF This Then That. Esta herramienta no está especialmente diseñada para Domótica, ya que tiene muchísimas funciones más, porque se integra con cientos de servicios web, que te permiten automatizar tareas. En esa lista de integraciones puedes encontrar práticamente de todo, por ejemplo: Gmail, Facebook, Telegram, Instagram, Google Assistant, Domino’s Pizza, Dropbox, Spotify, Slack ,Reddit, Google Calendar, Evernote, OneNote, … 

Cuando se trata de Domótica, IFTTT también tiene tiene decenas de servicios que nos pueden ayudar a integrar distintos dispositivos de nuestra casa, por nombrar algunos: Philips HUE, Belkin Wemo, Nest, TP-Link, D-Link, SmartLife, … Es decir, que con IFTTT vamos a poder automatizar cuando se deben encender las luces del salón, a qué temperatura se debe poner el termostato del salón, o cuándo debe apagarse totalmente nuestro televisor para que el modo standby no siga consumiendo energía.

IFTTT: IF This Then That

Antes de nada, vamos a ver cómo funciona IFTTT. Para empezar, necesitamos crear una cuenta que nos permitirá asociar los servicios que vamos a utilizar, y crear todas las recetas que definan las acciones que queremos ejecutar en las circunstancias que elijamos.

Una vez que hemos creado una cuenta, es el momento de comenzar a crear recetas, ¿en qué consiste esta receta? Una receta consiste en dos partes:

  • Disparador: Es el evento que hace que una receta se ponga en funcionamiento, lo que lanza la acción.
  • Acción: Es la parte de la receta que indica qué acción realizar cuando se lance el disparador.

Por tanto, podemos definir determinados disparadores que lanzarán las acciones que hayamos definido. Estos son algunos ejemplos de recetas:

  • Cuando llegue a casa (disparador), que se encienda la luz del salón (acción).
  • Cuando me vaya a acostar (disparador), que se apaguen todas las luces de la casa (acción).
  • Cuando hayamos salido de casa todos los componentes de la familia (disparador), activar la alarma (acción).

Muchos de los servicios que nombrábamos antes y que están integrados con IFTTT permiten definir tanto disparadores como acciones, aunque algunos de ellos solo permiten definir disparadores y otros solo acciones.

IFTTT | LinkedIn
IFTTT: IF This Then That

Disparadores

Estos son algunos ejemplos de disparadores útiles para Domótica

  • Smartlife: cuando un sensor de puerta detecte una apertura, cuando se desbloquee una cerradura o cuando se apague una luz o enchufe.
  • Google Assistant: cuando le dices una determinada frase al asistente de Google.
  • Android Device: cuando recibe una notificación de una determinada aplicación, cuando se conecta o desconecta de una red WiFi o un dispositivo Bluetooth
  • Life360: cuando llevas o sales de una determinada zona (tu casa, tu trabajo, …) o cuando todos los miembros de tu familia dejan una determinada zona.

Acciones

Y aquí algunas acciones relacionadas con la Domótica:

  • Smartlife: endender luces o enchufes
  • Android Device: apagar/encender WiFi o Bluetooth, poner música, lanzar Google Maps, …
  • Meross: encender enchufes, encender/apagar termostatos de radiadores
  • Fibaro: integrar acciones con el concentrador Fibaro (Z-Wave)
  • Philips HUE: encender/apagar bombillas
  • Blink: activar/desactivar cámaras de videovigilancia

Ventajas de IFTTT

Como podrás imaginar, la mayor ventaja de IFTTT es que se integra con cientos de servicios, aplicaciones, hardware, … Es uno de los servicios más antiguos sobre automatización, y esto le permite que la mayoría de fabricantes integren sus servicios en IFTTT. Si buscas hardware de Domótica, verás que en la descripción suelen poner que es compatible con Google Assistant, Alexa y IFTTT. A veces nombran otros, pero estos tres suelen aparecer en la mayoría de ocasiones.

La otra gran ventaja de IFTTT es que es muy sencillo de utilizar. Se puede configurar tanto desde la web como desde la aplicación de Android o iOS, y en ambos casos crear una receta consta de 6 pasos muy simples:

  1. Elegir servicio asociado para el disparador
  2. Elegir el disparador específico de ese servicio (algunos servicios tienen varios) y los detalles de ese disparador
  3. Elegir el servicio de la acción
  4. Elegir la acción específica de ese servicio (algunos servicios tienen varios)
  5. Especificar detalles de esa acción.
  6. Especificar el nombre de la receta recién creada

Desventajas de IFTTT

En cuanto empiezas a asociar varios servicios a IFTTT y a crear varias recetas, te das cuenta de sus importantes defectos:

  • No permite definir varias condiciones para un disparador. Es decir, puedo especificar que si un sensor de una habitación detecta movimiento, encienda una determinada bombilla, pero no me especificar que además esto solo lo haga cuando sea más tarde de las 9 de la noche.
  • No permite guardar estados. Es decir, que no permite definir un estado que sea «Vacaciones», para que las recetas que tengo definidas tengan en cuenta ese estado a la hora de aplicar o no aplicar determinadas acciones. Por ejemplo: poner el aire acondicionado en verano cuando salgo de trabajar para que la casa esté fresquita cuando llegue a casa, pero que no lo haga si estoy de vacaciones.
  • No permite definir varias acciones en una receta: Es decir, que no puedes decirle con una sola receta que cuando salgas de casa apague todas las luces y además apague el aire acondicionado. Debes usar varias recetas, en teoría con el mismo disparador, pero mi experiencia es que si defines dos recetas con el mismo disparador en teoría se ejecutan ambas, así lo muestra en el log de actividad, pero en la práctica solo una de ellas se ejecuta correctamente.
  • No permite editar las recetas, al menos no completamente: en algunas te deja editar detalles de la acción, pero no del disparador, pero es que en otras ni siquiera te deja modificar el nombre de la receta!!! Me parece algo difícilmente explicable, debería ser algo muy sencillo, y lo curioso es que dependiendo de los servicios asociados a una receta te deja o no cambiar algo tan simple como el nombre. Esto obliga en muchas ocasiones a tener que borrar la receta completa y crearla de nuevo para hacer un pequeño cambio.

Por tanto, utilizar solamente IFTTT para programaciones de Domótica NO es suficiente, hace falta algo más que permita darle un poco más de inteligencia a las acciones que definas y a los estados que necesites establecer.

WebHooks

¿Qué es un WebHook? Pues es algo tan sencillo como una llamada web a una URL utilizando habitualmente un método HTTP POST. ¿Y es to para qué? Pues en el mundo de la Domótica sirve para enviar notificaciones de eventos, y con esa notificación enviar algun dato o solicitar alguna acción.

WebHook como disparador IFTTT

En el caso que nos ocupa, IFTTT permite definir un WebHook como disparador, es decir cuando llamamos a una URL de este tipo definirla como un disparador en una receta:

https://maker.ifttt.com/trigger/EncenderEnchufe/with/key/xisjdifasmd-ksksk-mdidik53298Jmis

Como ves, el dominio de la URL es uno asociado a IFTTT, y en la URL aparece ese campo en negrita que identifica el nombre del evento del WebHook, en este caso: EndenderEnchufe. La URL de ese WebHook la puedes crear desde el propio IFTTT, entrando en el propio servicio y después accediendo a la parte de Documentación:

Por tanto, cada vez que accedas a esa URL (que solo conocerás tú, gracias a la clave que aparece al final de la URL) se realizará la acción asociada a esa receta.

WebHook como acción IFTTT

Además, como habrás supuesto, IFTTT también te permite asociar un WebHook a una acción de una receta. Es decir, que ante un disparador que hayas definido puedes hacer una llamada a un WebHook de otro servicio para realizar alguna acción o enviar algún dato que te interese.

¿A qué servicios puedes asociar estas acciones mediante WebHooks? Realmente hay muchas, pero las que te pueden interesar para temas de Domótica son Zapier (una alternativa a IFTTT) o Switchur, y de este último te hablaré mucho más en la siguiente sección porque permite añadir la funcionalidad que nos falta en IFTTT.

Switchur

Como comentábamos antes, las principales desventajas de IFTTT es que solo permite una condición en el disparador, una acción y además no permite guardar estados. Estas son las tres funcionalidades que te ofrecer Switchur de forma muy simple, y además se integra con IFTTT mediante los WebHooks comentados en la sección anterior.

Switchur se basa en dos conceptos: Switchboard y Automations.El primero, te permite definir variables (estados), y el segundo acciones basadas en el valor de las variables definidas (Automations). Vamos a ver el detalle de estos dos conceptos.

Switchboard en Switchur

Como decía, aquí puedes definir las variables que te permitirán dotar de cierta inteligencia al estado de tu casa. Puedes definir tres tipos de variables:

  • Switch: al que se asocia un valor de ON/OFF. Por ejemplo: estoy en casa, estoy de vacaciones, el móvil está cargando, …
  • Counter: permite guardar un número para contar número de interacciones de alguna acción.
  • Keyword: permite almacenar cadenas de texto, hasta 100 caracteres.

Como verás, esto tiene alguna similitud con los disparadores de IFTTT, pero realmente son mucho más interesantes. Las variables tipo Switch dispone de 3 WebHooks para poner en Off, poner en On, o cambiar al estado opuesto. Las variables de tipo Counter dispone de 3 WebHooks para poner el valor a cero, incrementa en 1 o decrementar en 1. Y las variables de tipo Keyword disponen de 1 Webhook para establecer el valor de la variable. Aquí puedes ver un ejemplo de tipo Counter:

Creación de una variable tipo Counter en Swichur

¿Qué tipo de variables te podrían resultar interesantes? Pues se te pueden ocurrir muchas, pero algunas básicas podrían son las que indicábamos antes, aquí puedes ver un ejemplo con algunas de las más típicas:

Switchur | Support
Ejemplo de variables en Switchur

Automations en Switchur

Como podrás imaginar, las Automations son las acciones que defines en base a los valores de las variables que hemos definido previamente en el Switchboard. Pero, al contrario que IFTTT, permite definir condiciones todo lo complejas que necesites en base a una o varias variables, en base a sus valores, con funciones lógicas (AND/OR) entre ellas, …

Por tanto, la condición de una automatización podría ser: que esté en casa, que sea verano, y que además la temperatura interior sea superior a 26º. Sería algo así:

Creación de una Automatización en Switchur

Como ves, después de definir las condiciones, debes añadir acciones. Una de las características importantes, es que permite añadir todas las acciones que necesites, y no solo una como IFTTT. Estas acciones, están basadas en llamadas a WebHooks, que pueden ir contra otros servicios o contra el propio Switchur para actualizar el estado o valor de una variable.

Un uso habitual es hacer llamadas a IFTTT para realizar las acciones que te interesen, por ejemplo activar el aire acondicionado y además enviarme una alerta si tengo una ventana abierta, al mismo tiempo que actualizo el valor de una variable.

Conclusiones

IFTTT es un compañero casi imprescindible a la hora de realizar automatizaciones en tu hogar, y conseguir una casa domotizada. Pero IFTTT tiene algunas carencias que no puede resolver, y estas carencias las podemos resolver fácilmente mediante Switchur y las llamadas a Webhooks entre ambos servicios.

De esta forma, conseguimos tener estados almacenados (Switchur), definir acciones a realizar cuando se cumplan determinadas condiciones (Switchur), y después lanzar acciones contra servicios o dispositivos que tengamos asociados (IFTTT).

En una próxima entrada, os mostraré detalles de automatización utilizando estas herramientas y una RaspBerry PI, para definir cuando estás en casa, encender/apagar enchufes o bombillas de forma automatizada, alertar cuando la cámara de vigilancia detecte movimiento, …

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.