Roth touchline integration state

I have the Roth Touchline integration installation and it seems to work but the state is always “heat” even that temperature is above set, and that the Touchline controller is in holyday mode (can the controller mode be read?)

also clicking on the flame icon throw an error:
failed to call service climate/set_hvac_mode

any clue? @pilehave?


anyone have a clue or is it something in general with hvac?

the error from the log is:
Source: components/climate/
Integration: Home Assistant WebSocket API
Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/components/websocket_api/”, line 130, in handle_call_service
File “/usr/src/homeassistant/homeassistant/”, line 1247, in async_call
File “/usr/src/homeassistant/homeassistant/”, line 1282, in _execute_service
await handler.func(service_call)
File “/usr/src/homeassistant/homeassistant/helpers/”, line 213, in handle_service
self._platforms.values(), func, call, required_features
File “/usr/src/homeassistant/homeassistant/helpers/”, line 453, in entity_service_call
future.result() # pop exception if have
File “/usr/src/homeassistant/homeassistant/helpers/”, line 596, in async_request_call
await coro
File “/usr/src/homeassistant/homeassistant/helpers/”, line 484, in _handle_entity_call
await result
File “/usr/src/homeassistant/homeassistant/components/climate/”, line 422, in async_set_hvac_mode
await self.hass.async_add_executor_job(self.set_hvac_mode, hvac_mode)
File “/usr/local/lib/python3.7/concurrent/futures/”, line 57, in run
result = self.fn(*self.args, **self.kwargs)
File “/usr/src/homeassistant/homeassistant/components/climate/”, line 418, in set_hvac_mode
raise NotImplementedError()

It loks like an issue with Home Assistant itself, as Roth Touchline only has one HVAC mode; heat. So, there is obviously no set_hvac_mode supported.

set_hvad_mode is mentioned here:

I did update the Roth Touchline service so it supports the different modes, but I gave up on the pull request here: beacuse of all the comments (doing what he wrote, renders Roth Touchline pretty much useless).

I run Home Assistant 0.106.2 with my own version of Roth Touchline and it works just fine:

Thats a shame it is so hard to get PR through as
Actually the touchline is also able to cool, but haven’t heard about anyone doing that. But at least it can be Off(holyday mode)
It would be nice if the HVAC_action was CURRENT_HVAC_HEAT in case the set temperature was above actual temperature, and CURRENT_HVAC_IDLE if set temperatur was reached.

I decided to fix the issues from the previous PR and make a new one:

I have zipped the updated file to for anyone to try out. Please make a backup of the existing file.

I don’t see a way of getting the controller to report back, if it is heating (valve opened) or idling (valve closed). It’s just not in any of the attributes reported back from the system.

Thanks for new PR
No the Touchline don’t provide a state of the valves. But maybe the integration can calculate it based on set and target temp. Like mentioned here: Touchline
I also have some thermostats with IR temp sensor and the value is not exposed in controller. Thats a bommer.

Can you have a look at the review comments in the PR, so it can get merged?


Did you ever get this integration working right ?

I have just started using HA and i have a Roth Touchline plus, but when i try to add it to automation.yaml it does not show up, and i get errors in the log.

Maybe this integration has been deprecated, and is not working any more ?

I added these lines to the configuration.yaml

  - platform: touchline

When i restarted HA, it did not work and i get these lines in the error log.

2022-03-05 22:10:58 ERROR (MainThread) [homeassistant.components.climate] touchline: Error on device update!
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/", line 431, in _async_add_entity
    await entity.async_device_update(warning=False)
  File "/usr/src/homeassistant/homeassistant/helpers/", line 719, in async_device_update
    await task
  File "/usr/local/lib/python3.9/concurrent/futures/", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/src/homeassistant/homeassistant/components/touchline/", line 84, in update
  File "/usr/local/lib/python3.9/site-packages/pytouchline/", line 60, in update
    response = self._request_and_receive_xml(request)
  File "/usr/local/lib/python3.9/site-packages/pytouchline/", line 128, in _request_and_receive_xml
    return xml(content)
  File "/usr/local/lib/python3.9/xml/etree/", line 1347, in XML
xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 1, column 190

Oh and just to add, i am running the latest 2018 firmware in the Roth Touchline plus controller

It works on my machine :slight_smile:
This error is usually because HA is unable to reach the controller. Do you have it on different vlans?
Note: I have the old Touchline controller. don’t know if it works with Touchline plus (whatever that is)


I have to 2011-2017 controller, i think it is called Roth touchline, maybe it is only the app, that is called touchline plus.

As said, i have the 2011-2017 controller.

I have no VLAN, everything is connected more or less directly.

The HA controller is connected to a 24 port ubiquiti switch, and the Touchline controller is connected to a 8 port Ubiquiti switch that is linked to the 24 port switch.

From the terminal on HA, i can ping and i get a ping reply, and i know that this is the Roth controller, because it is plugged into port 6 on the 8 port switch, and when i click on it in the unifi controller, it says that it is

When i browse to in a browser i get “Java Applet not shown by your browser. Java is either disabled or not present.” so it is responding, and the app also works fine.

Theoretically i could move the HA to a port in the 8 port switch to rule out that something is blocked between the 2 switches, but i have no problem with other equipment that runs on the 2 switches.

I checked the HA controller’s IPv4 settings, and it is set to “” so it’s not a subnet problem as far as i can see, and if it were, a ping should not be succesful, from memory.

Ever got it to work ?
I get the same error massaage, but i can see that every info i get on the is with the old system, i have the new touchline SL.

Yes it has been working flawlessly more or less since then. Sadly i can not remember what i did to make it work, or if it just started working by itself.

Has been pretty reliable as well.

Do you know for a fact the new SL version is also supported ?