Integración domótica OpenSprinkler, gratuita y de código abierto

Riego OpenSprinkler: estaciones, programas, retraso por lluvia y sensores, en red local.
Controle su programador de riego OpenSprinkler u OpenSprinkler Pi desde Gladys, en su red local: vea qué estaciones riegan y durante cuánto tiempo, riegue un parterre al instante, inicie un programa, suspenda el calendario con un retraso por lluvia y lea los sensores de lluvia, de suelo y de caudal.
Desarrollada sin el hardware: sus comentarios son bienvenidos. Esta integración se ha escrito a partir de la documentación de la API de OpenSprinkler y de respuestas grabadas en el firmware oficial (versión Demo), no en un controlador físico. Indique lo que funciona y lo que no en GitHub.
Esta integración no está afiliada a OpenSprinkler ni a OpenThings Inc.
Requisitos
- Un controlador OpenSprinkler (2.x, 3.x, 4.x) u OpenSprinkler Pi con un firmware 2.x (2.1.9 o posterior recomendado, probado con la 2.2.1(6)).
- El controlador y Gladys en la misma red local. La integración habla directamente con el controlador (sin nube, sin cuenta de OpenThings Cloud).
- La contraseña del dispositivo: la que escribe en la aplicación OpenSprinkler (por defecto:
opendoor). - Gladys 5.2.0 o posterior (los botones del widget abren formularios).
Configuración
En Gladys, vaya a Integraciones → OpenSprinkler → Configuración:
- Dirección: la dirección IP o el nombre del controlador, por ejemplo
192.168.1.20. Añada:puertosi el servidor web no escucha en el puerto 80 (un OpenSprinkler Pi escucha a menudo en:8080). Asigne al controlador una dirección IP fija en su router. - Contraseña del dispositivo: la contraseña de la aplicación OpenSprinkler. Se envía al controlador como hash MD5, como hace la aplicación oficial, y nunca se escribe en los registros.
- Nombre (opcional): el nombre del dispositivo en Gladys; vacío, se usa el nombre configurado en el controlador.
- Hasta tres controladores (secciones segunda y tercera).
- Intervalo de actualización: 30 segundos o 1 minuto. El controlador también se vuelve a leer justo después de cada orden.
- Duración de riego de un interruptor de estación: cuánto tiempo riega una estación cuando enciende su interruptor en Gladys (10 minutos por defecto). El propio controlador la detiene al final.
- Unidad del caudal por impulso: litros o galones EE. UU., la unidad del volumen por impulso configurado en las opciones de OpenSprinkler (solo con caudalímetro).
- Idioma de los nombres de funciones: los nombres de las funciones al añadir el dispositivo y los textos de los eventos de escena.
Use después Probar la conexión: la integración lee cada controlador e indica su firmware, sus estaciones y sus programas. Por último, abra la pestaña Descubrimiento y añada el controlador a Gladys.
Dispositivos y funciones
Un dispositivo por controlador, identificado por su dirección MAC: cambiar su dirección IP o su lugar en la configuración conserva el dispositivo y su historial.
| Función | Tipo | Qué hace |
|---|---|---|
| Controlador activado | interruptor | Activa o desactiva el funcionamiento del controlador (ningún programa se ejecuta mientras está desactivado). |
| Un interruptor por estación, con el nombre de la estación | interruptor | Encendido mientras la estación riega. Encenderlo riega la estación durante el tiempo configurado; apagarlo la detiene. |
| Programa: … | interruptor | Encendido mientras el programa está activado. Apagarlo desactiva el programa (ya no se ejecuta según su calendario). |
| Nivel de riego | nivel (%) | El porcentaje de riego aplicado a los programas (0 a 250 %), fijado por el ajuste meteorológico o a mano. |
| Retraso por lluvia | duración (horas) | Las horas que faltan para que los programas vuelvan a ejecutarse, 0 sin retraso por lluvia. |
| Sensor de lluvia | sensor de lluvia | Solo con un sensor de lluvia en una entrada de sensor: 1 cuando se detecta lluvia. |
| Sensor de suelo (húmedo) | entrada | Solo con un sensor de suelo: 1 cuando el suelo está húmedo. |
| Caudal de agua | caudal (m³/h) | Solo con un caudalímetro: el caudal actual. |
| Contador de agua | volumen (litros) | Solo con un caudalímetro: el agua consumida desde que se añadió el dispositivo. El controlador cuenta los impulsos desde su encendido; la integración los suma entre sus reinicios y guarda el total en /data. |
Los nombres se fijan al añadir el dispositivo. Una estación renombrada, un programa añadido o un sensor conectado más tarde: la pestaña Descubrimiento ofrece Actualizar para el dispositivo.
Las estaciones maestras (bomba, válvula maestra) aparecen como las demás y muestran cuándo funcionan, pero no se inician solas: el controlador las abre con las estaciones a las que sirven.
Widget del panel
Añada el widget OpenSprinkler a un panel (elija el controlador en su configuración, o déjelo vacío para el primero). Muestra:
- el Nivel de riego, el Retraso por lluvia y el Caudal (con caudalímetro) como mosaicos;
- el estado del controlador (En reposo, Regando, En pausa, Desactivado, retraso por lluvia), el sensor de lluvia cuando detecta lluvia, y cada estación que riega con su tiempo restante o que espera su turno;
- cuatro botones: Regar… (elegir una estación y una duración), Programa… (elegir un programa, con o sin el nivel de riego), Detener todo (pide confirmación) y Retraso lluvia… (un número de horas), que pasa a Anular retraso mientras dura un retraso por lluvia.
Disparadores de escena
- Estación OpenSprinkler terminada: una estación ha terminado de regar. Filtros: el controlador y lo que la inició (riego manual, horario de un programa, o programa iniciado a mano / programa de una vez). Variables: el número y el nombre de la estación, la duración de riego en minutos, lo que la inició y el nombre del controlador.
- OpenSprinkler inaccesible: el controlador ha dejado de responder en la red (dos lecturas seguidas). Variables: el nombre del controlador y el motivo.
Acciones de escena
- Regar una estación OpenSprinkler: abre una estación (número 1 = la primera) durante unos minutos (1 a 1080), tras las estaciones que ya están regando.
- Detener el riego OpenSprinkler: detiene todas las estaciones que riegan o esperan.
- Iniciar un programa OpenSprinkler: inicia un programa ahora (número 1 = el primero), con o sin el nivel de riego. Lo que está regando se detiene y el programa toma el relevo.
- Fijar el retraso por lluvia OpenSprinkler: suspende los programas durante unas horas (0 a 720; 0 anula el retraso).
Ejemplos de escenas
- Se acerca la lluvia: cuando su integración meteorológica emite una alerta de lluvia, Fijar el retraso por lluvia OpenSprinkler en 24 horas.
- Regar el huerto desde la tableta mural: el botón Regar… del widget, o una escena iniciada por un botón que ejecuta Regar una estación OpenSprinkler durante 15 minutos.
- Informe de riego: con Estación OpenSprinkler terminada, enviar un mensaje «{{triggerEvent.data.station_name}} ha regado {{triggerEvent.data.duration_minutes}} min».
- Niños en el jardín: cuando se detecta una presencia en el jardín, Detener el riego OpenSprinkler.
- Controlador sin conexión: con OpenSprinkler inaccesible, enviar una notificación.
Solución de problemas
- «no responde»: compruebe la dirección y el puerto (abra
http://<dirección>en un navegador: debe aparecer la página de OpenSprinkler). La integración se ejecuta en un contenedor Docker: el controlador debe ser accesible desde el servidor de Gladys. - «contraseña rechazada»: vuelva a escribir la contraseña de la aplicación OpenSprinkler (distingue mayúsculas y minúsculas). La de fábrica es
opendoor. - «no hay ningún OpenSprinkler en esta dirección»: algo responde en esta dirección, pero no la API de OpenSprinkler (otro dispositivo, una página web).
- Un interruptor de estación se vuelve a apagar solo: el controlador ha rechazado el riego. Una estación que ya riega o espera, una estación maestra o un controlador desactivado no se pueden iniciar; el mensaje de error indica cuál.
- Más detalles: ponga la variable de entorno
LOG_LEVELendebugen la configuración de la integración; los registros muestran entonces cada lectura. Nunca contienen la contraseña.
Límites
- Frecuencia de lectura y carga del controlador: el controlador (un ESP8266 en el OpenSprinkler 2.3 / 3.x) atiende una petición cada vez. La integración lo lee cada 30 segundos o cada minuto con una sola petición
/ja(cinco peticiones, una tras otra, en los firmwares anteriores a 2.1.6), más una lectura tras cada orden. No se usa ningún servicio en la nube, así que no hay cuota; no baje de 30 segundos. - Las estaciones y los programas se identifican por su número en el controlador, el único identificador que da la API: borrar o reordenar programas en la aplicación OpenSprinkler desplaza los interruptores de programa (los nombres siguen siendo los de la creación hasta Actualizar).
- Un programa iniciado a mano se ejecuta como programa «de una vez» (run-once) en el controlador: su interruptor solo indica si está activado, y el disparador «estación terminada» lo señala como iniciado a mano.
- El disparador estación terminada lee el último riego terminado del controlador en cada lectura: cuando dos estaciones terminan entre dos lecturas, solo se señala la última.
- El contador de agua empieza en 0 al añadir el dispositivo, y pierde el agua consumida mientras la integración está detenida durante un reinicio del controlador.
- Los sensores ampliados (sensores analógicos del firmware 2.2.1), las estaciones especiales y la edición de programas no se gestionan: use la aplicación OpenSprinkler.
- La integración habla HTTP con el controlador, como la aplicación oficial en la red local; el hash de la contraseña viaja sin cifrar por la red local.
Parámetros de configuración
Estos son los parámetros que OpenSprinkler te pide en su pantalla de configuración en Gladys.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| Su OpenSprinkler | section | No | OpenSprinkler u OpenSprinkler Pi con firmware 2.x, en su red local. Hasta tres controladores. |
| Dirección | string | Sí | Dirección IP o nombre del controlador, con :puerto si no es 80 (OpenSprinkler Pi: a menudo :8080). |
| Contraseña del dispositivo | secret | No | La contraseña de la aplicación OpenSprinkler (por defecto: opendoor). Se envía al controlador como hash MD5. |
| Nombre | string | No | Nombre del dispositivo en Gladys. Vacío: el nombre configurado en el controlador. |
| Segundo OpenSprinkler (opcional) | section | No | Los mismos campos, para otro controlador de su red. |
| Dirección | string | No | Dirección IP o nombre del controlador, con :puerto si no es 80 (OpenSprinkler Pi: a menudo :8080). |
| Contraseña del dispositivo | secret | No | La contraseña de la aplicación OpenSprinkler (por defecto: opendoor). Se envía al controlador como hash MD5. |
| Nombre | string | No | Nombre del dispositivo en Gladys. Vacío: el nombre configurado en el controlador. |
| Tercer OpenSprinkler (opcional) | section | No | Los mismos campos, para otro controlador de su red. |
| Dirección | string | No | Dirección IP o nombre del controlador, con :puerto si no es 80 (OpenSprinkler Pi: a menudo :8080). |
| Contraseña del dispositivo | secret | No | La contraseña de la aplicación OpenSprinkler (por defecto: opendoor). Se envía al controlador como hash MD5. |
| Nombre | string | No | Nombre del dispositivo en Gladys. Vacío: el nombre configurado en el controlador. |
| Opciones | section | No | |
| Intervalo de actualización | select | No | Con qué frecuencia se leen los controladores. Se vuelven a leer justo después de cada orden. |
| Duración de riego de un interruptor de estación | select | No | Encender una estación en Gladys la riega durante este tiempo; después el controlador la detiene. |
| Unidad del caudal por impulso | select | No | Solo con caudalímetro: la unidad del volumen por impulso configurado en las opciones de OpenSprinkler. |
| Idioma de los nombres de funciones | select | No | Nombres de las funciones al añadir un dispositivo y textos de los eventos de escena. |
Cómo instalar OpenSprinkler en Gladys
- En Gladys, abre Integraciones: OpenSprinkler aparece en el catálogo junto a las integraciones nativas, con una insignia de comunidad.
- Haz clic en Instalar. Gladys descarga la imagen Docker (
ghcr.io/guim31/gladys-opensprinkler:1.0.1), la ejecuta en un entorno aislado del núcleo y genera la interfaz de la integración (dispositivos, descubrimiento y configuración). - Abre la pantalla de Configuración de la integración, rellena los parámetros y guarda.
- También puedes instalarla directamente desde la URL de su repositorio: https://github.com/guim31/gladys-opensprinkler.
OpenSprinkler requiere Gladys >=5.2.0. El catálogo de Gladys se actualiza cada hora, así que una nueva versión está disponible como máximo una hora después de publicarse.
¿Todavía no usas Gladys? Es gratuito y de código abierto: sigue la guía de instalación para empezar.
Sobre las integraciones externas
OpenSprinkler es una integración externa: una integración comunitaria empaquetada como contenedor Docker y publicada en GitHub. Gladys la instala con un clic y la ejecuta en un entorno aislado del núcleo. La publica y mantiene guim31, no el equipo principal de Gladys.
- Explorar todas las integraciones, nativas y de la comunidad
- Crear y publicar tu propia integración externa
- Código fuente en GitHub — fuente de esta documentación