A design-time KNX/ETS6 assistant exposed as an MCP server. It reads your
.knxproj, validates DPTs / naming / status pairs, generates Home Assistant YAML and
ETS-importable exports, and produces human-readable reports — without ever touching the live bus.
As of 2026 there is no off-the-shelf ETS6 ↔ AI tool. This fills exactly the design-time gap — and the architecture keeps the dangerous part impossible by design.
Zero networking/bus libraries in the dependency tree. bus_access: false — structural, not a promise.
load · analyze (naming / DPT / status / GA-intent de-noise) · generate HA YAML (colour lights + climate assembled) · generate ETS XML/CSV · report. All read-only on your project.
Classifies by DPT + multilingual name keywords. Validated on ETS 4.2 / 5.0 / 5.5 / 6 fixtures, a real signed ETS6 round-trip, and a 685-GA Zennio project (false errors there: 29 → 6).
A complete worked example ships in the repo (examples/demo-home): a synthetic 2-storey
home — living room with fireplace, kitchen, master + 2 kids bedrooms each with ensuite, guest WC, laundry,
2 corridors, staircase. Lighting (switch/dim/CCT/RGBW), underfloor heating + AC, sensors, scenes.
| # | Planted mistake | Caught? |
|---|---|---|
| 1 | Group address with no DPT (Living room CO₂) | ✅ check_dpt |
| 2 | Two GAs, same name, different DPT (Kitchen temperature) | ✅ check_dpt |
| 3 | Dimmer with on/off status but no brightness status | ⚠️ not yet — honest limit |
| 4 | Switch with no status (Guest WC) | ✅ check_missing_status |
| 5 | Group address with an empty name | ✅ check_naming |
The tool surfaced its own limitation (#3): the missing-status check asks “does this control have a status?”, not “each expected status type”. Tracked for a future release — found by this very demo.
The KNX I/O drives a 5-view Home Assistant dashboard. These are real screenshots from a live Home Assistant running the demo (simulated sensors that drift over time) — now showing the assembled colour lights (RGBW / RGB / CCT) and six floor-heating climate zones the tool generates. Below them, an interactive preview lets you click through the views.
Overview — at a glance · scenes · climate snapshot incl. floor-heating zones
Climate — 6 floor-heating zones (target · mode · valve %) & the computed “brain”
Lighting — RGBW / RGB / CCT colour lights · circadian dimmers · blinds
Energy & stats — gauges · runtime · air quality
Presence — mode machine · occupancy · schedules
↑ Interactive preview with mock data · the screenshots above are the real thing, live in Home Assistant.
On top of the KNX I/O sits a 5-layer Home Assistant control system — built on native helpers (utility_meter, history_stats, statistics, derivative, trend, threshold, schedule), 22 automations and 3 scripts.
A single template folds everything into one number:
daypart profile → weekend hold → occupancy setback → home-mode override (Away −3°, Vacation→frost 12°)
→ seasonal trim / cooling target → window interlock → clamp 12–28 °C.
.knxprojIt's read-only and never touches a bus, so testing is safe. Run it from Claude, point it at your project, and tell us what the report got right — and wrong.