I wish to create an app for my phone which shows me a list with every single SmartTag and its battery.
Challenge: from BLE ad, I can extract battery info, but I can’t judge which SmartTag does it belongs to. Because SmartTags are randomizing their BT MAC address constantly.
Challenge 2: where these tags (and the phone) is planned to be, there is no network coverage.
Shooting for web APIs is something I can’t use.
So how can I extract the ID information for my SmartTags within my Android App which is installed to the same Android phone that activated the SmartTags? (Phone still has SmartThings Find installed).
They don’t report it as an attribute but you can certainly see the tag battery level via the API. Unfortunately the Advanced Web App doesn’t seem to make the full device object visible, which is a significant omission in my book. If you’ve gone to the trouble to pull objects from the API you might as well make them available in their raw form.
Unfortunately that doesn’t help the OP, though there might perhaps be some other static metadata in the API that is also visible over BLE and would allow the tags to be identified.
You just need https://api.smartthings.com/devices/xxxxxxxxxxxxxxxx so you can see the device object. The device object always has an object associated with the device type and in this case tags are BLE_D2D devices and the object of interest is ‘bleD2D’.
The information you’re seeking without using the SmartThings API is not supported by the SmartTags. SmartTags require a connection with the SmartThings app to leverage their full range of capabilities, including remote tracking and searching.
To ensure you get the most out of your SmartTag, it’s essential to use the SmartThings app. For further details, you can refer to this official Samsung Support article, which outlines the features and requirements for SmartTag functionality.