Сегодня на хабре вышла статья по добавлению Bluetooth датчику температуры/влажности от Xiaomi фичей Zigbee версии. И да, паять, менять модуль и ковыряться в маленьком устройстве не надо. Я распишу более простым языком то, что у автора расписано более завуалированно и не на русском языке. Сразу предупреждаю, все что далее будет описано вы делаете на свой страх и риск, в случае если что то пойдет не так, или вы захотите откатиться на стандартную прошивку - надо будет паять, имейте это в виду. Итак, погнали!
Нам потребуется:
- Сам датчик Xiaomi LYWSD03MMC
- Компьютер с Bluetooth модулем
Для начала датчик необходимо прошить на кастомную прошивку, что бы появилась возможность полноценного апгрейда. Качаем файл тут и открываем в браузере Chrome или Firefox (в других могут быть проблемы) эту страничку. С нее можно подключиться к датчику и обновить ПО. Жмем на кнопку "Connect":
У вас появится окно с поиском устройств, среди них надо найти датчик с именем LYWSD03MMC. После выбора датчика жмем на кнопку подключить. Если датчиков у вас несколько, советую остальные отключить на время этой процедуры, чтобы избежать проблем. При успешном подключении на экране датчика загорится значок Bluetooth а на странице в браузере будет написано Connected. После этого жмем на кнопку Do Activation:
Это отключит датчик от вашей учетной записи Xiaomi и обновит его секретный ключ. Следующим шагом выбираем в разделе Select Firmware файл с кастом прошивкой, и после нажимаем на кнопку Start Flashing:
Пойдут недолгие секунды ожидания с процентами загрузки прошивки. В результате в логе ниже должна появиться следующая строчка:
Ждем пару минут, перевтыкаем батарейку в датчик и возвращаемся к ранее открытой странице в браузере. Повторяем поиск устройства, и ищем свой обновившийся датчик. После успешного коннекта будет немного обновленный список параметров, ничего в нем не меняем. Качаем прошивку с Github автора, выбрав файл с именем z03mmc.bin. Выбираем его как делали раньше и жмем кнопку Start Flashing:
Теперь осталось запастись терпением, процесс будет идти примерно раза в два дольше, чем в прошлый раз из за большей длины файла. После прошивки у нас будет полноценный Zigbee датчик, который уже сейчас можно добавить в умный дом используя Zigbee2mqtt свежей сборки. Датчик после переподключения батарейки будет в режиме пэйринга. Я сейчас делаю шаблон для работы датчика в Spruthub и после его проверки дополню статью.
Какие у данного решения могут быть минусы? Ну, как я и сказал выше, вернуть датчик на стандартную прошивку можно только путем его разбора и подпайки проводков в нужные контактные точки. Плюс не совсем понятно, как покажет себя батарейка в будущем, но учитывая, что это Zigbee - скорее всего не хуже чем было до прошивки. Плюсов у этого решения гораздо больше, нет больше мороки с секретными ключами и лишним Bluetooth хабом, чаще отдаются данные по температуре и влажности, ну и конечно же дешевизна данного решения.
А нет ли возможности выложить шаблон или сделать копию шаблона но для модели Xiaomi LYWSD03MMC-z.
Рекомендуемая прошивка (z03mmc.bin) не запускалась.
Прошил предлагаемой в. 1.21. Датчик перешел в Zigbee и добавляется в СХ. Но шаблона нет под LYWSD03MMC-z
Конвертор: https://github.com/devbis/z03mmc/blob/master/converters/lywsd03mmc.js
Руководство: https://www.zigbee2mqtt.io/advanced/support-new-devices/01_support_new_devices.html
Изначально целью было сделать так, что алиса с зигби видела эти датчики, но и с этим чёт не получилось. Алиса не может найти(
Как вообще понять, появился зигби или нет?
А проблема оказалась вот, в чём - и это проявилось у всех троих моих "зигбишничков". На экране датчик показывает одну температуру и влажность, а в Home Assistant отображается другая. Да еще и с пометкой "Обновлено 38 минуту назад". Как вам такая скорость обновления, Илон Маск? Захожу в Zigbee2MQTT, открываю настройки одного из датчиков, иду в раздел "Отчеты" и вижу, что и для температуры, и для влажности выставлены следующие параметры:
Мин.интервал отчетов: 10
Макс.интервал отчетов: 3600
Мин.интервал отчетов при изменении: 0
Любая попытка изменить и сохранить эти параметры вызывает ошибку.
В-общем, я в растерянности.
На эти датчики у меня завязана система управления отоплением дома, но если данные будут обновляться через полчаса с лишним, то я либо замерзну, либо запарюсь.
16:52:47: Connecting to: LYWSD03MMC
16:52:57: Hardware Revision String: B1.5
16:52:57: Software Revision String: V4.4
16:52:57: Firmware Revision String: github.com/pvvx
16:52:57: Detected custom Firmware
16:52:57: Hardware Version: LYWSD03MMC B1.5, Software Version: 4.4, Sensor: SHTC3 (SHTV3)
16:52:57: Custom config HEX string: 55051000002804a931318ab4
16:56:34: Start DFU
16:56:40: Update error: NotSupportedError: GATT operation failed for unknown reason.
16:56:40: Disconnected.
UPD: Нашёл вот такую страничку https://pvvx.github.io/ATC_MiThermometer/TelinkMiFlasher.html там другой вебфлешер, с ним вроде прокатило. Проверить не могу, СХ2 ещё не приехал, а СЕ у меня в другой локации.
НА его видит,но не распознает и данные не считывает
01:06:34: Custom config HEX string: 55056000002804a97c31803c000000
01:06:38: Load firmware file 'https://raw.githubusercontent.com/pvvx/ZigbeeTLc/master/bin/Z03MMC_v0108.bin'...
01:06:38: File: https://raw.githubusercontent.com/pvvx/ZigbeeTLc/master/bin/Z03MMC_v0108.bin
01:06:38: File size: 126884 bytes
01:06:38: Count: 7931
01:06:43: Start DFU
01:06:55: Update error: NotSupportedError: GATT operation failed for unknown reason.
01:06:55: Disconnected.
По батареи ... посмотрим)
Отправляет 7 блок и разрывается соединение.
Пробовал и этим вебфлешером https://pvvx.github.io/ATC_MiThermometer/TelinkMiFlasher.html
Он показывает вариант прошивки Zigbee Firmware: Z03MMC_v0112.bin
Но все дальнейшие шаги заканчиваются на 7 пакете при передаче.
Еще один датчик попробовал прошить, всё так же на 7 пакете разрывается связь.
После первой прошивки ждал несколько минут - датчик как бы зависает, не меняет показания.
https://pvvx.github.io/ATC_MiThermometer/TelinkMiFlasher.html
Если зависал на 7 пакете, то прошивал стандартной прошивкой из предложенных вариантов прошивальщика, а потом уже Zigbee.
Не с первого раза подключается к блютус, не сразу стартует прошивать, но с нескольких попыток все пошло.
Подключать к Спрутхабу нужно возле него.
Все датчики прошил, все в хабе.
Как быстро садится батарея - не проверял. Жду обновления прошивки из Спрута, возможно со временем будет все с этим выправляться
Прошил 5 датчиков на изи и залетело в CХ -> HomeKit