Drayton Wiser Smart Thermostat Review

Warning:  Working directly with boilers and heating systems involves mains voltages and could damage elements of your heating system. If you are not confident in doing this kind of work, then get a professional to help or advise you.

The time finally came to replace our ageing (27 years old) gas boiler. As part of this process and before the new boiler was installed, I also wanted to update the thermostat to something smart but, also something that would work as an integrated component of my contextual smart home. A smart thermostat that works in isolation from all of the amazingly useful context held by my Home Control System is kind of missing a trick, especially since it intelligently decides the thermostat set points, adaptive schedules, etc. It knows all about our home, who is in it, the current house status, which doors are open, etc. This huge pool of context makes my smart home much more intelligent and incredibly efficient.

Note:  I have no connection or relationship with Drayton/Schneider Electric and no incentives to use or review this kit. This is a fully independent and impartial review based on my own research and experiences of installing and testing the equipment described here.

Having looked at a lot of smart thermostats, I choose the Drayton Wiser smart thermostat because:

  • There is an unofficial (but fairly well documented) API to allow intelligent control by my @smartest_home, with full whole home context. Importantly, this is a local API with no cloud dependencies.
  • It supports OpenTherm, which will allow upgrading of functionality and efficiency later.
  • It is battery powered and wireless, so the thermostat can be located anywhere. It can be wall mounted or sit on the supplied stand.
  • Installation is very simple, with the new controller/hub just clipping into the existing standard fixing plate.
  • The thermostat is simple and uncluttered, with a nice clear display. Once set up, there will be no real need for it to be touched. Fancy thermostat displays and user interfaces are NOT required in an intelligent smart home.

The installation and review is based on me using the 'Drayton Wiser thermostat kit 2', which is a 2-channel hub for both heating and hot water control. I found that the cheapest place to buy it was from the Drayton website. I paid £149.99 including delivery.

Objectives

Even the best smart thermostats on the market are really not that smart. They don't have whole home context and are unaware of all the other sensors in the smart home that could help them make better decisions. What I want to do with this project is to take all of the decision making out of the smart thermostat and to let it focus on doing the simple things that it can do best. My contextual smart home can then make better decisions:

Installation

The box that the it came in was a lot smaller than I expected at just 15cm × 10cm × 7cm.

In the box there was the thermostat, the controller, back plate and instructions. The face of the thermostat is compact, at just 75mm × 75mm.

The hub comes with a small OpenTherm module pre-installed but I have removed this for now, as it is not needed yet.

I've put the optional stand on my thermostat and it sits on top of a cabinet in our lounge, because this is a good, central location and at a good height too. It is important that direct sunlight never hits the thermostat for obvious reasons.

Most of the time the display is off, to save battery life. The display will come to life if you press any of the buttons. This thermostat uses 2 AA batteries.

For now, I have left the old 'dumb' thermostat on the wall and set to it max. This basically closes the old control path and allows the Wiser system to take control. I will replace this with a blank wall plate at some point.

Configuration

Installing the 2-channel controller/hub was very easy. Having switched off the power it simply clips onto the standard back plate. It is then locked in place with two screws at the bottom.

Having re-applied power, I pressed the 'Setup' button and the LED next to it started flashing green. This creates a local wireless hotspot, which I connected my iPhone too. The installation is very simple and is achieved by using the 'Wiser Home' app. You also use this app to add the thermostat. It took just a few minutes to do.

At the end of the setup process, the hub is connected to my home Wi-Fi network and the app has a little icon to show that it is connected. The range was not an issue but, I have a mesh Wi-Fi network covering my home and garden. There were no issues in using the same SSID on both the 5 and 2.4 GHz bands.

Issues

Connectivity

Initially, I had an issue where I couldn't enable the heating and hot water to follow the set schedules and each time I tried to edit the schedules I got this connection error.

After an hour it went away and I haven't seen it since. It has been suggested to me that this was caused by the controller doing an initial software update, which makes sense.

Architecture

My hot water and heating system uses an open tank in the airing cupboard, with the boiler heating our hot water. The heating system consists of a separate coil through this tank to extract heat and pump it through the radiators. This means that when the heating is on, the hot water needs to be on too, or it will simply cool down the tank. I can currently find no way to configure this using the Wiser thermostat and hub.

I can get around this issue by making sure the hot water schedule matches the heating schedule but, this is not ideal. It also doesn't solve the problem if someone were to use the boost button on the hub or via the app. I've raised this as a support issue.

Support

It is easy to raise an issue with the support team and you quickly get and automated response saying it is being looked at. It can take 3 to 4 days to get a response to issues raised. There is a dedicated website (Zendesk), where you can register and track all your open issues.

Contextual Smart Home Control

