[NEW NODE] node-red-contrib-drayton-wiser v0.0.1

Hi all, as mentioned in some other threads, I've returned to some code for the Drayton Wiser smart home heating system. This uses a Wi-Fi connected controller and Zigbee connected TRV's and other assorted devices.

I have an older plain node.js module that I've been using for quite some time but a recent outage prompted me to get on and create a proper node that is easier to use, more consistent, lacking the old bugs and generally more robust.

Please understand that this is a first code push, suitable for some early tests only. However, it works! It connects to your controller and grabs a full set of data from the (rather simplistic) API every 60s. It does a bit of work to make the data a bit more consistent and to add a few extras for convenience. It then also does a "diff" against the previous API call and spits out a load of events - one for each property that changed.

There are two nodes. The main wiser node defines and sets up the connection and starts the monitor. It also accepts a bunch of commands given as input messages, in return it spits out various information messages. With that, you can do things like list out any devices that are offline, any devices with low or no battery, rooms with temperatures above or below a given temperature (or all rooms that report their temperature) and a bunch of other stuff.

The 2nd node listens for one or more of the events that the main node spits out. You define one of the events and it outputs a message every time that event is fired. There is a list of available events in the README. You can also use wildcards in the event names. This lets you do specific things like monitor whether the controller is online or offline or general things like get the full data object every minute or just the change messages. Obviously you can also listen for errors and much more.

No controls yet I'm afraid, so you can't change room temperatures yet but that is coming.

A little longer in coming will be schedule handling.

By all means, take it for a ride and poke around the innards. Let me know what is wrong and if you want to see anything specific. There is a bit of a todo list in the changelog.

You may also be interested to node that this uses my "new" style of coding for Node-RED that uses a much clearer separation of functions along with a supporting singleton class library. It also makes extensive use of Gulp so that I can keep, particularly the html file, in logical pieces, using Gulp watch to constantly rebuild the main html file. A little overkill on this node which is relatively simple (except for the supporting class module) but a much nicer way of working than having everything munged together (in my OCD opinion anyway!)

As always, have fun! Catch you soon, Julian.

3 Likes

