Smart Thermostat as Control Panel

Hello everyone. First I want to thank the Home Assistant community for this fantastic project. I love it and seeing it evolve at the speed it does now is simply incredible. Nice Job!

Now to my question. I am looking for an alternative to control the heating in my apartment. Reaching for my phone and opening the Home Assistant app is not so smooth experience. Sometimes I left the phone in the other room or it is out of battery and so on. So I started looking for wall mounted thermostat to control the room temperature. The problem is that in my country having an hvac system is not common at all and usually we have split aircon units with just a remote, so I don’t have the wiring to install a thermostat. As I said I already have all the automation and interface to send IR commands to my air conditioner from my home assistant instance at home, so all I need is just to find a thermostat that I am going to use as human interface to the existing system.

I imagine it to work this way. I set the temperature from the thermostat on the wall and it sends the setting to my Home Assistant (current options for me are WiFi and Z-Wave). Then a simple automation rule sets the same temperature to the air conditioner via IR from my existing setup.

The thing is that as I said all thermostats I found are supposed to be connected to the hvac wiring which I don’t have. First of all I am not sure if it supposed to be powered by 220V and if it does, will the thermostat power on and serve my needs if I just connect it to a power supply? I am worried that Nest Thermostat which supports basically all wiring schemas will fail to recognize the wiring (as there is none) and fail to boot at all, rendering it useless for me.

I have researched the option to mount a tablet and setup HA Dashboard, but this looks a lot bulkier than just having a smart thermostat unit mounted on the wall.

Could you help me with an advice? Are my assumptions correct that any smart thermostat will fail to start if hvac wiring is not in place or can I just use it as control panel? Do you have any suggestions for alternatives - maybe some minimalistic control panel that will expose the control of my air conditioner entity from Home Assistant?

Thank you.

1 Like

Maybe a esp32 or esp8266 with dht22 and with oled or e ink display and some kind of buttons or xontrol panel to interact. Small cheap, and all you need is 5v and some diy and use some code snippets you can find.

I’m just trying things but it already works ok, thoug no user input via button yet.

1 Like

Thanks, that sounds as interesting idea indeed. I will also look for alternatives in that direction.

For now I haven’t exhausted the possibility to use a regular smart thermostat (Nest, Ecobee, etc.) as merely UI by connecting it to the power line only and skipping the HVAC wiring.
It would be really helpful if anyone have tried that or if they have such thermostat installed to try and unplug all wires except the power ones and share if the thermostat is still working/communicating with HA or does it fail to boot since it is no longer connected to HVAC.

Hi @trojaneca, I am pretty much trying to a achieve exactly the same thing as you. I just posted a similar post then found yours: Standalone climate remote / unwired thermostat

We’re looking for is a climate-specific dashboard and I see it making sense for a lot of applications. I think the easiest approach to be able to choose from many great thermostat designs could be to design a back plate for thermostats to talk with HASS through the wire protocol, and this would basically allow any old school thermostat to be smart – as long as it can work in group or get wire updates so that the thermostat “turns” its displayed target temperature, if you change it in HASS with your phone – so it may rule out purely mechanical thermostats.

I don’t think a smart thermostat would help any more than a basic one since they would all expect to control heating/cooling on the wires. But maybe, here is the Nest Thermostat API ref: https://developers.nest.com/documentation/cloud/api-thermostat#target_temperature_f

It would be worthwhile connecting a Nest to a “common wire” and see what the system and API allows, maybe it will just work or just one or two signal need to be spoofed. Worse case scenario, I don’t believe emulating a HVAC system wires would be either difficult or expensive. Looks like a worthy weekend project to me.

Here is a C-wire power supply: https://www.amazon.com/Transformer-Honeywell-Thermostat-Fyve-Global/dp/B075PN6NCV (it’s just 24v AC)

This is the wire protocol (actually super-simple):
https://xtronics.com/wiki/Thermostat_signals_and_wiring.html

G – Fan, usually a green wire
R – 24 VAC usually a red wire (Rc and Rh are discussed later)
C – 24 VAC Common
Y – Compressor, usually a yellow wire
W – Heat, usually a white wire

1 Like

Also, here is how I think it would be configured in HASS:

  • link the Nest/other physical thermostat
  • setup a generic_thermostat , use the temperature sensor in the real thermostat, and the cool switch turns on/off the AC unit, heat switch turns on/off heater
  • link the generic_thermostat to update the physical thermostat when changes are made to it
  • link the physical thermostat to updated the generic_thermostat when changes are made to it
  • turn off the thermostat action when the switch has been turned off from outside the generic_thermostat
  • expose the generic_thermostat in your dashboard/HomeKit etc.

