The hottest smart home device? Automated heating with the Aqara smart thermostat & Home Assistant
I automated my lights, my doorbell, my vacuum and more. Next are the thermostats. A smart thermostat can be very convenient and even save money. Here is how I used the Aqara smart thermostat with ZHA and Home Assistant.
The hardware – Aqara E1 smart thermostat
There are currently a lot of different options for smart thermostats. For me most of them had obvious issues that made me not chose them right from the start: some just look plane ugly, some require a cloud to work, some drain their battery very fast.
If you are looking to buy a smart thermostat consider doing it via these affiliate links to support the blog
Aqara smart thermostat e1
Cheaper similar one from Tuya (have not tested that)
AVM Fritz!Dect301 thermostat for (german) users of the Fritzbox
This left me with still some choices but in the end I decided to test one device that has none of these flaws: the Aqara thermostat uses Zigbee and is compatible with ZHA and Zigbee2MQTT and can therefore be used without the cloud platform from Aqara, fully locally. Its also one of the best looking ones in my opinion and should run a long time without switching batteries.
The device is not super small but roughly the same size as my non-smart thermostat I used before. Its made out of (so far durable) plastic with a nice screen on top. The screen turns off pretty quickly to safe power but does look bright enough to read at all times.
It is important to know that the display is at the end of the device. If you mount it horizontally you might not be able to read it from all angles. I does have a kind of curved glass over the display though that seems to really help. I could clearly read it even when looking at it from a ~70° angle. I have mounted it vertically though.
The device uses Zigbee 3.0 and might support matter in the future (who knows…). More on that later. You can control it via the outside ring on top of the device. By rotating it you can set the temperature, when pressing it it acts like a button. One click turns on the display, another one switches it to “anti freeze” mode where it just maintains a temperature of 5°C to keep everything from freezing. Nice when you want to open the window.
Mounting the Aqara Thermostat
The thermostat comes with a long manual but the process of connecting it to Home Assistant is obviously a bit different. I would suggest to not activate it quite from the start as you then have only limited time before it tries to start calibration. Do open it once though (just rotate the top part) as the first time I needed a lot of force for that.
Next I removed the existing thermostat by opening it and then unscrewing it. Next I had to mount one of the adapters as my heater unfortunately does not have a standard mount for the Aqara thermostat.
Then the final step is to mount the thermostat onto the adapter. This is quite easy but takes a moment. Make sure you have tightened the adapter screw well enough as it might come loose otherwise. Then you can finally open the thermostat and remove the plastic sheet between the contacts of the battery to turn it on. After a couple of seconds it will start calibrating itself by fully closing and opening the valve.
Now you are ready to connect the smart thermostat to Home Assistant.
Connecting the Aqara smart thermostat to Home Assistant and ZHA
Zigbee on Home Assistant is supported via different software: ZHA or Zigbee2MQTT. While Zigbee2MQTT supports more features for the thermostat I am currently using ZHA. Its running on my own smart home server with a TubesZB coordinator and is easy to set up. Connecting the device is simple. Go to integrations – ZHA – configure – add device. Now it should start searching. Press the top of the smart thermostat for 10 seconds until it goes to pairing mode and then wait for it to show up in Home Assistant. You might have to repeat this process a couple of times. Be sure to also use a newer version of Home Assistant!
Once connected you should see something like this. Unfortunately ZHA only supports the basics here. You can read the current temperature and set a new target temperature. A battery is discovered but shows no data and none of the other features like open window detection work. They are supposed to work with Zigbee2MQTT though so you might consider using that if you have the choice.
Whats there works great though. The card for a heater on the dashboard looks nice and changes in the target temperature are pretty much instantly updated both ways. That’s enough for me for now but I wish I could pair it with my Aqara temperature sensor that is in the same room. This works in the Aqara app (haven’t tried it myself) but is not (yet) supported via ZHA.
Building automations for the Aqara smart thermostat
Of course just having the thermostat does little (besides looking futuristic) – I bought it to make my home smarter. The goal is to safe energy by only heating at the right times, thus saving money and the environment (at least a little bit) while having more comfort too.
I had a simple idea here: I usually get up at the same time every day during the week and take a shower in the morning. I do not need to heat up my bathroom very much but in the morning a cozy room temperature is quite nice.
To do that I created a small schedule type helper (added in Home Assistant 2022.9) to define times in the morning to heat up the room. Here is an example. With simple mouseclicks you can set a schedule to enable this helper every day of the week at 7:30 to 9:00 in the morning
Using this helper its very easy to build an automation to preheat the room. It is triggered whenever the schedule changes to on or off and then sets the target temperature either to 25°C (for fast heating before) or to 18°C (afterwards).
alias: Heater bath automation description: turns up the heater according to the schedule trigger: - platform: state entity_id: - schedule.heater_bath_on from: "off" to: "on" id: to_on - platform: state entity_id: - schedule.heater_bath_on from: "on" to: "off" id: to_off condition:  action: - if: - condition: trigger id: to_on then: - service: climate.set_temperature data: temperature: 25 target: device_id: idOfTheSmartThermostat - if: - condition: trigger id: to_off then: - service: climate.set_temperature data: temperature: 18 target: device_id: idOfTheSmartThermostat mode: single
This automation has been working reliably so far. It is simply great to enter the room in the morning when it feels cozy and warm. The short burst of heating is also enough to maintain (with the rooms around it) a good enough temperature with heating much during the rest of the day.
Do I recommend the Aqara smart thermostat?
I will only answer this question from an open software/no cloud point of view and it is… kind of yes? I like the hardware very much so far. It looks great and was easy to install. If the batteries are good for a long time – similar to other Aqara Zigbee devices – its great. At 60€ it is quite expensive at the moment but most good competitors are not much cheaper.
Operating it is quite intuitive with the ring on top and the display does look nice and is easy to read. Just think about the orientation you will install it in.
On the software side I am torn. On the one hand it does work with Zigbee and needs no cloud at all (already better than most other devices), on the other hand you loose a lot of the extra options you get from the official app. With Zigbee2MQTT this might be better (has battery data and open window detection) but it looks like linking it to the external temperature sensor does only work with the official app so far.
Overall there might be better options out there but I am quite content so far. It looks great and works well for my one usecase: heating the room to my exact plans and making my home a bit smarter again.