Skip to content

[New Sensor]: Thermosafer Children Health Thermometer #1530

@przemhb

Description

@przemhb

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:

  1. Connect to device
  2. Discover services
  3. 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

Metadata

Metadata

Assignees

Labels

new sensorRequest for a new sensor

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions