En anteriores artículos así como en el foro, he comentado que estaba usando Jeedom como controlador complementario de eedomus Plus por lo mucho que ofrece en distintos ámbitos.
Muchos me habéis preguntado cómo se comunican los dos controladores entre sí, y aunque ya he contestado brevemente a esa pregunta, ha llegado el momento de daros todos los detalles necesarios para que, si lo deseáis, podáis sacar provecho fácilmente de todo lo bueno que os ofrece Jeedom desde eedomus o cualquier otro controlador.
En este post no vamos a explicar cómo instalar Jeedom en una Raspberry Pi, porque eso ya lo hemos hecho en anteriores artículos. Vamos a centrarnos en cómo comunicar con Jeedom desde otro controlador.
Añadir Jeedom a otro controlador, ¿para qué?
Jeedom es un software de control domótico OpenSource que cualquiera se puede bajar e instalar gratuitamente en una Raspberry Pi. Y dado que muchos de nosotros, los domogeeks, tenemos una Raspberry Pi en casa, sería una pena no explorar esa vía. Y si no, siempre se puede comprar un Jeedom Smart, que viene ya preparado para su uso.
¿Pero qué nos puede reportar exactamente tener un Jeedom en nuestra instalación domótica, además de otro controlador? Jeedom es un controlador muy abierto, que es compatible con multitud de protocolos domóticos y que además ofrece soporte para una infinidad de dispositivos conectados.
Por tanto, si tu controlador principal sólo ofrece soporte para el protocolo Z-Wave y te gustaría poder controlar periféricos basados en otros protocolos, o integrar en tu instalación dispositivos que tu controlador no te permite incluir, Jeedom es la respuesta. Veamos algunos ejemplos de lo que te permite hacer e integrar Jeedom:
- Protocolos domóticos y conectividad, además de Z-Wave (con extensiones por USB): EnOcean, Edisio, Bluetooth, Wifi, Edimax, KNX, MyFox, mySensors, Sigfox, RFXCOM, RFPlayer, uPnP, Xiami Home, NFC…
- Objetos conectados: Bombillas Awox, Broadlink (regleta y mando universal), Dash Button de Amazon, Orbibo (enchufe y mando universal), Philips Hue, PlayBulb, Green Momit, Nest, Netatmo, Roomba, Tado, GreenIQ, Fitbit, Withings…
- Multimedia: Luces tipo Ambilight, Bose, Harmony Hub, Kodi, Plex, Roku, Samsung Smart TV, Sonos…
- Seguridad: Alarmas varias (incluida Somfy), cámaras, Doorbird, Netatmo Welcome, SAI’s (APC y otros, incluido Salicru)…
No son más que algunos ejemplos. Si quieres saberlo todo sobre la compatibilidad de Jeedom con otros dispositivos y tecnologías, visita el Jeedom Market.
¿Cómo establecer una vía de comunicación entre tu controlador principal y Jeedom?
Para mandar órdenes a Jeedom desde nuestro controlador principal y para conocer el estado de periféricos instalados en Jeedom, recurriremos a las API’s de ambos controladores. Pero que no cunda el pánico, es mucho más sencillo de lo que parece…
Para ilustrar todo lo que voy a contar ahora, partiremos de la base de que nuestro controlador principal es eedomus (pero podría ser un HCL o HC2 de Fibaro, un Vera, Domoticz, etc.) y tomaremos como ejemplo la regleta MP1 de Broadlink, que habremos añadido previamente a Jeedom mediante el plugin Broadlink.
- Controlar la regleta Broadlink desde eedomus
Para controlar la regleta Broadlink desde eedomus, en este último crearemos en primer lugar un actuador http (Configuración/Añadir o eliminar un periférico/Añadir otro tipo de periférico/Red/Http Actuador/Crear).
Tenemos dos opciones tratándose de una regleta con varios enchufes controlables a distancia (4 en este caso concreto): podemos controlar los 4 enchufes desde un único actuador http en eedomus o crear cuatro actuadores http distintos, uno por enchufe. Yo he optado por la segunda alternativa ya que me parece más adecuada a la hora de controlar rápidamente y conocer el estado de cada enchufe (y he vinculado los 4 actuadores http entre sí, porque eso puede ser útil a posteriori para cambiar la configuración).
Una vez creado el(los) actuador(es) http necesario(s), le(s) asignaremos un nombre y completaremos la ventana de configuración.
A continuación, nos iremos a la pestaña “Valores” y crearemos dos valores (ON y OFF) con sus iconos correspondientes y rellenaremos el apartado “URL” como indicaremos después.
En “URL”, tendremos que indicar las URL’s que enviaremos a Jeedom para que éste encienda y apague cada enchufe de la regleta.
Para “construir” esas URL’s conforme a la API de Jeedom, deberemos usar el siguiente formato:
http://#IP_JEEDOM#/core/api/jeeApi.php?apikey=#APIKEY#&type=cmd&id=#ID#
Donde #IP_JEEDOM# es la dirección IP de nuestro Jeedom en nuestra red local, #APIKEY# el código de la API de Jeedom y #ID# el código del periférico que queremos controlar o del que queremos conocer el estado.
Pero como os decía antes, es muy sencillo en realidad porque Jeedom pone a nuestra disposición una herramienta que nos genera automáticamente la URL que debemos usar en cada caso. Para ello, en Jeedom nos iremos al “Dashboard” y pincharemos en el nombre del periférico que queramos controlar desde eedomus (en este caso la regleta).
En la ventana de configuración que se abre a continuación, nos iremos a la pestaña “Comandos” y luego pincharemos en la rueda dentada del comando correspondiente a ON del enchufe nº1 de la regleta (sid:1,state:1). En la nueva ventana que se abre a continuación, pincharemos en “URL” con el botón derecho del ratón y copiaremos la URL.
La URL copiada en el paso anterior empezará como sigue:
http://:80/core/api/jeeApi.php?apikey………
Si no viene ninguna dirección IP entre “http://” y “:80/core/api/jeeApi.php?apikey………” añadiremos la IP de nuestro Jeedom en nuestra red local y copiaremos esa URL en eedomus, en el actuador http creado anteriormente, en el valor correspondiente a “ON” del enchufe 1.
Y repetiremos el paso anterior para el valor OFF del enchufe 1, y así sucesivamente para los demás enchufes.
Guardaremos nuestro(s) actuador(es) http en eedomus y a partir de ese momento podremos controlar la regleta desde eedomus sin ninguna latencia.
- Conocer el estado de la regleta Broadlink en eedomus
[ACTUALIZACIÓN: Lo que explico a continuación puede producir un bucle infinito entre eedomus y Jeedom con algunos routers, incluso tomando como precaución el uso de la opción “No repetir nunca” a la que me refiero más abajo. Para evitar ese bucle infinito, en nuestro foto explico un método alternativo muy conveniente]
El paso anterior nos permite controlar la regleta, pero no nos da la posibilidad de conocer el estado de la regleta si ésta es accionada desde Jeedom, desde la aplicación móvil de Broadlink o desde el pulsador físico de la regleta.
Para conocer en todo momento el estado de la regleta en eedomus, podemos crear en éste un sensor http que, mediante una URL parecida a la del paso anterior, nos permita reflejar en la interfaz de eedomus el estado de cada enchufe.
Sin embargo, no recomiendo esa solución por varias razones: esa consulta de estado no es inmediata sino cíclica y además nos obliga a crear para cada enchufe un periférico adicional (sensor http), disociando así en la interfaz de eedomus lo que es el periférico para dar una orden ON/OFF del periférico que permite conocer el estado. Obviamente eso no es lo mejor porque no es a lo que estamos acostumbrados cuando incluimos en nuestro controlador un enchufe Z-Wave (ya que en ese caso el mismo widget en eedomus nos sirve tanto para dar la orden de encendido y apagado como para conocer el estado).
Lo que propongo es mandar desde Jeedom una URL a eedomus (usando la API de eedomus) para forzar un cambio de estado en el periférico actuador http que hemos creado en el paso anterior.
Para eso, como digo, hay que saber cómo funciona la API de eedomus, cosa que ya hemos explicado aquí.
Pero en este caso también es mucho más sencillo de lo que parece porque eedomus, al igual que Jeedom, pone a nuestra disposición una herramienta que nos genera automáticamente la URL que debemos usar en cada caso. Basta con ir en eedomus a Configuración/Mi cuenta/Ver sus credenciales, identificarnos con nuestra contraseña y acceder a la siguiente ventana.
En “Destino” elegiremos la API local ya que no hay necesidad de pasar por los servidores de eedomus y además de esta forma la latencia será prácticamente nula. En “Dirección” elegiremos “Set”, en “Periférico” el correspondiente al actuador http creado anteriormente y en “Valor” no pondremos nada. Luego con el botón derecho del ratón copiaremos la URL que nos proporciona eedomus.
El siguiente paso consistirá en ir a Jeedom/Dashboard/Regleta Broadlink/Pestaña Comandos (hasta aquí, exactamente igual que en el paso anterior). Luego localizaremos el comando correspondiente a “Etat-1 S1” y pincharemos en la rueda dentada.
En la ventana que se abre a continuación, nos iremos a la pestaña “Configuración Avanzada”, iremos al final de la página y en la casilla “Push URL” pegaremos la URL copiada anteriormente en eedomus y al final de ésta añadiremos tan solo #value#. Es importante, en este caso concreto, elegir “No repetir nunca” en la casilla “Gestión de la repetición de valores”. Y antes de abandonar esa ventana, es muy importante guardar, por supuesto.
Con eso conseguiremos que cada vez que Jeedom detecte un cambio de estado de la regleta (por una orden dada desde Jeedom, desde la App o desde el pulsador físico), lo reporte inmediatemente a eedomus.
Por tanto, en eedomus, nuestro actuador http no solo servirá para dar órdenes de encendido y apagado de cada enchufe de la regleta, sino también para reflejar su estado real en todo momento.
Este último paso del “Push URL”, lo repetiremos otra tres veces, para obtener un reporte de estado de cada uno de los 4 enchufes.
Conclusiones
Seguro que la primera lectura de este post os deja con la sensación de que es muy complicado o tedioso conseguir comunicación entre ambos controladores, pero os aseguro que no es así.
Cuando lo hayáis aplicado una vez y hayáis entendido cómo funciona os resultará natural y no os costará aplicarlo para cualquier otro periférico que hayáis incluido en Jeedom y queráis controlar desde eedomus u otro controlador.
Y por supuesto, vale también al revés. Quizá alguien que use Jeedom como controlador principal quiera añadir un eedomus o un HCL.
Una vez creadas las interacciones oportunas entre los dos controladores, funciona a la perfección, sin latencia, y podemos crear las escenas en el controlador que más nos convenga.
Si tenéis cualquier duda, estoy a vuestra disposición para ayudaros en los comentarios de este post o en el foro.
Se podrá usar por ejemplo para.manejar zwave 868 con eedomus y 908 con jeedom?
Si en Jeedom instalas un pincho Z-Wave 908 entiendo que sí, perfectamente.
Hola Philippe,
Quiero instalar unos toldos en casa con motores somfy. Me han hablado de un plugin jeedom para hablar con somfy pero el instalador me dice que puede instalarme una central Tahoma, una central conexoon o un sistema RTS.
¿Que diferencia hay entre estos sistemas? ¿Todos pueden controlarse desde eedomus usando Jeedom como controlador domotico secundario mediante dicho plugin? ¿Alguien puede ayudarme para elegír que sistema de todos Sonfy montar? Gracias.
Si vas a optar por un sistema Z-Wave para domotizar tu casa, yo te aconsejo que optes por motores de toldo de 3 hilos a 220V. Otra cosa es si ya tuvieras instalado un sistema Somfy RTS. Podrías añadir a eedomus un RFXCOM o un RFPlayer para controlar esas persianas Somfy, pero el control no es tan bueno ni completo como un motor de 3 hilos controlador por un módulo Z-Wave de persianas/toldos. Tahoma y RTS no es que no sean buenos sistemas, pero son muy cerrados y bastante caros comparado con Z-Wave.
Buenas, magnifico trabajo, me estoy empapando mucho sobre domotica ya que quiero domotizar mi casa y mi idea era usar eedomus para controlar dispositivos zwave ya que mi idea es controlar eedomus mediante iphone gracias a homekit de apple. Es recomendable mi idea? Hay algo a tener en cuenta? Muchisimas gracias y un saludo!
Hola Jairo. Es correcto, pero ten en cuenta que en su estado actual HomeKit de Apple solo es capaz de manejar algunos dispositivos, no todos: básicamente sensores de apertura, interruptores, reguladores de luz, módulos de control de persianas, luces. Por tanto, hay dispositivos que podrás integrar en eedomus pero que no podrás controlar con HomeKit.
Saludos.
Mil gracias Philippe!! Mi pregunta es acerca de la integración de jeedom con KNX a través de un interface IP. Lo que me gustaría de mi raspberry es poder enviarme notificaciones al móvil así como poder hacer un registro de históricos para luego generar gráficas y demás…
Aunque no lo he probado, debería ser posible hacer eso con un plugin específico para KNX que existe en Jeedom. Aquí está explicado (en francés): https://jeedom.github.io/documentation/third_plugin/eibd/fr_FR/index.html
Hola Philippe, sigo el foro desde hace tiempo por qué tengo intención de domotizar y la verdad es que cada día aparecen nuevos cacharros, pero mi duda es sobre los motores somfy io, ya que leo que es un sistema cerrado y no sé cómo se podría domotizar sin pasar por la controladores de somfy. He leído que eedomus tiene un plugin para io pero no lo tengo nada claro, los periféricos y actuadores de aqara si que sé que se puede controlar mi duda son los motores somfy io. Cuál sería el sistema más recomendable?
Hola Julio. eedomus te permite añadir un controlador RFXCOM que soporte Somfy RTS. Otro controlador que te permite hacer eso también es Jeedom. En cambio, que yo sepa, Somfy IO no se puede integrar en nada. Es un protocolo propietario y cerrado de Somfy y si no recuerdo mal no hay manera de integrarlo. Saludos.