Thus, you would be able to use a Nest type thermostat as a simple temperature sensor, display, and setter.

Sounds to me like a much more universal and upgradable solution than any of those cheap (but expensive) A/C specific controllers. An IR controller could still be used as the on/off switch though, but it’s function becomes much simpler.

You wouldn’t have access to fan speed, other than changing it directly in the A/C, or linked A/C node in HASS, but that’s just like a central HVAC system anyways.

EDIT: you don’t actually need the generic_thermostat if you have a physical thermostat. The Nest API provide the hvac_state which can be subscribed to to know if cooling, heating, or nothing should be active. Furthermore, fan_timer_timeout will tell you if the fan should be running and until when. Nothing else would be needed, other than pulling these values, and updating the heat switch & A/C control accordingly, and you benefit from the full array of Nest features. In this scenario I would simply make the off actions for heater & A/C inaccessible or otherwise make triggering them turning off the thermostat using hvac_mode = off or otherwise selecting the mode only turning off the A/C or heating, so that the thermostat is aware of any external user action.

EDIT2: Good news, all those functions are already all included in the nest thermostat module (https://github.com/home-assistant/home-assistant/blob/e014a84215e7bab47bf0adb37415fae39dd6c90c/homeassistant/components/climate/nest.py), including polling, hvac_mode and hvac_state and the fan state, so I assume that all you would have to do is plug in the common wire power supply, and configure the automations I listed in my first edit. I just ordered a Nest Thermostat E and will report. The only unkown is will the thermostat want to run if it doesn’t sense a given impedance on the contacts, but this should be an easy fix either way. This is exciting.

1 Like

UPDATE: I got everything working together. I’m using a smart outlet on the heater and directly talking to my Wi-Fi A/C with an integration that I just wrote. Both are able to be controlled by the Nest Thermostat, through home-assistant.

Everything that was needed on the Nest side is the 24VAC power supply and some dummy 24AWG wires – no resistor or any component needed, it just has a mechanical detection mechanism, see picture bellow:

This is my configuration.yaml to implement this functionality:

automation:
  - alias: 'Turn on heating'
    trigger:
      - platform: state
        entity_id: sensor.living_room_thermostat_hvac_state
        to: 'heating'
    action:
      service: switch.turn_on
      entity_id: switch.aeotec_zw096_smart_switch_6_switch
  - alias: 'Turn off hvac appliances'
    trigger:
      - platform: state
        entity_id: sensor.living_room_thermostat_hvac_state
        to: 'off'
    action:
      - service: switch.turn_off
        entity_id: switch.aeotec_zw096_smart_switch_6_switch
      - service: climate.turn_off
        entity_id: climate.friedrich_kuhl_window_ac
  - alias: 'Turn on cooling'
    trigger:
      - platform: state
        entity_id: sensor.living_room_thermostat_hvac_state
        to: 'cooling'
    action:
      service: climate.turn_on
      entity_id: climate.friedrich_kuhl_window_ac

Finally, a demo of the whole thing working together:

2 Likes

Nice! I’ve been looking at this and want to switch to Nest but just because I like the design of the unit. I have some questions I hope you can answer:

  1. Is it possible to completely turn off the “smart” part of the Nest? Meaning it won’t try to create a smart schedule or something and only respond to manual inputs.
  2. Can the target temp and mode etc also be changed in home assistant and display on the nest? for example if I turn the target temp down in Home Assistant will this also show on the nest and if I turn on the AC will the nest turn blue?
  1. yes
  2. yes

Thanks for the response!

I have an older furnace that had no “C” wire so I ran an entire new wire [only 15’] and added something very close to the link you have on amazon for the plugin one.

Now I’m going to move that into the closet where the furnace is because it’s plugged in on the wall and looks terrible LOL It’s also where I plugged my CO detector in now I can’t…ugh.

Thank you for the link!!!

@tarik This is fantastic thank you. I plan to buy a Nest thermostat and set it up to control Home Assistant. I see that Nest is using a new API called SDM and it connects through Google authentication.Have you tried this API? I see the legacy API is no longer being offered. I have read the new API has a 10 second delay. I wish there was a way to connect to the Nest locally.

Updates to control nest via home assistant go through the API is pretty fast. Changes are pushed back to home assistant through cloud pubsub which seems better than polling, but i do sometimes see a little lag.

Camera streams definitely have a lag that is annoying, partially due to cloud partially due to hls, etc. I’m hoping web rtc batter cam has lower latency but we’ll see.

Thanks for the info! Is everything still working for you reliably?

Also, my house has two zones. Can you see a way that I could switch zones on the Nest?

I don’t see anything about thermostat zones available in the SDM api