Comments (31)
If you watch in the terminal after 15 minutes all your apple devices will change their mac address. I am working on supporting the home assistant app that adds an id to your iphone: https://apps.apple.com/us/app/room-assistant/id1538642237?ign-itsct=apps_box_link&ign-itscg=30200
from espresense.
I include in the fingerprint everything I know to not be random. If you get the same fingerprint then it's either untrackable, or we need to look in more depth to find something else to add to the fingerprint. With apple as focused on privacy as they are, we are lucky, we can deduce this much info from the advertisements.
from espresense.
https://sciendo.com/article/10.2478/popets-2019-0057
This mentions we can connect to the GATT service and ask for the model string. That would help you right?
from espresense.
https://sciendo.com/article/10.2478/popets-2019-0057
This mentions we can connect to the GATT service and ask for the model string. That would help you right?
Yes, this looks to be the solution. Great find! Is this easy to add? I wonder if there would be a small performance hit with the GATT query.
from espresense.
Well I have 7 esp 32s, if every single one of them made this query it would be a mess. So I think we're in distributed computing territory now. The ESP's need to talk to each other and have only one of them do the query...
from espresense.
Same issue two separate Iphone's with the name fingerprint ID.
from espresense.
I think I have the same issue. As you can see in the image below, on the left side, the person with the phone, was away from home (very very far away, and I live in a 5th floor, so signal was not captured from the street), but it still received some location updates (incorrectly):
I can now clearly identify that this is picking two different devices. While the known device is stationary, it is picking up signal of some other device.
from espresense.
GREAT project but same issue with the iPhone ID's .. It does show different MAC addresses in the Terminal though .. couldn't we use the MAC address iso the Apple ID: ? also .. the MAC addresses shown in the Terminal are NOT the same as on the iPhones ??? I do not recognise any of them on my Apple devices or are they in a different format ?
from espresense.
If you watch in the terminal after 15 minutes all your apple devices will change their mac address. I am working on supporting the home assistant app that adds an id to your iphone: https://apps.apple.com/us/app/room-assistant/id1538642237?ign-itsct=apps_box_link&ign-itscg=30200
That's great news @DTTerastar! I'm quite keen to work around this issue as I thought I could fix it by simply getting rid of the iPhone 8 Plus (I've just got an iPhone 13 Pro Max, so my daughter will have my old 11 Pro Max and the 8 Plus would be the "emergency phone"). Unfortunately, it seems Apple fully backs up and restores ALL configuration onto a new phone - including the elements that ESPresense uses to make up the Bluetooth ID. So now my new iPhone 13 Pro Max has the same ID as the 11 Pro Max. Million dollar question is, do you have an ETA for Room-Assistant app support?
from espresense.
If you watch in the terminal after 15 minutes all your apple devices will change their mac address. I am working on supporting the home assistant app that adds an id to your iphone: https://apps.apple.com/us/app/room-assistant/id1538642237?ign-itsct=apps_box_link&ign-itscg=30200
That's fantastic!
from espresense.
Great project, thanks!
Wondering, wouldn’t it be possible to take the same approach with Apple devices as Andrew Freyer’s monitor.sh script does ? (It works well).. https://github.com/andrewjfreyer/monitor
from espresense.
I think that uses classic bluetooth. With BTLE I can get 3 position updates a second for certain devices, classic bluetooth is much slower and uses more battery. Monitor is very clever about how often it probes for device. The ESP32 also isn't great at classic bluetooth in general, but it is a possibility for hard to fingerprint devices...
from espresense.
2.0.0 is out with this feature. You must turn on Query for it to happen. It's not 100% reliable yet, please help test it!
from espresense.
Tested O.K. with 2 iPhones. Somewhat weird numbers but I believe it is beyond your control
iPhone12 - reported as apple:1006:10-8-iphone13-2
iPhone11 - reported as apple:1006:10-8-iphone12-3
Without the Query active they both would be reported as
apple:1006:10-8
There are no other iPhones around so there is no explanation why suffixes -2 and -3 not -1. Also iPhone12 shows as iphone13 and iphone11 as iphone12. Furthermore each phone has it's own name in the iPhone settings. Yet in the MQTT JSON the name is iphone.
"name":"iPhone"
Regardless none of the above is crucial to the performance of ESPresence. You did a very good job. Thanks.
from espresense.
iPhone12 = iPhone13,2. that's just apples wacky "model" numbering. All i do it it kebab it so the , becomes -.
https://www.theserverside.com/definition/Kebab-case#:~:text=Kebab%20case%20%2D%2D%20or%20kebab,between%20words%20with%20a%20dash.&text=The%20term%20comes%20from%20the,together%20on%20a%20shish%20kebab.
from espresense.
Just installed the latest build (2.0) .. Thank you !! I see 2 different iPhones now which is correct but the MAC addresses do not match.
Sample :
12:51:22.814 -> 0 New | MAC: 66396e8036d3, ID: apple:1006:10-6
12:53:18.705 -> 0 New | MAC: 7a86b131eff6, ID: apple:1006:10-12
12:53:18.705 -> 0 New | MAC: 7a86b131eff6, ID: apple:1006:10-12
12:55:51.388 -> �[31m1 Del | MAC: 65a0f5b16ba3, ID: apple:1005:9-12
What is the meaning of "Del" btw ?
from espresense.
Turn on the "Query" feature to ask the phones what model number they are to see if that makes the fingerprint unique.
Del is the opposite of New. It means we haven't seen this mac for 300 seconds so were stopping tracking it. Once it comes back it'll be a New. We keep a bunch of filters (to reduce rssi noise) per mac so we can't keep all macs in memory.
from espresense.
Hi, thank you for the quick response .. I have it already on. Am I missing something ?
from espresense.
This is the result :
from espresense.
Some of my devices are Apple Airtags. Interesting article about changing their ID's can be found here : https://adamcatley.com/AirTag
from espresense.
Install https://apps.apple.com/us/app/room-assistant/id1538642237?ign-itsct=apps_box_link&ign-itscg=30200 you'll then see the uuid shown in the app.
from espresense.
Great ! Thanks man. Now the device ID as shown in the App is "seen" by the beacon. Strange thing is I have 2 iphones, one broadcasts and is seen by the beacon and the other one not. Not sure why ...
Thank You ! Curious to seen how reliable this can all work in practice !
from espresense.
Also iPad Mini 4 doesn't show up .... Only my iPhone 8+ running IOS 15.x
from espresense.
Hi, I successfully installed the room-assistant integration in Home Assistant via MQTT. First conclusion is that indeed the iPad Mini does not update regularly (has been doing it once or twice) Calibration does seem to work relatively well ! Great job man !!!
from espresense.
I've never used the room assistant integration. I haven't designed things to be compatible. Just the app so far.
from espresense.
Do you mean mqtt_room?
from espresense.
In order for the device to send nearby info it needs to be added to iCloud with at least 2 other devices. Is your iPad Mini added to iCloud?
from espresense.
In order for the device to send nearby info it needs to be added to iCloud with at least 2 other devices. Is your iPad Mini added to iCloud?
That was the issue ! I recently changed my Apple ID password but wasn't sync'ed withe the iPad yet .. Now works perfectly. BIG thanks !
from espresense.
Do you mean mqtt_room?
I use both now in Home Assistant. mqtt_room for the Apple Airtags (not working well, ID's change constantly) and the normal sensor MQTT for the roomassistant MQTT messages
from espresense.
Yeah, Airtags have too much privacy baked in to actually fully track them. BUT, we can at least "count" the number of them in a room w/ an additional app (still need to write that!).
from espresense.
I'm going to close this since it's largely fixed with the room assistant app support, but specific issues w/ getting the new fingerprints to work can be opened as separate issues.
from espresense.
Related Issues (20)
- Devices removed and require re-enrollment HOT 8
- Feature request: Provide BLE sensor data to Home Assistant topics for MQTT Discovery
- Automatically Update does nothing HOT 1
- Settings for immediate reaction? HOT 2
- esp32-s3 won't start correctly without serial console HOT 25
- Status LED HOT 4
- Option for a gateway HOT 1
- WebSocket connection Faild for Floorplaner
- ESP32-S3 Boot Loop HOT 1
- Get data from Xiaomi MiJia Bluetooth temperature and humidity sensor hygrothermography model: LYWSDCGQ/01ZM HOT 2
- ESP32 WRoom with sen0395 HOT 1
- MQTT connection times out every 60 seconds due to TCP HOT 5
- Feature Request: add integration for i2c BME680 sensor HOT 3
- Is the ESP32C3SuperMini supported? HOT 2
- Issue Description for ESP32 MQTT Issue with ESPresense Adapter:
- Hidden 40 MHz wide SSID broadcast whilst connected to main AP anyway - request disable local AP mode entirely
- Support for ESP32-C6 HOT 5
- [BUG] Stack overflow in "TMR SVC" Task - Random crash and reboot HOT 1
- Enrolling iOS device does not work in MD5Atom version HOT 1
- Radar sensor: Hi-Link LD2450 HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from espresense.