Some background:
I am trying to get readings from a BLE temperature sensor (Blue PUCK T-PROBE).
The readings are transmitted through advertising packets, encoded as a sequence of bytes inside the Service Data field for the standard temperature service with 16-bit UUID 2a6e. Apparently, this format is standardized in Environmental Sensing Service. Getting readings should be completely passive and doesn't require establishing a connection to the sensor. Indeed, it can be passively read both with nRF Connect and with custom code using win_ble.
I was unable to find a way to get readings with this library.
I've tried discovering services of the sensor without establishing a connection, but no success. Documentation is clear on that saying You need to first discover services before you are able to read and write to characteristics.. Yet the sensor isn't meant to be connected.
I've tried discovering services after connecting to the sensor. Discovery finishes successfully, but the list of discovered services doesn't contain the temperature service 2a6e. Apparently, parsing Service Data is the only way to get temperature readings. In any case, even if it would be possible to get them after a connection, reading a dozen of sensors (with a practical limit on the number of simultaneous connections in mind) doesn't seem reasonable.
Is there any way to retrieve raw bytes from Service Data fields in advertisement packets? Specifically, without a connection to the target device.
Some background: I am trying to get readings from a BLE temperature sensor (Blue PUCK T-PROBE). The readings are transmitted through advertising packets, encoded as a sequence of bytes inside the Service Data field for the standard temperature service with 16-bit UUID
2a6e
. Apparently, this format is standardized in Environmental Sensing Service. Getting readings should be completely passive and doesn't require establishing a connection to the sensor. Indeed, it can be passively read both with nRF Connect and with custom code using win_ble.I was unable to find a way to get readings with this library. I've tried discovering services of the sensor without establishing a connection, but no success. Documentation is clear on that saying
You need to first discover services before you are able to read and write to characteristics.
. Yet the sensor isn't meant to be connected. I've tried discovering services after connecting to the sensor. Discovery finishes successfully, but the list of discovered services doesn't contain the temperature service2a6e
. Apparently, parsing Service Data is the only way to get temperature readings. In any case, even if it would be possible to get them after a connection, reading a dozen of sensors (with a practical limit on the number of simultaneous connections in mind) doesn't seem reasonable.Is there any way to retrieve raw bytes from Service Data fields in advertisement packets? Specifically, without a connection to the target device.