I have written a simple python script with pydbus and bluez and run it on raspberry pi to discover devices and their information in proximity. For some issues I cannot provide the script here.
After the discovery I would be able to collect a list of device and each of them looks like the following:
{'Address': '66:FB:0B:FC:82:57', 'AddressType': 'random', 'Alias': '66-FB-0B-FC-82-57', 'Paired': False, 'Trusted': False, 'Blocked': False, 'LegacyPairing': False, 'RSSI': -94, 'Connected': False, 'UUIDs':[], 'Adapter': '/org/bluez/hci0', 'ManufacturerData': {76: [16, 5, 7, 24, 186, 175, 161]}, 'TxPower': 12, 'ServicesResolved': False}
I would like to know how to make sense of the value from the key 'ManufacturerData'? I currently know that the first number represents the company identifier, in this case "76" means it is a device comes from the Apple Inc. But I have no clue on how to make sense of the latter ones [16, 5, 7, 24, 186, 175, 161].
Is there an official specification/doc that provides guide on decrypting these numbers?
Many Thanks
Manufacturer Specific Data is used to include custom data in advertisements. The data is identified by a documented company identifier but the structure of the data in the data field is freely definable by the manufacturer.
Manufacturer data is one of the fields that have been used for BLE beacons with some of the more popular formats being documented in the following "cheat sheet": https://twitter.com/josryke/status/763006284052463617