Cómo integrar los productos Sonoff en eedomus a través de IFTTT

    • Tutorial paso a paso para controlar tus dispositivos Sonoff en eedomus y conocer su estado en todo momento mediante IFTTT.

    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.

    eedomus + Sonoff + IFTTT

    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.

    Clave del servicio Webhooks en IFTTT

    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.

    Creación del actuador http en eedomus

    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:

    http://localhost/tools/?action=ping&url=162.0.0.50

    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:

    https://maker.ifttt.com/trigger/[VAR3]/with/key/[VAR1]

    Y la siguiente para el valor correspondiente a la orden de encendido:

    https://maker.ifttt.com/trigger/[VAR2]/with/key/[VAR1]

    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:

    Pestaña valores del 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».

    Parámetros experto

    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.

    Obtención de la 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):

    Obtención de la URL de encendido

    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».

    Creación de Applet en IFTTT - This

    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.

    Creación de Applet en IFTTT - Servicio Webhooks

    A continuación se abre una nueva ventana denominada «Choose trigger» en la que debemos pulsar en «Receive a web request»:

    Creación de Applet en IFTTT - 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»:

    Definición del evento en IFTTT

    Se vuelve a abrir una ventana nueva en la que debemos pulsar en «+ that»:

    Applet IFTTT - That

    Nuevamente se abre una ventana en la que debemos elegir el servicio correspondiente a la acción que queremos ejecutar, es decir «eWeLink»:

    Applet IFTTT - That - Service Acción

    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»:

    Applet IFTTT - Elección del dispositivo SonoffEn la siguiente ventana rellenamos los dos campos disponibles, el primero eligiendo el dispositivo Sonoff a controlar y el segundo con el valor Off:

    Applet IFTTT - estado 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».

    Applet IFTTT - último paso

    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.

    Applets de encendido y apagado en IFTTT

    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»:

    Applet para estado - This = eWelink

    Elegimos el tipo de dispositivo Sonoff. En mi caso «1 Channel Switch turned on or off»:

    Applet para estado - This = eWelink - Tipo de dispositivo Sonoff

    Seleccionamos el dispositivo Sonoff del que nos interesa conocer el estado y «Off» en la segunda casilla, y después pulsamos en «Create trigger».

    Applet para estado - This = eWelink - Selección del dispositivo y el estado

    Hacemos clic en «+that»:

    Applet para estado - That

    Elegimos el servicio Webhooks y pinchamos en «Make a web request»:

    Applet para estado - That = Webhooks

    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.

    Applet para estado - That = Webhooks - Url de apagado

    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».

    Applet para estado - That = Webhooks - Url de apagado - ültimo paso

    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:

    Applets de estado en IFTTT

    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.

    Philippe

    Madrileño de adopción. Tecnófilo. Podcaster. Obsesionado por la domótica. Y unas cuantas cosas más, casi todas buenas. Keywords: viajes, libertad, amistad, amor, tecnología, pasión, equilibrio...


    9 Respuestas

    1. Skalmenar dice:

      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?

    2. David dice:

      SALMER a mi me pasa lo mismo, podrías decirme qué era? Muchas gracias

    3. david dice:

      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.

    4. Valentin dice:

      Hola,
      Esto valdría tambien para Jeedom?

    5. Valentin dice:

      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

    6. Ariel Palomeque dice:

      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á?

    7. El Cocla dice:

      era una pregunta: Es posible “consultar” el status de un switch SONOFF desde Internet?

    Deja un comentario

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *