Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions custom_components/ble_monitor/ble_parser/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -554,8 +554,8 @@ def parse_advertisement(
# Inkbird
sensor_data = parse_inkbird(self, man_spec_data, local_name, mac)
break
elif comp_id == 0x004A and local_name == "ST7" and data_len == 0x11:
# Mocreo ST7, see below under local_name checks for the other Mocreo models
elif comp_id == 0x004A and local_name in ["ST7", "ST7-CL"] and data_len == 0x11:
# Mocreo ST7/ST7-CL, see below under local_name checks for the other Mocreo models
sensor_data = parse_mocreo(self, man_spec_data, local_name, mac)
break
else:
Expand Down
4 changes: 4 additions & 0 deletions custom_components/ble_monitor/ble_parser/mocreo.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

MOCREO_TYPE_DICT = {
0x10: "ST7",
0x85: "ST7-CL",
0x81: "ST5",
0x82: "SW2",
0x83: "ST6",
Expand All @@ -32,6 +33,9 @@
0x10: {
"temperature": (5, 0, -16, True, lambda x: x / 100),
},
0x85: {
"temperature": (5, 0, -16, True, lambda x: x / 100),
},
0x81: {
"temperature": (6, 0, -16, True, lambda x: x / 100),
},
Expand Down
2 changes: 2 additions & 0 deletions custom_components/ble_monitor/const.py
Original file line number Diff line number Diff line change
Expand Up @@ -2242,6 +2242,7 @@ class BLEMonitorBinarySensorEntityDescription(
'SW2' : [["battery", "rssi"], [], ["water leak"]],
'ST6' : [["temperature", "humidity", "battery", "rssi"], [], []],
'ST7' : [["temperature", "battery", "rssi"], [], []],
'ST7-CL' : [["temperature", "rssi"], [], []],
'ST8' : [["temperature", "battery", "rssi"], [], []],
'ST9' : [["temperature", "humidity", "battery", "rssi"], [], []],
'ST10' : [["temperature", "battery", "rssi"], [], []],
Expand Down Expand Up @@ -2399,6 +2400,7 @@ class BLEMonitorBinarySensorEntityDescription(
'SW2' : 'MOCREO',
'ST6' : 'MOCREO',
'ST7' : 'MOCREO',
'ST7-CL' : 'MOCREO',
'ST8' : 'MOCREO',
'ST9' : 'MOCREO',
'ST10' : 'MOCREO',
Expand Down
28 changes: 28 additions & 0 deletions docs/_devices/MOCREO_ST7-CL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
manufacturer: MOCREO
name: Temperature Controller
model: ST7-CL
image: MOCREO_ST7-CL.png
physical_description: Compact MOCREO temperature controller / sensor with a BLE broadcast packet that follows the same base ST7 frame structure but advertises the ST7-CL model identifier.
broadcasted_properties:
- temperature
- rssi
broadcasted_property_notes:
- AC-powered device; battery is not a relevant advertised entity for ST7-CL.
broadcast_rate:
active_scan: no
encryption_key:
custom_firmware:
notes: >
This MOCREO device uses the same BLE advertisement family as the earlier ST7 model, but the app identifies the payload as ST7-CL using the model byte 0x85 in the manufacturer payload.

The packet layout follows the existing MOCREO parsing logic for the ST7 family:
- company identifier 0x004A
- local name "ST7-CL"
- manufacturer payload length 0x11
- device type byte at offset 1 in the common payload
- temperature extracted from the signed 16-bit field at byte 5, bit 0, with a scale of 0.01 °C
- battery is not treated as a valid advertised entity for this AC-powered controller

Thermostat bounds and relay state are not available in BLE advertisements.
---
Binary file added docs/assets/images/MOCREO_ST7-CL.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading