Latest and greatest thermostats? No cloud preferable. We all saw what happened with nest

Tado is great, and since 0.93 (or 0.92 if you had followed the special steps) it is possible to have them run locally through the homekit controller (NOT the Homekit component, they are different things, so you DON’T need an Apple device for this at all).

Works locally and via the cloud. Been using this since november, and they are great, easy to install and setup. Batteries last pretty long.

Here’s a DIY approach using esp8266 and mqtt. I use HA’s generic thermostat along with xiaomi temp sensors to control the zones in my house.

1 Like

Trane XR524 zwave

If considering DIY, it is great but for those in cold climate areas beware how you implement it…you don’t want your furnace to be off when you are out of town the temps are freezing and server goes down

1 Like

Exactly, it took me a few days of testing to fine tune mine until I was comfortable running it full time. Going on 2 years now. I left my existing “dumb” thermostats attached and just set them all to 60 as a fail safe. Don’t want to end up with frozen pipes!

I’ve just talked to their support and they claim that without connecting to their cloud, you can’t even do basic schedules.

Trust me they can be fully operated without a cloud connection! However if you want to use the tado app then no you can’t without an internet connection. You would also be dependent on their servers.

However if you add them to Home Assistant with the homekit controller you can use them without an internet/cloud connection and you could do all the basic scheduling through Home Assistant (the same is true for using it with Homekit itself).

You don’t need an Apple for this!!! (If you don’t know the difference between the Homekit component and the Homekit controller I will suggest looking this up as the Homekit Controller has nothing to do with Apple!).

I hope this helps, I have been using Tado for over a year now without an internet/cloud connection!

1 Like

Can you describe your full setup? The Tado V3 starter pack is on sale and it looks interesting, I just don’t want to connect to their cloud. What functionality remains when you don’t? Schedules? Zoning? Remote access?

When not using the cloud all that works is:

Turn on/off
heat until set temperature

There will be no device tracking, no open door/window support no geofencing etc. However all of this can be easily done within home assistant. So if you already have a device tracker you can use that. You could create schedules in the form of automations.

Like I said none of the functions in the tado app will work without the cloud. But seeing that you use Home Assistant you could do all with that.

If you know how to make an automation, I am sure you’ll be able to create a schedule with that.

If you still have questions do not hesitate to ask them.

I mainly care about zoning and scheduling. Is there a local API that can be tapped into for the Tado?

Can you be more specific about your setup? what you mean by the homekit controller? is that part of home assistant or something that has to be configured inside the tado app?

I don’t mind controlling the thermostat via app from the cloud, but I want to be able to schedule/automate the thermostat and/or heater thermostatic valves directly from home assistant without relying on an internet connection

Homekit controller is something within Home Assistant. It actually acts more or less like a Homekit Hub (e.g. Apple TV) would. It just makes it possible to connect Homekit compatible devices to Home Assistant. Basically what this means is, if you see products with Homekit compatibility (you can see this easily as homekit devices have a 8-digit code on their products xxx-xx-xxx) they can be added to HA.

It has nothing to do with Apple in the way of “do I need an iphone or ipad?” Because for the controller you don’t need Apple products. The controller just emulates a homekit hub.

Do not confuse it with the Homekit component which does need Apple devices. But you won’t be needing that for this!

1 Like

I have three Honeywell WiFi thermostats. I hated them at first, for all the reasons you give, and because I generally hate cloud-based stuff anyway. But I’ve come around to the idea of using both the Honeywell cloud (via the app or web page), as well as HA, to control them. You might find this works for you, too.

First, these thermostats don’t need the internet at all. You can even program the schedule right on the thermostat, although the app makes it much easier. And it’s easy to change the temperature right at the thermostat. An internet connection lets you use the app and web site, also. But even without the internet, the schedule still runs and the controls on the thermostat still work.

The HA integration brings some of that functionality to HA, too. In the case of my Honeywells, you can’t actually change the schedule from HA. But you can change the temperature or change the mode (heat/cool/off/fan.) Which is pretty much all I ever do anyway.

So I’m finding the cloud isn’t much of a hassle, and it gives me a second way to remotely access my thermostats if HA were to fail when I’m away from home. And even if both the internet connection and HA fail, the thermostats just keep following their schedule without any input.

These thermostats have been very reliable for over a year now, through a number of internet outages and power failures.

I had a Nest, it’s been decommissioned and replaced with one of these. Cheap, simple, no real interface but has a local web ui, local rest api and mqtt server over wifi. Utterly rock solid.

Mine’s wired directly to the boiler for both power and call to heat. Comes with a little thermal probe so it works as a standalone thermostat, but really wants to be hooked up to a HA installation using a Generic Thermostat to do all the zoning, temperature averaging and presence detection stuff.

2 Likes

Why not ESP32, relay and cheap sensor via Home Assistant ?
Cant go cheaper than that.
Better way is some Xiaomi BT sensor, looks better, hide rest (esp and relay).

1 Like

The developer of the Honeywell Evohome integration has started on the local integration using HGI-80. It will be very powerful and comprehensive when finished. And the thermostat itself doesn’t require cloud to work.

I just ordered one too. This one seems exactly what I need for a good price.

Can you tell my why you didn’t use the MQTT HVAC platform to control this? https://www.home-assistant.io/integrations/climate.mqtt/

The documentation also lacks information about the MQTT possibilities. Is it, for example, possible to change the heating mode from schedule to manual using MQTT? And is it possible to set the temperature on it, using MQTT?

Can you also tell me something about your configuration? Do you need automations/templates to get this working properly?