From my test flows (I'll eventually add these into the node's examples library:

Main node settings:
image

Listen node settings:
image

The event handling is done with the help of my @totallyinformation/ti-common-event-handler module which is based on EventEmitter2

Hey Julian,
Thanks for sharing!! Few noob questions:

  1. Can you plean explain shortly what the advantage is of communicating to the controller instead of to the trv's directly? Is that to have a wifi-zigbee bridge?
  2. Wiser sells range extenders. I assume the batteries of your trv's will drain more fastly if they have to communicate over larger distances, so I would need to install enough range extenders? And do you need the ones from Wiser, or is any Zigbee extender ok?
  3. They sell one and two zone controllers. Isn't the whole zone related logic inside your Node-RED flow, so one zone is enough (and support N zones with your flow logic? Probably not...

Bart

Hi Julian,

just curious to know what (except perhaps the build quality) are the advantage of the "wiser system" from your experience

As I see the valves offer not too many datapoints

I see some (small) disadvantages

  • no internal schedule of the boost mode (relies on the controller to time and reset) As I wrote before the savings I experienced come from the human factor: Don't turn down the valve when opening the windows, "boost" the setpoint and then forget to lower it back to normal
  • no internal schedules (Schedules help to save energy during unoccupied / night hours without sacrificing comfort compared to lowering the boiler temp during the night effecting all rooms. So you might have a "warm" movie night and still lower the temp in other rooms. I like the internal schedules because they are "fire and forget".
  • It seems to rely on the wiser controller. How does this fit in a system with mixed devices (in my case, homematic and stand alone Chinese TRVs

I would be fine with (or even like):

  • no display (I wrote before, only a gimmick, potential water ingress)
  • simple control at the valve +/- 2°C
  • higher price (if the quality is significant better) (in Germany +20€ compared to my latest ones)

And I have the same questions as @BartButenaers

  • what does the controller better / different than a "homebrew" Node-RED solution

No problem Bart.

In short - you can't contact the TRV's directly if you are using the controller since that is the Zigbee bridge and Zigbee only allows a single controller. Potentially you could talk to the TRV's directly if you didn't connect them to the controller but I don't know what protocols they would use.

Well, I have a decent sized Victorian house. The controller is on the far wall of the Kitchen and I have no problems reaching everywhere on the ground and first floors. Though some of the TRV's further away do need new batteries more often. Still only about once a year at worst though. I can't reach the 2nd floor though.

So yes, any system that uses Zigbee is going to need some repeaters for large or difficult spaces.

Unfortunately, the plug is nearly ÂŁ40. And you need theirs because you can't add a generic device to the system.

I think there is also a 3-zone controller. This relates to heating zones. I only have a single zone as I didn't need any further separation of zones.

With a system like this, you mostly let the system get on with things - that's kind of the point, because the system understands how to manage the heating and takes account of the weather (if you allow the system to be cloud connected). It will even learn how quick it takes to heat/cool the room and will take care of overruns for you.

So there is much less to do in terms of control. The main things are getting information in a different form and output to MQTT. Getting alerts to different channels. Then being able to do heating overrides or schedule changes without having to use the mobile app.

One of the things to control might be to cater for working from home. My wife works from home on a relatively irregular basis and a simple Telegram or web control or indeed a home info panel would make it much easier to flick a virtual switch to change the temperature of the room she decides to use to work in (one of 3 or 4 choices :slight_smile: ).

So bottom line is that you do need to think about how many zones you want. Also, we don't have a hot water tank so we don't need the water heating channel.

Don't forget that my TRV's are connected to the Wiser controller and not to Zigbee2MQTT.

What more do you want? :slight_smile:

Everything needed seems to be there.

I think that the reason these TRV's are a lot cheaper than EvoHome and similar is that they are a lot simpler. They don't have full display's and they don't have local schedules. They rely on the controller.

Even if using the controller, with my node, you would be able to override things. One of the problems I had when my son was at home was that he liked to have an open window when sleeping but would insist on boosting the temperature before he went to bed. So I put a Node-RED override to shut down the local boost at a suitable time! :rofl:

With window sensors feeding data to Node-RED, it would be easy to turn off boosts if someone tried to turn them on.

The wiser controller has schedules. It now also has "moments" which override the schedule if desired.

While not quite there yet, the node will let you make changes to schedules and apply them to devices. This is something that, while greatly improved in the app in the last year or so, is still a little clunky in the app - for example, it isn't easy to switch between a summer and a winter schedule. This is where I see Node-RED and the wiser node really being powerful.

Well, you've seen that you can control them via Zigbee2MQTT or direct from Node-RED if you don't have the controller (though I would question why you would buy the Wiser TRV's if you don't want the controller - there are cheaper options I think).

A mixed environment would be interesting and I've thought about that to cover the top floor of the house where the wiser Zigbee network doesn't reach without a ÂŁ40 smartplug as an extender. But of course, telling the controller that there is some demand is sometihng I've not tried, not sure whether it allows it. I'll give it a try.

Depends how good you are at machine learning I suppose :wink:

The main advantage for me is that I don't have to worry that a logic error is going to blow up the house or leave it frozen solid if we are away. Or at least if it does happen, I can sue Drayton. Of course, a more likely issue would be a radiator not doing the right thing and either wasting loads of money or leaving the room stone cold.

Weather integration, zero-hassle cloud access is great to be able to turn off the away mode and boost the temperature when you are in the car on the way back from being away. Of course, that is also possible from Node-RED.

The local learning about room heating speed, may also save money and might be hard to do - but certainly not impossible - in Node-RED.

So bottom line is that buying a whole system gave me a ready-to-use and simple to install solution that the I and the family could use immediately. It works in offline mode as well which was (and always is) a requirement for me.

Oh, and a final point - multiple devices per room is handled automatically by the system so you don't need to worry about multi-sensor data, etc. if you have >1 TRV in a room for example. You control the room not the device.