Aller au contenu principal

Intégration domotique SEKO PoolDose, gratuite et open source

Intégration SEKO PoolDose pour Gladys Assistant

Régulateurs de piscine SEKO PoolDose en local : pH, redox, chlore, température, alarmes.

Intégration non officielle, sans lien avec SEKO. Elle amène dans Gladys un régulateur de piscine SEKO PoolDose (et les modèles qui en dérivent : VÁGNER POOL VA DOS, BWT MEDO CONNECT, KEMI DOSE AQUAVIVA), lu par sa propre API HTTP sur le réseau local, sans compte ni cloud.

Attention : cette intégration n'a jamais été testée avec un vrai appareil. Elle a été écrite à partir de la bibliothèque python-pooldose (celle de Home Assistant) et testée contre un faux PoolDose seulement. Les retours sont les bienvenus.

Lecture seule. Gladys ne commande jamais le PoolDose : ni dosage, ni pompe doseuse, ni consigne de pH, de redox ou de chlore, ni pause du dosage. Un mauvais dosage chimique met les baigneurs en danger ; ces valeurs sont seulement affichées. Les commandes sont prévues pour une version ultérieure, désactivées par défaut.

Ce que vous obtenez​

Un appareil « PoolDose » avec, selon votre modèle :

FonctionnalitéType dans Gladys
Température de l'eauTempérature (°C)
pH, consigne de pHpH
Redox (ORP), consigne de redoxRedox (mV)
Chlore libre, consigne de chloreCapteur générique en ppm (= mg/L)
Mode des pompes pH, redox, chloreTexte (arrêt, proportionnel, tout ou rien, temporisé, cycle)
Sens du dosage pH, redox, chloreTexte (acide pH−, alcalin pH+…)
Dosage en pause, pompe de circulationBinaire (0/1)
AlarmesBinaire (0/1), et déclencheurs

Gladys n'a pas de catégorie « chlore » : le chlore libre est un capteur générique en ppm, comme le sel de l'intégration Ondilo. Une température affichée en °F par l'appareil arrive en °C dans Gladys. Une valeur absente de votre modèle ne crée pas de fonctionnalité.

Les alarmes : pompe doseuse, niveau des bidons (pH, redox, chlore), débit d'eau, relais d'alarme, surdosage (pH, redox, chlore), eau trop froide ou trop chaude, pH trop bas ou trop haut, chlore trop bas ou trop haut (redox ou mesure directe), système en veille. Chacune est une fonctionnalité binaire et sert aux deux déclencheurs de scène :

  • Alarme PoolDose déclenchée : une alarme passe à 1 ;
  • Alarme PoolDose terminée : une alarme repasse à 0.

Dans la scène, choisissez le PoolDose et les alarmes qui vous intéressent (aucune = toutes). Les variables alarm_name (nom de l'alarme) et device_name (nom de l'appareil) sont disponibles dans les actions, par exemple pour un message. Une alarme déjà active à la toute première lecture n'est pas annoncée (elle se voit dans sa fonctionnalité) ; l'état des alarmes est gardé dans /data, si bien qu'un redémarrage ne répète pas une alarme et annonce celle apparue pendant l'arrêt.

Modèles pris en charge​

Les modèles de python-pooldose 0.9.15 : PoolDose Double (PDPR1H1HAW100, et PDPR1H1HAW102), PoolDose Double Spa (PDPR1H04AW100), PoolDose pH (PDPH1H1HAW100), BWT MEDO CONNECT (PDPH1H1HAW1B0), VÁGNER POOL VA DOS BASIC et EXACT (PDHC1H1HAR1V0, PDHC1H1HAR1V1), KEMI DOSE AQUAVIVA (KDPR5050AWH00, KDHC5050AWH01), avec leur micrologiciel connu. Un autre modèle est trouvé, mais rien n'est lu : l'état de l'intégration donne son code produit et son micrologiciel. Pour le faire ajouter, suivez la procédure de python-pooldose (fichier docs/device-support.md de ce projet) puis signalez-le ici.

