Roth Touchline

Hi,
In have entered the yaml

climate:

in the configuration.yaml file and restarted my Home Assistant, but I am not able to add anything to my lovelace cards. I can see that the IP address is correct in the list in my router.

The Roth control is set to be master (the light is on).

What else do I need to do to have this integration working?

Best regards Jens

@pilehave I hope that it is ok to address You directly, but could You help me on this one? I am failing to see how I should add the Roth Touchline integration to HA as I can’t find it when searching in HA. It there something else i need to do?
Best regards Jens

Hi Jens
Where and how do you search for the devices in HA?
Your configuration is ok. Are the devices visible in the Touchline app on your phone?
Then they should be visible in Settings → Entities as “climate.xxx”:

Hi @pilehave
Sorry for me piggybacking on this thread. Is there any chance this can work for the new Roth Touchline SL?

I have tried to set it up as the regular touchline, but without any luck. I will of course be more than happy to help with the error-log, settings etc. if needed.

Hi @vheped
I doubt it, as the python library that this integration is based upon, uses the built-in webserver in the Touchline unit. Unless the software on the Toucline is the same version (or exposes the same webserver/service), it won’t work.

A place to start would be the original python library:

The actual code is pretty simple, it calls CGI-bin on the embedded webserver and either returns values/parameters or sets values/parameters.
If the new Touchline SL is anything like the old Touchline, it should be possible to do something similar.

The python library that is used in Home Assistant, is (I believe) based on work done here:

This original code could only get values, not set them.

A place to start would be to call the IP-adress on the Touchline unit with something like http://'xxx.xxx.xxx/cgi-bin/ILRReadValues.cgi

Some headers would probably be needed to be set, and I don’t know if the new unit is proteced by login, certificate etc.

In other words; works is to be done, and I don’t have the unit myself to do it.

1 Like

Thanks a lot for your answer @pilehave.
Unfortunately this looks pretty much out of my league.
But I’ll see what I can figure out :slight_smile:

Hi. Have you found a solution for the SL yet? I have the new model as well and would love to get it working with my home assistant.
David

Hi @MrDavidow
Unfortunately no. I have tried to reach out to Roth Denmark to hear:

  • whether they would be willing to look into the integration in home assistant (have linked to the above code from previous version)
  • going matter compatible in the future
  • supply me with data regarding new API for the SL line.

After several mails all I got was a guide to set it up with Google Home - so not any luck at all :slightly_smiling_face:

Unfortunately I do not have a lot a time at all at the moment. My next step is going to be to contact Roth Germany, hoping to get a more useable answer on just one of the questions. I think I got unlucky and was directed to someone who didnt understand the solutions I mentioned.
I will unfortunately after this, have to learn some python.

My other thought was to use the “OpenTherm” connection on the unit, but I have not looked in to how that standard works, and what might be able to draw out through that.

If you would like to try to take contact to your national Roth office, that would be nice, as the more we try to get info and inform them of HA, the better the options in the future :slight_smile:

Thank you for answering, @vheped. Of course, I will do that and report back to this thread!

A late status update. I got this reply from Roth Norway in the beginning of may: "You will eventually have the opportunity to be given an API to the Touchline SL system, but we are working on a API contract that must be in place before we can start doing this. With the API, you will be able to create your own coding so that it can be integrated into SmartHu’s system.

This should be ready before summer"

1 Like

I just went to their website and you can now access the api documentaion from: https://api-documentation.roth-touchlinesl.com/

1 Like

I have both old controlbox and a new system.
The old system seems to be down and nothing seems to work for the new one.
There is a RS232 port on the new controller, anyone with a protocol for it so we might be able to control everything with a ESPhome?

I got the old controller to work now with HA, Thanks @pilehave !

The new Roth controller can be accessed threw API. I do have the API documentation but my knowledge is limited to nothing when it comes to coding:
https://api-documentation.roth-touchlinesl.com/
Ill share it if someone whats it and can not access the link.

If anyone is still interested or stumbles upon this in the future, I have gotten my Roth Touchline SL up and working through the API and NodeRed. There is probably a more efficient way to do this. I am very open for improvements, so let me know :slight_smile:

I have the following sensors from Roth from each room:

And some helpers from HA, I can control the temperature and see the zone status/mode:

I can also see status of the pump and the potential free contact. If there are actuators attached to a zone, these are visible as well. I have chosen only to extract battery and signal from these, but I believe I saw on/off as well.

In the end I can make a climate template to make easy control:

First step is to have NodeRed installed. I won’t go into any details with this, as there are plenty of guides for this.

1: So, the first thing inside NodeRed, is to get a token. This is a one-time thing, as the token has not expired for mee yet after a couple of weeks.

My function node:
image

And my http request node:

In the debug you will then get a token and user_id you can use in the rest of the flow.

2: You need to get a hold of your module number (also described as “udid” when you get the response back). Use the http request node again. This time you will use the endpoint /users/{user_id}/modules. You also need to set authentication to “bearer”. Here you can then insert your token.

