Smart thermostat recommendation

I know this is not a new topic here. But it seems that the smart thermostat market has been developing faster than before in the last few months:

We are renovating our newly purchased house and I am still undecided which protocol my new thermostats should speak.

About my infrastructure:
HA @RPi4 4GB SSD,
Conbee2,
12x Shelly 2.5 (Roller Cover / Light)
8x Shelly 1 (Light)
over 20 Zigbee Bulbs / LED Panels
10 Zigbee Window Sensors
Residential house with two floors, basement and attic.
AVM Fritz WIFI Mesh 2.4 / 5 GHz
A total of 9 radiators will be equipped with new thermostats.

The Wifi is used by both IOT devices and consumer electronics (smartphone, tablet, etc.). So far I have not had any problems with it and do not expect any here.
However, I doubt whether WIFI is the right medium for the radiator thermostats because of the battery consumption.
I have tested the DECT thermostat from AVM, but the transmission time of 15 minutes is unsuitable for reacting quickly to open windows.
I am still undecided whether Zigbee thermostats or even Homematic IP is better for my purposes. I have read about the virtual Homematic CCU in Home Assistant and don’t want to rule that out for me either. So far I don’t have an 868 MHz stick on my Home Assistant.

My selection criteria would be:
Reliability of the solution
Use or problem-free coexistence with my Wifi and Zigbee meshes.
Without cloud constraints (like Tado or Homematic Cloud).
Possibility of manual operation via rotary wheel
Long battery life
Visually appealing
Price under 50 euros per thermostat.

I look forward to your advice and experiences.

I have just bought two Danfoss Ally Zigbee radiator thermostats and they work very well i think. I don’t know where you live, but in Denmark you can get the for about 50-60 Euro’s. But they are probably cheaper everywhere else.

I live in germany and the price is the same here. 59 Euro + shipping.
I know Danfoss but I was not aware that they gone smart with Zigbee. Thanks for that. I really like the rotation wheel. This is a great help to get acceptance in the family.

Did you use the Danfoss Bridge or do you connect them with a Conbee directly?

I connect them directly to my Conbee II through a deCONZ container. Be aware that the in deCONZ they show up as sensors because deCONZ does not have support for climate sensors (yet). But in HA they show up correctly. It can be a little confusing but everything works as it should.

When i first connected them, the temperature reading was a bit off, but it corrected itself after a couple of days.

I think they release it back in October or something.

Trane Zwave Thermostat

Simple
No cloud
Works well

The whole Phoscon/Conbee/deCONZ-thing is confusing enough. As long as HA is able to manage the mess, I’m fine. :slight_smile:

Did you build any automation with zigbee window sensors?

Thanks for your advise.
Would you really build up a Zwave ecosystem beside the existing Zigbee mesh?
Beside that, does Trane offer radiator thermostates at all?

Potentially yes but I offer these only if appropriate zigbee solution not found

Zwave could be pain if adding separate huge network but for 5 or less devices this would be big deal I believe if no zigbee solution was available.

Yeah it can be confusing sometimes. :smile:

No not yet, but it should be pretty simple to add. I have build a (little bit complicated) intelligent heating control in HA. It sets the temp based on if i am home, or i am sleeping or if i am a way. It also have a boost function to quickly get the temperature to my set point in my apartment. And it gives my notifications of its state when i am not home.

If you have a Zigbee network, then choose Zigbee devices and if you have a Z wave network then choose Z waze.

Z wave should in theory be more stable but is also a little bit more complicated when it comes to creating a good network.

Would you mind to share your work?

Sounds reasonable.

This would have to by heavily modified to work for you, and for me this is only the beginning of making my home automated.

My goal with it is to not have to change it manually at all. Everything has to be fully automated. :smile:

I have three modes right now

  • Home
  • Night
  • Away

I use some helper entities to make it easier to configure it through the UI.

Mode changer

The underlying automation that handles everything.
This will automatically change home mode if i change what is selected in the input_select

alias: Hvis hjemmets tilstand er?
description: ''
trigger:
  - platform: state
    entity_id: input_select.home_mode
