Zum Hauptinhalt springen

SEKO PoolDose Smart-Home-Integration, kostenlos und Open Source

SEKO PoolDose-Integration für Gladys Assistant

SEKO PoolDose pool controllers on the local network: pH, ORP, chlorine, temperature, alarms.

Info

Die Dokumentation dieser Integration wird von ihrem Autor geschrieben und ist bisher nur auf Englisch verfügbar.

Unofficial integration, not affiliated with SEKO. It brings a SEKO PoolDose pool controller into Gladys (and the models built on it: VÁGNER POOL VA DOS, BWT MEDO CONNECT, KEMI DOSE AQUAVIVA), read through its own HTTP API on the local network, without an account nor the cloud.

Warning: this integration has never been tested with a real device. It was written from the python-pooldose library (the one of Home Assistant) and tested against a fake PoolDose only. Feedback is welcome.

Read only. Gladys never commands the PoolDose: no dosing, no dosing pump, no pH, ORP or chlorine setpoint, no pause of the dosing. A wrong chemical dosing puts the swimmers at risk; these values are only shown. Commands are planned for a later version, off by default.

What you get​

A "PoolDose" device with, depending on your model:

FeatureType in Gladys
Water temperatureTemperature (°C)
pH, pH setpointpH
ORP (redox), ORP setpointORP (mV)
Free chlorine, chlorine setpointGeneric sensor in ppm (= mg/L)
Mode of the pH, ORP, chlorine pumpsText (off, proportional, on / off, timed, cycle)
Dosing direction of pH, ORP, chlorineText (acid pH−, alkaline pH+…)
Dosing paused, circulation pumpBinary (0/1)
AlarmsBinary (0/1), and scene triggers

Gladys has no "chlorine" category: free chlorine is a generic sensor in ppm, like the salt of the Ondilo integration. A temperature the device shows in °F reaches Gladys in °C. A value your model does not have creates no feature.

The alarms: dosing pump, tank levels (pH, ORP, chlorine), water flow, alarm relay, overfeed (pH, ORP, chlorine), water too cold or too hot, pH too low or too high, chlorine too low or too high (ORP or direct measure), system on standby. Each one is a binary feature and feeds the two scene triggers:

  • PoolDose alarm raised: an alarm turns to 1;
  • PoolDose alarm cleared: an alarm turns back to 0.

In the scene, pick the PoolDose and the alarms you want (none = all). The variables alarm_name (name of the alarm) and device_name (name of the device) are available to the actions, for a message for instance. An alarm already on at the very first read is not announced (its feature shows it); the alarms are kept in /data, so a restart never repeats an alarm and announces one raised while it was stopped.

Supported models​

The models of python-pooldose 0.9.15: PoolDose Double (PDPR1H1HAW100, and PDPR1H1HAW102), PoolDose Double Spa (PDPR1H04AW100), PoolDose pH (PDPH1H1HAW100), BWT MEDO CONNECT (PDPH1H1HAW1B0), VÁGNER POOL VA DOS BASIC and EXACT (PDHC1H1HAR1V0, PDHC1H1HAR1V1), KEMI DOSE AQUAVIVA (KDPR5050AWH00, KDHC5050AWH01), with their known firmware. Another model is found, but nothing is read: the status of the integration gives its product code and firmware. To have it added, follow the procedure of python-pooldose (its docs/device-support.md) and report it here.

Installation​

  1. The PoolDose must be on your Wi-Fi (SEKO app or the web page of the device). Give it a fixed address in your router (DHCP reservation).
  2. In Gladys, install the SEKO PoolDose integration, enter the IP address of the device (for instance 192.168.1.50), then save.
  3. Add the device from the Discovery tab.

The port (0 = standard), HTTPS and the check of its certificate only matter when your device answers otherwise than HTTP on port 80.

Privacy and security​

  • No account, no password: the local API of the PoolDose asks for none. Nothing leaves your network.
  • Only three paths of the device are read: /js_libs/params.js (versions), /api/v1/debug/config (model, firmware, ids) and /api/v1/DWI/getInstantValues (values). The Wi-Fi endpoints of the device, which answer with the Wi-Fi key, are never called. No write endpoint is called.
  • The integration introduces itself as "gladys-seko-pooldose".
  • The logs never hold the address of the device.

Refresh​

The device is read every 60 seconds by default (30 to 900): one request for the values. The model and the firmware are read again every 6 hours (a firmware update), and by the Test the connection button.