My goal with this smart thermostat has always been to place it under intelligent control by my contextual smart home. This will allow much more powerful control based on outside conditions, weather forecasts, occupancy and presence, based on my smart home's house status, etc. My initial estimates are that this will reduce my gas bill by at least another 20% compared to the smart thermostat working as it would out of the box. Most of these savings will come from simply not having the hot water and heating on when they don't need to be (based on presence) and from limiting the hot water usage (based on sensors on the tank) and lowering the thermostat set points when some family members are not present (my wife likes a warmer house than I do and she is often out at work). Further savings might be possible by adding smart TRVs in the bedrooms used by my children (aged 22 and 23), so that they are not heated when they are not at home. I have a lot of historical data on energy usage and weather conditions, which will enable me to measure the savings made with a good degree of accuracy.

The first thing I did was to configure my router, so that the hub always uses the same IP address. This just makes it easy to interface to reliably. This is a feature of my EE hub/router.

To talk to the thermostat via its API, you need to know its 'secret'. This seems to be set in hardware and cannot be changed.

Java API

My Home Control System is all written in Java, so it makes sense to write a Java 'wrapper' for the Wiser thermostat and a class and 'service' to enable query and control, so this is what I have done. It exposes a RESTful API using JSON.

I have managed to successfully query the thermostat and view all of the settings. The data that comes back from the API covers the following sections:

After a few challenges getting my Java code to send PATCH requests, I got the control side working as well. All I have to do now is to complete my API, to support all of the required functionality needed. The whole process is about 4 to 5 hours of coding.

Requests

A few things I've noticed when using this API:

  1. Simply turning the Lounge heating off, doesn't always stop the heating pump running. I also need to lower the set point for the Lounge to avoid the central heating pump running occasionally. This is probably why the app uses -20°C for any gaps left in a schedule. The app doesn't expose this but I can see it being reported via the API.
  2. The API doesn't always return the battery voltage or battery level in the returned JSON. I'm not sure why this would be but, my code handles things like this.

Request Formats

All requests need to be made to a fixed IP address ideally. In terms of making the Wiser Thermostat much smarter, there are only 3 things my contextual smart home really needs to be able to do:

  1. Turn the hot water heating on and off.
  2. Turn the central heating on and off.
  3. Change the thermostat set point.

System Query

This returns a large file of JSON, with everything included:

Path = /data/domain

Note: Temperatures are specified as integers by multiplying the required value by 10, so 19.5°C is 195.

Hot Water Control

Path = /data/domain/HotWater/2
Payload = {"Mode":"Manual","ManualWaterHeatingState":"On"}

Central Heating Control

Path = /data/domain/Room/<roomNumber>
Payload = {"RequestOverride":{"Type":"Manual","SetPoint":220}}

Set Point Temperature

Path = /data/domain/Room/<roomNumber>
Payload = {"RequestOverride":{"Type":"Auto","SetPoint":195}}

Response Validation

Each API request returns confirmation in the form of a structured JSON message. My code is checking the responses to ensure each request was actioned correctly. If they fail, then they are repeated a two more times. If all three attempts fail, then my Home Control System sends me a notification with further detail. This has not occurred yet.

Control

The whole object of the control API is to enable my contextual smart home to enable a zero touch user experience and intelligently control our water and heating around us. It has whole home context, to do things like occupancy based heating and hot water control, with temperatures personalised to those at home. For example, when my wife is at home the set point will be slightly higher as she prefers a warmer house than I and my children do.

Amazon Echo / Alexa

I have installed the 'Wiser Heat' skill, which enables me to query and control some things using my Amazon Echo devices. Examples include:

Whilst this is possible, we don't use the control elements, as our contextual smart home does a brilliant job of controlling this for us. It is sometimes handy to be able to query the current temperature though.

Testing

My initial testing has been done using the basic scheduling provided by the app. This is to get a feel for the set point temperatures and to see what feels comfortable. This is because every temperature sensor has a degree of variation. I'm going to have to do this again though after the new boiler has been installed because our current boiler (27 years old) puts out a lot of heat directly into our kitchen and our kitchen is part of the large open living space downstairs. Our lounge, dining room and kitchen are linked via open doors and arches.

The Wiser thermostat does a really good job of maintaining the set point temperature. This graph also shows that it takes a few hours for the house to get up to temperature in the morning. It will be interesting to see how much impact our new, more efficient boiler has on this.

The other interesting from this graph is the rate at which the house cools down over night for a given outside temperature. I also plan to add more insulation in the coming months as I sort out my loft space. I'm hoping to see improvements in future versions of this graph. Because our house cools down quite slowly, we switch the heating off completely over night, even during the coldest winter months. From about April to October, the heating is simply not used at all and my Home Control System will 'exercise' it each Monday morning (for about 10 minutes) to keep it 'healthy'.

Battery Life

My contextual smart home has models for the 'Lounge Thermostat Battery Voltage' and the 'Lounge Thermostat Battery Level', both of which are exposed via the Wiser API. I can easily configure upper and lower limits for the battery voltage, so I will get a