Salut tout le monde ![]()
Je voulais partager 2 PRs que je viens d’ouvrir, liées à un cas concret : intégrer ma sonde iopool Eco (surveillance qualité de l’eau de piscine) à Gladys via MQTT.
J’ai remonté la sonde côté Node-RED qui publie sur le broker MQTT, ce qui me permet de créer un Appareil virtuel MQTT côté Gladys avec les fonctionnalités : température, pH, ORP (capacité de désinfection), mode, durée de filtration conseillée, date de dernière mesure.
Le problème : pour le pH et l’ORP, aucune catégorie de capteur ne correspondait. J’ai dû mettre « Inconnu » pour le pH et « Indice de qualité de l’air » pour l’ORP (parce que airquality-sensor était ce qui ressemblait le plus). Pas idéal.
J’ai donc fait 2 PRs (stack) :
PR 1 — Catégories de capteurs pour la qualité de l’eau
Ajout de 2 catégories génériques, réutilisables par n’importe quelle intégration (MQTT, Z2M, Matter, services custom) :
ph-sensor— pH de l’eau, plage 0–14, nouvelle unité dimensionlessphorp-sensor— Potentiel d’oxydoréduction (Redox / « Capacité de désinfection »), enmillivolt(unité existante)
Couvre les sondes piscine (iopool, Ondilo, BWT), aquariums, stations de mesure d’eau de pluie, etc.
Convention de nommage : termes scientifiques standards (pas de capacite-desinfection-sensor). Mais le libellé FR garde « ORP / Capacité de désinfection » pour rester accessible au grand public.
Pourquoi pas de coloration automatique sur le widget « Appareil » ?
Question légitime : la qualité de l’air (CO2, PM2.5, VOC…) affiche un badge coloré
automatiquement dans le widget Appareil selon la valeur. Pourquoi ne pas faire pareil
pour le pH et l’ORP ?
Parce que ça ne marche que pour des mesures à seuils universels. Le CO2 à 1200 ppm
est mauvais partout, peu importe le contexte — c’est une norme sanitaire mondiale.
Le pH et l’ORP, eux, sont des échelles absolues dont la plage « correcte » dépend
entièrement de l’usage :
| Usage | pH idéal | ORP idéal |
|---|---|---|
| Piscine | 7.0 – 7.4 | 650 – 750 mV |
| Aquarium eau douce | 6.5 – 7.5 | 250 – 400 mV |
| Aquarium récifal | 8.1 – 8.4 | 350 – 450 mV |
| Eau potable | 6.5 – 8.5 | — |
| Hydroponie | 5.5 – 6.5 | — |
Si on hardcodait des seuils piscine dans le widget Appareil, un utilisateur d’aquarium
verrait sa valeur en rouge alors que son eau est parfaite. Trompeur.
À ça s’ajoute un détail technique : la coloration de la qualité de l’air est monotone
(« plus c’est bas, mieux c’est »). Le pH, c’est une bande : mauvais en bas et en haut,
bon au milieu. La logique existante ne s’applique tout simplement pas.
C’est pour ça que la coloration par seuils passe par la PR2 (jauge configurable) :
chacun définit ses propres seuils selon son usage. Neutre, correct pour tout le monde,
et réutilisable bien au-delà de la qualité de l’eau (batterie, niveau de cuve, etc.).
PR 2 — Jauge configurable avec seuils colorés
Reprend la logique seuil + couleur déjà présente dans les widgets « Température de la pièce » et « Humidité de la pièce », mais en générique sur le widget Jauge :
- Checkbox « Configurer des seuils personnalisés » dans l’éditeur
- Double curseur pour définir les 2 seuils (les bornes du curseur viennent du
min/maxde la feature, donc cohérent avec pH 0-12, ORP 500-1100, batterie 0-100, etc.) - 3 sélecteurs de couleur (zone basse / dans la plage / zone haute) avec la palette du widget chart
- Légende sous la jauge avec les 3 couleurs et les bornes formatées avec l’unité
- Sans seuils personnalisés → le gradient ApexCharts d’origine est conservé (zéro régression)
Pourquoi ces choix de design
- Catégories séparées plutôt qu’une catégorie umbrella
water-quality-sensoravec plusieurs types : aligné sur le pattern existant (co2-sensor,pm25-sensor,voc-sensor, etc. — 1 catégorie = 1 mesure physique) - Jauge configurable plutôt que widget dédié piscine : générique = utile à beaucoup plus de cas d’usage (batterie de véhicule électrique, humidité du sol, dB, niveau de cuve, etc.)
- Pas de coloration smart hardcodée par catégorie (genre « pH entre 7.0-7.4 = vert ») : laissé au choix de l’utilisateur via l’éditeur, pour rester neutre sur les conventions métier (piscine ≠ aquarium ≠ spa)
Feedback bienvenu
— surtout sur :
- Le nommage des catégories (
ph-sensor/orp-sensorvs alternatives ?) - Le wording FR pour ORP — « Capacité de désinfection » est-il assez clair pour ceux qui ne connaissent pas la chimie de l’eau ?
- Est-ce que d’autres ont des cas d’usage (aquarium, eau de pluie, hydroponie…) qui bénéficieraient de ces catégories ou qui en demanderaient d’autres (TDS, conductivité, salinité) ?
- La jauge configurable — vous voyez d’autres widgets qui mériteraient le même traitement seuils/couleurs ?
Merci de votre lecture ![]()

