-
-
Notifications
You must be signed in to change notification settings - Fork 275
Description
Sensor Description
Thermosafer 7A0A5
Additional information
Dear Developers,
it would be great if you could add this health thermometer. Technical details are as follows.
An AI generated summary based on the logs attached here.
BLE Device Summary –
Log 2026-02-28 14_37_32.txt
Thermosafer Log 2026-02-28 14_35_41.txt
Device Identification
- Device name: Thermosafer 7A0A5
- MAC address:
80:30:DC:D7:A0:A5 - Device class: BLE Health Thermometer
The device exposes standard Health Thermometer and Battery GATT services. :contentReference[oaicite:0]{index=0}
GATT Services
Health Thermometer Service
UUID: 00001809-0000-1000-8000-00805f9b34fb
Characteristics
| Name | UUID | Properties | Purpose |
|---|---|---|---|
| Temperature Measurement | 2A1C |
Indicate | Final measurement |
| Temperature Type | 2A1D |
Read | Measurement location/type |
| Intermediate Temperature | 2A1E |
Notify | Continuous temperature updates |
| Measurement Interval | 2A21 |
Read / Write / Indicate | Sampling interval |
The device periodically sends temperature updates via Intermediate Temperature (2A1E) notifications. :contentReference[oaicite:1]{index=1}
Battery Service
UUID: 0000180F-0000-1000-8000-00805f9b34fb
| Name | UUID | Properties |
|---|---|---|
| Battery Level | 2A19 |
Read / Notify |
Example value:
0x58 → 88%
Temperature Data Format
Example notification from characteristic 2A1E:
value: 00-09-0D-00-00
Interpretation:
Little-endian integer
0x00000D09 = 3337
Temperature conversion:
temperature_c = raw_value / 100
Example:
3337 → 33.37 °C
Observed values range approximately:
3287 → 32.87 °C
3368 → 33.68 °C
:contentReference[oaicite:3]{index=3}
Measurement Behaviour
- Notifications from 2A1E occur approximately every 4 seconds
- Device streams continuous temperature updates
- No command required after enabling notifications
Additional Vendor-Specific Service
Service: 0000FFF0
Characteristics:
| UUID | Properties |
|---|---|
| FFF1 | Read / Write |
| FFF2 | Read |
| FFF3 | Write |
| FFF4 | Notify |
| FFF5 | Read |
Purpose currently unknown and not required for temperature acquisition. :contentReference[oaicite:4]{index=4}
BLE Interaction Model
Typical interaction sequence:
- Connect to device
- Discover services
- Enable notifications
gatt.setCharacteristicNotification(2A1E, true)
gatt.setCharacteristicNotification(2A19, true)
The device then periodically pushes measurements.
Important Note for Passive BLE Monitor
Captured data originates from GATT notifications, not BLE advertisements.
Implications:
- Passive BLE Monitor will only work if the device also broadcasts measurements in advertising packets
- If it does not advertise sensor data, the device requires an active GATT connection
Minimal Decoder Logic
Temperature
def decode_temperature(data: bytes) -> float:
raw = int.from_bytes(data[:4], "little")
return raw / 100
Battery
battery = data[0]
Suggested Home Assistant Entities
Temperature
sensor.thermosafer_temperature
Source:
Service: 1809
Characteristic: 2A1E
Battery
sensor.thermosafer_battery
Source:
Service: 180F
Characteristic: 2A19
### BLE advertisements
```shell