Easy way of setting temperature setpoint for TS0601 / SEA801 thermostats with ZHA in automations

I was looking for a way to control the temperature setpoint of these cheapish TS0601 / SEA801 zigbee thermostats. Here is what I’ve got so far:

Thermostat:
SEA801-Zigbee
Saswell SEA801-Z01 Zigbee Thermostat

On my Home Assistant / Lovelace I wanted some way to control all thermostats with one slider:
Set-Temperature

For this I created a Helper via “Settings” → “Devices and Services” → (at the top) “Helpers”:
Select “Create Helper” → Number and add details to your liking.
For me it does look something like that:

To add the slider to the dashboard I used the following YAML code (as a card):

type: entities
entities:
  - input_number.set_temperature

So now I got a variable where I can change the temperature setpoint value quite easily.

Next I needed a way to write this value to all my thermostats.
I did previously write a couple of individual automations that turned on the heating according to presence of individuals at home as well as time and to some events (heating on after a window has been closed). But I wanted my automations to use the set target temperatures as set with the slider.
Instead of only being able to turn the heating on and off, now I was able to change the setpoint with the following action:

alias: set_Temperature_at_Thermostat_Bathroom_Towelheater
sequence:
  - data:
      ieee: YOUR DEVICE IEEE ADDRESS (e.g.something like 5c:02:72:ff:ab:cd:ef:01)
      endpoint_id: 1
      cluster_id: 513
      attribute: 18
      cluster_type: in
      manufacturer: "4098"
      value: "{{ int(states('input_number.soll_temperatur')) * 100 }}"
    action: zha.set_zigbee_cluster_attribute

I added this as an action in my automation, by selecting “add action” → “…Other actions” → “Perform action (Previously known as call service)” and pasting this code in the YAML code edit mode.

For more information about how this works and how I go to that stage, see: Changing SEA801 Thermostat setpoint - attr_write fails where GUI works fine · Issue #275 · mdeweerd/zha-toolkit · GitHub (thanks mdeweerd)

So now I have the following:

  • one automation setting all thermostat setpoints to a lower setpoint for the night (17°C, not valiable (yet))
  • one automation setting the thermostat setpoints (the new variable one) in the morning, according to presence at home
  • upon window opening turning the heating off and upon closing the windows turning the heating on again.

This reduces energy :herb: / cost :moneybag: quite a bit while still keeping comfort nicely up. And if we are away for a weekend or so we can simply reduce the setpoint slider, saving energy / cost for that time, and reset the setpoint before coming back home so all is nice and warm when we arrive.

I know there are more advanced heating / cooling projects out there that can do the same (at least when using the action above), but I wanted something that was easy and quick to use and adapt.

What do you think? What are your challenges and requirements?
Happy heating! :fire: