Skip to content

Commit b4dc0bc

Browse files
sittnerbdraco
andauthored
Add thermopro BLE support (#5593)
Co-authored-by: J. Nick Koston <nick+github@koston.org> Co-authored-by: J. Nick Koston <nick@home-assistant.io> Co-authored-by: J. Nick Koston <nick@koston.org>
1 parent dd41644 commit b4dc0bc

File tree

4 files changed

+117
-0
lines changed

4 files changed

+117
-0
lines changed

content/components/_index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,7 @@ Sensors are organized into categories; if a given sensor fits into more than one
292292
"Mopeka Pro Check LP","components/sensor/mopeka_pro_check","mopeka_pro_check.jpg","Tank level"
293293
"Mopeka Standard Check LP","components/sensor/mopeka_std_check","mopeka_std_check.jpg","Tank level"
294294
"RuuviTag","components/sensor/ruuvitag","ruuvitag.jpg","Temperature & Humidity & Accelerometer"
295+
"ThermoPro BLE","components/sensor/thermopro_ble","thermopro_tp357.jpg","Temperature & Humidity"
295296
"Xiaomi BLE","components/sensor/xiaomi_ble","xiaomi_mijia_logo.jpg","Various"
296297
{{< /imgtable >}}
297298

22.6 KB
Loading
Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
---
2+
description: "Instructions for setting up ThermoPro Bluetooth-based temperature and humidity sensors in ESPHome."
3+
title: "ThermoPro BLE Sensors"
4+
params:
5+
seo:
6+
description: Instructions for setting up ThermoPro Bluetooth-based temperature and humidity sensors in ESPHome.
7+
image: thermopro_tp357.jpg
8+
---
9+
10+
The `thermopro_ble` sensor platform lets you track the output of ThermoPro Bluetooth
11+
Low Energy devices using the {{< docref "/components/esp32_ble_tracker" >}}. This component will track the
12+
temperature, humidity, battery level and signal strength of the ThermoPro device every time the
13+
sensor sends out a BLE broadcast.
14+
15+
## Supported Devices
16+
17+
This component supports multiple ThermoPro BLE sensor models:
18+
19+
- **TP3xx series** (e.g., TP357S): Temperature, humidity, and battery level sensors. Testing has been primarily done with TP357S devices.
20+
- **TP96x series**: Internal and external temperature sensors with battery level monitoring.
21+
- **TP970**: Internal and external temperature sensors with battery level monitoring.
22+
- **TP972**: Internal and external temperature sensors with battery level monitoring.
23+
24+
All models support signal strength (RSSI) monitoring.
25+
26+
{{< img src="thermopro_tp357-full.jpg" alt="Image" caption="ThermoPro TP357 Temperature and Humidity Sensor over BLE." width="80.0%" class="align-center" >}}
27+
28+
```yaml
29+
# Example configuration entry
30+
esp32_ble_tracker:
31+
32+
sensor:
33+
# TP3xx series example (TP357S with humidity)
34+
- platform: thermopro_ble
35+
mac_address: XX:XX:XX:XX:XX:XX
36+
temperature:
37+
name: "ThermoPro Temperature"
38+
humidity:
39+
name: "ThermoPro Humidity"
40+
battery_level:
41+
name: "ThermoPro Battery Level"
42+
signal_strength:
43+
name: "ThermoPro Signal Strength"
44+
45+
# TP96x/TP970/TP972 example (with external temperature probe)
46+
# - platform: thermopro_ble
47+
# mac_address: YY:YY:YY:YY:YY:YY
48+
# temperature:
49+
# name: "ThermoPro Internal Temperature"
50+
# external_temperature:
51+
# name: "ThermoPro External Temperature"
52+
# battery_level:
53+
# name: "ThermoPro Battery Level"
54+
# signal_strength:
55+
# name: "ThermoPro Signal Strength"
56+
```
57+
58+
## Configuration variables
59+
60+
- **mac_address** (**Required**, MAC Address): The MAC address of the ThermoPro device.
61+
62+
- **temperature** (*Optional*): The information for the temperature sensor.
63+
64+
- All options from [Sensor](#config-sensor).
65+
66+
- **external_temperature** (*Optional*): The information for the external/probe temperature sensor.
67+
Some models (TP972, TP970, TP96x) support dual temperature readings - one internal and one from an external probe.
68+
69+
- All options from [Sensor](#config-sensor).
70+
71+
- **humidity** (*Optional*): The information for the humidity sensor. Only available on TP3xx devices.
72+
73+
- All options from [Sensor](#config-sensor).
74+
75+
- **battery_level** (*Optional*): The information for the battery level sensor.
76+
77+
- All options from [Sensor](#config-sensor).
78+
79+
- **signal_strength** (*Optional*): The information for the signal strength (RSSI) sensor.
80+
81+
- All options from [Sensor](#config-sensor).
82+
83+
## Setting Up Devices
84+
85+
To set up ThermoPro devices you first need to find their MAC Address so that ESPHome can
86+
identify them. So first, create a simple configuration without any `thermopro_ble` entries
87+
like so:
88+
89+
```yaml
90+
esp32_ble_tracker:
91+
on_ble_advertise:
92+
- then:
93+
- lambda: 'ESP_LOGD("ble_adv", "BLE device address: %s name: %s", x.address_str().c_str(), x.get_name().c_str());'
94+
```
95+
96+
After uploading the ESP32 will immediately try to scan for BLE devices such as the ThermoPro, so
97+
you will see messages like this (please note the TPxxxx model name):
98+
99+
```log
100+
[13:36:43][D][ble_adv:042]: BLE device address: XX:XX:XX:XX:XX:XX name: TP357S (XXXX)
101+
```
102+
103+
Note that it can sometimes take some time for the first BLE broadcast to be received.
104+
105+
Then just copy the address (`XX:XX:XX:XX:XX:XX`) into a new `sensor.thermopro_ble` platform
106+
entry like in the configuration example at the top.
107+
108+
> [!NOTE]
109+
> The ThermoPro BLE component listens passively to packets the device sends by itself.
110+
> ESPHome therefore has no impact on the battery life of the device.
111+
112+
## See Also
113+
114+
- {{< docref "/components/esp32_ble_tracker" >}}
115+
- {{< docref "/components/sensor" >}}
116+
- {{< apiref "thermopro_ble/thermopro_ble.h" "thermopro_ble/thermopro_ble.h" >}}

static/images/thermopro_tp357.jpg

7.55 KB
Loading

0 commit comments

Comments
 (0)