Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Apple watch inaccuracy #336

Open
UncleClaude opened this issue Oct 26, 2024 · 4 comments
Open

Apple watch inaccuracy #336

UncleClaude opened this issue Oct 26, 2024 · 4 comments

Comments

@UncleClaude
Copy link

Hi,

First off, very cool integration, I've been looking for a while to get into this but never had the time, with your integration it makes it so much easier.
I've set-up a few ESP32 I had laying around.

I configured my iPhone, my wife's iPhone and my apple watch.
The iPhones seems to be accurate however the apple watch isn't, it often gives a few meters off the actual distance if I compare it to my iPhones or if it's a 1m let's say it will go up to 3m and go back to 1m.

Is anyone has experienced this issue with their apple watch?

Config:
image

Diagnostics:
config_entry-bermuda-01JB0JEGC9VT1V9SPB76P9NYZ9.json

@agittins
Copy link
Owner

This is pretty typical for a watch, I think. We have a tiny device, transmitting a 2.4GHz signal (a frequency well into "dark arts" territory), using a tiny antenna bonded onto a porous material, packed into the smallest possible case with a bunch of other RF-blocking materials and then strapped onto a 50+ litre bag of salty water.

The fact that watches' bluetooth works at all is a legitimate miracle! 😆

Here's the last 90 minutes of my watch, and I've been sitting at my desk typing pretty much the whole time. It's actually (grabs tape...) 0.7m from the nearest proxy, but it's also strapped to my arm.
image

@agittins
Copy link
Owner

I just took a look at your diagnostics, and the intervals between adverts is quite long. Looking at the kitchen proxy, the interval_history (a count of how many seconds passed between each of the last adverts received) show:

"hist_interval": [
              23.734108649001428,
              39.03317832499852,
              7.387033709001116,
              48.943222822999815,
              31.332142225999633,
              7.679034800999943,
              15.358069541000077,
              13.789062365000063,
              157.31970572700084,
              29.082129140999314
            ],

Ideally we'd want to see all values between 1 and 3 seconds, assuming the watch is advertising at least once per second. If you are using the default bluetooth proxy settings this might explain it, and you could improve those by using the suggested settings in the wiki.

That may help a bit with getting more consistent "Area" results, however it won't change the fundamental issue that a signal from a wristwatch is always going to give highly variable signal strengths (and therefore distances) just due to its physical situation.

@UncleClaude
Copy link
Author

Hi,

Thanks for reply, didn't know watches were so unstable with bluetooth, kinda sucks tho as they seem like the perfect thing for this kind of project.

I'll try to edit the bluetooth proxy settings and see if that helps.

@agittins
Copy link
Owner

agittins commented Nov 3, 2024

It's not so much that watches are unstable with bluetooth, just that using the signal strength gives an unstable distance measurement, even if the connection itself is quite solid.

Getting the proxy reporting more regularly will definitely help, though.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants