Roth Touchline SL smart home integration, free and open source

Roth Touchline SL underfloor heating: rooms, temperatures, optional setpoints and programs.
This integration shows the zones (rooms) of your Roth Touchline SL underfloor heating in Gladys, through the public Roth Touchline SL API (the cloud the Roth Touchline SL app uses), with the e-mail address and the password of your Roth account.
Never tested with a real controller nor a real account: it follows the pytouchlinesl library (the one of the Home Assistant integration), without having been tried on a real installation. Tell us on the forum whether it works for you. Not affiliated with Roth.
What it does
For each zone switched on of each controller of the account, a device "Room name (Touchline SL)" with:
- room temperature and humidity;
- setpoint (thermostat);
- heating running (idle, heating or cooling, read only);
- program (a list: constant temperature or one of the programs of the controller) and the mode read ("Program "Living"", "Constant temperature", "Temporary setpoint"…);
- zone status (OK, sensor damaged, no communication…);
- window open (when window sensors are paired), battery of the room thermostat.
Zones switched off in the controller are not offered.
Setup
- Install the integration from the Gladys store.
- Enter the e-mail address and the password of your Roth Touchline SL account, then save. The password is kept by Gladys in its database, never shown again, sent only to Roth (roth-touchlinesl.com, over https).
- Open the Discovery tab and add the zones you want.
The Test the connection button reads Roth once and shows its state.
Commands (off by default)
By default Gladys only reads. Two separate options:
- Allow the setpoint commands: the dashboard, the scenes and the voice assistants can change the setpoint of a zone. The zone then goes to a constant temperature (it leaves its program, as in the Roth app).
- Allow the program commands: the "Program" list can put a zone on one of the programs of the controller, or on a constant temperature (with the setpoint it has).
Safety bounds:
- a setpoint goes from 5 °C to the setpoint ceiling, 24 °C by default, adjustable from 16 to 30 °C, never more than 30 °C;
- a program is chosen only when all its temperatures stay within these bounds (else the command is refused);
- the ceiling is checked again right before sending: when it was lowered during the command, nothing leaves;
- a program not read well (a half-empty interval, a zone whose mode cannot be read) is never sent back;
- a zone that cools, is switched off or is unknown is never commanded;
- a zone on its own program or a temporary setpoint can be put on a program from the list (the list then shows the last program read, the mode read tells the truth);
- no command goes through a switch: a "turn everything off" of a voice assistant never reaches the heating. The Roth API has no command to turn the heating off.
Each command reads the zone again right before acting and decides on that read; it leaves within 3.5 s or is refused with nothing sent. When Roth does not answer in time after sending, Gladys shows "sent, without confirmation" and reads the zone again 5 s and 20 s later. One command at a time. To choose a program, Roth asks for the whole program to be sent back: the integration sends it back as it just read it, changing nothing in it.
Limits and safety
- Read every 60 s (from 30 s to 10 min).
- Credentials refused: a stop kept in
/data, next tries after 15 min, 1 h, 6 h then every 24 h, never in a loop; saving other credentials or pressing "Test the connection" tries again. - Roth token refused: one new sign-in only, never two sign-ins within a minute (even after a restart); a token refused right after a sign-in, or three renewals without any successful read, give the stop above.
- Roth busy (HTTP 429) or failing (5xx): a pause of 1 min to 6 h, kept in
/data, for the reads and the commands alike. /datanever holds the e-mail address, the password nor the token.- A command never signs in to Roth itself: when the token was just refused, it answers "try again in a minute".
Credits
The Roth API and the shape of its answers come from
pytouchlinesl (jnsgruk,
Apache-2.0), the library of the Home Assistant integration. See
THIRD_PARTY_NOTICES.md.
Configuration settings
These are the settings Roth Touchline SL asks for in its configuration screen in Gladys.
| Setting | Type | Required | Description |
|---|---|---|---|
| Your Roth Touchline SL account | section | No | Shows each zone (room) of your Roth Touchline SL underfloor heating in Gladys, through the public Roth Touchline SL API (the cloud of the Roth app): temperature, humidity, setpoint, heating running, program, battery of the room sensor. Enter the e-mail address and the password of your Roth Touchline SL account, save, then add the zones from the Discovery tab. Never tested with a real controller nor a real account. Not affiliated with Roth. |
| E-mail address of the Roth account | string | Yes | |
| Password of the Roth account | secret | Yes | Kept by Gladys in its database, never shown again, sent only to Roth (roth-touchlinesl.com, over https). |
| Commands | section | No | By default Gladys only reads. Each kind of command has its own option. Once allowed, the dashboard, the scenes and the voice assistants can change the setpoint of a zone (from 5 °C to the ceiling below) or put a zone on one of the programs of the controller (only a program whose temperatures all stay within the same bounds). A zone in cooling mode is never commanded. |
| Allow the setpoint commands | boolean | No | Off by default. Off: every setpoint command is refused. A setpoint puts the zone on a constant temperature (it leaves its program). |
| Allow the program commands | boolean | No | Off by default. Off: every program change is refused. |
| Setpoint ceiling (°C) | number | No | Gladys never sets a zone above this temperature, nor puts it on a program that goes above it. 24 °C by default, from 16 to 30 °C (never more than 30 °C, whatever is typed). |
| Refresh interval (s) | number | No | How often Roth is read, in seconds. |
| Language of the feature names | select | No | Used for the names of the devices and features added from now on, for the mode texts and for the command errors. |
How to install Roth Touchline SL in Gladys
- In Gladys, open Integrations: Roth Touchline SL appears in the catalog, next to the native integrations, with a community badge.
- Click Install. Gladys pulls the Docker image (
ghcr.io/lm1lc3n7/gladys-touchline-sl:0.1.1), starts it in a sandbox isolated from the core, and generates the integration's interface (devices, discovery and configuration). - Open the Configuration screen of the integration, fill in the settings, and save.
- You can also install it directly from its repository URL: https://github.com/LM1LC3N7/gladys-touchline-sl.
Roth Touchline SL requires Gladys >=5.1.0. The catalog inside Gladys refreshes every hour, so a new version becomes available at most one hour after its release.
Not running Gladys yet? It is free and open source: follow the installation guide to get started.
About external integrations
Roth Touchline SL is an external integration: a community integration packaged as a Docker container and published on GitHub, that Gladys installs in one click and runs in a sandbox isolated from its core. It is published and maintained by LM1LC3N7, not by the Gladys core team.
- Browse all integrations, native and community
- Build and publish your own external integration
- Source code on GitHub — source of this documentation