This project originated with me being concerned about an aging parent, living alone in another state.
Current solutions in this area are either privacy invasive (remote monitoring with a video camera) or expensive (purchase the hardware and pay a monthly subscription fee).
My solution utilizes a Raspberry Pi running HomeAssistant as the brains, a Bluetooth LE button worn by the user for fall detection and to call for help, and a cheap Xiaomi home automation hub with push button and two door/window sensors for presence detection.
In short, HomeAssistant maintains an internal timer which, when it runs out, sends an alert notification to a pre-determined list. If HomeAssistant detects one of the door sensors opening, or the push of the button, the timer resets. If the system receives a fall notification or long button push notification from the Bluetooth button, an alert is also sent.
If the user presses the button in the morning and at night, or opens a door during the day, the timer continues to reset and no alerts are sent. The time threshold can be adjusted as needed, and the Xiaomi hub includes an internal light ring which changes from white to orange a few hours before an alert is sent, and from orange to red during an alert condition as a visual feedback to the person being monitored.
All information resides within HomeAssistant on the Raspberry Pi. The system can also be extended to include more sensors and inputs for better presence detection.
The hub has a Chinese power plug so you’ll also need an adapter.
The Bluetooth button I use is a v.alrt button from VSN, available for $40 from the manufacturer website or $12 on Amazon.
My preliminary code for interfacing with the v.alrt and detecting notifications can be found in this repository. This code on it’s own is not enough to work with AppDaemon, I’ll be releasing an updated version soon.
Within HomeAssistant is a simple interface to control the components.
I’ll post more soon. This project utilizes the AppDaemon add-on to HomeAssistant and was originally working under AppDaemon version 2. That version has since been deprecated and I’m working on porting my code over to version 3.