Setup Horstmann SRT321 (HRT4-ZW) thermostat and ASR-ZW boilerswitch

Connect thermostat and boilerswitch and add to Home Assistant

• Aeotec Z-Stick Gen5
• Windows application Zensys Tool (
• Raspberry Pi
• Home Assisant
• Horstmann SRT321 thermostat (also known as HRT4-ZW)
• Horstmann ASR-ZW boilerswitch

I used Zensys tool because I had to remove failed thermostat nodes. You can also use the normal include function from the Aeotec Z-Stick Gen5 (press button till slow flashes blue light).
The advantage of the Zensys tool is that you can see the nodes appear.

A. Connect thermostat and boilerswitch to eachother
• ASR-ZW disconnected from grid
• SRT321 dilswitch 1 to on position
◦ When L shows turn to P and press the wheel twice. Must show PP
◦ Proceed with manual below
• SRT321 turn wheel to letter I
• SRT321 press wheel, I flashes
• Power up ASR-ZW
• ASR-ZW press network button till red led flashes
• SRT321 dilswith to off positio.
• Test the connection between SRT321 and ASR-ZW by turning the wheel to try to switch the boilerswitch to on and off
• When success proceed

B. Add SRT321 to Aeotec Z-Stick Gen 5
• SRT321 dilswitch 1 to on position
• SRT321 turn wheel to L
• On Zensys tool click Add Node (second icon from left in Node panel) or use include function from Aeotec Z-stick Gen5
• SRT321 press wheel, L flashes
• SRT321 should be added in Zensys Node panel
• SRT321 dilswitch 1 to off position

C. Add ASR-ZW to Aeotec Z-Stick Gen5
• On Zensys tool click Add Node (second icon from left in Node panel) or use include function from Aeotec Z-stick Gen5
• ASR-ZW press network button
• ASR-ZW should be added in Zensys Node panel

D. Add SRT3231 to Home Assistant
• Connect Aeotec Z-Stick Gen5 to Home Assistant computer
• Go to Settings / Z-wave
• Check if SRT321 and ASR-ZW are in node list
• if not:
◦ SRT321 dilswitch 1 to on position
◦ Turn wheel to L
◦ Click Add node in Home Assistant settings
◦ Press wheel, shows LP
◦ SRT321 to off position
◦ Click Add node in Home Assistant settings
◦ ASR-ZW press network switch
◦ Check if SRT321 and ASR-ZW are in node list

E. Make association SRT321 with ASR-ZW
• In Settings / Z-wave choose node SRT321
• Click on Node Group Associations
• Choose Binary Switch Set
• Connect to ASR-ZW

You can now edit your configuration.yaml, climate.yaml and automations.yaml

heya - I just wanted to add that I have just “fiddled” with this for a while and even found this PDF which describes the functions in the controller: (
My confusion came when the thermostat would no longer control the switch after it joined the HA zwave connection… I can only assume that the HA controlled network means that the switch is on the old controller-defined network, while the controller + HA are on their own network… But also, when the controller + switch were on the HA zwave network, they still didn’t talk to each other.

I would just like to add in a slight modification to the steps above to get the linking working 100%.
I’m working from a fully blank z-wave setup… This should work from an existing zwave setup too - but just incase, I’m presuming we’re going from a fully blank setup, and also I’m using the Aeotec zwave dongle (EU edition).

  1. Link the Thermostat / Controller (HRT4-ZW) to the HA (the method above is correct - you select “L” and it blinks, the “add node” then has HA detect it and set it up.
    • Check the node is added by looking at the logs + also re-opening the zwave integration config to see the “node” is added to the list.
  2. Link the switch (ASR-ZW) to HA (it should currently be blinking the network light)… Select “add node” in HA, then press the network button (for 3-5 seconds)… That gets the switch to join the current network.
    • check using the same methods above.
  3. “Associate” the controller and the switch… In “installation” mode (pin 1 of the DIPs on the controller), rotate until the “A” shows up… Now press the wheel and it’ll blink… Now press + hold (for 3-5 seconds) the network switch and that should send either a learn or a node information packet through the network… the “A” will change to “AP” (for ‘passed’ state’) and the controller now works in both HA and if your HA ever goes down or whatever, the thermostat will still work!

So, no external tools required, no mucking about, it should just be 3 really easy steps.

EDIT: I changed the HRT4-ZW (SRT321) part in step #1 from “I” to “L”, as the I didn’t work for me when adding the node straight into zwaveJS2mqtt GUI.
Adding is not “secure”, and if you add first in the GUI, then perform the action on the device, it works much more smoothly.


1 Like


I followed the instructions by @old486whizz and have got both devices installed and showing in lovlace. However when I make changes to the setpoint in lovelace it doesn’t update the thermostat. Changes made on the thermostat do update loveleace though. Has anyone had any luck getting these working?

Have you set up the respond time in z-wave settings for the srt321. Mine is set to 300 sec. The SRT321 and ASR-ZW are connected and after updating (and waiting 300 sec) the value is updated.

When I try and set it to anything less than 3000 it doesn’t seem to actually set this and 3000 seems too long to be usable

@fbockstael @kalmatthew @old486whizz
Arrived here through HA forum search .
I’m in the UK and thinking of buying these. Looks easy setup from your posts above. Any issue like @fbockstael where the update from lovelace to the stat isn’t happening - was this fixed @fbockstael and how?

Thanks in advance guys.

I got it working in the end, but if I’m honest I’d look for a thermostat that supported FLiRS if you can find one. My rad valves support this and it provides a better experience

Thanks for the update. I currently use (or did do) chinese eTRVs that do not fully close the valve. Poor compatability. So I removed them to refit standard manual TRVs. Was going to get smart thermostats in each room. eTRVs are so expensive and not ideal because the temp reported is not the ambient room temp in large spaces - because the eTRV sensing is right next to the rad.
What do you use (eTRV models) ?

I’m using the fibaro heat controller which is very pretty but has some issues with getting it working.

Sorry guys, I have been flooded with stuff.
I haven’t fully installed these yet - I have found that the HRT thermostat batteries die within 2-3 days, instead of the expected months/year.
I thought it might be due to HA (or the USB) sending out status update requests too frequently, and I only got so far attempting to extend the polling times.


Hi Wizz,

You are shure you set your interval of the SRT-321 to 300 seconds?
My battery last for at least about 8 months.

Heya fbockstael,

I set the “TPI” to 6 in the HRT4-ZW (the SRT321 seems to be the same thing, although I cannot find ‘SRT321’ anywhere on the device or the box/documents).
I did try changing it to 12, but that had no effect on battery life.
There doesn’t appear to be any setting possible in the installation menu which would change any polling/broadcast frequency - unless I’m missing something?

I decided to switch from a VM to a Raspberry Pi, which is also meaning I have to switch Z-wave sticks, and also using zwave2mqtt plugin…
So with all the change, I’m hoping the longevity of the thermostat batteries goes up from a few days to more than a few months.

Will keep people updated.

(With regards to other issues - since the batteries lasted 3 days it was not viable for me to really use, so I didn’t use it yet - sorry).


So, updating the thermostat through lovelace takes a specific time to update - the device either “wakes up” every so often (which I’m not sure about) - or HA (zwaveJS) wakes up and sends info to the device… I think the latter.
Anyway, when that happens the thermostat gets the updated info… Set my interval to 600 (since 10 minutes seems fine to me).

I have noticed however that the switch / “receiver” doesn’t update in zwaveJS when the thermostat toggles it between on/off.
I have to manually go into the zwaveJS GUI and hit “refresh” on the specific property of the node… And there’s no polling interval… Which is just strange, especially since the device can be operated manually (hitting the button) or remotely (thermostat), and it’s plugged in… So polling should be more frequent not ignored…

EDIT: fixed with an automation (link in forum found to here: )

alias: TIMER-zwave
description: ''
  - platform: time_pattern
    minutes: /2
condition: []
  - service: zwave_js.refresh_value
      entity_id: switch.thermostat_receiver
mode: single
1 Like

The Batteries have lasted 10 days now - about 5 days longer than they were lasting before hand.
Whether this is because the old Z-wave implementation kept waking up the device, or because the receiver was off (and so the controller kept polling every 30/60 seconds) I don’t entirely know.

But I am happy with a 10-minute (600) wake-up time for the controller.
Hope any information in this thread helps others.

EDIT: my batteries are just running out in April 2022 (original message was from Aug/Sep 2021)(the z-wave is alerting at 0%).
So that’s ~7 months with the settings above (and the battery z-wave thermometer being 10-15 meters away from HASS device through multiple brick walls etc).

Thought it good information to give to people incase they need to compare to other products.



Could you please tell me where the interval delay can be configured in HA? I do not see such parameters in Zwave device configuration in HA. I was able to modify it in Jeedom but I do not see where in HA.

Thank you for your help.