Shelly BLU H&T Display ZB
Short device name: SBHT-103C
Shelly Bluetooth Device Id: 0x0C
Functional description
- Buttons: 1
- E-Ink display
- SHT40 temp&humidity sensor
- XYC ALS1206 ambient light sensor
The device continuously measures temperature, humidity and illuminance using its built-in sensors. It transmits this data in two ways:
- BLE Advertising - The measured values are broadcast periodically as BLE advertising packets
- Zigbee Communication - The sensor data is also sent over the Zigbee network to the bound devices
Device specific features
- invert display
- date/time display
- clock synchronization by BLE advertising or Zigbee Time cluster (once a day)
- clock jitter correction
- °C/°F switching
- BLE / ZigBee on/off
- illuminance levels: dark, twilight, bright
- power saver mode (display stops updating when there is no light detected)
Time synchronization
The device periodically synchronizes its clock (once every 24 hours) while time sync is enabled. The transport is chosen per-attempt:
- If Bluetooth is enabled → BLE sync.
- Else if the device is not on a Zigbee network (no network, or lost parent) → BLE sync.
- Otherwise → Zigbee sync.
BLE sync passively listens for Date/Time Broadcast advertisements emitted by nearby Shelly devices. Shellies that have BLU devices registered or are enrolled as a Cloud BLE Gateway periodically send a time beacon containing the current UNIX timestamp, timezone offset, and DST information (see Date/Time Broadcast for details).
Zigbee sync reads the Time cluster attributes (Time, TimeZone, DstStart, DstEnd, DstShift, LocalTime) from the coordinator.
A forced sync (setup 2× press) always runs, regardless of the time sync enable flag, and uses the same selection rule.
Time sync can be enabled/disabled via the BLE characteristic Time sync enable (UUID 317c7868-5889-4572-b6ef-2c436ee5a92a).
Configuration using the button
- Press 1 time: Enter setup mode for 3 minutes.
In setup mode: (display shows "SEt")
- Press 1 time: Exit setup mode.
- Press 2 times rapidly: Enforce clock sync.
- Press 4 times rapidly: Enter Bluetooth pairing mode.
- Press 5 times rapidly: Enter Zigbee inclusion mode.
- Press and hold for 5 seconds: Toggle Bluetooth on/off.
- Press and hold for 10 seconds: Toggle Zigbee on/off.
- Press and hold for 30 seconds: Resets the device to factory settings.
- Press 2 times rapidly: Toggle the display segment between showing the clock or the date (DD.MM).
- Press 3 times rapidly: Switch temperature unit between Celsius and Fahrenheit.
- Press 4 times rapidly: Invert the display colors.
- Press 5 times rapidly: Toggle 12h/24h clock mode (only when showing time).
BLE pairing
Duration: 1 min
To enter BLE pairing, enter setup mode, and press the button 4 times. The BLE pairing process is indicated by showing "BLe".
Adding to a ZigBee network
Duration: 1 min
To start the ZigBee steering process, enter setup mode and press the button 5 times. ZigBee steering is indicated by showing "ZbP".
Zigbee Identification: The display will show "HI" during identification.
Factory reset
To trigger a factory reset, enter setup mode and hold the button for 30 seconds.
Bluetooth
Advertising (BTHome)
Beacon
Periodic 60 seconds
| Id | Label | Type |
|---|---|---|
| 0x01 | battery % | uint8 |
| 0x15 | battery low | uint8 |
| 0x1E | light | uint8 |
| 0x2E | humidity % | uint8 |
| 0x45 | temperature 0.1°C | int16 |
| 0x64 | light level | uint8 |
Device-Id packet
Periodic 60 minutes
| Id | Label | Type |
|---|---|---|
| 0x01 | battery % | uint8 |
| 0x15 | battery low | uint8 |
| 0xF0 | device type id | uint16 |
| 0xF1 | firmware version | uint32 |
| 0xF2 | firmware version | uint24 |
Events
single, with duration 2000ms
| Id | Label | Type | Events |
|---|---|---|---|
| 0x01 | battery % | uint8 | |
| 0x15 | battery low | uint8 | 1 (present if battery% < 15%) |
| 0x3A | button | uint8 | 1x short press |
Characteristics
| Characteristic | UUID | Type | Access | Default | Meaning |
|---|---|---|---|---|---|
| UNIX time | d56a3410-115e-41d1-945b-3a7f189966a1 | uint32 | rw | - | UTC timestamp |
| UTC offset | 08b83239-6f5e-4412-892d-81e59224716e | int16 | rw | - | UTC (timezone) offset in minutes |
| ZigBee enabled | 68348d04-f62c-435d-b075-cc54b9f049cc | uint8 | rw | 0 | 0: disabled, 1:enabled |
| Temperature offset | 0de178e5-a95d-4988-b042-7145d540a000 | int16 | rw | 0 | offset in 0.1°C |
| Humidity offset | 0de178e5-a95d-4988-b042-7145d540a002 | int16 | rw | 0 | offset in 1% |
| Dark threshold | c1a32099-32e8-42d8-99bb-b90ce4abe841 | uint16 | rw | 50 | ~1lux |
| Bright threshold | c1a32099-32e8-42d8-99bb-b90ce4abe842 | uint16 | rw | 500 | ~1lux |
| Invert display | 611723f5-53dd-4289-888a-7523db56bb59 | uint8 | rw | 0 | 0: black-on-white, 1: white-on-black |
| Temperature units | 8645a7a9-6bb6-41fa-a120-4034629c2519 | uint8 | rw | 0 | 0: Celsius, 1: Fahnrenheit |
| Time sync enable | 317c7868-5889-4572-b6ef-2c436ee5a92a | uint8 | rw | 1 | 0: disabled, 1: enabled |
| Clock mode 12h/24h | a9e33a3f-0396-41e5-a7c4-30511ffba2ad | uint8 | rw | 0 | 0: 24h mode, 1: 12h mode |
| Power saver | ca9d7a88-2ad3-4940-9b8b-75558d08a3b0 | uint8 | rw | 0 | 0: disabled, 1: enabled |
| Factory reset | b0a7e40f-2b87-49db-801c-eb3686a24bdb | uint8 | w | - | 1: perform factory reset |
| Battery 1 voltage | 8f8e2438-535d-478d-af0f-c3692c3c1bb1 | uint16 | r | - | voltage in 0.01V |
| Battery 2 voltage | 8f8e2438-535d-478d-af0f-c3692c3c1bb2 | uint16 | r | - | voltage in 0.01V |
ZigBee
ZigBee device info
Device Id: 0x0302 (Temperature Sensor) Profile Id: 0x104 (Home Automation)
| EP | Dir | Id | Cluster | Id | Attribute/Command | Access/Direction |
|---|---|---|---|---|---|---|
| 1 | S | 0x0000 | Basic | 0x0000 | ZCL Version | r |
| 0x0004 | Manufacturer name | r | ||||
| 0x0005 | Model Identifier | r | ||||
| 0x0007 | Power source | r | ||||
| 0x4000 | Sw Build Id | r | ||||
| 0xFFFD | Cluster Rev. | r | ||||
| S | 0x0001 | Power config | 0x0020 | Battery 1 voltage | r | |
| 0x0021 | Battery percentage remaining | rp | ||||
| 0x0040 | Battery 2 voltage | r | ||||
| 0xFFFD | Cluster Rev. | r | ||||
| C | 0x0003 | Identify | 0xFFFD | Cluster Rev. | r | |
| 0x0000 | Identify | C->S | ||||
| 0x0001 | IdentifyQuery | C->S | ||||
| C | 0x000A | Time | 0x0000 | Time | r | |
| 0x0002 | TimeZone | r | ||||
| 0x0003 | DstStart | r | ||||
| 0x0004 | DstEnd | r | ||||
| 0x0005 | DstShift | r | ||||
| 0x0007 | LocalTime | r | ||||
| S | 0x0003 | Identify | 0x0000 | Identify time | r | |
| 0xFFFD | Cluster Rev. | r | ||||
| 0x0000 | Identify | C->S | ||||
| 0x0001 | IdentifyQuery | C->S | ||||
| S | 0x0402 | Temperature measurement | 0x0000 | Measured value | rp | |
| 0x0001 | Min measured value | r | ||||
| 0x0002 | Max measured value | r | ||||
| 0xFFFD | Cluster Rev. | r | ||||
| S | 0x0405 | Relative humidity measurement | 0x0000 | Measured value | rp | |
| 0x0001 | Min measured value | r | ||||
| 0x0002 | Max measured value | r | ||||
| 0xFFFD | Cluster Rev. | r | ||||
| S | 0xFC21 | Light level MFC:0x1490 | 0x0000 | Light level | rp | |
| 0x0001 | Dark threshold | rw | ||||
| 0x0002 | Bright threshold | rw | ||||
| 0xFFFD | Cluster Rev. | r |
Bootloader
Bootloader mode duration: 30 seconds
To enter bootloader mode, hold the button while the device starts (when inserting the battery).
The display will indicate "OtA"