About
FindMySync is a simple Mac app, which synchronizes Apple Find My data (devices, items, … location & battery info) into a custom HTTP endpoint. You could use it to sync your devices location with Home Assistant device tracker.
Installation
FindMySync is opensource, you can find the full sourcecode at https://github.com/MartinPham/FindMySync
You can find the latest prebuilt application at https://github.com/MartinPham/FindMySync/releases/tag/latest
Extract the prerelease.tar.gz, you will have a build folder, with FindMySync.app inside
Open the FindMySync.app.dmg, there will be FindMySync.app inside, you can copy it into Applications folder.
To get it work, you will have to grant Full Disk Access and Accessibility permissions:
Thanks to u/RealRhialto, I’ve changed the way it requests FindMy data, you don’t have to grant Full Disk Access anymore!
Open System Settings
Navigate to Privacy & Security
Navigate to Accessibility
Click “+” button and browse to the FindMySync.app
Navigate to Full Disk Access
Click “+” button and browse to the FindMySync.app
Usage
Find My app must be opened to keep update the devices data files.
Press Ctrl + Right click into the FindMySync.app icon, and choose Open.
Click Open button on the next dialog
When the app asks for FindMy data permission, click Grant permissions
On Folder dialog, press ⌘ + Shift +G, and write ~/Library/Caches/com.apple.findmy.fmipcore into the address bar
Click Open
Integration with Home Assistant
Adding your devices into known_devices.yaml file
findmy_<Device ID, without "-" character>:
name: <Device name>
mac: FINDMY_<Device ID>
icon:
picture:
track: true
Example
findmy_195463465CECEFA04C34357:
name: My Airtag 1
mac: FINDMY_195463465-CECE-FA04C-34357
icon:
picture:
track: true
Navigate to Endpoint
Specify your Home Assistant address on URL, with suffix /api/services/device_tracker/see
Example: http://homeassistant.local:8123/api/services/device_tracker/see
Specify Long-Live token on Authorization, with prefix Bearer
Example: Bearer eyJKkmn….
Check Status to see if devices data are sent successfully