Cómo integrar la solución de riego LinkTap en Jeedom

    • Tutorial paso a paso para integrar en el controlador domótico Jeedom el dispositivo de riego denominado LinkTap, que se instala directamente en un grifo.

    LinkTap es un dispositivo para controlar el riego, diseñado y comercializado por una empresa australiana.

    Se compone de una válvula y una puerta de enlace al servidor de LinkTap. Con una sola puerta de enlace se pueden instalar varias válvulas. Yo solo tengo una, concretamente el modelo G2.

    Llevo usándola un año y medio. En este post comento primero mis impresiones (pros y contras) sobre este dispositivo, y después explico cómo integrarlo en Jeedom.

    Válvula de riego para grifo LinkTap

    Contras

    • No se puede controlar localmente. La dependencia del servidor de LinkTap es total.

    Pros

    • Tiene API pública y documentada, lo que significa que hay vías de integración en distintos sistemas de terceros (como puede ser el controlador domótico Jeedom, por ejemplo).
    • La válvula que se pone en el grifo funciona a batería, concretamente 4 pilas AA. Para mí es una ventaja porque no tengo tomas eléctricas en la terraza.
    • Las pilas duran un año y medio (las acabo de cambiar).
    • La comunicación entre la puerta de enlace y la válvula es vía Zigbee pero con una capa propietaria de Linktap. Sin embargo, tiene un gran alcance de cobertura.
    • La puerta de enlace se conecta al router por Ethernet. No es wifi.
    • Tiene muchos avisos de alertas: Válvula caída, escape de agua, falta de batería, etc..
    • Si se va la electricidad, la programación del riego sigue funcionando y además tiene un sistema de protección que no deja la válvula abierta.

    En este enlace podéis ver el dispositivo concreto del que os hablo, en la web de LinkTap.

    Integración con Jeedom

    Yo no soy programadora. El código utilizado en esta integración no lo he hecho yo pero sí que lo he modificado para integrarlo en Jeedom.

    El código original lo he sacado de esta url.

    Ahí tenéis el código casi completo. Veréis que hay varias funciones:

    ACTIVATE_INSTANT_MODE

    ACTIVATE_INTERVAL_MODE

    QUERY_WATERING_STATUS

    GET_ALL_DEVICES

    Según la API, aún se pueden definir más funciones y teniendo estos ejemplos, es fácil hacerlo.

    En mi caso, solo he utilizado dos funciones porque a las demás no las he visto de interés. Concretamente he utilizado Instant_Mode y Get_All_Devices.

    Por lo anterior, he utilizado dos scripts php, uno para  encender y apagar el riego y otro para recoger los datos de la válvula.

    ENCENDIDO/APAGADO:

    Haciendo uso del plugin «Script» de Jeedom, damos de  alta a un nuevo dispositivo y agregamos dos comandos “Guión” de tipo acción «por defecto» : uno para el encendido y otro para el apagado. Tal como se ve en la siguiente imagen:

    Captura de pantalla de Jeedom

    El script php a introducir se llama ONlinkTap.php. Solo tenéis que copiar el contenido del siguiente archivo cuando deis de alta un nuevo script en el plugin, y no os olvidéis de poner la extensión .php al nombre: ONlinkTap.php.

    En ese script, para comando ON, he configurado que riegue 3 minutos. Dentro del script tenéis explicaciones de la forma de cambiar esos 3 minutos por los que estiméis necesarios.

    OBTENCIÓN DE LOS DATOS DE LA VÁLVULA:

    Con la función “GET_ALL_DEVICES” se obtiene un resultado codificado en Json. Estos son los datos que proporciona:

    De todos esos datos, con el script php llamado LinkTap.php (LinkTap.php) se recogen la mayoría. Este script se añade igual que el anterior, copiamos y pegamos el código sin olvidar poner después del nombre del archivo .php.

    En Jeedom creamos un nuevo dispositivo haciendo uso del plugins «Script» y añadimos tantos comandos como datos vamos a recoger. Esos comandos son del tipo “Guión”, “información” y subtipos “digital” u “otros”. El subtipo va a depender del tipo de dato que sea.

    Adjunto una captura de pantalla:

    Captura de pantalla de Jeedom

    Ambos scripts, ONlinkTap.php y LinkTap.php, contienen instrucciones.

    Así es cómo quedan en el tablero principal de Jeedom:

    Captura de pantalla de Jeedom

    Y así es cómo queda el virtual (plugin «Virtual» de Jeedom) realizado para algunos datos:

    Captura de pantalla de Jeedom

    Por último, añadir que las llamadas a la API de LinkTap están limitadas. En el caso de encendido/apagado del riego, el límite de llamadas es cada 15 segundos.

    En el caso de la recogida de los datos (Get_All_Devices), el límite de llamada es cada 5 minutos.

    Por este motivo, he dividido el código en dos y creado dos scripts en Jeedom y además he creado un escenario que actualiza los datos cuando riega.

    En el escenario, el disparador es programado (Lunes, Miércoles y Sábado a las 20:00h) y las reglas son las siguientes:

    Captura de pantalla de Jeedom

    Captura de pantalla de Jeedom

    En las reglas del escenario, el tiempo de 180 segundos que he definido es insuficiente porque, como ya dije al principio, la API solo permite llamadas a los datos de linktap cada 5 minutos.

    Creo que eso es todo. ¡Espero que os sirva!

    Alicia Hernández

    Sevillana viviendo en Alicante. Apasionada con todo lo que tenga cables, luces, placas y electricidad. Autodidacta y creativa. Le encantan los proyectos DIY.


    6 Respuestas

    1. Philippe dice:

      ¡Impresionante Alicia!

      Ya estabas tardando en pasar a Jeedom. Pero veo que la espera ha merecido la pena. ¿Sigues usando y teniendo tu eedomus o lo has pasado todo a Jeedom?

      Increíble como manejas ya Jeedom en poco tiempo…

    2. Alicia dice:

      Si, Philippe sigo con eedomus.
      Estoy para comprarme el jeedom atlas ya que hora lo tengo en una raspberry.
      Poco a poco iré migrando.
      Gracias Philippe.

    3. santi.com dice:

      ¡Maravillosa publicación Alicia!

      Me encanta tú solución para integrar un temporizador de agua inalámbrico como link tap en Jeedom.
      Tú publicación está muy bien explicada y con todo lujo de detalles, creo que será de gran ayuda a quien tengan proyectos iguales o similares.

      Muchas gracias y te animo que sigas publicando.

    4. Alicia Hernández dice:

      Gracias.

    5. Jean dice:

      Hola Alicia,

      Te felicito por esa integracion.

      Tengo este sistema de riego y me encantaria poder integrarlo a mi eedomus.
      Intente seguir los pasos, pero en eedomus es algo diferente de Jeedom y el script no se puede añadir asi, se tiene que adaptar y no tengo el conocimiento suficiente de eedomus scripting como para hacer esos cambios yo mismo.

      Me gustaria saber si tambien integraste este sistema Linktap a tu eedomus y en tal caso, si podrias compartir como lo hiciste ?

      Gracias de antemano por tu respuesta

      Slds
      /Jean

      • Alicia dice:

        Hola Jean: En eedomus el script no va a funcionar porque eedomus utliza un lenguaje php simplificado.
        No sé hasta que punto este script se podría adaptar para que funciones en eedomus. No lo he probado y creo que tampoco sabría hacerlo.
        Lo que sí puedes hacer es colocar el script en un servidor externo (un NAS, por ejemplo. Incluso a lo mejor te sirve dropbox) y desde eedomus hacer las llamadas al script para recuperar los datos y demás funcionalidades.
        Otra cosa que podrías hacer es instalar Jeedom en una raspberry. Integrar el riego en Jeedom siguiendo este manual y después pasarte los datos a eedomus desde jeedom a traves de las APIs de ambos sistemas.
        Siento no poder serte de más ayuda.
        Salu2

    Deja un comentario

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