Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

Cosori Smart Meat Thermometer (CMT-R161S) for ESPHome

This project provides a custom ESPHome configuration to integrate the Cosori Wireless Smart Meat Thermometer (CMT-R161S) directly into Home Assistant.

By using an ESP32 as a Bluetooth proxy/gateway, you can decode the temperature and battery data locally without needing the official VeSync app or a cloud connection.

🚀 Features

  • 100% Local Control: No cloud dependency; data is decoded directly on the ESP32.
  • Real-time Sensors:
    • 🥩 Meat Probe Temperature (Internal Tip)
    • 🌡️ Ambient Temperature (Ceramic Handle)
    • 🔋 Battery Level
    • 📶 Connection Status (Binary Sensor)
  • Smart Filtering: Throttled updates to prevent database spam in Home Assistant.

⚠️ Important Notes

  1. Connection Exclusivity: This configuration uses the ESP32 as a generic BLE Client. Because the thermometer can typically handle only one active connection at a time, you cannot use the official VeSync app on your phone while the ESP32 is connected. The ESP32 will take over the connection.
  2. UUIDs: The configuration uses generic 16-bit UUIDs (FFF0 / FFF1) which are common for these devices. If these do not work, check your logs or scan the device with nRF Connect to see if it uses the 128-bit Nordic UART UUIDs (6E40...).

🛠️ Prerequisites

  • Hardware:
    • ESP32 Development Board (ESP8266 is not supported for BLE).
    • Cosori CMT-R161S Meat Thermometer.
  • Software:
    • Home Assistant with the ESPHome add-on installed.

⚙️ Installation

1. Find your Device MAC Address

You need the MAC address of your thermometer to tell the ESP32 which device to connect to.

  1. Install a BLE scanner app on your phone (e.g., nRF Connect).
  2. Remove the probe from the charger.
  3. Scan for devices. Look for a device named Cosori, Smart Thermometer, or Nordic_Template.
  4. Copy the MAC Address (e.g., XX:XX:XX:XX:XX:XX).
2. Configure ESPHome

You can download the meat_thermometer.yaml file from this repository or copy the content below.

  • secrets.yaml: Ensure you have your api_key, ota_pw, wifi_ssid, and wifi_password defined in your secrets file.
  • MAC Address: Replace the placeholder XX:XX:XX:XX:XX:XX with your actual device address.

🧠 Protocol Details

The device uses a custom Connection-Based BLE protocol.

  • Byte 0: 0xA5 (Header)
  • Byte 13: Battery Level (0-100%)
  • Bytes 21-22: Internal Probe Temp (Little Endian, Fahrenheit * 10)
  • Bytes 23-24: Ambient Handle Temp (Little Endian, Fahrenheit * 10)

❓ Troubleshooting

Sensors show "Unavailable"

  • Ensure the probe is out of the charger.
  • Ensure your phone app is fully closed.

Ambient Temperature seems "stuck"

  • The ceramic handle holds heat for a long time. If you held it, it may take 10+ minutes to cool down to room temp.

No data appearing?

  • Try enabling the debug log line in the lambda (uncomment ESP_LOGD) to see if any packets are arriving.
  • If logs show connection but no data, verify the UUIDs (FFF0 vs Nordic UART) using nRF Connect.

License

This project is open-source and available under the MIT License.

About

ESP Home yaml file to read the temperature data via BLE and route it via wifi to Home Assistent

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors