The challenge deadline is almost there, so it’s time for a final demonstration! In this last post I’ll show you the results of my work in a video and then describe what I did and what I’m planning to improve in the future.
Let’s start with the fun part: I present you a relaxed evening at Thuis!
I’ll continue this blog in the same style as my previous Status update and will give you the latest status of all the projects and use cases.
Open Source Projects
These are the projects I made available as open source on my GitHub account during this challenge (or will make available later). They are all set up, so that they can be reused by others in their own home automation projects.
As described in Publishing activity from Z-Way to MQTT messages are published for each status change. It also subscribes to the responding topics, so you’re able to turn on and off devices through MQTT as well. The topics and devices used are completely configurable. With this all major functionality is done. The last couple of weeks I did several improvements to the reliability. Scene activation is something that still needs some work, so the to-do list remains the same.
- Publish a message on scene activation (e.g. used for each secondary push button on the wall)
- Get it published on the Z-Way App store, already uploaded June, but still no response
- Publish energy usage
Making sure I can use Chef to fully install the Raspberry Pi 3 I needed to update a few recipes and also to create a completely new one for Z-Way. This was a major hurdle and took more time than expected, but I learned a lot from it. I hope in Cooking up the nodes: Thuis Cookbook you can also find something new for yourself. In Home Theater part 1: CEC I made some small updates as I installed the node connected to the home theatre system by HDMI.
Plex doesn’t allow me to add a plugin directly in the server, but there is an API and WebSockets for status messages. The API and WebSockets are implemented, as is described in Home Theater part 3: Plex playback controls. It is mostly implemented as Java library with a similar set up as I’m using for integrating Java and MQTT. As I have to clean up the project, it will be published at a later stage.
- Publish the code on GitHub
The library for using CEC (Consumer Electronics Control) in Java was developed about 10 months ago and performs the most common functionality: monitoring stands-status, turning on/off devices, changing volume and changing outputs. Now it’s also integrated with Thuis and is available through MQTT. For more information please visit Home Theater part 1: CEC.
In MQTT User Interface components for iOS the MQTT UIKit was developed. It now provides a Tile based interface with elements being updated automatically based on MQTT messages. Also several default UIKit elements were extended with MQTT functionality in Home Theater part 3: Plex playback controls.
- Publish the code on GitHub
Light when and where you need it
Sensors are placed in both the kitchen and the entrance room. The Core knows about them and as described in Core v2: A Java EE application rules are defined to turn the lights in those rooms on and off depending on movement and time. This works pretty well already!
- Further optimize the rules
- See if improvements can be made by using iBeacons
The iBeacons are placed at several locations in the house, providing a good coverage to detect if you’re arriving home. When you arrive home a notification is sent, which allows you to directly start up the home theatre system.
You can read about this in Presence monitoring using iBeacons.
The Z-Wave hardware for the home cinema is in place (using a 6-socket PowerNode), so it can be turned on and off. Using the above mentioned Plex and CEC integration we can fully manage the home theatre system. An extra Raspberry Pi 1B was placed next to the TV to control devices through HDMI CEC. This is described in Home Theater part 2: controls. The Ambilight will be finished at a later stage.
- Add and integrate a DIY ambilight
Mobile & On-The-Wall-UI
The app is running and fully functional, as you can see in Final implementation UI design, you can manage devices in the house and see the latest status. A wish is still to add a speech control to the iPad app. In the kitchen we have an iPad mounted on a cabinet as well, for which I would like to create a separate app with additional features like a cooking timer and a recipe browser (my girlfriend supports this idea a lot :). Another option is to use a Raspberry Pi plus display, which will be integrated in a cabinet door.
- Add speech commands
- Create a custom app for the kitchen (either iPad or web)
Work hasn’t started yet on the Wake-up light as one of the key components (the MOVE) is not delivered. And as this is an Indiegogo project it’s still not certain when it will be delivered. I did experiment with emulating a Hue bridge to make sure Sleep Cycle can communicate with Thuis and unfortunately I could not get this working properly yet. Nevertheless, one to-do is fully fixed: the main light in the bedroom is now dimmable through Z-Wave.
- Sleep Cycle doesn’t have a web hook available yet, so it’s still needed to set up a Philips Hue bridge
- Install and integrate the MOVE
Most lights can already be switched manually using the buttons on the walls. Some of them should however be switched using the secondary button, which does a scene activation. I still have to add support for this to the Zway-MQTT.
- Add support for secondary buttons in Zway-MQTT
Energy monitoring & saving
For energy monitoring I only did some research. InfluxDB seems to be a good candidate for storing the data. Unfortunately I wasn’t able to work on this use case during the challenge, but I’ll come back to this in a later stage.
- Let Zway-MQTT publish energy usage
- Integrate YouLess to record total energy usage of the house
- Create reports based on the usage
I already mentioned some future plans, a few of those I want to highlight.
Wake up light
It would be great to wake up with light that feels like a sun rise. In the summer managed by actually letting the sun in by raising the curtains, in the winter by using an electronic light. For this use case I’m currently very depended on external parties, which is the reason this part of Thuis is postponed to the later stage.
Tools which are used a lot in the kitchen are a timer and a recipe browser. The plan is to integrate these both in an easy to use app which is always available on one of the kitchen cabinets doors. It can be used to override the automatic schedule as well, for example when we get home later than usual and still want the full light for cooking.
A few years back I’ve built an Ambilight for my TV. However this is based on an a Arduino connected to Mac Mini. It’s therefore only usable when the Mac Mini is the source of the video. As we’re mainly using a Apple TV nowadays, the Ambilight can’t be used. I will use a HDMI splitter and grabber connected to a Raspberry Pi 2B to replace the Mac Mini and make it possible to enable Ambilight for videos from all sources.
- Using presence information for improved automation
- Saving usage data and energy usage to a database for data mining
- Integrate a robotic vacuum cleaner
- Add voice control
It feels so weird, but with this paragraph my last blog of this challenge comes to an end. Over the last couple of months I’ve been able to set up a very nice home automation system at my house. It was a hard job to get everything done on time and especially describe all of it in writing, but I’ve managed well and I’ve enjoyed the process a lot! Thanks again to element14 for selecting me as a sponsored challenge and for giving me the inspiration and motivation to work on Thuis!