Installation​

  1. Le PoolDose doit être sur votre Wi-Fi (application SEKO ou interface web de l'appareil). Donnez-lui une adresse fixe dans votre box (réservation DHCP).
  2. Dans Gladys, installez l'intégration SEKO PoolDose, saisissez l'adresse IP de l'appareil (par exemple 192.168.1.50), puis enregistrez.
  3. Ajoutez l'appareil depuis l'onglet Découverte.

Le port (0 = standard), le HTTPS et la vérification de son certificat ne servent que si votre appareil répond autrement qu'en HTTP sur le port 80.

Vie privée et sécurité​

  • Aucun compte, aucun mot de passe : l'API locale du PoolDose n'en demande pas. Rien ne sort de votre réseau.
  • Seules trois adresses de l'appareil sont lues : /js_libs/params.js (versions), /api/v1/debug/config (modèle, micrologiciel, identifiants) et /api/v1/DWI/getInstantValues (valeurs). Les adresses Wi-Fi de l'appareil, qui renvoient la clé Wi-Fi, ne sont jamais appelées. Aucune adresse d'écriture n'est appelée.
  • L'intégration se présente comme « gladys-seko-pooldose ».
  • Les journaux ne contiennent pas l'adresse de l'appareil.

Rafraîchissement​

L'appareil est lu toutes les 60 secondes par défaut (30 à 900) : une requête pour les valeurs. Le modèle et le micrologiciel sont relus toutes les 6 heures (une mise à jour du micrologiciel), et par le bouton Tester la connexion.

Erreurs​

  • Pas de réponse (appareil éteint, Wi-Fi coupé, mauvaise adresse) ou erreur 5xx : nouvel essai après 1, 2, 5, 10 puis toutes les 15 minutes, jamais plus vite que l'intervalle ; le badge passe à « injoignable ». Cette attente est gardée au redémarrage ; le bouton Tester la connexion essaie aussitôt.
  • Accès refusé (HTTP 401 ou 403, par exemple un proxy devant l'appareil) : l'intégration s'arrête, sans boucle ; un nouvel essai après 1 h, 6 h puis toutes les 24 h, ou aussitôt avec le bouton ou une nouvelle adresse. L'arrêt est gardé au redémarrage.
  • L'appareil demande de ralentir (429) : une pause d'au moins 1 minute (Retry-After s'il est donné, 6 h au plus), gardée au redémarrage.
  • Réponse inattendue (404, pas du JSON) : le modèle est relu à l'essai suivant.

Limites​

  • Jamais testé avec un vrai appareil : les correspondances viennent de python-pooldose, vérifiées par ses utilisateurs.
  • Sur les VÁGNER POOL VA DOS (PDPR1H1HAR1V0, PDHC1H1HAR1V0/V1), le sens de l'alarme pompe doseuse n'est pas confirmé : l'appareil donne un libellé ON/OFF qui pourrait signifier « la pompe tourne » plutôt qu'« alarme ». Vérifiez-la sur l'appareil avant de vous en servir dans une scène.
  • Les valeurs « Bas » / « Haut » du sens du dosage redox ou chlore sont données telles que l'appareil les nomme.
  • Lecture seule : pas de commande des pompes doseuses, des consignes, de la pause du dosage ni des relais (prévu plus tard, désactivé par défaut).
  • Non lus pour l'instant : calibrations des sondes, seuils de surdosage, débit et compteur d'eau, relais auxiliaires, temporisations.

Crédits​

  • python-pooldose de lmaertin (MIT) : l'API locale, l'identification du modèle et le décodage des valeurs sont portés en JavaScript, les fichiers de correspondance sont repris tels quels.
  • Voir THIRD_PARTY_NOTICES.md.

SEKO et PoolDose sont des marques de leurs propriétaires ; ce projet est sans lien avec SEKO.

Paramètres de configuration​

Voici les paramètres demandés par SEKO PoolDose dans son écran de configuration dans Gladys.

ParamètreTypeObligatoireDescription
Votre PoolDosesectionNonAmène dans Gladys un régulateur de piscine SEKO PoolDose (et les modèles VÁGNER POOL, BWT et KEMI DOSE qui en dérivent), lu par sa propre API HTTP sur le réseau local, sans le cloud : température de l’eau, pH, redox, chlore libre, consignes de pH, de redox et de chlore, mode des pompes doseuses, pause du dosage et alarmes, chaque alarme aussi en déclencheur de scène. Saisissez l’adresse IP de l’appareil, enregistrez, puis ajoutez-le depuis l’onglet Découverte. Lecture seule : Gladys ne dose jamais et ne change aucune consigne. Porté de python-pooldose ; jamais testé avec un vrai appareil. Sans lien avec SEKO.
Adresse du PoolDosestringOuiSon adresse IP (ou son nom d’hôte) sur votre réseau, telle que l’affiche votre box. Donnez-lui une adresse fixe (réservation DHCP).
Port (facultatif)numberNon0 pour le port standard (80, ou 443 en HTTPS).
HTTPSbooleanNonSeulement si votre appareil répond en HTTPS. Désactivé par défaut (le PoolDose répond en HTTP).
Vérifier le certificat HTTPSbooleanNonEn HTTPS seulement. Désactivez-le pour un certificat auto-signé de l’appareil.
Intervalle de rafraîchissement (s)numberNonSecondes entre deux lectures de l’appareil (30 à 900).
Langue des nomsselectNonSert aux noms des fonctionnalités de l’appareil ajouté désormais, aux modes de dosage et aux noms d’alarme des déclencheurs de scène.

Comment installer SEKO PoolDose dans Gladys​

  1. Dans Gladys, ouvrez Intégrations : SEKO PoolDose apparaît dans le catalogue, aux côtés des intégrations natives, avec un badge communautaire.
  2. Cliquez sur Installer. Gladys télécharge l'image Docker (ghcr.io/lm1lc3n7/gladys-seko-pooldose:0.1.1), la démarre dans un bac à sable isolé du cœur, et génère l'interface de l'intégration (appareils, découverte et configuration).
  3. Ouvrez l'écran Configuration de l'intégration, remplissez les paramètres, puis enregistrez.
  4. Vous pouvez aussi l'installer directement depuis l'URL de son dépôt : https://github.com/LM1LC3N7/gladys-seko-pooldose.

SEKO PoolDose nécessite Gladys >=5.1.0. Le catalogue dans Gladys se rafraîchit toutes les heures : une nouvelle version est donc disponible au plus tard une heure après sa sortie.

Vous n'utilisez pas encore Gladys ? C'est gratuit et open source : suivez le guide d'installation pour démarrer.

À propos des intégrations externes​

SEKO PoolDose est une intégration externe : une intégration communautaire empaquetée dans un conteneur Docker et publiée sur GitHub, que Gladys installe en un clic et exécute dans un bac à sable isolé de son cœur. Elle est publiée et maintenue par LM1LC3N7, et non par l'équipe cœur de Gladys.

Inscrivez-vous à la newsletter Gladys Assistant

Quelques emails par mois sur les nouveautés et l'actualité du projet. Envoyés par Pierre-Gilles Leymarie, le fondateur du projet. Désinscription possible à tout moment 🙂