It’s been a little while since I first started building IoT gizmos for my house and I’ve continued to improve and add to them so I thought it was a good time for an update on how some of the projects have fared, what’s new and what I’m thinking of for the next year.
2020 has been one hell of a year – My team and I have been lucky enough to be able to continue working from home and even managed to ship some products along the way. However, spending so much more time at home has caused me to spend more time thinking about my environment. Small irritations are magnified into daily hassles and new issues present themselves, giving opportunities to optimise my work from home life with more projects.
Back in February I wrote about how I had modified my central heating be smart without damaging the property or replacing any of the components. This project was my first adventure into 3D printing and the ESP8266.
A year on, the system is still installed and running my heating on a daily basis. I am very pleased with how well it’s worked with only a few changes:
- Missed MQTT messages – In the first few weeks, there were a few occasions where the heating would not turn on or off when instructed. When I investigated, it seemed that MQTT messages would not always be sent to the device when published. To work around this, I added code that forcibly checked the state every 10 mins and would perform the missed action if needed.
- Restore previous state – In the original version of the project, the device would take the latest value published to the MQTT feed as the source of truth. However, this was problematic as if a new message was published while the device was not available for some reason, it would run out of sync – meaning that the heating would turn off then instructed to turn on and vice versa. To fix this I used the ESP8266’s SPIFFs storage to store the current state of the heating toggle and restore it after device restart.
- Timing – The timing to switch the heating on and off is no longer powered by IFTTT, instead it is now powered by automations in Home Assistant, which allows me to create more complex programs.
Digital TV Recorder
In May I wrote about how I used Kodi and Tvheadend to build a TV recorder. This is still running and recording TV shows. I’m very happy that I can stream its recording through my home and watch them in the kitchen while cooking. I’m also really happy with the massive saving I’ve made by cancelling my paid TV contract. It’s not been without it hiccups though:
- Live Pause – For some reason pausing live TV does not work as expected. I can pause and restart the broadcast , but a few seconds after restarting, playback fails and cannot be resumed. I don’t really watch much live TV, so I’ve not yet been sufficiently annoyed to investigate this.
- Start-up Issues – On bout 50% of start-ups, Tvheadend fails to start and cannot be used. To resolve this, I have to manually stop and restart the service. I haven’t yet looked into what is causing the issue, but its high on my list.
Living Room eInk Display
The living room info display continues to function, and I use it a lot to know if it will rain when going out. However, with Apple’s acquisition of Dark Sky and subsequent deprecation of the API, I will need to update it at some point in 2021 to use some other data source. If you’ve any good suggestions of where to get similar information for, I’d love to hear them in the comments or on Twitter.
Air Quality Monitoring
I’d already been monitoring my air quality with my Arduino & Raspberry Pi for a while before I Wrote about it. Unfortunately, while building it a new case, I accidentally damaged the Raspberry Pi and OLED screen. As I always wanted to improve it, I descried to rebuild a whole new version using an ESP8266, utilising deep sleep mode, to create a device that is significantly smaller and more power efficient.
I was pleased with how neat this new version was when in a nice 3D printed box. I was very happy with its crazy low power consumption between air quality samples every five minutes. However, it has an issue – the temperature & humanity sensor is too close to the gas sensor, meaning that it suffers crazy self-heating to as much as 10c, which made its data very unreliable.
It still works as a volatile organic compound sensor, but I will need to re-think the board layout to get reliable data from the temperature and humidity again.
Over the year, I added yet another Raspberry Pi to my home, this time running Home Assistant. I’ve been really pleased with the power of automation I’ve set up with this. I’ve used it to automatically start the Roomba if I leave the house between certain times, automate the outside lighting and provide more powerful timing to the smart heating project.
I also added a Conbee Raspbee II to the Raspberry Pi, to allow it to communicate with Zigbee devices. I now have a Xiaomi temperature sensor in every room and a set of Ikea Trådfri lights in the bathroom. Eccentric as this may seem, its allowed for some really nice and inexpensive luxuries – such as turning the on heated blanket in the bed before bedtime if it is cold in the bedroom or adding mood lighting in the bathroom when you want to relax in the bath.
I’m pretty pleased with some of the things I did over the last year, but I’m looking forward to building some even more cool things in 2021 and sharing them with you.
With working form home continuing to be necessary for the time being, I want to focus on improving my environment to keep it fresh, interesting and comfy as well as dealing some of the pain points while working. I’m going to be adding a lot more automations with Home Assistant as well as building out my smart lights through a const effective use of Hue and Ikea lights.
If you have any cool suggestions or ideas that you think I might be interested in, drop me a comment below or on Twitter.
Hope you have a great 2021! (Or at least a better one than 2020)
2 thoughts on “State of the (IoT) Union 2020”
openweathermap.org was a reasonable replacement for Dark Sky for my Twitter Weather bot (https://twitter.com/EmojiWeatherYYJ)
Oo, thanks I’ll check it out