My recent addtion of multiple hypothesis tracking enables my home automation system
to not only say how many people it thinks are home and which rooms are occupied but also to assign a probability to each
of those numbers. That changes the way it will work as I replace boolean values with probability comparisons to see if it is,
say 95% certain before it acts on a value. It also enableds exciting new scenarios that I'll explore here.
More intelligent lighting control
In the past my home automation relied mostly on time-outs to decide when a room was no longer occupied. After a period of no
activity on any of the sensors in the room (motion, strain-gauge, TV volume control, light switches, or telephones) it would
start dimming the lights in that room and would turn off any audio playing. There were a couple of more complicated scenarios
where it attempted to use logic to reason that someone was still in a room if that room could be closed off. And while my house
does have a lot of sensors this approach really wasn't that much smarter than a cheap PIR motion light switch.
The light state machine makes it seem smarter because it will leave a light on or
off when a user wants to override this relatively dumb behavior and the gradual, imperceptible dim feature makes it a lot more
forgiving (or rather 'forgiven' when it makes a mistake).
Now, however with a probabilistic model of the home based on 'target tracking' it can turn lights off much sooner as it can be almost
certain that the one person in that room just moved to a neighboring room. This will allow it to save even more energy over
my baseline from years ago before any home automation was installed.
I've been working on home automation for over 15 years and I'm close to achieving my goal which is a house that understands where everyone is at all times, can predict where you are going next and can control lighting, heating and other systems without you having to do or say anything. That's a true "smart home".
My year long Bluetooth project that won the $20,000 HCI and Microsoft competition during lockdown has continued to grow and now reliably tracks how many people are in the house and outside and can locate any device down to room level.
Digital Twin are an online representation of a real world object, a copy of its properties in the digital world and a way to send updated and commands to it. In effect I've been making them for years but now they have a trendy name.
An overview of the many sensors I've experimented with for home automation including my favorite under-floor strain gauge, through all the usual PIR, beam and contact sensors to some more esoteric devices like an 8x8 thermal camera.
One way to reduce the volume of sensor data is to remove redundant points. In a system with timestamped data recorded on an irregular interval we can achieve this by removing co-linear points.
ESP32 provides a great platform for sensors around the house but by the time you've added a USB power brick, cable and enclosure it's quite messy. I wanted a device that I could just plug in with no exposed wires and no mounting needed so I designed one in OpenSCAD.
Bluetooth sensing for home automation is a great proxy for people counting as it can detect and locate each cellphone in the house. iBeacons attached to tools, cars and pets can provide a 'find my anything' feature too.
Having at least one light sensor is critical for any home automation system that controls lightng. Lights need to be turned on when it's dark not at specific times of day, especially here in Seattle when it can be dark and cloudy at any time of day.
Microwave doppler sensors can be found in some alarm sensors but there are also available very cheaply as a separate component. They offer exceptional range but suffer from false triggers requiring a probailistic approach to people sensing.
Optical-beam sensors are reliable and can cover a long-distance such as across a garage or aisle-way. When they include multiple-beams they have good false-trigger rejection.
Home automation systems need to respond to events in the real world. Sometimes it's an analog value, sometimes it's binary, rarely is it clean and not susceptible to problems. Let's discuss some of the ways to convert these inputs into actions.
Another super useful function for handling sensor data and converting to probabilities is the logistic function 1/(1+e^-x). Using this you can easily map values onto a 0.0-1.0 probability range.
In a home automation system we often want to convert a measurement into a probability. The ATAN curve is one of my favorite curves for this as it's easy to map overything onto a 0.0-1.0 range.
An if-this-then-that style rules machine is insufficient for lighting control. This state machine accomplishes 90% of the correct behavior for a light that is controlled automatically and manually in a home automation system.