condition: []
action:
  - service: script.turn_off
    data: {}
    entity_id: script.thermostat_boost_function
  - choose:
      - conditions:
          - condition: state
            entity_id: input_select.home_mode
            state: away
        sequence:
          - service: climate.set_temperature
            data:
              temperature: '{{ states(''input_number.away_settemp'') }}'
            entity_id: climate.thermostat_stue1
          - service: climate.set_temperature
            data:
              temperature: '{{ states(''input_number.away_settemp'') }}'
            entity_id: climate.thermostat_badevaerelse
          - service: input_number.set_value
            data:
              value: '{{ states(''input_number.away_settemp'') }}'
            entity_id: input_number.climate_settemp
      - conditions:
          - condition: state
            entity_id: input_select.home_mode
            state: night
        sequence:
          - service: climate.set_temperature
            data:
              temperature: '{{ states(''input_number.night_settemp'') }}'
            entity_id: climate.thermostat_stue1
          - service: climate.set_temperature
            data:
              temperature: '{{ states(''input_number.night_settemp'') }}'
            entity_id: climate.thermostat_badevaerelse
          - service: input_number.set_value
            data:
              value: '{{ states(''input_number.night_settemp'') }}'
            entity_id: input_number.climate_settemp
    default:
      - service: climate.set_temperature
        data:
          temperature: '{{ states(''input_number.home_settemp'') }}'
        entity_id: climate.thermostat_stue1
      - service: climate.set_temperature
        data:
          temperature: '{{ states(''input_number.home_settemp'') }}'
        entity_id: climate.thermostat_badevaerelse
      - service: input_number.set_value
        data:
          value: '{{ states(''input_number.home_settemp'') }}'
        entity_id: input_number.climate_settemp
mode: single

Day and night changer

This will automatically change the mode between home and night by using the alarm sensor from my phone and/or trigger this automation from other automations.

alias: Skift mellem dag og nat mode
description: ''
trigger:
  - platform: template
    value_template: >-
      {{ now() | as_timestamp >=
      (states('sensor.oneplus_a5000_naeste_alarm')|as_timestamp - 1800 ) }}
  - platform: numeric_state
    entity_id: sensor.oneplus_nord_sleep_confidence
    below: '100'
    for: '0:10:00'
condition: []
action:
  - choose:
      - conditions:
          - condition: state
            entity_id: person.smon
            state: home
          - condition: state
            entity_id: sun.sun
            state: below_horizon
          - condition: time
            after: '20:00'
            before: '04:00'
        sequence:
          - service: input_select.select_option
            data:
              option: night
            entity_id: input_select.home_mode
      - conditions:
          - condition: state
            entity_id: input_select.home_mode
            state: night
        sequence:
          - service: input_select.select_option
            data:
              option: home
            entity_id: input_select.home_mode
          - service: script.thermostat_boost_function
            data: {}
    default:
      - service: input_select.select_option
        data:
          option: home
        entity_id: input_select.home_mode
mode: single

Boost function

Boost script with disable function

alias: Boost temperaturen
sequence:
  - condition: state
    entity_id: input_boolean.deaktiver_boost_mode
    state: 'off'
  - service: climate.set_temperature
    data:
      temperature: '{{ states(''input_number.climate_settemp'') | float + 2 }}'
    entity_id: climate.thermostat_badevaerelse
  - service: climate.set_temperature
    data:
      temperature: '{{ states(''input_number.climate_settemp'') | float + 2 }}'
    entity_id: climate.thermostat_stue1
  - delay:
      hours: 0
      minutes: null
      seconds: 0
      milliseconds: 0
  - service: climate.set_temperature
    data:
      temperature: '{{ states(''input_number.climate_settemp'') }}'
    entity_id: climate.thermostat_badevaerelse
  - service: climate.set_temperature
    data:
      temperature: '{{ states(''input_number.climate_settemp'') }}'
    entity_id: climate.thermostat_stue1
mode: single

Thanks for sharing. Doesn’t look overcomplicated.
Nice idea to take the “sleep_confidence” as condition. I guess that’s a sensor from your mobile as well.
Let’s see what I will take into account for my trigger and conditions. Motion, used devices, usual routines, maybe one could integrate a neural network to learn from our habbits.

But first, I have to get the smart thermostates. Sadly, Danfoss is the only established radiator manufactorer that offers Zigbee devices. And as usual rather expensive.