Great project, I actually started down the path of doing something similar but with espresense instead of esphome/Bermuda. Mostly due to the 3 Bluetooth proxy limitation of home assistant, and wanting a more aggressive reporting frequency.
But after fighting espresense for a while, I gave up on that approach.
A random forest classifier seems like the right move.
One thing that I think would be super helpful with reducing noise is a graph of acceptable state transitions with time costs as weights.
My bedroom is above my living room, so a 1 second switch doesn't make a lot of sense, but if I could give a graph structure of valid transitions, then it wouldn't fire a bedroom to living room transition without 30+ seconds or steps of upstairs hallway and entry.
I know you're building something more generic here, but I think generic weighted graphs are useful as a general purpose denoising step.
Great project, I actually started down the path of doing something similar but with espresense instead of esphome/Bermuda. Mostly due to the 3 Bluetooth proxy limitation of home assistant, and wanting a more aggressive reporting frequency.
But after fighting espresense for a while, I gave up on that approach.
A random forest classifier seems like the right move.
One thing that I think would be super helpful with reducing noise is a graph of acceptable state transitions with time costs as weights.
My bedroom is above my living room, so a 1 second switch doesn't make a lot of sense, but if I could give a graph structure of valid transitions, then it wouldn't fire a bedroom to living room transition without 30+ seconds or steps of upstairs hallway and entry.
I know you're building something more generic here, but I think generic weighted graphs are useful as a general purpose denoising step.