New Drayton Wiser Smart Heating Module

Hi all, following on from the thread about thermostats/TRV's (radiator valves) here

And a much older thread (2018) here

And since I've had one of these systems for a while and even get referenced in the nearest we have to a definitive API.

I thought I really ought to write a proper Node.js module for the Wiser system that I will hopefully then wrap with a proper Node-RED node when time permits.

Not published to npm yet because still some work to do (see the README for details) but it is already usable as far as it goes.

For example, there is a standalone function that will change the control mode for a specific room. This allows you to manually set/change the temperature, boost the temperature temporarily, turn the room heating off completely or reset back to the schedule.

The other functions are currently all about getting specific (or full) data from the controller or running a continuous monitor that outputs events and change data when something changes.

If you try it out, please let me know what you think.

2 Likes

Hey Julian, nice work. :clap:

I too am looking for TRVs that I can have full controll over & eventually hope to integrate / automate node-red to have "scenes" for various times of the day/week etc - much like the comments in the other threads - something that works for my situation (e.g. not heading spare rooms, not heading bedrooms through the day, not heating living room during evening etc) but I also have a need to somehow integrate with my expensive nest control (not even sure in what role at this point).

Are you also potentially building a node-red node for this?

Also, do you have shares in drayton :wink:

Patiently waiting black friday sales & watching the drayton-wiser offerings

1 Like

Ah well, the less said about that the better I suspect :smiling_imp: Nest was never on my long list let alone shortlist. Even the Hive system which is supposed to be excellent and reasonably priced was excluded because it required the Internet.

Doubtless I will. I've been using the system for a while now and just monitor it. I've only used the app for controlling but it is long overdue for me to start taking more control. I split out the control code to a module because it let me get straight into the code without having to create a new node.

Also, I wanted to rework the way that I can create a changelog - output just changes. I found a nice node.js module that does deep diff's on javascript objects which has let me get straight into that (see the monitor function in the repo). I'm using JavaScript events to output the changes and this will translate nicely into Node-RED messages and/or MQTT as needed.

At the moment though, I'm still focussed on getting some more features into the module that I know I'll want such as:

  • Add more set functions. Only setRoomMode done so far.

  • Add save/load schedule functions

    Allow save/load to/from file as well as to/from JSON

  • On change limit any boost/manual overrides (from real app) to a given max (stop people setting to silly temperatures)

  • Reset all boosts/manual overrides at given time of day (stop people turning on
    boost when they go to bed!)

  • Output added/deleted items not just updated?

Haha, no not at all. In fact you will see that I actually say that the Honeywell Evohome system is the one I'd choose if doing it now. It is more mature and has a fully published API. Unfortunately, the TRV's (which are probably more reliable) are up to twice the price of the Wiser ones.

3 Likes

Another update pushed to GitHub.

  • Added the ability to cancel a monitor loop
  • Added a setRoomMode event emitter - lets you send an event while the monitor loop is running that will change the room settings just like the setRoomMode function (which may get hidden before go-live). Use the event emitter in preference to the function.
  • Added a reference parameter to the monitor function in case more than 1 monitor is run (preparation for use in Node-RED). This is returned with all event outputs so that actions can be taken against a specific monitor instance (specifically, it enables you to cancel the correct monitor).
  • Another test added and others improved.

I've also done a quick test in Node-RED simply by requiring the module and using from a function node. Pretty successful.

Coming along nicely.

Julian, forgive my ignorance here...

As I said before, I am looking into smart TRVs, would this (node) work with only the valves or is there a gateway / controller or something else required? Is it also necessary to have the room stat?

A controller hub is required that contains the smarts, the connection to cloud (optional but adds weather integration and ability to securely control the system from outside your home) and the bridge from Wi-Fi to Zigbee (that the TRV's use).

Theoretically it might be possible to control the TRV's directly I suppose but I've not seen anyone try to decode the transmissions between the hub and the TRV's.

They are slowly expanding the features of the hub (software updates happen, not often but a couple of times a year, a bit more this year). So you can now get Zigbee plugs as well. The plugs, being mains powered, also act as Zigbee extenders - useful if you need a really long stretch from the hub to a TRV.

You don't have to have a room stat. I got one in the starter kit which has the hub, a stat and 2 TRV's.

The hub simply replaces your standard boiler controls on the wall - the one with the standard backplate. So you simply unclip the old one and clip on the hub - took me longer to convince myself that it really was that easy than it did to actually do it!

All of the gets/sets I'm doing from the module or Node-RED all go to the hub over Wi-Fi. So I don't need (and don't currently have) a Zigbee bridge on my home server.

1 Like

Thanks for taking the time to reply. Much appreciated.