For those who want to dive deep into the Internet of Things, home-assistant.io provides an incredibly powerful platform for monitoring and automation. After years of using it, this article focuses on some of the best Home Assistant integrations and use-cases. In my home, we use magic spellbooks as controls around the house. We even have it set up in the van, tracking our travels with integrations to the car itself.
The Home Assistant community has plenty of examples for setting up interesting integrations. In this spirit, I’ve open-sourced both my home configuration and van configuration. Below, I share some of my favorite features and ways of using Home Assistant.
Like DIY solutions? Check out the IOT smart home retrofit project:
We converted a snowy cabin into a smart home using 100% DIY, maker-made components. This project is much more thorough — it breaks down each part of smart home design. The following post focuses on a more 'off-the-shelf' solution.
Building Good Habits with Lighting
One of the beginner examples for Home Assistant is using motion detection to turn lights on for a short period of time. This is handy in hallways and bathrooms, especially at night, to avoid fumbling for a light switch. I also find it convenient to turn on the hall lights when the front door is opened, which helps when carrying things in the house.
My favorite sensor is the Aeotec Multisensor 6, because it can detect practically everything: motion, temperature, humidity, light, UV, and vibration.
The first easy change I made to the examples was to change the brightness of the light based upon the time of day. This way, when heading to the bathroom at night, the light is not so bright as to wake us up.
Thinking about lighting, I noticed how we often left closet doors/curtains open. At the same time, the light switches for the closets were in awkward places in the room. I decided to use the same motion detection strategy, placing the detectors inside the closet this time.
Because the light only turns off when there is no motion detected, the act of closing the door/curtain also ensures that the light will turn off. At the same time, leaving the closet open means that the light will stay on as people move around the room.
I turned all of this into a general motion package for Home Assistant.
Again, the best Home Assistant integrations examples demonstrate how to know when someone is at home with presence detection. One simple use of this is to turn off lights/music automatically when nobody is at home.
For more fine-grained control, it’s possible to detect if someone is in a particular room in the house. Simple GPS coordinates probably won’t do the trick, though. They’re often too inaccurate, and don’t work well with multi-story houses.
The best solution I know of is using BTLE (Bluetooth). With the Raspberry Pi spellbooks in each room, I can detect how close a given phone is to each room. I adapted the Espruino Hub project, which reports BTLE signal via MQTT, into a docker container for Tiny Cluster. The RSSI (signal strength) is converted into a sensor to determine which room each of us are in.
Perhaps the best use of this information is climate control…
Climate Control (without Central Air/Heat)
Where I live in San Francisco presents an interesting challenge.
Though we technically have central heat, it is a single zone for the entire house — which means we cannot heat rooms individually. It’s not a large apartment, but is four stories tall… so the temperature difference between the bottom and top floors can be up to 20 degrees (F). No matter what temperature we set the thermostat to, some rooms will probably be uncomfortable.
We installed two portable A/C units, and one portable space heater and use smart power outlets to control the on/off state (for simple, cheap units like ours). More expensive portable heating/cooling units may be able to integrate directly into Home Assistant, or use a remote IR thermostat that can connect to Home Assistant.
When combined with the Room Occupancy, above, it’s easy to imagine creating an automation that keeps every room at the perfect temperature depending on who’s home (and where).
To go a bit further, it’s even possible to build an entirely DIY HVAC system:
HVAC systems can be very elaborate. But with some research, it's surprisingly easy to learn how to replace a thermostat with a smart, programmable Raspberry Pi thermostat. Even basic, student-focused electronic kits contain all the parts necessary to control the heat in a house.
When we leave town in the van, we sometimes have guests. I created a simple toggle for “guest mode,” which turns off automatons that might not apply to guests. For those who rent their home, such guest interaction automatons are some of the best Home Assistant integrations (for security and peace of mind):
I also like changing the door code for every guest who is not a close friend. For that, I created a simple input_text and script to change the guest door-code. This also can change behaviors in the house when a guest is around.
Remote Control Kiosks
I already mentioned the magic spellbook kiosks. These devices are locked to the Home Assistant main screen, so that users can only navigate the prescribed UI. They are further secured by not having an active USB port, nor any way to click into the home assistant admin menus. This is achieved with a kiosk script that hides the navigation bar.
I needed a way to for guests to control my home automation. There are many easy remote control products out there, like Harmony by Logitech. But home-assistant.io is so much more powerful than these off-the-shelf solutions. So I decided to build "magic spellbooks" from Raspberry Pis that act as controllers around the house.
Guests can come to my home and control the projector, music, TV, etc. all without logging in to any secure systems. I only give out the password to the guest network, so all the home automation stays enclosed in the private network.
There are many things I didn’t cover here. I played around a lot with UI customization, for example. I also enjoy some of the mood lighting automations (such as turning on the fairy lights only when the patio is occupied at night).
I also will be covering my use of Home Assistant in the van separately, where I track fuel usage, temperature, internet bandwidth, and other interesting things.
There are a number of things I’m still experimenting with. I hope to one day build an automated garden with Raspberry Pis, as well as reduce energy usage even further.
The Home Assistant platform has been moving pretty fast. Up until late 2019, it was quite common to see breaking changes. Things seem more stable now, and I’m just starting to explore some of the more creative uses.
By popular request, here are the parts I’ve used. These are mostly plug-and-play Z-Wave devices, rather than cheap and/or DIY alternatives. I’ll be exploring such DIY approaches (and writing more about my uses of Raspberry Pi and Arduino), but for now…
Controlling dumb appliances with a smart plug is a pretty easy way to go. However, watch out for anything that has a remote. Physical knobs on the device indicate that it has no memory, which is good because it will resume the last state when turned back on. By using a smart plug, you’re basically cutting off power to the device… it needs to not reset itself when turned back on, or else you may end up with the default settings again.
A DIY home security camera is only as good as its ability to detect threats. Our CCTV system can detect people, cars, visitors, and more. Pictures are captured and presented for review.Machine learning filters the data to find interesting objects ...
Home Assistant support for MotionEye cameras limited. I created a custom component with auto-discovery and actions for my pan tilt zoom security camera. You can find the Home Assistant MotionEye component on Github. I've been working on automating...
Building a DIY Raspberry Pi security camera is much easier than it might sound thanks to open-source security camera software. We use several such cameras placed around the house, as part of our DIY CCTV security camera system. One such camera is...
No silly gimmicks. This collection of home automation ideas will actually make your home more enjoyable for you and your guests. I've personally implemented many of the ideas in this list.These all came from our DIY Home Automation project. Pictured...
Dashcams (video cameras in cars) are a great security and safety feature. As with the rest of the vanlife IOT, I built my own DIY dashcam that has some unique features — like motion detection and automatic recording. On its surface, this is a post...
A DIY smart doorbell with a built-in camera, microphone, and speaker. This steampunk-themed design integrates with home assistant and our multi-room audio system to communicate with the rest of our DIY smart home. Rather than buying a Ring Doorbell...