Control and monitor your PoolDigital Violet or BADU Blue pool controller straight
from Homey — live water chemistry, pump and equipment state, dosing, Flow automations, and
an optional water‑balance safety net that warns you before your water turns corrosive. All
local, no cloud account.
This is a Test (beta) release. It’s on the Homey App Store’s test channel and
runs well on my own pool, but it hasn’t been through full store certification yet — expect
the odd rough edge, and please report anything that looks off. That’s exactly why I’m
posting here.
Install (Homey App Store — Test channel):
What is this?
A local Homey Pro app for the Violet pool controller by PoolDigital (sold as BADU
Blue by Speck Pumpen — same hardware). It talks to the controller’s on‑device API over
your LAN, so there’s no PoolDigital cloud login involved. Readings feed Insights and
Flow; an opt‑in control mode lets Homey command the equipment.
What it shows
The device adapts to your installation — tiles appear only for hardware the controller
actually reports:
Water temperature, pH, Redox/ORP, free chlorine (if a probe is present)
Filter pump (state, speed stage, runtime today)
Heater,
solar,
eco mode (with runtimes)
Cover (open/closed/moving),
light
Water refill, overflow tank state, water level
Dosing per channel — dosing now, dosed today (mL), estimated days of chemical left
Backwash running
Optional diagnostics — firmware, uptime, CPU temp, memory, last error
Plus tile alarms: water balance, dosing blocked, chemical low, backwash‑valve fault,
overflow dry‑run and overfill.
The LSI water‑balance safety net (the reason this app exists)
Most pool integrations show you pH and temperature. This one can also compute the
Langelier Saturation Index (LSI) — the industry measure of whether your water is
corrosive, scaling, or balanced — and warn you when it drifts.
Why care? Corrosive water attacks copper, heaters and heat exchangers and leaches
calcium from cement‑based finishes — permanent damage. Scaling water furs up tile,
plumbing and heater elements. Preventing copper corrosion in the heat exchanger is exactly
what pushed me to build this.
Live, not a one‑shot test. The LSI is recomputed every poll from your live pH and
water temperature, plus the slow‑changing chemistry you enter once (calcium hardness,
total alkalinity, cyanuric acid). You see the current balance and get alerted to drift.
The balanced band is deliberately asymmetric: −0.3 … +0.5 (0 ideal) — a slightly
positive value is safer, because a thin protective scale layer shields surfaces while
corrosive water does irreversible harm.- The app classifies each reading (severe corrosive → corrosive → balanced → scaling →
severe scaling) and fires an edge‑triggered LSI warning Flow card withlsi,
classification,directionandseveritytokens, plus analarm_water_balancetile. - Uses the Carrier closed‑form LSI with a pH‑dependent cyanuric‑acid correction (stabilised
pools handled correctly); accepts calcium/alkalinity in ppm, °dH or °f.
Honest caveat (DIN 19643): the LSI covers the calcium‑carbonate/CO₂ equilibrium and
metals like copper/iron and cement‑based materials — it is not a valid indicator for
stainless‑steel corrosion. That caveat is shown in‑app too.
Sources behind the band scheme and interpretation:
- ANSI/PHTA/ICC‑11 (formerly APSP‑11), Water Quality in Public Pools and Spas — https://www.phta.org/
- DIN 19643, Aufbereitung von Schwimm- und Badebeckenwasser (stainless‑steel caveat)
- W. F. Langelier (1936), original definition
- Orenda Technologies, Understanding the LSI — Understanding LSI: The Langelier Saturation Index
- Lovibond, Balanced Water (Langelier Index)
LSI is opt‑in — enable it and enter your chemistry values when you want it.
Control & Flow (opt‑in)
Off by default. Enable Control (write) and you get control tiles + Flow actions:
- Set pump mode — Auto/On/Off, duration, speed stage (tile ON auto‑reverts to Auto)
- Set light mode / Set DMX scene (1–12) / Set all lights & DMX scenes
- Set PV‑surplus mode
- Set water chemistry (feeds the LSI from a Flow)
Setup
- Install the app, add the Pool device.
- Enter the controller’s host or IP (default
violet.local). Tip: the Violet doesn’t
advertise mDNS, so using the controller’s static IP is the most reliable. - Tiles appear for your detected equipment.
- (Optional) turn on Compute LSI + enter chemistry; (optional) turn on Control.
A note on control security
Control is off by default. When enabled, writes use a controller account you provide, over
the Violet’s plain‑HTTP local API — so use a least‑privilege account on a trusted/
segmented network and rotate the write password before sharing configs. Reads need no
credentials.
Feedback / testers welcome
This is a fresh release and I’d love feedback — especially from Violet/BADU Blue owners with
different equipment combinations (solar, DMX lighting, dosing channels, overflow tanks).
Bug reports, missing readings, and Flow‑card wishes all very welcome in this thread — or as a GitHub issue: GitHub - tnsturm/violet-homey-app · GitHub
What’s next (roadmap)
This first release focuses on monitoring, the LSI safety net and basic control. Still
planned / in the works for coming versions:
Live alarm push — the controller’s own alarm/error notifications pushed straight into Homey as Flow triggers.
PoolLab / LabCOM import — auto‑import your slow‑changing chemistry values (calcium hardness, alkalinity, CYA) from the PoolLab cloud instead of typing them; feeds the LSI automatically.
Water‑balance recommendations — advisory help on getting your source/tap water into a good LSI band, which values are the real levers, including CO₂ out‑gassing when you top up with fresh water.
Dosing & setpoints — adjust target pH/ORP and dosing settings from Homey.
More sensors — filter pressure and flow readings, plus a review of the auto‑detection.
No promises on timing — feedback in this thread will help me prioritise.
How this was built (entirely IDE‑free)
One meta note that might interest this community: this whole app was built without a
traditional IDE — start to finish in Claude Code in the terminal, with GitHub. I didn’t
hand‑write the application code; my part was the domain knowledge, testing on the real
controller, and the decisions. It ran as a real engineering process (spec → plan → test‑first
→ automated security review) and, along the way, grew into its own self‑verifying agentic
development loop.
I wrote the full story up as a separate thread — how it began, how Superpowers made
disciplined IDE‑free development work, and how the loop learned to run itself:
[How I built a Homey app without an IDE — with Claude Code, SuperpowersSki, and an automated development loop - Developers - Homey Community Forum]
Full source and README (setup details, LSI math, security notes) are on GitHub:
GitHub - tnsturm/violet-homey-app · GitHub
Version
Current App Store version: 0.4.4 (Test/beta channel). Starting certification with Athom right now.
German version of this announcement (poolsteuerung.de): [Violet + BADU Blue in Homey Pro – neue App mit LSI Berechnung - PoolDigital Forum]
Homey App Store (Test): Violet + BADU Blue Pool Control | Homey