From 80a3f7d2c673f3a67d95b403310fcd732ee50e4c Mon Sep 17 00:00:00 2001 From: Sascha Ittner Date: Sat, 8 Nov 2025 13:40:18 +0100 Subject: [PATCH 1/7] added thermpro tp357 documentation --- content/components/_index.md | 1 + .../sensor/images/thermpro_tp357-full.jpg | Bin 0 -> 23160 bytes content/components/sensor/thermpro_tp357.md | 87 ++++++++++++++++++ static/images/thermpro_tp357.jpg | Bin 0 -> 7731 bytes 4 files changed, 88 insertions(+) create mode 100644 content/components/sensor/images/thermpro_tp357-full.jpg create mode 100644 content/components/sensor/thermpro_tp357.md create mode 100644 static/images/thermpro_tp357.jpg diff --git a/content/components/_index.md b/content/components/_index.md index c54d7772c4..f4537eff96 100644 --- a/content/components/_index.md +++ b/content/components/_index.md @@ -288,6 +288,7 @@ Sensors are organized into categories; if a given sensor fits into more than one "Mopeka Pro Check LP","components/sensor/mopeka_pro_check","mopeka_pro_check.jpg","Tank level" "Mopeka Standard Check LP","components/sensor/mopeka_std_check","mopeka_std_check.jpg","Tank level" "RuuviTag","components/sensor/ruuvitag","ruuvitag.jpg","Temperature & Humidity & Accelerometer" +"ThermPro TP357","components/sensor/thermpro_tp357","thermpro_tp357.jpg","Temperature & Humidity" "Xiaomi BLE","components/sensor/xiaomi_ble","xiaomi_mijia_logo.jpg","Various" {{< /imgtable >}} diff --git a/content/components/sensor/images/thermpro_tp357-full.jpg b/content/components/sensor/images/thermpro_tp357-full.jpg new file mode 100644 index 0000000000000000000000000000000000000000..09413dea3f55ec5e95ffd73bd0947ea1663d0fb4 GIT binary patch literal 23160 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 Q$Ai&@VFZvC5LSQx*{)7Is{jB1 literal 0 HcmV?d00001 diff --git a/content/components/sensor/thermpro_tp357.md b/content/components/sensor/thermpro_tp357.md new file mode 100644 index 0000000000..1c9fb3ab05 --- /dev/null +++ b/content/components/sensor/thermpro_tp357.md @@ -0,0 +1,87 @@ +--- +description: "Instructions for setting up ThermPro TP357 Bluetooth-based temperature and humidity sensors in ESPHome." +title: "ThermPro TP357 BLE Sensor" +params: + seo: + description: Instructions for setting up ThermPro TP357 Bluetooth-based temperature and humidity sensors in ESPHome. + image: thermpro_tp357.jpg +--- + +The `thermpro_tp357` sensor platform lets you track the output of ThermPro TP357 Bluetooth +Low Energy devices using the {{< docref "/components/esp32_ble_tracker" >}}. This component will track the +temperature, humidity, battery level and signal strength of the TP357 device every time the +sensor sends out a BLE broadcast. + +{{< img src="thermpro_tp357-full.jpg" alt="Image" caption="ThermPro TP357 Temperature and Humidity Sensor over BLE." width="80.0%" class="align-center" >}} + +```yaml +# Example configuration entry +esp32_ble_tracker: + +sensor: + - platform: thermpro_tp357 + mac_address: XX:XX:XX:XX:XX:XX + temperature: + name: "ThermPro Temperature" + humidity: + name: "ThermPro Humidity" + battery_level: + name: "ThermPro Battery Level" + signal_strength: + name: "ThermPro Signal Strength" +``` + +## Configuration variables + +- **mac_address** (**Required**, MAC Address): The MAC address of the ThermPro TP357 device. +- **temperature** (*Optional*): The information for the temperature sensor. + + - All options from [Sensor](#config-sensor). + +- **humidity** (*Optional*): The information for the humidity sensor + + - All options from [Sensor](#config-sensor). + +- **battery_level** (*Optional*): The information for the battery level sensor + + - All options from [Sensor](#config-sensor). + +- **signal_strength** (*Optional*): The information about the BT RSSI + + - All options from [Sensor](#config-sensor). + +## Setting Up Devices + +To set up ThermPro TP357 devices you first need to find their MAC Address so that ESPHome can +identify them. So first, create a simple configuration without any `thermpro_tp357` entries +like so: + +```yaml +esp32_ble_tracker: + on_ble_advertise: + - then: + - lambda: 'ESP_LOGD("ble_adv", "BLE device address: %s name: %s", x.address_str().c_str(), x.get_name().c_str());' +``` + +After uploading the ESP32 will immediately try to scan for BLE devices such as the ThermPro TP357, so +you will see messages like this (please note the TP357S name): + +```log +13:31:53 [D] [ble_adv:042] BLE device address: XX:XX:XX:XX:XX:XX name: TP357S (XXXX) +``` + +Note that it can sometimes take some time for the first BLE broadcast to be received. + +Then just copy the address (`XX:XX:XX:XX:XX:XX`) into a new `sensor.thermpro_tp357` platform +entry like in the configuration example at the top. + +> [!NOTE] +> The ThermPro TP357 component listens passively to packets the device sends by itself. +> ESPHome therefore has no impact on the battery life of the device. + +## See Also + +- {{< docref "/components/esp32_ble_tracker" >}} +- {{< docref "/components/sensor" >}} +- {{< docref "absolute_humidity/" >}} +- {{< apiref "thermpro_tp357/thermpro_tp357.h" "thermpro_tp357/thermpro_tp357.h" >}} diff --git a/static/images/thermpro_tp357.jpg b/static/images/thermpro_tp357.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2d57b7faafeda8f38d89c128b26d4327173bc44f GIT binary patch literal 7731 zcmb7obzD^4*8drXfuXx=C_%bIKtNDQkw&^fx>34Yx&%QwM7mo-x<$GM5l}%X>39!5 z_ul9J@w>nGzH9cG{r#*uYwxr7TIcMWxtlcrU*VDbBLD&t2ZRFvZmt0$85au^Hw$xw z=W{n}#AA8or#I^;Rq`@2Mo-mL9?2^`1hoMGCCARp-W62}0PG#yT+|*vK#a4X0A@sPoF9Q|B;So0MHWveB!+I^&i##-vS(S3s*A$fFMAzl$n!@8;FfT zEad6tbc@qLOl)RtVh-Z>Am(rZ0|fEhE#LGnymO1K{$Lak0>myFYBJ#1h(V07`ZsL) zZ`jP*#U9iV0Ckwm?Hxe>C^~;(^IPn5i|y^)!Px%L?Fg|g95mIzo(a6DfyaP6pbR_( z5P&J*4m=0!05^aW>>WUkE1(9-AN&V<%0Ko`K`T?x>N#KrTF3&9fIVRH#~!$S2A~c| zf6uL}B|qOE76khN0KismZVs6N06hr+uHtWQE^=>fuJQl?x�p9R9X<%mDzA-ylE! zZywWI0Kf|YfQH_`d8TOq&=?K?{brs&jNr3I9E!e0Ps2k0Pa|UzV-jZxZ$9|zvk`#tMiZfyIBNe04NH|Z377vY%n+s zhKdTqL`O%1V`E}tV_{-p;ouVDL_fI=FT)L@J_C>c=nu$w<2cS6(W|~zid4yQ^&wH0)&fTMpMTL$S>3=>exIlNixfB z@Y8KbKEEgooc7Yg{3-Kt7GKSW_J^H8NUpd!H%?tHIoawS)1{nU{jayt!G!rfz$! zl-qY=0sx>(`yK@V_CwfQg~JB2lkwoA!0ejBtUk1~z^FA>-am0Q^3Ctu*nJZdZ>w%# zJ_ssMM$J#)vE0Qs4v!e4d&rA__IuQ0Z@Im^_*2f+g1!a6X!#$XhwAsxR5}vDSp(P&b4557}`CDk9h&3t;6xLMF#%4MmT zk+GTO%AV=QS1kcOxdEQ;Y%gEB$J_6#7u?5VA~9Yf?A{ZuByGoNFwBE_h{VO0Kb;(& zPMV{qCzGfTujR+l-f^t;7JhURYLvPQ2yM6XXYY}Xm$Wm9$lItv=|Z5bp~hd1H2vZ2 zi-q1bjy0l=b}ufTSXRJwhO-&Uy>^4%AV)fk7|}=q(}||Vm`hyMrsLduj0ZZ6Kp=%@$6*; z`xNh!_3MpKNw$}<^W6aNn=a(d{Fv2udaRzWTcdO8?$!PNK273nTsN%Ny5ng5$v&dJ zK+|WL!B2HY^LQf`mtUj!Lz3c@33ZB^zx(qxO{E5eMo+|N>S~kt^mW>~|?5EIERP(YQ{r8-82Ni@h3>0y+-ofh87r3Km;ErsCKTUKKqfVj=!-UCG}J6r8E(VFaz6*t zE^E_>pq+`s{Q^%Bk8&e4h0y*6z%rd{)SES3w$c}=z@~9BZKUY*x&gqg$U$&hK+vEV z|Eegr<%d8D6^2iU;BgAr=zB*TNn?RhW?CB$- znr4Nf9v=^pN2KzHm#U5tl{mIyHCvNdn^a$_I)|^0D%my2pk|=h(~GfHU8cz&7$8pleiYE*ExQFHFDjf4^mIG9GcG%9&HT7)=2oM3n)659 z`~~|>taqiFOig~+pi%`7;Tih0&QIgYRUIEVC@<&rJ@~ZZxZUEIsV#q`e*+|L;RXL} z?peF2aP>)@@tNuKF|s(j&t0?G*!AN*ZIzp1yU2x{!^YcInbo!&{UzD0jO}h$NlS?} z>NhKOf^|d>xb2=u7l|6BT+yj*f6vHdG!S^vYG9g0oI--*?OBHT%_qs-olB$^>oj;T zWa@HQxla5-afQ`IYj={xS-`7qivL=@UVcaFev7NMSoga()j5GF;pLAE8sU>2%CyY< zvxALZ%rspvrf@Sfrg;W?(a0}EjtxUZI&YE3UDtXcveC zS7M@C_kaSobU>IQH9`oD1wT6SOAje69pwWZ^92zl(or?K(}W`38~jT&JH~ zBZd7nU>e?xF3V5+qEb53tE|gQUL-{bDNP2GvSZ&bW7n!l)3mQjGmu$Vm1#*A6=KMv zsnq&B@Yot6kG04s(;lQv7HXrn@@jBBKLjQv#v6@au&z#YBEGOad9)JLW> zH?OSRE3p2CH^iPx*?6t#%?vi<6i)W@$(cRp!XYGb7GA@;e0PR#*U^$`^IlX@a-HEJ z--nXc(u=g#Az^1j#_y%!bQb?zyat@pb*i}h3#QLBl@dwo# zZHeK#c=7t1S-VE@XQ3l>gk$`hq|U8K{nbkn58?ZZc2ca}4(nmp%KbAhJ$@R(9XF!( zKWTEYR8R7>7shgqI+2GJ$o>q%VM1cpUQ*nrHNm4k|pj)*i}b+eAGDUFA40*P5AP$^MtNh0#{*R z&J-&Hxz@1gwH0??P3>)G%8`n-VeF&MX>HmlQQyzsnh+O7!&7RXA2$0FaQL3iXzqEh z4@YtkdKxyT{cN`EkAuw!*Hw7?%qR+G&syc{JPe#4-g(ydX{~8`@{B70XE-{tY*KTW zcDK2Kmm*W}(l5@9U$&sR7}`Ws;39dmrovn&54 zpR%|P3YzxO46MrU!lU+&}&y)8M89bi{(yq*m&xm$KNBG5>yKAu3~vAQZ^F0Kuz zy5z6+mUngxFp(liyVQ*jzD5ka#0@=lr+P1VQn`F^^hRO}8XEN$TGyX~A!visJ2C^| znEF~D*eYW_vPjw=>q(3t&B;k?DMn_LXYBoAG_kUZC*p)j`M&^5%0eFL zwSCvt$8N^39vhT#%OOnc{LG(E%J`nhamUA{q@l0Jwv)-~UwBEEm4u~amEONbtv|p_ z&>5|D=OO5>HGj}k5`wfs)fdut3m!5V9?&PPqb=g&c%^DprLgMk{tEX}sWHl(MVaod z-&p6yglFt5*Am=zZ>%)XXry1xLPu%%i2ZG7Q(mr$Ke^rK5T3MW7@v8$_H>*+kz*E- z__hhOd*OHnhSh6N6T_@$H7Yzk$44fwEO7|8FFO(r1+N7avcIm7GE91)<<|KjLJ`|f zm^E$9YYaa8N*j3>F&O*PZIxDoJ=HKePL5q4N9$K)VbRwKbcyn;<>M`&3B+xN4Ofyg9F9_-hhw9~pZh&$$FIlFRguEZ(Tu$B% zc?ZWb_M7SBZ7z9>Pf(%?1{S~XW#B*eya6Iln|Qq&3;L*x*qJW-0|jIvUDb~uG;fRU zn+nkhUG%z%U#DN!?)3k_s}bu@I*+S6P)UD<$8&6YJmxPuhg=IBl1^~tkh`CY>Zc5M_?X34EB)8Yp8FowDr{yf6ww(gO^snR%-3tQC;>yi6442i zAcm6#^mzVHvFif7uH6O8rV1rr(`N~-$}5tl`)>&?omk2L9P1qFzh-z~)lJH4lC0d2 zJExR(U&;VWs0?>^H)OJO)ILI*MPo?c_N|;an{icnIIbl#34k*ynmPpJrRz=W9(m+Z znDlwy0DZ+FzxeG(!Kbg2I&a6GK|^8Cakk(n!Jv%e)8~^rg=MrvL^cFRl4l&gw!w1J z?%iJMm^XXW_!i?Z^ekgsQWAT%aqFGRv`U-SIO0m?C%UC0?bFjBUpcgi%mL;KBD;)k zyVLS|8V~6$=6M>YEN$7D@FJV*j{-LUb9T~9R(|Q5mFHeu;=y8h6 zkj!gHcmXE1i1ZDx-T`e&VN-W=AN?j7NfQW}!a={D1#{J(vy?x_QTU1SO#f|@0}|zc zAjqvg_(2W;sQ4Hl2I4;{BcyMcD46gdDS!!dD90SIfXa|0cdJQ+9RyV>iUbvytL8CK zgOosKfSi2LA~xC}s0k~YfCS9jfy_jTyZjT_cjiG&`aCR}f*$2t^K=B-Qz^n*b2x)4 zBqS36nc&4>N?(P+lqe0LeXcA>LfkR|)HxCPTP6k*J}MSd#;qnH27q;aaSk%&5s7fV zXUy@0@*rkHp-+`Dxds1a18V^j0XSi|Csp7%)ISJ9K#$L>ir|rwHgN(A!rz||_~+f* zg?AOyP8}bFfZeMY8Pz+ohQ~clAx8#OI1BbuCk<3BnZXYz_z>xPbkNlr1%Y;~RkNhh z9f4*_MN6}}^<%qj-v-325>9Ss78QQ`v4rmAb{{9*4=@8R+)ULAV&%%25%A10We9d-1olUf7(WiOid9{zj z5WGe^_EUIm1XDHHisvzF1=DwdB}=pWkgMZ8~YXnEhArL_tNnJ@5N7V}FXLsx(+U z!O~gXwTC~6K<@ur@x;FY>c@MxINRHHNV3I^^$Jy}%C2esZ-7g@4yVa8DDskE#t+dK zqetKOSbM2Q$FO)Mr)N3$vqiG_Y>L-_bH*?Ra$bCm@>KjoW6KS2FNIA5yQ}Y+<-T(` zzp|(0;7-pFXOG05vY2#jcY(+qOg%btZf%PRy%*LZND28Ffya4>V7}mQ`XP;#& zhqu3{9BKU2B}c9h{*V~gZ?01u5R^0xFK*Q51=W>Z9SmjX_8jYC+}}vDuHw*RHo84b z*1a z_>t*#&>Q`;5CL)KX>XQwr^OngK<(B39Er#ZayMz+0|Z)%8y3X9!pTnXKEQXnyox#5 zhD#(tqAl1SL?jE=hN}DC;jHr!#ao)^q1X)O(ajBeH%5lHW-J7c zG+V7J!YcUa>B%g{hl7WeE__7l+wrX{cKC|EB9dLGCX22Pe?JysYTq7i$i||I-MYbm zu3B}-$bL7>xJ&KbL|LzJB<1^q!dH&0R9Oj!qAl$?^NTPKqG}o+78MJbZI*Jp^w1`q zZSE1I84UsL-h+o^FD!de1u}RC9k-F#EHty39Cps(3Nh7uS`E`SQNVkug>vkuNd?CA zlLk%HoUPzI8tXFnMt%ky&6l{~u5gfg=E%guhfbNQyymaWVX#JFJ%x_pALopftzle7 z%WPWprGhUMDt@#r{~YlhB(yV~l#V}9a*fd}Re$xA;Wgj0L`o%jbK0*_9|;CF?(&nc zB84{>2FO5zOklt8`|UUG zSLzaVzv~b0h5zWeudp}Q=j7ELceZ}2QX)vlE0C?n_=x(ImGoXRn`1A<)!O?9`uU6- zK;aB;%w61eQ}+>Q7ZSp?Oob+mmb^3;33)#!__JcvKyWfPe)_2ghq;KfwXB_tcnFE1 zpri1N9ZdKEUELzTFFjqvZgcx)ap;M6_w+LLzLh^NGdT=pD~O|(z9x5sy7@yW6EzQ& zap6WFL42^rlMR9`VyK0Z@eiK9pApQv@4m31F|1QyLXEX7v-hy_hSJ=CL3>8)&3>r| zyFlIHn;>7M+?R&&=Pw^zDljAcWnXK57`^1)Prw@~mhPW;^Im-n^Sfd)w70g~yAX|| z=E{N_jhNK_DP94R zfj%hz(3&+AryoUI#y+Tu?A^CL<(# ze1-xT$4X-W|;uo!L8cmyV^5v3uO)^$}6x(9! z40~&b6wWj^hhzN4eiH?Cylop^a!9M3V9pY)B;?*abaV-eUof~UZ@E|N%TRRilW|-n zYltZzha8R(A>_X%9k7=YF Date: Mon, 10 Nov 2025 10:42:22 +0100 Subject: [PATCH 2/7] fixed product name typo --- content/components/_index.md | 2 +- ...p357-full.jpg => thermopro_tp357-full.jpg} | Bin .../{thermpro_tp357.md => thermopro_tp357.md} | 36 +++++++++--------- ...thermpro_tp357.jpg => thermopro_tp357.jpg} | Bin 4 files changed, 19 insertions(+), 19 deletions(-) rename content/components/sensor/images/{thermpro_tp357-full.jpg => thermopro_tp357-full.jpg} (100%) rename content/components/sensor/{thermpro_tp357.md => thermopro_tp357.md} (63%) rename static/images/{thermpro_tp357.jpg => thermopro_tp357.jpg} (100%) diff --git a/content/components/_index.md b/content/components/_index.md index f4537eff96..f07bce2378 100644 --- a/content/components/_index.md +++ b/content/components/_index.md @@ -288,7 +288,7 @@ Sensors are organized into categories; if a given sensor fits into more than one "Mopeka Pro Check LP","components/sensor/mopeka_pro_check","mopeka_pro_check.jpg","Tank level" "Mopeka Standard Check LP","components/sensor/mopeka_std_check","mopeka_std_check.jpg","Tank level" "RuuviTag","components/sensor/ruuvitag","ruuvitag.jpg","Temperature & Humidity & Accelerometer" -"ThermPro TP357","components/sensor/thermpro_tp357","thermpro_tp357.jpg","Temperature & Humidity" +"ThermoPro TP357","components/sensor/thermopro_tp357","thermopro_tp357.jpg","Temperature & Humidity" "Xiaomi BLE","components/sensor/xiaomi_ble","xiaomi_mijia_logo.jpg","Various" {{< /imgtable >}} diff --git a/content/components/sensor/images/thermpro_tp357-full.jpg b/content/components/sensor/images/thermopro_tp357-full.jpg similarity index 100% rename from content/components/sensor/images/thermpro_tp357-full.jpg rename to content/components/sensor/images/thermopro_tp357-full.jpg diff --git a/content/components/sensor/thermpro_tp357.md b/content/components/sensor/thermopro_tp357.md similarity index 63% rename from content/components/sensor/thermpro_tp357.md rename to content/components/sensor/thermopro_tp357.md index 1c9fb3ab05..d6c6a3d59e 100644 --- a/content/components/sensor/thermpro_tp357.md +++ b/content/components/sensor/thermopro_tp357.md @@ -1,39 +1,39 @@ --- -description: "Instructions for setting up ThermPro TP357 Bluetooth-based temperature and humidity sensors in ESPHome." -title: "ThermPro TP357 BLE Sensor" +description: "Instructions for setting up ThermoPro TP357 Bluetooth-based temperature and humidity sensors in ESPHome." +title: "ThermoPro TP357 BLE Sensor" params: seo: - description: Instructions for setting up ThermPro TP357 Bluetooth-based temperature and humidity sensors in ESPHome. - image: thermpro_tp357.jpg + description: Instructions for setting up ThermoPro TP357 Bluetooth-based temperature and humidity sensors in ESPHome. + image: thermopro_tp357.jpg --- -The `thermpro_tp357` sensor platform lets you track the output of ThermPro TP357 Bluetooth +The `thermopro_tp357` sensor platform lets you track the output of ThermoPro TP357 Bluetooth Low Energy devices using the {{< docref "/components/esp32_ble_tracker" >}}. This component will track the temperature, humidity, battery level and signal strength of the TP357 device every time the sensor sends out a BLE broadcast. -{{< img src="thermpro_tp357-full.jpg" alt="Image" caption="ThermPro TP357 Temperature and Humidity Sensor over BLE." width="80.0%" class="align-center" >}} +{{< img src="thermopro_tp357-full.jpg" alt="Image" caption="ThermoPro TP357 Temperature and Humidity Sensor over BLE." width="80.0%" class="align-center" >}} ```yaml # Example configuration entry esp32_ble_tracker: sensor: - - platform: thermpro_tp357 + - platform: thermopro_tp357 mac_address: XX:XX:XX:XX:XX:XX temperature: - name: "ThermPro Temperature" + name: "ThermoPro Temperature" humidity: - name: "ThermPro Humidity" + name: "ThermoPro Humidity" battery_level: - name: "ThermPro Battery Level" + name: "ThermoPro Battery Level" signal_strength: - name: "ThermPro Signal Strength" + name: "ThermoPro Signal Strength" ``` ## Configuration variables -- **mac_address** (**Required**, MAC Address): The MAC address of the ThermPro TP357 device. +- **mac_address** (**Required**, MAC Address): The MAC address of the ThermoPro TP357 device. - **temperature** (*Optional*): The information for the temperature sensor. - All options from [Sensor](#config-sensor). @@ -52,8 +52,8 @@ sensor: ## Setting Up Devices -To set up ThermPro TP357 devices you first need to find their MAC Address so that ESPHome can -identify them. So first, create a simple configuration without any `thermpro_tp357` entries +To set up ThermoPro TP357 devices you first need to find their MAC Address so that ESPHome can +identify them. So first, create a simple configuration without any `thermopro_tp357` entries like so: ```yaml @@ -63,7 +63,7 @@ esp32_ble_tracker: - lambda: 'ESP_LOGD("ble_adv", "BLE device address: %s name: %s", x.address_str().c_str(), x.get_name().c_str());' ``` -After uploading the ESP32 will immediately try to scan for BLE devices such as the ThermPro TP357, so +After uploading the ESP32 will immediately try to scan for BLE devices such as the ThermoPro TP357, so you will see messages like this (please note the TP357S name): ```log @@ -72,11 +72,11 @@ you will see messages like this (please note the TP357S name): Note that it can sometimes take some time for the first BLE broadcast to be received. -Then just copy the address (`XX:XX:XX:XX:XX:XX`) into a new `sensor.thermpro_tp357` platform +Then just copy the address (`XX:XX:XX:XX:XX:XX`) into a new `sensor.thermopro_tp357` platform entry like in the configuration example at the top. > [!NOTE] -> The ThermPro TP357 component listens passively to packets the device sends by itself. +> The ThermoPro TP357 component listens passively to packets the device sends by itself. > ESPHome therefore has no impact on the battery life of the device. ## See Also @@ -84,4 +84,4 @@ entry like in the configuration example at the top. - {{< docref "/components/esp32_ble_tracker" >}} - {{< docref "/components/sensor" >}} - {{< docref "absolute_humidity/" >}} -- {{< apiref "thermpro_tp357/thermpro_tp357.h" "thermpro_tp357/thermpro_tp357.h" >}} +- {{< apiref "thermopro_tp357/thermopro_tp357.h" "thermopro_tp357/thermopro_tp357.h" >}} diff --git a/static/images/thermpro_tp357.jpg b/static/images/thermopro_tp357.jpg similarity index 100% rename from static/images/thermpro_tp357.jpg rename to static/images/thermopro_tp357.jpg From 3402ee4a160a75e6e4b86af880f8ad4d003f1408 Mon Sep 17 00:00:00 2001 From: Sascha Ittner Date: Tue, 11 Nov 2025 09:29:22 +0100 Subject: [PATCH 3/7] fixed log format --- content/components/sensor/thermopro_tp357.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/components/sensor/thermopro_tp357.md b/content/components/sensor/thermopro_tp357.md index d6c6a3d59e..f4439c8ff2 100644 --- a/content/components/sensor/thermopro_tp357.md +++ b/content/components/sensor/thermopro_tp357.md @@ -67,7 +67,7 @@ After uploading the ESP32 will immediately try to scan for BLE devices such as t you will see messages like this (please note the TP357S name): ```log -13:31:53 [D] [ble_adv:042] BLE device address: XX:XX:XX:XX:XX:XX name: TP357S (XXXX) +[13:36:43][D][ble_adv:042]: BLE device address: XX:XX:XX:XX:XX:XX name: TP357S (XXXX) ``` Note that it can sometimes take some time for the first BLE broadcast to be received. From bb3d4f3250f85247db904400eef4d55ca8511861 Mon Sep 17 00:00:00 2001 From: Sascha Ittner Date: Thu, 13 Nov 2025 10:48:58 +0100 Subject: [PATCH 4/7] renamed thermopro_tp357 to thermopro_ble, added supported device types --- content/components/_index.md | 2 +- .../{thermopro_tp357.md => thermopro_ble.md} | 38 ++++++++++++------- 2 files changed, 25 insertions(+), 15 deletions(-) rename content/components/sensor/{thermopro_tp357.md => thermopro_ble.md} (64%) diff --git a/content/components/_index.md b/content/components/_index.md index e0bf807fc3..5f27cf7fdc 100644 --- a/content/components/_index.md +++ b/content/components/_index.md @@ -291,7 +291,7 @@ Sensors are organized into categories; if a given sensor fits into more than one "Mopeka Pro Check LP","components/sensor/mopeka_pro_check","mopeka_pro_check.jpg","Tank level" "Mopeka Standard Check LP","components/sensor/mopeka_std_check","mopeka_std_check.jpg","Tank level" "RuuviTag","components/sensor/ruuvitag","ruuvitag.jpg","Temperature & Humidity & Accelerometer" -"ThermoPro TP357","components/sensor/thermopro_tp357","thermopro_tp357.jpg","Temperature & Humidity" +"ThermoPro BLE","components/sensor/thermopro_ble","thermopro_tp357.jpg","Temperature & Humidity" "Xiaomi BLE","components/sensor/xiaomi_ble","xiaomi_mijia_logo.jpg","Various" {{< /imgtable >}} diff --git a/content/components/sensor/thermopro_tp357.md b/content/components/sensor/thermopro_ble.md similarity index 64% rename from content/components/sensor/thermopro_tp357.md rename to content/components/sensor/thermopro_ble.md index f4439c8ff2..716d965f7a 100644 --- a/content/components/sensor/thermopro_tp357.md +++ b/content/components/sensor/thermopro_ble.md @@ -1,17 +1,20 @@ --- -description: "Instructions for setting up ThermoPro TP357 Bluetooth-based temperature and humidity sensors in ESPHome." -title: "ThermoPro TP357 BLE Sensor" +description: "Instructions for setting up ThermoPro Bluetooth-based temperature and humidity sensors in ESPHome." +title: "ThermoPro BLE Sensor" params: seo: - description: Instructions for setting up ThermoPro TP357 Bluetooth-based temperature and humidity sensors in ESPHome. + description: Instructions for setting up ThermoPro Bluetooth-based temperature and humidity sensors in ESPHome. image: thermopro_tp357.jpg --- -The `thermopro_tp357` sensor platform lets you track the output of ThermoPro TP357 Bluetooth +The `thermopro_ble` sensor platform lets you track the output of ThermoPro Bluetooth Low Energy devices using the {{< docref "/components/esp32_ble_tracker" >}}. This component will track the -temperature, humidity, battery level and signal strength of the TP357 device every time the +temperature, humidity, battery level and signal strength of the ThermoPro device every time the sensor sends out a BLE broadcast. +> [!NOTE] +> Currently this component is only tested with TP357S devices. However, it should work with TP972, TP970, TP96x and TP3xx. + {{< img src="thermopro_tp357-full.jpg" alt="Image" caption="ThermoPro TP357 Temperature and Humidity Sensor over BLE." width="80.0%" class="align-center" >}} ```yaml @@ -19,7 +22,7 @@ sensor sends out a BLE broadcast. esp32_ble_tracker: sensor: - - platform: thermopro_tp357 + - platform: thermopro_ble mac_address: XX:XX:XX:XX:XX:XX temperature: name: "ThermoPro Temperature" @@ -33,12 +36,19 @@ sensor: ## Configuration variables -- **mac_address** (**Required**, MAC Address): The MAC address of the ThermoPro TP357 device. +- **mac_address** (**Required**, MAC Address): The MAC address of the ThermoPro device. + - **temperature** (*Optional*): The information for the temperature sensor. - All options from [Sensor](#config-sensor). +- **external_temperature** (*Optional*): The information for the ambient temperature sensor. + This is only aviliable on TP972, TP970 and TP96x devices. + + - All options from [Sensor](#config-sensor). + - **humidity** (*Optional*): The information for the humidity sensor + This is only aviliable on TP3xx devices. - All options from [Sensor](#config-sensor). @@ -52,8 +62,8 @@ sensor: ## Setting Up Devices -To set up ThermoPro TP357 devices you first need to find their MAC Address so that ESPHome can -identify them. So first, create a simple configuration without any `thermopro_tp357` entries +To set up ThermoPro devices you first need to find their MAC Address so that ESPHome can +identify them. So first, create a simple configuration without any `thermopro_ble` entries like so: ```yaml @@ -63,8 +73,8 @@ esp32_ble_tracker: - lambda: 'ESP_LOGD("ble_adv", "BLE device address: %s name: %s", x.address_str().c_str(), x.get_name().c_str());' ``` -After uploading the ESP32 will immediately try to scan for BLE devices such as the ThermoPro TP357, so -you will see messages like this (please note the TP357S name): +After uploading the ESP32 will immediately try to scan for BLE devices such as the ThermoPro, so +you will see messages like this (please note the TPxxxx model name): ```log [13:36:43][D][ble_adv:042]: BLE device address: XX:XX:XX:XX:XX:XX name: TP357S (XXXX) @@ -72,11 +82,11 @@ you will see messages like this (please note the TP357S name): Note that it can sometimes take some time for the first BLE broadcast to be received. -Then just copy the address (`XX:XX:XX:XX:XX:XX`) into a new `sensor.thermopro_tp357` platform +Then just copy the address (`XX:XX:XX:XX:XX:XX`) into a new `sensor.thermopro_ble` platform entry like in the configuration example at the top. > [!NOTE] -> The ThermoPro TP357 component listens passively to packets the device sends by itself. +> The ThermoPro BLE component listens passively to packets the device sends by itself. > ESPHome therefore has no impact on the battery life of the device. ## See Also @@ -84,4 +94,4 @@ entry like in the configuration example at the top. - {{< docref "/components/esp32_ble_tracker" >}} - {{< docref "/components/sensor" >}} - {{< docref "absolute_humidity/" >}} -- {{< apiref "thermopro_tp357/thermopro_tp357.h" "thermopro_tp357/thermopro_tp357.h" >}} +- {{< apiref "thermopro_ble/thermopro_ble.h" "thermopro_ble/thermopro_ble.h" >}} From 09b91acfcd0439be7ad536e5c6515b9c9413ffbe Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Wed, 19 Nov 2025 08:29:15 -0600 Subject: [PATCH 5/7] Update content/components/sensor/thermopro_ble.md --- content/components/sensor/thermopro_ble.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/components/sensor/thermopro_ble.md b/content/components/sensor/thermopro_ble.md index 716d965f7a..224c9a443a 100644 --- a/content/components/sensor/thermopro_ble.md +++ b/content/components/sensor/thermopro_ble.md @@ -48,7 +48,7 @@ sensor: - All options from [Sensor](#config-sensor). - **humidity** (*Optional*): The information for the humidity sensor - This is only aviliable on TP3xx devices. + This is only available on TP3xx devices. - All options from [Sensor](#config-sensor). From 47b4547963f552d2751305c9ca76cc7649750caf Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Wed, 19 Nov 2025 08:29:21 -0600 Subject: [PATCH 6/7] Update content/components/sensor/thermopro_ble.md --- content/components/sensor/thermopro_ble.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/components/sensor/thermopro_ble.md b/content/components/sensor/thermopro_ble.md index 224c9a443a..c757d768da 100644 --- a/content/components/sensor/thermopro_ble.md +++ b/content/components/sensor/thermopro_ble.md @@ -43,7 +43,7 @@ sensor: - All options from [Sensor](#config-sensor). - **external_temperature** (*Optional*): The information for the ambient temperature sensor. - This is only aviliable on TP972, TP970 and TP96x devices. + This is only available on TP972, TP970 and TP96x devices. - All options from [Sensor](#config-sensor). From 9d1707b37b370c6f05c30bee2dac5725c9cd3be9 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Wed, 19 Nov 2025 10:05:58 -0600 Subject: [PATCH 7/7] tweak docs --- content/components/sensor/thermopro_ble.md | 39 ++++++++++++++++------ 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/content/components/sensor/thermopro_ble.md b/content/components/sensor/thermopro_ble.md index c757d768da..e23e83d5fe 100644 --- a/content/components/sensor/thermopro_ble.md +++ b/content/components/sensor/thermopro_ble.md @@ -1,6 +1,6 @@ --- description: "Instructions for setting up ThermoPro Bluetooth-based temperature and humidity sensors in ESPHome." -title: "ThermoPro BLE Sensor" +title: "ThermoPro BLE Sensors" params: seo: description: Instructions for setting up ThermoPro Bluetooth-based temperature and humidity sensors in ESPHome. @@ -12,8 +12,16 @@ Low Energy devices using the {{< docref "/components/esp32_ble_tracker" >}}. Thi temperature, humidity, battery level and signal strength of the ThermoPro device every time the sensor sends out a BLE broadcast. -> [!NOTE] -> Currently this component is only tested with TP357S devices. However, it should work with TP972, TP970, TP96x and TP3xx. +## Supported Devices + +This component supports multiple ThermoPro BLE sensor models: + +- **TP3xx series** (e.g., TP357S): Temperature, humidity, and battery level sensors. Testing has been primarily done with TP357S devices. +- **TP96x series**: Internal and external temperature sensors with battery level monitoring. +- **TP970**: Internal and external temperature sensors with battery level monitoring. +- **TP972**: Internal and external temperature sensors with battery level monitoring. + +All models support signal strength (RSSI) monitoring. {{< img src="thermopro_tp357-full.jpg" alt="Image" caption="ThermoPro TP357 Temperature and Humidity Sensor over BLE." width="80.0%" class="align-center" >}} @@ -22,6 +30,7 @@ sensor sends out a BLE broadcast. esp32_ble_tracker: sensor: + # TP3xx series example (TP357S with humidity) - platform: thermopro_ble mac_address: XX:XX:XX:XX:XX:XX temperature: @@ -32,6 +41,18 @@ sensor: name: "ThermoPro Battery Level" signal_strength: name: "ThermoPro Signal Strength" + + # TP96x/TP970/TP972 example (with external temperature probe) + # - platform: thermopro_ble + # mac_address: YY:YY:YY:YY:YY:YY + # temperature: + # name: "ThermoPro Internal Temperature" + # external_temperature: + # name: "ThermoPro External Temperature" + # battery_level: + # name: "ThermoPro Battery Level" + # signal_strength: + # name: "ThermoPro Signal Strength" ``` ## Configuration variables @@ -42,21 +63,20 @@ sensor: - All options from [Sensor](#config-sensor). -- **external_temperature** (*Optional*): The information for the ambient temperature sensor. - This is only available on TP972, TP970 and TP96x devices. +- **external_temperature** (*Optional*): The information for the external/probe temperature sensor. + Some models (TP972, TP970, TP96x) support dual temperature readings - one internal and one from an external probe. - All options from [Sensor](#config-sensor). -- **humidity** (*Optional*): The information for the humidity sensor - This is only available on TP3xx devices. +- **humidity** (*Optional*): The information for the humidity sensor. Only available on TP3xx devices. - All options from [Sensor](#config-sensor). -- **battery_level** (*Optional*): The information for the battery level sensor +- **battery_level** (*Optional*): The information for the battery level sensor. - All options from [Sensor](#config-sensor). -- **signal_strength** (*Optional*): The information about the BT RSSI +- **signal_strength** (*Optional*): The information for the signal strength (RSSI) sensor. - All options from [Sensor](#config-sensor). @@ -93,5 +113,4 @@ entry like in the configuration example at the top. - {{< docref "/components/esp32_ble_tracker" >}} - {{< docref "/components/sensor" >}} -- {{< docref "absolute_humidity/" >}} - {{< apiref "thermopro_ble/thermopro_ble.h" "thermopro_ble/thermopro_ble.h" >}}