3: With you token + user_id + module_id (udid), you can now start to make the flow. This took me quite some time to get arranged nicely with its own devices. All data from your unit, you will get from the endpoint /users/{user_id}/modules/{module_udid}. Here is a view of mine, where I every 5 minutes get an update on my sensors. I am using the NodeRed-HA-sensors+binary sensors+HA-helpers, to get the information nicely into HA.

Notice how I have put a json node in after the http-request. This is to “Convert between JSON String & Object”.

In the function node after the json I am making small calculations, since all temperatures are mentioned in factor 10. So if the measured temperature is 23,5 degrees, Roth sends to HA as 235.

All the rooms are mentioned in the response under payload → zones → elements.

I have also a setup for the helpers inside HA when they are changed, the endpoint /users/{user_id}/modules/{module_udid}/zones helps me with that. The function node just before the “post” http request, I make sure that the payload is correct according to the API:

I only use the constant temperature and change in NodeRed/HA depending on time of day/year/presence etc. There is also the option to change the scheduled heating through the API, but I haven’t tried that.

4: To get the climate control inside of HA, I am using the HACS: GitHub - jcwillox/hass-template-climate: ❄️Templatable Climate Device for Home Assistant, Supports Running Actions On Service Calls. (thanks jcwillox). After install of this I made some config in configuration.yaml:

climate:
  - platform: climate_template
    name: Roth Entre Heating
    modes:
      - "auto"
    min_temp: 17
    max_temp: 25
    current_temperature_template: "{{ states('sensor.roth_entre_temperature') }}"
    target_temperature_template: "{{states ('input_number.roth_entre_set_constant_temperature') }}"
    current_humidity_template: "{{ states('sensor.roth_entre_humidity') }}"
    temp_step: 0.1
    set_temperature:
      - service: input_number.set_value
        target: 
          entity_id: input_number.roth_entre_set_constant_temperature
        data:
          value: "{{ temperature }}"

I know that I am not the best to write this guide, so feel very free to ask any questions, and I will try to answer them as fast as possible – if I can :slight_smile:

1 Like

Is there an easy way - perhaps using a variant of your method - to just get the temperature readings from every sensor (thermostat)?

I would love to know the temperature of each room in my house, and while I could mount a little Aqara temp.sensor, it seems silly when I already have a device that measures the temp in each room.

If you are just looking for the temp-readings you can just focus on the API part and x number of readouts. For lets say 5-10 rooms I would say it should only take you 15-30 min.
I do not know of another way to get the data out, other than API in NodeRed. You definately need the API one way or the other. I have used NodeRed for a long time, so that was the obvious entry for me.

Edit:
@ploughansen I jusy stumbled over this RESTful - Home Assistant
Please let me know if you got this working for you in yaml instead of nodered.

I have not.

If you are up for it, please hold my hand and guide me through this. I am not that experienced with either yaml, or api’s.

But I would very much like to keep away from Nodered - simply because I think that would be too big of a step for me to take.

Also, do you know if the API can give me battery state for each sensor (%)?

@ploughansen I am not able to guide you through the yaml-option, as I have not tried it. I strongly recommend you to take a look at NodeRed. It is an easy way to go, if you are not that familiar with yaml/coding. All it takes is some logik thinking.
You can see in my earlier post what sensor I have extracted from the API (battery included).

Dear @vheped,

First of all, thank you for the thorough guide. It’s much appreciated. It appears that the Roth Touchline SL could be the “promised land” I’ve been looking for for years, i.e. a control-unit for my underfloor heating system for which I can use the temperature sensors of my choice through Home Assistant.

This may be a question with an obvious answer, but I have to pose it anyway: Does the Roth Touchline SL control-unit have network-connectivity out-of-the-box (and thus the ability to work with Home Assistant) or does it require the WiFi-module to be installed as well? I am hoping that the control-unit has an Ethernet-port, but am not getting my hopes up.

Thank you in advance.

Hey @admbarry,

I was looking for a heating system just around the time when the Touchline SL series was released. The version I have is the 1st generation with the blue display. This unit does not have an ethernet option. I had to buy the Wi-Fi module, even though I have a network switch less than 1m away.

I looked a little bit at the new generation when I had to buy an expansion module. To my understanding, the 2nd generation of Touchline SL (gray display) does not have ethernet either. However, it does have the option to hardwire the master module to the expansion module through BUS. They have also added the option for MODBUS control on the master module. I have no experience with MODBUS, but the documentation from Roth looks acceptable, and you should be able to do the same things I have done, but locally. So, if I were to implement the new generation, I would ditch the Wi-Fi module and run it locally to HA through MODBUS. The only thing I see the Wi-Fi module being useful for is updates, time sync, and initial setup. I have not used the Roth app a single time since I got it integrated into HA.

Be aware that the 1st and 2nd generation modules and Wi-Fi modules are not compatible with each other.