Software apps and online services
If you don't "do" DIY and/or don't get tech, the above is a cool option and you may want to look away now. For those of us that like to be independent of commercial behemoths, this project is a viable alternative.
I shall assume you know how to set-up a Particle Photon. If not, www.particle.io contains all that you need. This system is controlled via mobile. At present I have no physical controls, though these could be added easily. The mobile interface is provided using http://www.blynk.io. Go create an account now.
Once you've created your Blynk account, buy some credit and copy my User Interface using the QR code below. The mobile app works on iOS and Android devices and will walk you through the steps needed to copy my Blynk app.
1. This project controls one thing only — in my case, the heating.
2. This project saves the need for a physically connected thermostat, i.e. put the thermostat anywhere that makes sense for your system and let Wi-Fi do the rest.
3. There are three modes:
- Timed heating — this is currently embedded in code but needs to be surfaced in the Blynk settings interface.
- Ad-hoc, short duration heating (labelled Req in the Blynk interface). Request from 1 to 60 minutes of heat using the slider in the Blynk interface. Select the desired heating duration and then press Req ON. Note, once the chosen period has elapsed, the REQ LED remains lit. This is a nuisance and needs to be resolved.
- Constant heating (labelled K in the Blynk interface). Press K and the heating will run until you press K off.
Req and K heating modes ignore the thermostat. This could be changed but for now that's how it is. The timed heating can do different things on different days and is based on the dailytimerspark example library. It's a boundary timer and is therefore fairly resilient. However, if you turn heating off while its daily timed heating is true, the heating will remain off for the remainder of that timed period even if you turn the timed heating back-on. Should that occur, a brute force Reset will return operation to normal. Currently there are three heating periods per day. The Temperature Sensor Photon sends temperature information to the Control Photon via the Particle eco-system. Please note, the 2 Photons need not necessarily "sit" on the same Wi-Fi network, mine do however.
The 4 LED's, top-left of the Blynk interface, from left to right:
- COLD: Heating pump runs constantly
- WM1: Eco-mode, pump runs for x minutes, rests for y minutes. You choose the duration for x and y using the eco-mode sliders in the Blynk interface.
- WM2: As above but x is shortened by 1 minute and y is lengthened by 1 minute.
- WM3: Heating is turned off due to reaching desired temperature. Again, this is embedded in code.
The above 4 modes are found/embedded in the Temperature Sensor Photon code.
This is an optional. The code assumes you have a Ubidots account and sends data every minute to build temperature and barometric pressure graphs. Barometric pressure data is not used in the control system but makes an interesting data set. Comment-out the code if you don't want to use Ubidots.
Surface timers. Surface temperature boundaries. Fix LED update issue for Req mode.
This project is not going to give you a highly polished "thing". It will, however, enable you to control your heating from anywhere. And, with a little effort, hot water controls could easily be added. Enjoy!