Errors​

  • No answer (device off, Wi-Fi down, wrong address) or a 5xx: a new try after 1, 2, 5, 10 then every 15 minutes, never faster than the interval; the badge turns "unreachable". This wait is kept across a restart; the Test the connection button tries at once.
  • Access refused (HTTP 401 or 403, a proxy in front of the device for instance): the integration stops, without a loop; one new try after 1 h, 6 h then every 24 h, or at once with the button or a new address. The stop is kept across a restart.
  • The device asks to slow down (429): a pause of at least 1 minute (Retry-After when given, 6 h at most), kept across a restart.
  • Unexpected answer (404, not JSON): the model is read again at the next try.

Limits​

  • Never tested with a real device: the mappings come from python-pooldose, checked by its users.
  • On the VÁGNER POOL VA DOS (PDPR1H1HAR1V0, PDHC1H1HAR1V0/V1), the meaning of the dosing pump alarm is not confirmed: the device gives an ON/OFF label that may mean "the pump runs" rather than "alarm". Check it on the device before using it in a scene.
  • The "Low" / "High" values of the ORP or chlorine dosing direction are given as the device names them.
  • Read only: no command of the dosing pumps, the setpoints, the pause of the dosing nor the relays (planned later, off by default).
  • Not read yet: probe calibrations, overfeed thresholds, water flow and meter, auxiliary relays, delays.

Credits​

  • python-pooldose by lmaertin (MIT): the local API, the identification of the model and the decoding of the values are ported to JavaScript; the mapping files are taken as they are.
  • See THIRD_PARTY_NOTICES.md.

SEKO and PoolDose are trademarks of their owners; this project is not affiliated with SEKO.

Konfigurationseinstellungen​

Diese Einstellungen fragt SEKO PoolDose in seinem Konfigurationsbildschirm in Gladys ab.

EinstellungTypPflichtfeldBeschreibung
Your PoolDosesectionNeinBrings a SEKO PoolDose pool controller (and the VÁGNER POOL, BWT and KEMI DOSE models built on it) into Gladys, read through its own HTTP API on the local network, without the cloud: water temperature, pH, ORP, free chlorine, the pH, ORP and chlorine setpoints, the mode of the dosing pumps, the pause of the dosing and the alarms, each alarm also as a scene trigger. Enter the IP address of the device, save, then add it from the Discovery tab. Read only: Gladys never doses nor changes a setpoint. Ported from python-pooldose; never tested with a real device. Not affiliated with SEKO.
Address of the PoolDosestringJaIts IP address (or host name) on your network, as shown by your router. Give it a fixed address (DHCP reservation).
Port (optional)numberNein0 for the standard port (80, or 443 with HTTPS).
HTTPSbooleanNeinOnly if your device answers in HTTPS. Off by default (the PoolDose answers in HTTP).
Check the HTTPS certificatebooleanNeinWith HTTPS only. Turn it off for a self-signed certificate of the device.
Refresh interval (s)numberNeinSeconds between two reads of the device (30 to 900).
Language of the namesselectNeinUsed for the feature names of the device added from now on, the dosing modes and the alarm names of the scene triggers.

So installierst du SEKO PoolDose in Gladys​

  1. Öffne in Gladys Integrationen: SEKO PoolDose erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
  2. Klicke auf Installieren. Gladys lädt das Docker-Image (ghcr.io/lm1lc3n7/gladys-seko-pooldose:0.1.1) herunter, startet es in einer vom Kern isolierten Sandbox und erzeugt die Oberfläche der Integration (Geräte, Erkennung und Konfiguration).
  3. Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
  4. Du kannst sie auch direkt über die URL ihres Repositorys installieren: https://github.com/LM1LC3N7/gladys-seko-pooldose.

SEKO PoolDose benötigt Gladys >=5.1.0. Der Katalog in Gladys wird stündlich aktualisiert, eine neue Version ist also spätestens eine Stunde nach ihrer Veröffentlichung verfügbar.

Du nutzt Gladys noch nicht? Es ist kostenlos und Open Source: folge der Installationsanleitung, um loszulegen.

Über externe Integrationen​

SEKO PoolDose ist eine externe Integration: eine Community-Integration, die als Docker-Container verpackt und auf GitHub veröffentlicht wird. Gladys installiert sie mit einem Klick und führt sie in einer vom Kern isolierten Sandbox aus. Sie wird von LM1LC3N7 veröffentlicht und gepflegt, nicht vom Gladys-Kernteam.

Abonniere den Newsletter von Gladys Assistant

Ein paar E-Mails im Monat zu neuen Releases und Neuigkeiten aus dem Projekt. Verschickt von Pierre-Gilles Leymarie, dem Gründer des Projekts. Jederzeit abbestellbar 🙂