Hola a todos ![]()
Quería compartir 2 PRs que acabo de abrir, relacionados con un caso concreto: integrar mi sonda iopool Eco (monitoreo de la calidad del agua de la piscina) en Gladys a través de MQTT.
He subido la sonda en Node-RED, que publica en el broker MQTT, lo que me permite crear un dispositivo virtual MQTT en Gladys con las siguientes funcionalidades: temperatura, pH, ORP (capacidad de desinfección), modo, duración de filtrado recomendada, fecha de la última medición.
El problema: para el pH y el ORP, ninguna categoría de sensor coincidía. Tuve que poner « Desconocido » para el pH y « Índice de calidad del aire » para el ORP (porque airquality-sensor era lo que más se parecía). No es ideal.
Por lo tanto, he hecho 2 PRs (pila):
PR 1 — Categorías de sensores para la calidad del agua
Añadí 2 categorías genéricas, reutilizables por cualquier integración (MQTT, Z2M, Matter, servicios personalizados):
ph-sensor— pH del agua, rango 0–14, nueva unidad sin dimensiónphorp-sensor— Potencial de oxidación-reducción (Redox / « Capacidad de desinfección »), enmilivolt(unidad existente)
Cubre las sondas de piscina (iopool, Ondilo, BWT), acuarios, estaciones de medición de agua de lluvia, etc.
Convención de nomenclatura: términos científicos estándar (no capacite-desinfection-sensor). Pero el texto en FR mantiene « ORP / Capacidad de desinfección » para ser accesible al público en general.
¿Por qué no hay coloración automática en el widget « Dispositivo »?
Pregunta legítima: la calidad del aire (CO2, PM2.5, VOC…) muestra una etiqueta de color automáticamente en el widget Dispositivo según el valor. ¿Por qué no hacer lo mismo para el pH y el ORP?
Porque solo funciona para mediciones con umbrales universales. El CO2 a 1200 ppm es malo en todas partes, sin importar el contexto — es una norma sanitaria mundial.
El pH y el ORP, en cambio, son escalas absolutas cuyo rango « correcto » depende completamente del uso:
| Uso | pH ideal | ORP ideal |
|---|---|---|
| Piscina | 7.0 – 7.4 | 650 – 750 mV |
| Acuario de agua dulce | 6.5 – 7.5 | 250 – 400 mV |
| Acuario de arrecife | 8.1 – 8.4 | 350 – 450 mV |
| Agua potable | 6.5 – 8.5 | — |
| Hidroponía | 5.5 – 6.5 | — |
Si codificáramos umbrales de piscina en el widget Dispositivo, un usuario de acuario vería su valor en rojo aunque su agua esté perfecta. Engañoso.
A esto se suma un detalle técnico: la coloración de la calidad del aire es monótona (« cuanto más bajo, mejor »). El pH es una banda: malo abajo y arriba, bueno en el medio. La lógica existente simplemente no se aplica.
Por eso la coloración por umbrales pasa por la PR2 (medidor configurable): cada uno define sus propios umbrales según su uso. Neutral, correcto para todos, y reutilizable mucho más allá de la calidad del agua (batería, nivel de tanque, etc.).
PR 2 — Medidor configurable con umbrales de color
Retoma la lógica de umbral + color ya presente en los widgets « Temperatura de la habitación » y « Humedad de la habitación », pero de manera genérica en el widget Medidor:
- Casilla de verificación « Configurar umbrales personalizados » en el editor
- Doble control deslizante para definir los 2 umbrales (los límites del control deslizante provienen del
min/maxde la característica, por lo que coherente con pH 0-12, ORP 500-1100, batería 0-100, etc.) - 3 selectores de color (zona baja / dentro del rango / zona alta) con la paleta del widget chart
- Leyenda debajo del medidor con los 3 colores y los límites formateados con la unidad
- Sin umbrales personalizados → se conserva el degradado ApexCharts original (cero regresión)
¿Por qué estas elecciones de diseño?
- Categorías separadas en lugar de una categoría paraguas
water-quality-sensorcon varios tipos: alineado con el patrón existente (co2-sensor,pm25-sensor,voc-sensor, etc. — 1 categoría = 1 medida física) - Medidor configurable en lugar de un widget dedicado a piscinas: genérico = útil para muchos más casos de uso (batería de vehículo eléctrico, humedad del suelo, dB, nivel de tanque, etc.)
- Sin coloración inteligente codificada por categoría (como « pH entre 7.0-7.4 = verde »): dejado al criterio del usuario a través del editor, para mantenerse neutral sobre las convenciones comerciales (piscina ≠ acuario ≠ spa)
¡Feedback bienvenido
— especialmente sobre:
- La nomenclatura de las categorías (
ph-sensor/orp-sensorvs alternativas?) - El texto en FR para ORP — ¿« Capacidad de desinfección » es lo suficientemente claro para quienes no conocen la química del agua?
- ¿Alguien más tiene casos de uso (acuarios, agua de lluvia, hidroponía…) que se beneficiarían de estas categorías o que requerirían otras (TDS, conductividad, salinidad)?
- El medidor configurable — ¿ven otros widgets que merecerían el mismo tratamiento de umbrales/colores?
Gracias por su lectura ![]()

