Home/Away status - Fine tuning
This is my first contribution. Sorry if it's not exactly set out as it should be. I have Bermuda running on an HA Blue (yes they still exist!). I am using Blue Charm ble beacons as the source, fitted to cars in my driveway. I am only using detection for the cars being on the driveway or not on the driveway. With my current settings Bermuda reports devices as being 'Home' (when they are home) consistently (so far). Bermuda also reports devices as 'Away' when the cars leave the driveway and 'Home' when they return. So far, so good. When a car returns to the driveway, Bermuda picks it up quickly and correctly reports 'Home'. When a car leaves the driveway, however, Bermuda is slow to detect it leaving and hence slow to report it 'Away'. As I'm not sure exactly how Bermuda evaluates the data to report Home/Away, I'm not sure what adjustments should be made to improve the 'Away' detection. Can you point me to any information on Bermuda's calculations for the 'device tracker' which will help fine-tune it's responses?
Hi Paul!
The first thing to keep in mind is that the only "fact" that bermuda gets from the world is "I just saw this thing". Nothing ever tells us "I can't see this thing", because we have no "proof" of a thing being not there.
So all we know is that at times, we know the thing is there, but at other times we get nothing, and at some point we need to decide if we think it's gone.
For the device_tracker, we use the Device Tracker Timeout setting, in Bermuda's CONFIGURE, Global Settings screen. The default is I think 5 minutes (300 seconds), which gives a pretty reliable indicator for most situations - if we don't hear anything for 5 minutes, we mark the device as Away.
You can reduce that timeout to whatever value suits your particular use-case. As with everything in life though, this is a trade-off. The shorter you set the timeout, the more likely (and more often) you will get "nuisance triggers" - bluetooth is a "best effort" thing - devices just spit out advertisements, and maybe we get them, maybe we don't.
So you can adjust the value down until you start getting false indicators for Away, then increase it a bit.
If you want something that will lock doors for you etc, then you might be better off using a trigger that is conclusively affirmative (like "the lock button was pressed") rather than an assumption ("haven't seen the car lately..."), but it all depends on what works for you.
Hi Ashley, Thanks for this comprehensive explanation. I'll try lowering the timeout setting and see how it goes. Have to say that Bermuda is the most stable system I've found so far; probably related to how good the calculations going on behind the scenes are. Others have problems with lack of consistency in their reporting - something which is no good for HA automatons and not really fast enough for my use, where I'm trying to detect cars when they leave a driveway, not when they're half-way down the road! I'll report back how I get on with your suggestions. Cheers, Paul
Latest update. I still can't get the settings to work reliably to detect cars on/off the driveway. I'm trying a different approach now. Using a feature of the Blue Charm beacon where it can be set to only transmit on motion, I'm going to use a Home Assistant automation to detect the motion and maybe an Input Boolean to determine if the car's coming or going. I realise this is moving away from what Bermuda is designed to do - maybe there is no good way to use tracking beacons for what I'm trying!
Hi Paul!
The first thing to keep in mind is that the only "fact" that bermuda gets from the world is "I just saw this thing". Nothing ever tells us "I can't see this thing", because we have no "proof" of a thing being not there.
So all we know is that at times, we know the thing is there, but at other times we get nothing, and at some point we need to decide if we think it's gone.
For the
device_tracker, we use theDevice Tracker Timeoutsetting, in Bermuda'sCONFIGURE,Global Settingsscreen. The default is I think 5 minutes (300 seconds), which gives a pretty reliable indicator for most situations - if we don't hear anything for 5 minutes, we mark the device asAway.You can reduce that timeout to whatever value suits your particular use-case. As with everything in life though, this is a trade-off. The shorter you set the timeout, the more likely (and more often) you will get "nuisance triggers" - bluetooth is a "best effort" thing - devices just spit out advertisements, and maybe we get them, maybe we don't.
So you can adjust the value down until you start getting false indicators for
Away, then increase it a bit.If you want something that will lock doors for you etc, then you might be better off using a trigger that is conclusively affirmative (like "the lock button was pressed") rather than an assumption ("haven't seen the car lately..."), but it all depends on what works for you.
Reading this information from you, even if I'm a few months old, I understand that it's normal to have to increase the consideration of seconds to consider myself "out" in 170s, right?. Sure at first it seemed that with the default, 30 or so I think I remember, it worked fine for me, but I started basing automations on this tool like setting the alarm or taking out the roborock and of course, They have jumped at me many times without leaving home and even at dawn, so I started playing with the adjustments, and at 120 it happened to me, at 200 nothing, so I was calibrating. with 160 It also happened from time to time, so 170 for now seems to keep up, I'll give you a few weeks of testing before retouching or letting me base a car again.
I understand that these "problems" happen because there is also a clock connected to bluetooth, and when the data is sent from the mobile sometimes the proxy may not listen to what the phone sends And I ended up thinking that it is outside, however it seems tremendously broad to me for all that period that an active listening of something that I imagine takes time cannot occur, but also Must be affected by the Bermuda listening time value, which I had set to 1 second, but I have increased to 5 and may increase to 10 to continue the tests properly.
Thanks for reading! ☺️
Hi Paul, not sure if you're still battling this, but another option to consider is to see if you can place any proxies at the end of the driveway near the street - like in a letterbox.
If that's possible, you could:
- Ensure you have at least two proxies near the house that reliably detect the cars while they're parked. This is so you don't "lose sight" of them if one proxy drops out for a bit, which they sometimes do.
- Place one or more proxies at a location near the end of the driveway, like in a letterbox or on the fence/gate. Assign it/them to an area called "Street" or similar
- Possibly reduce the sensitivity of the street proxies a bit using the
per-scanner rssi offsets, so that a car needs to be fairly close to it to reliably trigger the area - Use the area sensor to trigger when a car goes from "driveway" to "street". This should give you an indication that the car has moved down the driveway toward the street.
- If the area sensor is not quite reliable enough, you could enable the
distance to...sensors for each car, and use those to decide when a car is at/near the end of the driveway. - For returning home, trigger on the area switching from
UnknowntoStreet, or fromStreettoDriveway- depending on whether you want to trigger the instant the car can be "seen" (eg for lights / gate) or when the car is reliably close to the parked location (for door locks etc). - You could guard against some false triggers by enabling the
area last seensensor, and only considering a car to be away if the last area it was seen in wasStreet, and otherwise assume that the garage proxies are not working, etc.
You'll still need to think carefully about different corner cases, like if you just drive past the house and continue on, or if say an upstairs bedroom proxy can "see" your car driving down a street that backs onto the property etc.
Hopefully that's helpful.
Since I've enabled the discussions feature on the repo, I'll convert this to a discussion topic rather than an issue, so please feel free to continue the chat over there 👍🏼