Innoxel Master 3, a Swiss home-automation controller

Hi everyone

I’d like to share a custom integration I built for the Innoxel Master 3, a Swiss home-automation controller that is quite common in Swiss homes but has no official Home Assistant support. If your house runs on an Innoxel system, this integration talks directly to its local SOAP API — no cloud, no MQTT bridge, no separate gateway.

GitHub: GitHub - prusuino/ha_innoxel_master3: Home Assistant integration for the Innoxel Master 3 home automation controller (native SOAP, no cloud/gateway) · GitHub (HACS custom repository, submission to HACS default is pending)

What it does

Everything is discovered automatically from your own Innoxel configuration via SOAP getIdentity — the names and rooms you already set up in the Innoxel software are exactly what appears in Home Assistant. Nothing is hardcoded, no YAML mapping needed.

Platform What you get
Covers Motorized blinds/shutters with proper full-travel behavior (see below)
Switches Outputs and virtual switches, plus enable/disable for Innoxel time switches
Lights Dimmer modules with brightness
Climate Room climate modules: target/actual temperature, valve state
Weather station Temperature (actual + felt), wind, sun brightness east/south/west, twilight, rain
Diagnostics Master hardware health: supply/CPU/backup-battery voltages, CPU temperatures, uptime, bus states

Setup is a normal config flow (the Master 3 is even found via SSDP discovery) — enter host and credentials, done.

The interesting part: covers

Innoxel distinguishes a short button press (full travel to the end position) from a long press (jog only while held). Naively toggling the output relay from Home Assistant either leaves the relay engaged or only wiggles the blind. This integration fuzzy-matches each motor output against the corresponding virtual input channel in your Innoxel configuration and triggers autoImpulse there — the same thing that happens when you short-press a physical wall button. Result: open/close from Home Assistant behaves exactly like a wall button press, including stop-on-second-press while the cover is moving.

Installation

Via HACS → Custom repositories → add the repo URL as Integration, then install “Innoxel Master 3” and restart. Manual installation works too (copy custom_components/innoxel).

Notes

  • This is an independent, community-built integration — not affiliated with or endorsed by Innoxel.
  • Protocol knowledge was informed by the community reference project matthsc/innoxel-soap — credit to its author.
  • Tested against a real Master 3 installation (covers, switches, dimmers, weather station, room climate, diagnostics).

Feedback, issues, and pull requests are very welcome — especially from other Innoxel owners, since module configurations differ from house to house.

1 Like

Hi
Thanks for the share. Perhaps I missed it but I can’t find in your documentation where you find the login/pass to use the SOAP interface of Master 3. Is it something that can be found in Smart-Control (the programming software) and if so where ?

The username and password are not Home Assistant credentials — they are a user account on the Innoxel Master 3 itself. You create it in the master’s built-in web interface:

http:// [ip-of-your-master] :5001/maintenance/users.html

Add a user there (any name/password you like), then enter exactly those credentials in the integration’s setup dialog. Authentication uses HTTP Digest and is handled automatically — no further configuration needed.

I’ve updated the README accordingly, the setup section now explains where these credentials come from:

v1.4.0 released — experimental support for INNOXEL Motor G2 blind modules

The new Motor 4 x 230 VAC G2 / 4 x 24 VDC G2 modules (Master 3 firmware 1.5.1.0+) have a built-in position tracker, and the SOAP API exposes them as a separate module class. With v1.4.0, blinds on these modules get a cover entity with real position and slat-tilt feedback: set position, set tilt, stop — plus live readback.

Looking for testers: my own installation still runs first-generation motor modules, so this was implemented from the protocol without G2 hardware to verify against. If your installation has Motor G2 modules, I’d really appreciate feedback — especially whether the position direction is correct (I assumed 0 = fully open). Installations without G2 hardware are completely unaffected. Please report findings via GitHub issues. Thanks!

1 Like