# Violet + BADU Blue — Pool control for Homey

**URL:** <https://community.homey.app/t/violet-badu-blue-pool-control-for-homey/157109>\
**Category:** Apps\
**Tags:** homey-pro\
**Created:** [July 10, 2026, 10:16pm UTC](https://community.homey.app/t/violet-badu-blue-pool-control-for-homey/157109 "2026-07-10T22:16:41Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Torsten\_Sturm](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/torsten_sturm/32/77900_2.png) [@Torsten\_Sturm](https://community.homey.app/u/Torsten_Sturm)\
**Post date:** [July 10, 2026, 10:16pm UTC](https://community.homey.app/t/violet-badu-blue-pool-control-for-homey/157109/1 "2026-07-10T22:16:41Z")

</div>

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):**

> **[Violet Pool Control | Homey](https://homey.app/en-us/app/de.neunbft.violet/Violet-Pool-Control/)**
>
> Protects your pool's water balance — before problems start.

* * *

### 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 with `lsi`,  
`classification`, `direction` and `severity` tokens, plus an `alarm_water_balance` tile.
- 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/](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](https://blog.orendatech.com/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

1. Install the app, add the **Pool** device.
2. 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._
3. Tiles appear for your detected equipment.
4. _(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](https://github.com/tnsturm/violet-homey-app)

### 🔭 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](https://community.homey.app/t/how-i-built-a-homey-app-without-an-ide-with-claude-code-superpowersski-and-an-automated-development-loop/157110)]

Full source and README (setup details, LSI math, security notes) are on GitHub:  
👉 [GitHub - tnsturm/violet-homey-app · GitHub](https://github.com/tnsturm/violet-homey-app)

### 📦 Version

Current App Store version: **0.4.4** (Test/beta channel). Starting certification with Athom right now.

* * *

🇩🇪 German version of this announcement ([poolsteuerung.de](http://poolsteuerung.de)): [[Violet + BADU Blue in Homey Pro – neue App mit LSI Berechnung - PoolDigital Forum](https://www.poolsteuerung.de/viewtopic.php?t=2493)]

**Homey App Store:** [https://homey.app/en-us/app/de.neunbft.violet/Violet-+-BADU-Blue-Pool-Control/](https://homey.app/en-us/app/de.neunbft.violet/Violet-+-BADU-Blue-Pool-Control/)

---

<div class="post-metadata">

**Author:** ![Torsten\_Sturm](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/torsten_sturm/32/77900_2.png) [@Torsten\_Sturm](https://community.homey.app/u/Torsten_Sturm)\
**Post date:** [July 15, 2026, 11:31am UTC](https://community.homey.app/t/violet-badu-blue-pool-control-for-homey/157109/2 "2026-07-15T11:31:50Z")

</div>

**Update: Violet Pool Control 0.4.7 is now live on the Homey App Store** 🎉

Athom has certified the app — it’s now publicly available, no test-channel link needed anymore: [Violet Poolsteuerung | Homey](https://homey.app/de-de/app/de.neunbft.violet/Violet-Poolsteuerung/)

And the next update (0.6.2) is already submitted to the store: the app now reads your Violet’s configuration — new input tiles (e.g. filter pressure, flow) with your own names, units and decimals, temperature sensors with your configured names and smarter auto-selection, no more ghost tiles for features disabled in the Violet, plus a fix for canister-range values reported in hours.  
0.6.2 is currently available in test channel:  
[Violet Poolsteuerung | Homey Test](https://homey.app/de-de/app/de.neunbft.violet/Violet-Poolsteuerung/test/)

Feedback and issue reports are very welcome!

---

<div class="post-metadata">

**Author:** ![Torsten\_Sturm](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/torsten_sturm/32/77900_2.png) [@Torsten\_Sturm](https://community.homey.app/u/Torsten_Sturm)\
**Post date:** [July 21, 2026, 2:31pm UTC](https://community.homey.app/t/violet-badu-blue-pool-control-for-homey/157109/3 "2026-07-21T14:31:48Z")

</div>

# Violet + BADU Blue — Quickstart Guide

This app brings your **PoolDigital Violet** or **BADU Blue** pool controller into  
Homey over your local network — no cloud account, no PoolDigital login. Everything  
below works the same for both; BADU Blue is Speck Pumpen’s badge of the same  
PoolDigital hardware.

## Requirements

- A Homey Pro (local platform)
- Your Violet/BADU Blue controller on the same network as Homey
- Recommended: give the controller a static IP so Homey doesn’t lose it after a  
router reboot

## Setting it up

1. Install the app from the [Homey App Store](https://homey.app/de-de/app/de.neunbft.violet/Violet-Poolsteuerung/).
2. Add a **Pool** device and enter the controller’s host or IP. Try `violet.local`  
first; if that doesn’t resolve on your network, use the controller’s IP address  
instead.
3. The device shows up with tiles for whatever equipment your controller actually  
reports — no empty tiles for gear you don’t have.
4. Reading values (temperature, pH, pump state, etc.) works immediately, without  
any password.

That’s it for monitoring. Two optional features go further — both are off until  
you switch them on:

## Optional: the water-balance safety net

Enable **Compute LSI** in the device settings and enter your calcium hardness,  
total alkalinity and cyanuric acid (from your test kit or PoolLab). The app then  
continuously works out whether your water is **corrosive** , **balanced** or  
**scaling** , using live pH and temperature — not just the day you last tested.

Why it matters: corrosive water attacks copper and iron parts (especially the  
heater), and scaling water deposits limescale on tiles and plumbing. You get a  
Homey alarm and a Flow trigger the moment the balance drifts out of range, so you  
can act before either type of damage sets in.

## Optional: controlling the pool from Homey

Enable **Control (write)** in the device settings to command the pump, lights, DMX  
scenes and PV-surplus mode from Homey tiles and Flow. This needs a  
username/password for the controller — use a dedicated, least-privilege account,  
since the Violet’s local API is plain HTTP (no encryption) on your LAN. Reading  
values never needs a password, only writing commands does.

## Showing/hiding equipment tiles

Every equipment group (heater, solar, cover, backwash, water refill, overflow  
tank, dosing, …) has an **Auto / Always show / Hide** setting. Auto — the  
default — shows a tile only when your controller actually reports that hardware,  
so your device view stays focused on what you actually have installed.

## Flow automation

Everything the app reads or does is available in Flow: triggers for LSI warnings,  
dosing problems, backwash faults and overflow-tank faults; actions to set the  
pump/light/DMX/PV-surplus mode and to update your water-chemistry values. Alarms  
also show up automatically in the device’s alarm tiles.

## Getting alarm push notifications from the Violet

The Violet can push its own alarms straight to Homey (separate from the app’s  
built-in LSI/dosing alarms above), firing an **“An alarm was received”** Flow  
trigger.

To set it up:

1. In the Violet’s own notification settings, set the receiver to your Homey’s IP  
address, using the **Alarm listener port** shown in the device settings  
(default `22222`).
2. The Violet’s normal web interface can’t change _its own_ receiving port — that  
needs an undocumented page. Open  
`http://<violet-ip>/modifyParameter.htm?NOTIFY_http_baseport` in a browser,  
enter the same port number there, and save. (The device settings screen in  
Homey also shows this as a hint right next to the port field.)

Note: this channel has no encryption or authentication on the Violet’s side, so  
keep it LAN-only — never forward that port to the internet. It only ever feeds  
Homey a notification; it can’t be used to control the pool.

## Troubleshooting / FAQ

- **`violet.local` doesn’t resolve** — the Violet doesn’t advertise itself via  
mDNS on every network. Use its IP address instead (and consider giving it a  
static one).
- **Some tiles are missing** — that’s expected if your controller doesn’t report  
that equipment; check the feature-group settings above if you expected to see  
one.
- **pH/ORP/chlorine show `-` right after startup** — the app only trusts those  
readings once the pump has circulated water for a bit (configurable “pump  
warm-up” setting), since a stagnant sensor isn’t representative.
- **BADU Blue vs. Violet** — identical hardware, identical setup; everything in  
this guide applies to both.
- Found a bug or have a feature idea? Reply in this topic.
