Cheap and low-effort solution to monitor temperature in 10+ rooms

Hi there,
in my exploration of sensors and possible integration with home assistant I made an addition to the shellies discovery gen2 script with the mantainer in order to make it discover also non shelly bthome thermometers like the xiaomi LYWSD03MMC with the ATC custom firmware.

Release Version 3.20.0 · bieniu/ha-shellies-discovery-gen2

so now the sensor is auto discovered and added to home assistant.


With latest Firmware, Z2M can directly run on a SLZB-06 Coordinator.

haven’t found this update. Can you link me something to read about it?
The problem with this sml coordinator is that it is not easily purchasable at a cheap price for a company in italy.

Thanks! Really thanks!
I Just bought a sonoff dongle max for zigbee2mqtt and a couple of sonoff zigbee thermometers.
The main problem atm Is that on Amazon It there are not too much cheaper options.
I will take a look to your link ASAP!
Thanks again!

Ok i just received the sonoff dongle max adapter and i configured my first zigbee thermometer via zigbee2mqtt.
I will continue exploring it tomorrow.

EDIT: I also managed to connect a couple of tuya zigbee sensors that were not working with the official tuya hub i also have:

You are possibly aware that the firmware for the LYWSD03MMC SOC chip can also be updated to make it talk ZigBee?

yup but i also saw that there are some issues with latest version and i think i can only get the most recent hw revision at the moment.

As an update to this thread, i'm mostly using sonoff zigbee thermometers.
I also have bought some TYZGTH1CH-D1RF to have some non-battery powered thermometers.
I'm also using some eletechsup modbus board in order to gather data from NTC or DS18B20 sensors via a modbus gateway.

Yeah BT is amazing, and the electronic noise is a problem for sure.
But BT proxy is not a suitable option for my setup as i’m not running home assistant on a physical device and it is even not on the same network as my local LAN.
I’ve chosen for my setup zigbee2mqtt and i’m mainly using sonoff thermometers.

A BT proxy isn’t the same as a BT dongle directly connected to your server. The proxy relays between BT and WiFi. That’s what an ESPHome or Shelly BT proxy do.

I have equipped 20 rooms with LYWSD03MMC sensors running the custom “PVVX MiThermometer” firmware.

Four already installed Shelly devices (esphome) act as BLE gateways—not proxies. The gateways coordinate with one another, and the gateway with the strongest RSSI signal automatically assumes the role of provider for the respective sensor.

Sensor data is made available to other controllers via UDP broadcast and MQTT. The MQTT data model is optimized for integration with Home Assistant.

If a gateway fails, the gateway with the next-best RSSI value automatically takes over its sensors.

The user interface shown below is hosted directly on the gateways and provides a clear overview of which gateway is currently responsible for which sensor.

My server is “virtual” on another network which i cannot join via VPN with my local network so I decided to use zigbee as zigbee2mqtt seems a solid solution.

Did you use a specific esphome component for this setup? I think you also need some hw hacks to flash esphome on shelly

I believe Shelly products has a “flash” option built in.
Or I’m dreaming…

You just open the IP and go to firmware and upload a bin file.
That’s how I remember it.

I think you are half-dreaming. Shelly has firmware file upload option on webserver, but if I remember well, it’s not just that simple. The steps needed also depend on Shelly gen and firmware version.

Using a Shelly device is not a requirement; any ESP32 with sufficient RAM can be used.

The solution requires a file system, so the flash memory needs a modified partition layout. The web application itself requires approximately 200 KB of flash storage.

UI changes can be made without recompiling, simply by uploading the modified web files.

Yes, I used several custom ESPHome components for this setup:

  • spiffs_file_server

    • serves the web file system at /fs
  • web_server_idf

    • extends the web server with project-wide async HTTP handlers

Header modules:

  • ble_mi32_tracker.h
    • BLE decoding
  • ble_mi32_mqtt.h
    • MQTT publish/subscribe and Home Assistant discovery
  • ble_mi32_udp.h
    • UDP multicast transmission and reception
  • appble_common_settings.h
    • settings.json persistence and runtime application

Very cool, that topology map!
Is this on GitHub?