A raiz de un artículo reciente en Domótica Doméstica sobre los productos domóticos Sonoff, no sois pocos los que os habéis puesto en contacto conmigo para preguntarme detalles y solicitar ayuda para integrar los módulos Sonoff en eedomus vía la plataforma online IFTTT.
Aunque en aquel artículo daba pistas sobre cómo implementar esa integración, no era ni mucho menos un tutorial paso a paso, justo lo contrario de lo que pretende ser este nuevo post de hoy, en el que os voy a explicar no sólo como controlar vuestros Sonoff desde eedomus, sino cómo tener un retorno de estado y además en el mismo periférico.
Empecemos pues, que hay mucho que contar.
Requisitos previos
Voy a enumerar en primer lugar los elementos necesarios para llevar a cabo la integración que nos ocupa, aunque algunos de ellos son más que obvios:
- Un controlador domótico eedomus o eedomus+
- Al menos un dispositivo Sonoff debidamente instalado, operativo y funcionando con la app eWeLink para iOS o Android. Ese dispositivo tiene que ser uno de los que están soportados por el servicio eWeLink de IFTTT, es decir un módulo ON/OFF de uno o varios canales o un enchufe domótico S20 (aparentemente son los únicos dispositivos compatibles, aunque no lo puedo certificar al 100% porque no he probado con otros, como por ejemplo las bombillas Sonoff).
- Una cuenta IFTTT operativa con los servicios Webhooks y eWeLink dados de alta (este último con las mismas credenciales que las que usemos en la aplicación eWeLink para iOS o Android).
- Un conexión a Internet operativa ya que la comunicación entre eedomus, IFTTT y los servidores de Sonoff se hace a través de Internet.
Un inciso sobre el servicio Webhooks de IFTTT:
Cuando damos de alta ese servicio en nuestra cuenta de IFTTT, ésta nos proporciona una clave (que ellos llaman key en inglés). Si no recordáis cuál es la vuestra, lo podéis consultar en vuestra cuenta de IFTTT, en la siguiente URL: https://ifttt.com/maker_webhooks, pulsando en “Documentation”. Apuntadla ya que la necesitaréis muy pronto.
Otro punto a tener en cuenta sobre Webhooks: Cuando llegue el momento oportuno, cuando creemos los “Applets” necesarios en IFTTT (lo veremos en un paso posterior de este tutorial), tendremos que crear lo que IFTTT llama uno o varios eventos (event en inglés). Esos eventos no son más que un nombre descriptivo que nosotros asignaremos a la acción que queramos realizar.
Podemos asignar el nombre que queramos a estos eventos. Yo he creado dos eventos para encender y apagar el módulo de Sonoff, y los he llamado respectivamente Encender_Luz_Cocina y Apagar_Luz_Cocina, porque son muy ilustrativos para mi. Pero ya digo que podéis poner los nombres que queráis (Módulo_Sonoff_1_Canal1_ON y Módulo_Sonoff_Canal1_OFF, por poner otro ejemplo). Pensad en esos nombres y apuntadlos porque los necesitaréis muy pronto.
Paso nº 1 – Creación de un actuador http en eedomus
En el portal eedomus, nos logeamos con nuestras credenciales de eedomus y nos vamos a Configuración / Añadir o eliminar un periférico / Añadir otro tipo de periférico / Red / HTTP – Actuador / Crear.
Le ponemos un nombre adecuado a nuestro nuevo periférico, le asignamos un uso (en mi caso “Lámpara”) y lo metemos en alguna habitación/categoría.
A continuación nos vamos al apartado “Visualización” y rellenamos las casillas [VAR1], [VAR2] y [VAR2) con la siguiente información:
- [VAR1]: La clave del servicio Webhooks de IFTTT que hemos apuntando anteriormente.
- [VAR2]: El nombre del evento de Webhooks que servirá para encender la luz.
- [VAR3]: El nombre del evento de Webhooks que servirá para apagar la luz.
Hecho lo anterior, pulsamos en “Guardar y seguir editando” y nos vamos a la pestaña “Valores” donde crearemos 4 valores distintos:
- Valor con la descripción “Apagada”, el valor bruto 0 y un icono de nuestra elección que represente una luz apagada
- Valor con la descripción “Encendida”, el valor bruto 1 y un icono de nuestra elección que represente una luz encendida
- Valor con la descripción “Apagada” (sí, la misma que la anterior), el valor bruto 3 y un icono que represente una luz apagada (el mismo icono que el anterior de apagado).
- Valor con la descripción “Encendida”, el valor bruto 4 y un icono que represente una luz encendida (el mismo icono que el anterior de encendido).
Explicación: ¿Por qué 4 valores?
Los dos primeros valores (“Apagada” y “Encendida” respectivamente) nos servirán para el retorno de estado.
Los dos últimos valores (también denominados “Apagada” y “Encendida” respectivamente, y con los mismos iconos que los anteriores) nos servirán para enviar las ordenes de encendido y apagado desde eedomus.
Para que los dos primeros valores (retorno de estado), aparezcan en la interfaz de usuario de eedomus en el momento oportuno pero que no podamos pulsarlos (no nos interesa ya que sirven únicamente para conocer el estado, como si fueran sensores), los ocultaremos en la interfaz desmarcando la casilla “Visible”.
Los otros dos valores (órdenes de encendido y apagado) sí que queremos que aparezcan en la interfaz de usuario de eedomus, por lo que deben ser visibles (debemos marca la casilla “Visible”).
Explicación sobre lo que hay que poner en el campo “URL” para cada valor:
Dado que debemos rellenar el campo “URL” sí o sí (eedomus no nos permite dejarlo en blanco), tendremos que poner algo en ese campo para los dos primeros valores (retorno de estado) aunque en realidad nos valdría con dejarlos en blanco. Yo lo he solucionado poniendo una URL real que no da error y que realiza un PING en uno de mis equipos conectados a mi red local (puede ser cualquier cosa: una cámara IP, un teléfono, lo que sea, incluso nada, con tal de poner una IP del rango de nuestro router… u otra).
Esa URL será la siguiente, suponiendo que estemos haciendo PING a la dirección IP 162.0.0.50:
[plain]http://localhost/tools/?action=ping&url=162.0.0.50[/plain]
En el caso de los otros dos valores (los que sirven para dar la orden de encendido y apagado), sí que debemos poner una URL que sirve para algo, es decir la URL que apunta a IFTTT y más concretamente al servicio Webhooks y al evento concreto del que se trate.
Esa URL será la siguiente en el caso del valor correspondiente a la orden de apagado:
[plain]https://maker.ifttt.com/trigger/[VAR3]/with/key/[VAR1][/plain]
Y la siguiente para el valor correspondiente a la orden de encendido:
[plain]https://maker.ifttt.com/trigger/[VAR2]/with/key/[VAR1][/plain]
Como una imagen vale más que mil palabras, aquí tenéis como debe quedar al final la pestaña “Valores” de nuestro actuador http en eedomus:
Pulsamos en “Guardar y seguir editando” y nos vamos de nuevo a la pestaña “Configuración del periférico” y más concretamente al apartado “Parámetros experto” y pulsamos en el icono en forma de llave que se encuentra junto a la palabra “API”.
eedomus nos pide que nos identifiquemos con nuestra contraseña. Lo hacemos, lo que nos permite acceder a un formulario que nos va a ayudar a construir las URL’s que necesitaremos luego en IFTTT.
En “Destino” elegimos “Cloud”, en “Dirección” “Set”, en “Actuador” “periph.value”, en “Periférico” “Luz Cocina” (en mi caso) y en “Valor” “Apagada” (Importante: debemos elegir el primer valor “Apagada” de los dos que tenemos”. Hecho esto, el formulario nos devuelve una URL que debemos copiar y pegar en un procesador de texto, por ejemplo, para recordarla porque la necesitaremos más adelante. A esa URL, para evitar confusiones y aclararnos la llamemos URL de apagado.
Repetimos la operación anterior para obtener esta vez la URL de encendido (que copiamos y pegamos igualmente en un procesador de texto para poder usarla más adelante):
Ya hemos terminado en lo que se refiere a eedomus. Ahora podemos irnos a IFTTT
Paso nº 2 – Creación de Applets IFTTT para controlar el apagado y encendido
Vamos a crear primero los Applets para ejecutar las órdenes de encendido y apagado procedentes de eedomus:
Nos logeamos en nuestra cuenta de IFTTT y pulsamos en “My Applets” y a continuación en “New Applet”.
En la ventana que se ha abierto y que podemos ver en la imagen superior, pulsamos en “+ this” y seleccionamos el servicio Webhooks de entre los servicios dados de alta en nuestra cuenta de IFTTT.
A continuación se abre una nueva ventana denominada “Choose trigger” en la que debemos pulsar en “Receive a web request”:
Se abre una nueva ventana en la que debemos indicar el nombre del evento (en mi caso Apagar_Luz_Cocina, ¿recordáis?) y a continuación pulsamos en “Create trigger”:
Se vuelve a abrir una ventana nueva en la que debemos pulsar en “+ that”:
Nuevamente se abre una ventana en la que debemos elegir el servicio correspondiente a la acción que queremos ejecutar, es decir “eWeLink”:
En la nueva ventana que se ha abierto, debemos pulsar en el icono correspondiente al tipo de dispositivo Sonoff que queramos controlar. En mi caso es el “Turn 1 channel Switch on or off”:
En la siguiente ventana rellenamos los dos campos disponibles, el primero eligiendo el dispositivo Sonoff a controlar y el segundo con el valor Off:
En la última ventana, sólo nos queda ponerle un nombre a nuestro Applet, indicar si queremos recibir o no una notificación en nuestro móvil cada vez que se ejecute, y pulsar en “Finish”.
Llegados a este punto repetiremos el paso nº2 para crear un segundo Applet casi idéntico a éste, pero para encender el dispositivo desde eedomus (evento: Encender_Luz_Cocina en mi caso).
Al final tendremos dos Applets en nuestra cuenta de IFTTT, uno para encender el dispositivo Sonoff, otro para apagarlo desde eedomus.
Paso nº 3 – Creación de Applets IFTTT para el retorno de estado
Nos vamos de nuevo a “My Applets”, pulsamos en “New Applet” y esta vez elegimos el servicio eWeLink par el “this”:
Elegimos el tipo de dispositivo Sonoff. En mi caso “1 Channel Switch turned on or off”:
Seleccionamos el dispositivo Sonoff del que nos interesa conocer el estado y “Off” en la segunda casilla, y después pulsamos en “Create trigger”.
Hacemos clic en “+that”:
Elegimos el servicio Webhooks y pinchamos en “Make a web request”:
En la siguiente ventana, tenemos 4 campos por rellenar.
- En URL pegamos la URL de apagado que habíamos copiado en un procesador de texto hace un momento, ¿recordáis?
- En Method elegimos PUT
- En Content Type elegimos la opción que empieza por “application…”
- En Body no ponemos nada.
Pulsamos en “Create action” y en la última ventana sólo nos queda ponerle un nombre a nuestro Applet, indicar si queremos recibir o no una notificación en nuestro móvil cada vez que se ejecute, y pulsar en “Finish”.
Llegados a este punto repetiremos el paso nº3 para crear un segundo Applet casi idéntico a éste, pero para obtener un retorno del estado ON en eedomus.
Al final tendremos dos nuevos Applets en nuestra cuenta de IFTTT, uno para el estado OFF y otro para el estado ON:
Resumiendo: para cada dispositivo Sonoff que integremos en eedomus, tendremos que crear 1 actuador http en eedomus y 4 Applets en IFTTT: uno para la orden de encendido, uno para la orden de apagado, uno para el retorno de estado ON y uno para el retorno de estado OFF.
Ya lo tenemos todo. Ahora sólo nos queda probar que podemos encender y apagar la luz desde eedomus y comprobar que si controlamos el módulo desde la App eWeLink o desde el pulsador local, su estado se refleja correctamente en eedomus.
Hola, una consulta.
Después de seguir todos los pasos al pie de la letra no consigo dominar mi Sonoff de 4 canales a traves de eedomus.
Lo único que si que me funciona, es que en eedomus veo el estado perfectamente de como se encuentran los canales si en ON o en OFF.
Por que no me funciona poder canviar el estado des de eedomus? alguna pista?
Solucionado, un baile de letras
SALMER a mi me pasa lo mismo, podrías decirme qué era? Muchas gracias
buenas , a mi me pasa lo mismo , sigo los paso al pie de la letra y no consigo dominar el sonoff desde el Eedomus , pero si veo el estado en el que esta , pero no puedo cambiar el estado desde eedomus.
A ver si me podría decir alguien cual es el baile de letras que dice el compañero de arriba. Gracias.
Hola,
Esto valdría tambien para Jeedom?
A grandes rasgos sí (usando la API de Jeedom en vez de la de eedomus, lógicamente).
Gracias !
cuando haces el paso de ‘Creación de un actuador http en eedomus’ , eso en Jeedom como se hace, estoy mirando y no soy capaz. Soy demasiado novato en estas cosas jejeje
Impecable la explicación y funciona perfecto, lo unico que no encuentro es como tomar aparte del estado del sonoff la temperatura del sensor tengo un TH16. No veo que la opcion este disponible ni veo un trigger con esa opción. Se podrá?
era una pregunta: Es posible “consultar” el status de un switch SONOFF desde Internet?
Hola Philippe , enhorabuena por todo el trabajo que hacéis , me podrías indicar si realizaste un tutoríal paso a paso de como flashear el módulo sonoff para controlarlo con el plugin de la Store de EEDOMUS .
Muchas gracias , un saludo
Hola Ángel. No llegué a hacer ese tutorial, por falta de tiempo. Y además, desde entonces Sonoff ha sacado productos nuevos que ya no es necesario flashear, por lo que ha perdido un poco de interés, salvo que tengas ese modelo concretamente.
Básicamente consiste en conectar el módulo al ordenador por USB, descargar el firmware alternativo que he publicado en el foro, cambiar unos pocos datos en ese firmware (red wifi, entre otros), y cargar ese firmware en el módulo con el software IDE de Arduino.
Hola. Tenía conectado Eedomus con dispositivos sonoff a través de ifttt. Pero me acabo de dar cuenta que ahora para conectar ifttt con ewelink es necesario tener una cuenta advanced que cuentas 10dolares/año. Es posible conectarlo de otra forma?. he conectado también eedomus a la app de google home. Y google home conectado a ewelink. Es posible controlar desde eedomus a través de google home?. Gracias
Si flasheas el módulo de Sonoff y le instalas un firmware alternativo, podrás controlarlo sin pasar por IFTTT.
Desde eedomus no puedes ejecutar rutinas/órdenes en Google.
Muchas gracias.
He instalado inicialmente espurna. Aunque no encuentro si rutinas para controlar desde eedomus el sonoff. Iba a probar el ESPeedomus, ya que está la aplicación en store de eedomus, pero no localizo el archivo .bin del firmware.
El firmware ESPeedomus lo encontrarás en el foro, está publicado ahí.
Saludos,
Es genial, muy bien explicado. Lo malo es que IFTTT cuesta casi 4€ al mes. Me ha funcionado con enchufes de la marca MEROSS ¿No existe alternativa?