Electroválvula controlada con openHAB

En las entradas anteriores vimos como crear un controlador de electroválvulas a través de Internet (parte 1 aquí y parte 2 aquí), y ahora le toca el turno a la integración en openHAB.

Como vimos, el nodo controlador de electroválvulas, se controla mediante comandos enviados a través de HTTP (o de un navegador). Los comandos disponibles son:

http://ip_controlador/?ev1_on
http://ip_controlador/?ev1_off

La forma mas fácil de enviar estos comandos mediante openHAB es crear un botón que nos permita activar y desactivar el elemento. Para ello modificamos nuestro sitemap (configurations/sitemaps/jdomo.sitemap), y añadimos tres botones, uno para cada controlador que tenemos en nuestro huerto, cada uno controlando una electroválvula:

sitemap jdomo label="Menu Principal"
{
   Frame label="Riego Automático"
   {
      Switch item=Zona1
      Switch item=Zona2
      Switch item=Zona3
   }
}

Ahora definimos los tres items que hemos creado, en el fichero configurations/items/jardineria.items:

Switch        Zona1        "Huerta"          <drop>
Switch        Zona2        "Frutales"        <drop>
Switch        Zona3        "Citricos"        <drop>

Para finalizar tenemos que crear una regla para que cuando activemos o desactivemos el riego con los botones, se envíe la petición HTTP correspondiente al controlador adecuado. Creamos el fichero configurations/rules/riego.rules con el siguiente contenido:

rule "Caseta #1: Iniciar riego"
when
   Item Zona1 changed to ON
then
   sendHttpGetRequest("http://192.168.2.11/?ev1_on")
end

rule "Caseta #1: Parar riego"
when
   Item Zona1 changed to OFF
then
   sendHttpGetRequest("http://192.168.2.11/?ev1_off")
end

rule "Caseta #2: Iniciar riego"
when
   Item Zona2 changed to ON
then
   sendHttpGetRequest("http://192.168.2.12/?ev1_on")
end

rule "Caseta #2: Parar riego"
when
   Item Zona2 changed to OFF
then
   sendHttpGetRequest("http://192.168.2.12/?ev1_off")
end

rule "Caseta #3: Iniciar riego"
when
   Item Zona3 changed to ON
then
   sendHttpGetRequest("http://192.168.2.13/?ev1_on")
end

rule "Caseta #3: Parar riego"
when
   Item Zona3 changed to OFF
then
   sendHttpGetRequest("http://192.168.2.13/?ev1_off")
end

Las direcciones IP de los controladores son la 192.168.2.11, 192.168.2.13 y 192.168.2.13. Además, como la imagen que usa openHAB para los items de tipo Switch es una bombilla encendida o apagada, he tenido que crear un icono mas adecuado a nuestro sistema de riego, una gota de agua en gris o azul, dependiendo de si el sistema esta parado, o regando. Para usar este icono tenemos que guardar tres imágenes en la carpeta webapps/images, drop.png, drop-on.png y drop-off.png (descargar aquí) y especificar que queremos usarlas en el archivo jardineria.items con el modificador <drop>.

Si todo ha ido bien, el resultado es el siguiente:

Menu Principal
Vista en un navegador web
Vista en un móvil con la app habdroid
Vista en un móvil con la app habdroid

 

En la siguiente foto tenéis una de las casetas con su electroválvula controlada por Arduino, conectada por Ethernet a través de un PLC con el servidor openHAB:

Caseta #3 (hace clic para ampliar)
Caseta #3 (hacer clic para ampliar)
7 comentarios

Añadir un comentario

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

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