Files
2022-12-08 14:59:39 +01:00

80 lines
2.3 KiB
Markdown

# lywsd03mmc-exporter — a MQTT exporter for the LYWSD03MMC BLE thermometer
lywsd03mmc-exporter is a small tool to scan and keep track of
Bluetooth beacons the LYWSD03MMC BLE thermometer sends periodically.
Data are publised to an MQTT broker
## Modes of operation
Due to talking to lower levels of the Bluetooth stack,
lywsd03mmc-exporter needs to be run as `root` or with CAP_NET_ADMIN.
### Stock firmware
To use lywsd03mmc-exporter with the
[stock firmware](https://github.com/custom-components/sensor.mitemp_bt/files/4022697/d4135e135443ba86e403ecb2af2bf0af_upd_miaomiaoce.sensor_ht.t2.zip),
you need to *activate* your device and extract the *Mi Bindkey*. You
can either use the Xiaomi Home software for that (requires an account
and a HTTPS MITM attack on your phone), or more easily, use the
[TelinkFlasher](https://atc1441.github.io/TelinkFlasher.html) provided
by [@atc1441](https://github.com/atc1441).
You will need to create a keyfile in a format like this,
and use `-k file`:
```
# format: MAC KEY, hex digits only
A4C138FFFFFF 00112233445566778899aabbccddeeff
```
This mode sends measurements every 10 minutes.
Note: Supposedly, the battery ratio is always 100% unless the battery
is really empty.
### Custom firmware
@atc1441 wrote a [custom firmware](https://github.com/atc1441/ATC_MiThermometer)
for the LYWSD03MMC. It sends data unencrypted in beacons.
Negative temperatures are supported.
You can flash it easily with above TelinkFlasher.
This mode sends measurements every 10 seconds.
### Polling mode
This requires an active connection to the device.
Pass the MAC addresses of the devices as arguments to lywsd03mmc-exporter.
This is currently limited to one device (bug in go-ble?).
## Config file
```
[MQTT]
host=localhost
port=1883
#user=user
#pass=pass
```
## Copying
lywsd03mmc-exporter is licensed under the MIT license.
## Thanks
This software would not be possible without the help of code and
documentation in:
* https://github.com/atc1441/ATC_MiThermometer
* https://github.com/danielkucera/mi-standardauth
* https://github.com/ahpohl/xiaomi_lywsd03mmc
* https://github.com/custom-components/sensor.mitemp_bt
* https://github.com/JsBergbau/MiTemperature2
* https://github.com/lcsfelix/reading-xiaomi-temp
* https://tasmota.github.io/docs/Bluetooth/
* https://github.com/DazWilkin/gomijia2
* https://github.com/leahneukirchen/lywsd03mmc-exporter