So, for the MQTT stuff, I have no idea. I’ve never bothered to set up Mosquitto or anything as nothing I have needs it. The web control panel for the relay does have MQTT settings in it, so I presume you can change temps, heating modes etc, but I haven’t actually done it.

As for the rest setup, my setup is below. Two rest sensors (relay on/off and the temp sensor value), two rest services (turn relay on/off), a switch that ties all the relay state and services together and then a climate.generic_thermostat. My setup uses a statistics sensor (flat_avg_temperature, the average of about 5-6 Zigbee temp sensors in various rooms) for the target temp of the thermostat, but you can just drop the temp sensor in there just fine. Once you have that all set up, it’s just the usual climate automation stuff (turn the heating off if no-ones home or the doors are open, set different temps for day and night, that sort of thing). There’s things like Schedy or Node Red for that.

binary_sensor:
  - platform: rest
    resource: http://192.168.0.10/control/relay.cgi
    method: GET
    name: Heating
    value_template: '{{ value_json.relay1 }}'

sensor:
  - platform: rest
    resource: http://192.168.0.10/control/thermostat.cgi?param=state
    name: Kitchen Temperature
    value_template: '{{ ( value_json.temperature | float - 2.0 ) | round(1) }}'
    device_class: temperature
    unit_of_measurement: °C

rest_command:
  relay_on:
    url: "http://192.168.0.10/control/relay.cgi?relay1=1"
  relay_off:
    url: "http://192.168.0.10/control/relay.cgi?relay1=0"

switch:
  - platform: template
    switches:
      heating:
        friendly_name: Heating
        value_template: >
          {{states.binary_sensor.heating.state}}
        turn_on:
          service: rest_command.relay_on
        turn_off:
          service: rest_command.relay_off

climate:
  - platform: generic_thermostat
    name: Thermostat
    heater: switch.heating
    target_sensor: sensor.kitchen_temperature

Edit: Ah, I’ve just reread your post. The scheduler on the relay is intended to be standalone, I personally moved all the scheduling duties over to HA with a bunch of automations. If you do that, it’s much easier to do device_tracker/door sensor type things, you just set the relay to manual mode and interact with it through a generic_thermostat.

This is what I have running for 6 months now. It’s cheap and can do everything the more expensive thermostats can do as well! Temperature changes in zones based on presence, time etc.

1 Like

Thanks a lot for taking the time to post this!

Yesterday I received the Openenergymonitor WiFi thermostat and I used your information to get it working. I also experimented with the MQTT and got that working too. So I decided to rely on that, instead of the rest commands.

With NodeRED I’m changing temps based on our presence. I also like the idea of the open doors. Do you simply turn off the thermostat when a door is open? What if a door only opens for a few seconds to let someone through?

My place has standard UK central heating, so no zoned heating or anything cool. I’ve added door sensors to the external doors and an automation that just turns the thermostat off if either of them is open. It only updates every 60 secs, so quick open/closes are unlikely to be caught. No point running the radiators full blast if it’s 5 degrees outside and the door is left open…

I’ve listed my two template sensors and the two really basic automations that do everything heating related in my set up.

automation:
  - id: heatingtempschedule
    alias: Heating Temperature Schedule
    trigger:
     - entity_id: sensor.heating_schedule_temperature
       platform: state
    condition: []
    action:
      service: climate.set_temperature
      entity_id: climate.thermostat
      data_template:
        temperature: "{{ states('sensor.heating_schedule_temperature') | float }}"

  - id: heatingmodeschedule
    alias: Heating Mode Schedule
    trigger:
     - entity_id: sensor.heating_schedule_mode
       platform: state
    condition: []
    action:
      service: climate.set_hvac_mode
      entity_id: climate.thermostat
      data_template:
        hvac_mode: "{{ states('sensor.heating_schedule_mode') }}"

sensor:
  - platform: template
    sensors:
      heating_schedule_temperature:
        entity_id: sensor.time
        value_template: >-
          {% set default_temp = states('input_number.heating_night_temperature') %}
          {% set now_timestamp = (now().second + (now().minute * 60) + (now().hour * 3600)) %}
          {% if state_attr('input_datetime.heating_morning_time', 'timestamp') <= now_timestamp < state_attr('input_datetime.heating_night_time', 'timestamp') %}
          {% set default_temp = states('input_number.heating_morning_temperature') %}
          {% endif %}
          {% if is_state('group.people', 'not_home') %}
          {% set default_temp = "6" %}
          {% endif %}
          {{ default_temp }}
        friendly_name: Heating Schedule Temperature
        unit_of_measurement: °C
        device_class: temperature

      heating_schedule_mode:
        value_template: >-
          {% set default_mode = "heat" %}
          {% if is_state('binary_sensor.back_door', 'on') %}
          {% set default_mode = "off" %}
          {% endif %}
          {% if states('sensor.outside_temperature') | float + 1 >= states('sensor.heating_schedule_temperature') | float %}
          {% set default_mode = "off" %}
          {% endif %}
          {{ default_mode }}
        friendly_name: Heating Schedule Mode

input_datetime:
  heating_morning_time:
    name: Heating Morning Time
    has_date: false
    has_time: true
  heating_night_time:
    name: Heating Night Time
    has_date: false
    has_time: true

input_number:
  heating_morning_temperature:
    name: Heating Morning Temperature
    initial: 18
    min: 0
    max: 32
    step: 0.5
  heating_night_temperature:
    name: Heating Night Temperature
    initial: 12
    min: 0
    max: 32
    step: 0.5

1 Like