Back in 2017 I wrote a blog entry called “A Thermostat Weekend” – some weekend that turned out to be. Well, to cut a long story short, the stat worked but I was at the time just finding out all about NEST and other modern stats and so my ESP-GO/Node-Red thermostat development started gathering dust.
Then we fitted a new Air Source Heat Pump heating system and it looked like my thermostat skills might be redundant. This new system came with a Salus IT 5000 Thermostat – absolutely lovely App, nice display and this I thought would well and truly bury my interest. How wrong could I be.
Here is the latest version of my stat web display (Dashboard) – I removed the redundant FROST setting and improved the formatting today (29/02/2019). More soon no doubt.
I found some issues with the original QDTECH 240*160 LCD display in terms of reset reliability bearing in mind I’m short of IO pins and reset is hooked to processor reset (I just realised that I can use GPIO0 as an output with a new command, to reset the display) and I’ve changed to an ILI9341 for the final version as well as fixing some bugs with AWAY timing, VASTLY improving the web stat (Dashboard) css and adding multi-functions to the two available inputs – so that “up” and “down become “auto” if pressed simultaneously OR if either of the two buttons are long-pressed. I've done this extra functionality in Node-Red. The larger display also shows full time, day and date as well as “away” status. Also not yet shown here but in one unit I'm using cheap single-key touch panels for manual heat up and down.
Buttons now have long-click functionality to handle AUTO…. Display shows humidity and more… fixed “away” timing bug in online display… this looks a LOT prettier with a front panel (that’s a 5v power supply in there on the left).
The NEW Flow
The actual flow is on Pastebin as it is quite large:
Our requirements are simple enough – we need remote control – and simplified controls for when we are in Spain as our UK cottage is used for holiday cottage rental. An additional complication is that you have to be sensible with air source heat, you don’t have the fast responsiveness of oil and the range of temperatures needs to be limited – a heavy responsibility for guests... and the heating controls need to be reliable. The original Salus thermostat was having none of that and the supply company seemed unable to come up with a suitable alternative.
So I started looking around – Nest is lovely, probably has temperature limit options but it doesn’t have guest controls as far as I can tell. Indeed there appear to be only a small number of modern thermostat designs out there and up to now I’ve seen nothing that will fit our bill.
If you’re interested I suggest you start at the original “A thermostat Weekend” entry (there is also a very slight update at “The Thermostat Revisited”) Right now, I’ve been making use of my ESP-GO code for the ESP (BitBucket) to form the base of a wall “guest-level control” as I have all the remote control we need in the Dashboard Thermostat – on my Android phone (or PC). As always I was running out of inputs on the ESP8266 – needing “up”, “down” and “auto” controls and having only two inputs available I came up with a “press both buttons for auto” solution now supplemented with long-press options. In addition, manual settings revert back to auto after a couple of hours anyway.
And here it is, above, the first prototype of the guest control complete with temperature display, set-temperature control and time. I’m using existing ESP-GO code along with some new Nose-Red programming shown in the flow link above. You can see that there are two buttons on wires and there is a DHT22 sensor (the original featured a DS18B20 sensor). This then uses an inexpensive 320*240 ILI9340/9341 display. CS on the display board is grounded.
Here is a typical link for the ILI9341 displays… 2.8" 240x320 SPI TFT LCD
Originally I used - Mini 1.8 Inch Serial SPI TFT LCD Module Display – Ebay or AliExpress – I’ve used quite a few over time.
Here’s a link for the gauge..
I have a UK mains surface mount back box, I need to come up with a smoked perspex front panel; unless someone has a better idea. I now have better buttons and an ESP + uncommitted relay (NOT Sonoff, as the Sonoff relay is commoned with the power lines) to actually control the heating – the prototype is boxed and running with indicators.
Here for reference is the updated flow, using a relay ESP board called heating_relay…. the stat board you see at the top is called “stat3” in the flow. I’m now using a pair of my Timeout Node-Red nodes, delay nodes, Injects for testing and setup, Node-Red Dashboard and of course MQTT, function nodes and file nodes for storage,
This is what the original stat looked like in Chrome on a PC (frameless). Full 7-day control with hourly intervals, AWAY and frost settings – though in my case these will probably end up being set at 16c. There were some bugs in this version.
Here’s the original flow (no longer being developed) which includes the stat and the ESP interface MQTT. If you check carefully, you’ll see my 2-button solution – thanks to Colin and others over at Node-Red Forum – I ended up coming up with my own solution but the inspiration helped as always.
As mentioned elsewhere I don’t distribute my ICONS as I’m not entirely sure what the licencing is on them – however, reader has sent this excellent link to what looks like a marvellous open source icon library. All icons used in the little display board are included in ESP-GO firmware so we’re only talking about any icons I’ve used in Node-Red Dashboard – but hey, you can never have too many icons.
Here’s the original QDTECH Flow on Pastebin...