Pull to refresh

Comments 153

Результатом проведённой работы стал репозиторий https://github.com/devbis/z03mmc/ где лежит исходный код,

Чуть больше подробностей про как бульдог с носорогом скрещивались (можно со слайдами) было бы вкусно почитать :)

Подробности достаточно скучные. Telink предоставляет SDK как для блютуса, так и для зигби. Потому задача стояла взять Zigbee SDK, примеры работы с датчиком и экраном из соответствующих проектов и заставить работать в зигби сети, попутно читая про стандарты ZCL и особенности работы чипов Telink.

Самое интересное было обнаружить, что чип tlsr8251 (который декларируется как blutooth only) и tlsr8258 где заявлено Zigbee + Bluetooth, это одно и тоже, просто маркировка разная. Но и это было обнаружено другими исследователями, я лишь взял на себя программную часть.

У них даже памяти (озу/пзу) одинаково? я помню были чипы где по сути одно или другое просто потому, что и то и то не влезало сразу

Да, идентичные совсем. Есть вариации с разным количеством выводов, но эти варианты есть и для "старшей" (по документации) модели. По сути - всё один чип.

Изменилась ли продолжительность работы датчика от батарейки после перепрошивки на Zigbee?

Не было проведено исследований, возможно изменилась. У меня нет аппаратуры для замера потребления. Оно может быть выше, это покажут натурные эксперименты спустя какое-то время.

Зигби вполне лоялен к батарее, аналогичные датчики Xiaomi (без экрана) с родным Zigbee работают год-два на одной CR2032 спокойно.

Это может зависеть и от программной части. Это моя первая прошивка для батарейных устройств, потому вполне возможно потребуются изменения для снижения потребления батарейки.

Само собой. Код не читал, но если всё "по заветам SDK" и правильные режимы сна используются между измерениями - не вижу почему оно не должно работать как надо :)

а что за интерфей на скринах? График прикольный, не только линия, но и разброс

Попробуйте новую версию, она вышла сегодня. Там есть некоторые изменения, касающиеся потребления батарейки в том числе.

Большое спасибо! Один датчик убил. Дисплей наглухо зависает. Буду пробовать на других датчиках обновленную прошивку ставить, надеюсь в этот раз сработает=)

Удалось вам проверить потребление на новой прошивке?

При одинаковой частоте отсылки данных у Zigbee потребление во много раз больше (!), чем у BLE.

Дальность связи в режиме BLE Long Range (PHY Coded S=8) от двух раз дальше, чем у Zigbee. Примерно к 1 км по прямой при TX 0дБ. Плюс стандарт Bluetooth 5.4 полностью перекрывает ZigBee (вариант BLE ‘рекламы’ PAwR, стандартизация шифрования ‘рекламы’, …).

Как на перепрошитом в Zigbee датчике войти в режим сопряжения? На нем нет кнопок.

Он сам входит. Если не вошел, то замкнуть RST+GND на 3+ сек и батарейку передернуть.

от прошивки не зависит? Всё перепробовал, замыкал, батарейку переставлял, не выходит на сопряжение :(

Интересно, я у себя всё строил на ble, и с диммерами всё прекрасно работает, но с этих датчиков (при приёме на raspberry pi 3b+) регулярно теряются пакеты. Может и попробую на зигби.

Зигби всё же mesh сеть и там получше с надёжностью работы. Хотя, конечно, те же Xiaomi меш используют странно - если их роутер, через который они работали, отвалился - то новый они искать не будут, пока не сделаешь сопряжение заново.

По крайней мере так было раньше, может в новых что-то допилили. У тех же IKEA и прочих Филипсов таких проблем нет.

Посоветуете, какой приёмник zigbee будет наиболее качественным да raspbery pi? Можно USB, а можно и отдельным сетевым устройством, в принципе.

Из списка выше у меня есть "Slaesh's CC2652RB stick" и пара "SONOFF Zigbee 3.0 USB Dongle Plus ZBDongle-P" - все работают отлично.

Есть ещё несколько простых на TI CC2531, с ними в общем тоже проблем не было, но они устаревшие уже и много ограничений на размер сети и т.п.

Можно взять любой из этого списка https://www.zigbee2mqtt.io/guide/adapters/. Сам использую CC2652, сейчас порядка 100 девайсов, полет нормальный. Для небольшой сети (до 15 устройств) можно использовать CC2531 но он сильно менее производительный

У меня донгл SONOFF работает очень хорошо на несколько этажей (mesh там нет)

Касательно ble2mqtt: есть ли какое-то руководство как добавлять новые устройства? Например, есть зубная щетка Oclean Z1. Как изучать протокол ее работы, чтобы потом в ble2mqtt добавить? в nRF connect что-то смотреть? оригинальное приложение дебажить?

Возможно и то и другое. Для добавления нужен алгоритм работы, если это просто адверт пакеты, то да, нужно их насканировать и потом попытаться разобрать. Если это подключение, то тут может потребоваться дебажить оригинальное приложение. В отличие от зигби, там всё очень индивидуально. Для каких-то устройств я использовал разобранные другими протоколы, для каких-то была документация производителя. Проще всего если уже есть код на другом языке и нужно только перенести.

На таком уровне все и так понятно :). Вопрос был именно про руководство - пошаговый гайд, чего надо попробовать. Например, в коде приложения ищите вот то-то. Рядом будет вот это. И т.п.

Ну принцип обычно простой, надо посмотреть какие характеристики в BLE есть.
Про вашу щётку чуть описано тут https://github.com/custom-components/ble_monitor/issues/561

Дальше можно почитать оттуда значения, найти что-то ценное. И потом сделать датчик на основе какого-нибудь существующего. (Я не делал примеров, т.к. буквально, каждый датчик - это какая-то отдельная схема работы. Просто не хватает выборки, чтобы было что-то универсальное)

Если сложный случай, можно взять APK, дизассемблировать его http://www.javadecompilers.com/apk и смотреть код, как именно разбирается то или иное значение.

Ок, спасибо (обсуждение щеток я видел, там говорится про необходимость активного соединения - непонятно нужно ли это для ble2mqtt).

Но меня все-таки алгоритм действий интересовал.
Был у меня другой кейс - контроллер светодиодных лент SP107E. Я и через nRF Connect смотрел чего делает, и приложение разбирал. И даже для HA компонент пытался сделать. Но это было в стиле "попробую-ка посмотреть вот сюда". Какой-то прям пошаговый гайд сильно бы помог. Но коль его нет, то нет.

Что касается SP107E, если есть разобранный протокол, я могу добавить его поддержку, сделайте только issue с описанием протокола.

Что касается активного соединения, то ble2mqtt умеет это делать в отличие от passive ble monitor.

У сабжевого аппарата есть один недостаток - он врет ~+8-10% по влажности :(

Ну или мне так повезло, и все три дивайса были из одной партии с кривым датчиком.

Все дешёвые датчики надо калибровать. Для калибровки надо купить хороший датчик, а это та ещё проблема. Он мало того что врёт, так ещё и плывёт со временем.

У меня такая же ерунда, температура похожа на правду, но влажность при текущих 28% этот показывает 38%. Сверял с двумя более дорогими от того же Xiaomi. Насколько расхождение не линейное не проверял. Непонятно как калибровать, на уровне HA можно внести поправку, но на дисплее все равно будет отображать неправильно?

Сейчас прошивка не поддерживает корректировку, возможно прошивка от pvvx поддерживает внесение смещений по значениям.

Ну и всегда остается хардкорный вариант с внесением корректировки в прошивку и скомпилировать под себя :)

PVVX поддерживает корректировки и на температуру, и на влжаность.

Хуже, я вижу до 15% погрешности, и это я еще с температурным диапазоном не жестил, только при "нормальных комнатных условиях".

Использую CGG1 что в целом полный аналог кроме дисплея, после прошивки https://github.com/pvvx/ATC_MiThermometer/ работать стал сильно лучше, как и по качеству показаний, так и по длительности работы на одной батарейке

>Датчики и управляемые устройства даже в рамках протокола bluetooth целиком ограничены экосистемой отдельного производителя

Все cяомишные девайсы разломаны, и отлично читаются по BT с чего угодно. Нет смысла перешивать на zigbee, если уже нет хаба.

Почему нет смысла? У меня, например, есть яндекс станция с zigbee, есть парочка таких термометров, но нет никакого хаба с bluetooth (и не вижу смысла его покупать только под эти датчики).

Ну здесь тогда станция выступает как хаб, и она уже есть? Я вместо BT хаба использую просто приемник в компе.

Комп должен быть постоянно включен, то есть не годится на роль хаба. Да и просто смотреть температуру, смысла мало - надо включать ее в сценарий умного дома. С кондиционером у меня это получилось, а на зиму собираюсь прикрутить "умные" винтели на батареи, чтобы они регулировали температуру дома по сценариям.

>Комп должен быть постоянно включен

Если я скажу потребление своего компа 24/7, половину читателей удар хватит)

Отчитываюсь - с Яндекса станцией заработала с пол пинка, показывает температуру, влажность и заряд батареи. Перепрошил термометр прямо из браузера со смартфона по инструкции с гитхаба (ссылка в посте).

На компьютерах не всегда подключается. У меня блютус датчик виден только с телефона. Зигби, очевидно, не шлёт данные в блютус сеть и с телефона его не видно.

После прошивки экран датчика работает? Мой (вер. 1.9) отказался теперь информацию выводить, а к Яндекс.Станция Макс подключился без проблем.

Попробуйте последний релиз, там есть исправления для экрана в версии 1.9

Сразу накатил на 1.4 и на 1.6 полёт нормальный.

Последующие прошивки только через UART adapter шить можно? Или как то по воздуху?

Поддерживается стандартный механизм обновления через ОТА, в з2м обновления будут появляться автоматически

Я вижу постоянные потери на ble от LYWSD03MMC

А существуют ли недорогие датчики температура, влажность, co2. можно и без экрана.

У меня такой же датчик и я доволен его качеством. Есть возможность считывать показания по USB HID для интеграции в умный дом. В продаже можно искать на маркетплейсах по модели "mt8057s"

К нему можно еспшку прикрутить и прошить esphome, будет по вайфаю работать

Сам по себе принцип работы датчика co2 подразумевает, что он не может быть дешевым. Даже просто сенсор без обвязки - это 20-25$, потому готовый датчик будет стоит от 4к рублей. Есть ненастоящие датчики co2, где он вычисляет некоторое значение, которое имеет мало отношения к реальности. Такие могут стоить дешево, но я не рекомендую их к приобретению, т.к. они не позволяют мониторить реальные значения.

Датчик СО2 собирается из модуля Sensirion SenseAir S8, какого-нибудь копеечного ESP32, и трёх проводов. Сверху накатывается ESPHome. Общая цена будет баксов 20. Дешевле смысла нет - точность будет плюс минус километр.

Мне очень понравился этот - внутри CO2 (настоящий), температура и влажность, прикрутил к ESP32 и прошивке ESP Easy.

Сравнивал с Qingping Air Monitor - значения совпадают.

Я пока не понял, в чем польза Zigbee, или скорее не понял, зачем оно мне. У меня дома и на даче множество таких датчиков и они прекрасно работают с Тасмотой. Отдельный шлюз не нужен: у меня всюду раскиданы реле Sonoff Dual R3 (лайт-версия тоже подходит), в которых прозорливые китайцы в качестве микроконтроллера поставили esp32. Перешиваем Sonoff в tasmota32-bluetooth, получаем ключ от каждого датчика, забираем данные как удобно (mqtt или просто по http) - профит!

Использую десяток датчиков на прошивке pvvx. Из того что нравиться - возможность настроить тайминг отчета о температуре. В большинстве мест это минута, в некоторых 10. Так же отключаю отображение батарейки и смайлик использую как комфорт индикатор. Читаю все это через esp32 -> ha. Собственно нареканий за два года у меня нет, разве что в частном доме мне приходится держать отдельную esp32 для сбора показаний с этажа куда ha не добивает. Так вот zigbee для меня, хороший вариант отказаться от отдельной esp на этаже, но как быть с таймингами и мелкими настройками о которых писал?

Как подключен ESP32 к HA? В режиме ESPHome/bluetooth-proxy, BLE Gateway или сам достукивается до датчиков а потом mqtt?

esphome:
esp32_ble_tracker:
sensor:
- platform: atc_mithermometer
...
BLE Gateway получается...


Попробовал перешить один.
Telink Flasher 6.2/6.4 нифига не берет - прошил из под старого флешера https://atc1441.github.io/TelinkFlasher.html
z2m версии 1.33.1-1 датчик не опознал, попросил кастом парсер, хотя якобы "For zigbee2mqtt you need to add custom converter if you use version 1.33.1 or earlier"
Ну и слишком уж частое обновление показаний- чуть ли не раз в 5 сек., и при этом дисплей постоянночуть взмаргивает. Прям напрашивается применение фильтра "скользящего окна" хотя бы на 20-30 сек.

Бесит редактор местный- никак не вставить между словами пробел, скобку и даже запятую!

Пулреквест с поддержкой устройства в проект zigbee2mqtt я только вчера сделал и его вчера приняли. Чтобы заработало из коробки, нужно установить девелоперскую версию начиная с сегодняшней даты или дождаться ноябрьской версии. Частота отправки настраивается через стандартные механизмы reporting в з2м.

Ага, видел. Пока закинул внешний конвертер в z2m. На сс2538 все в порядке, на efr32 датчик не видится никак: пробовал zha, z2m, менял номера каналов - бесполезно.

Подскажите, пожалуйста, какой именно payload надо направить для настройки частоты отправки? На тот, который описан тут:https://www.zigbee2mqtt.io/guide/usage/mqtt_topics_and_messages.html#zigbee2mqtt-bridge-request :
{"id":"my_bulb","cluster":"genLevelCtrl","attribute":"currentLevel","minimum_report_interval":5,"maximum_report_interval":10,"reportable_change":10} возникает ошибка (имя устройства естественно ставится корректное)

А следующую версию прошивки придется заливать уже с паяльником?

Прошивка поддерживает стандартный механизм обновления OTA. Для zigbee2mqtt можно обновлять через локальный индекс https://www.zigbee2mqtt.io/guide/usage/ota_updates.html#local-ota-index-and-firmware-files

Главное, чтобы версия в OTA заголовке отличалась от той, что стоит в датчике.

Спасибо за труд!
Есть ли информация о ZHA OTA? Я попробовал локальный апдейт. Файл даже сматчился с устройсвом, но апдейт почему-то не идет

Апдейт не стартует датчиком, если текущая версия и та что в заголовке одинаковые. Попробуйте новый релиз. Постараюсь на неделе посмотреть и потестить OTA в ZHA

А можно с этого места поподробнее? По вашей ссылке, честно говоря, мало, что понятно - какие-то индексные файлы, а где их взять, и т.д.

Прошил один, sonoff zigbee bridge с тасмотой подхватил в момент

Прям отлично! Огромное вам спасибо. О том, что LYWSD03MMC теоретически может в Zigbee было известно, вроде, давно, но вот прошивок никто не делал. А теперь вот, благодаря вам, есть. Попробовал пока один из своих перевести, ZHA смог его подтянуть не с первого раза, но смог. Правда влажность что-то ну ооочень долго первое показание вытягивало. Будем тестировать дальше. Тоже, как у комментатора выше, использую дополнительную esp32 для расширения области покрытия Bluetooth, и, как следствие, заколупался менять батарейки в датчиках. Посмотрим что будет на Zigbee.

Имею дома около 15 таких датчиков.

Данные снимаю (и дату в датчиках устанавливаю) программой: MiTemp2.

Что интересно: встроенные часы в этих датчиках, спешат с огромной скоростью. Чуть ли не на минуту в сутки. Кто-то знает, почему так?

Родной MiHome, и через него Яндекс.Дом тоже позволяют работать с графиками температуры и влажности, но не так удобно, как маленькая MiTemp2.

Жаль, это приложение не работает с последней официальной прошивкой 2й версии. (

Кто-то знает, почему так?

Часовой кварц не поставили, процессором считают, да еще и без калибровки видимо.

А вы не пробовали MiTemp2 подружить с какими-то из кастомных ble прошивок?

Нет, к сожалению. Думаю, не заведётся.

Похоже я именно с такой проблемой и столкнулся :(
Жаль конечно что приходится выбирать между удобной выгрузкой статистики (стоковая прошивка + MiTemp) и возможностями тонкой настройки мощности передатчика, точности выдаваемых значений и проч. функционалом кастомов.

Был датчик LYWSD03MMC, прошитый прошивкой ATC_v43.bin и работающий уже порядка полугода. Ничто не предвещало беды, пока я не прочитал эту статью. Начал шить на ПК через PVVX-флешер. Прошил ATC_ota_40000.bin. Вроде, нормально. Начал тем же способом шить z03mmc.bin. Прошил, внешне всё нормально (дисплей показывает цифры, похожие на правду). Запускаю обнаружение в Z2M - не спаривается (вернее, даже не находится). Запускаю обнаружение в другом Z2M (другой хост, канал) - не находится. Замыкал Reset с Gnd и на 3, и на 5, и на 10 секунд - никаких изменений. Дергал батарейку - аналогично.
Чертыхаюсь, беру паяльник, припаиваю USB-UART, зашиваю через USBCOMFlashTx (получается, что повторно) z03mmc.bin. Ура - датчик обнаружился в Z2M и успешно спарился. Показывает температуру, влажность, батарейку и прочую ерунду. На радостях прописываю его в Home Assistant (попутно удаляя его блютусное альтер-эго). Собираюсь прошить еще один датчик (мечтая, что на этот-то раз обойдется без проводов). Туды-сюды, покурил, поужинал, прошел час. Гляжу в Home Assistant - температура 27,1 градуса, обновление было час назад. Что за фигня? Открываю Z2M - и тоже 27,1 градуса. Ну, быть такого не может - в помещении не выше 23 градусов, а 27 было, когда он у меня на столе рядом с паяльником лежал, да я его теплыми руками тискал. Выдергиваю батарейку, вставляю назад - оппа, 23,2 градуса на табло. Ура? Да не ура - в HA и Z2M по-прежнему 27,1 и факт обновления больше часа назад.
В-общем, решил я его обратно к BLE вернуть. Тем более, что мне не понравилось явное завышение температуры. Ну не было у меня в этом помещении никогда не то, что 37, но даже и 23 градусов! Обычная температура там - 21,7 - 22,5 градуса. Это я говорю к тому, что упомянутые 23,2 тоже неверные. Уж не знаю, что тому причиной - возможно, при работе Zigbee как-тио сильнее греются внутренние элементы на плате, и это "аукается" на градуснике?

Возврат на BLE возможен, но только через провода (так, по крайней мере, уверяет нас автор статьи). Хорошо, припаиваю снова провода (благо, не успел их еще убрать далеко), запускаю онлайновый USBCOMFlashTx, шью прошивку ATC_v43.bin. Ура - прошилось. Но теперь же надо настроить! Запускаю Telink Flasher, поиск устройств, и... голый Вася! Нет моего датчика среди найденных! Запускаю этот же флешер на смартфоне - то же самое, датчика нет.
Последнее, что я смог предпринять - это опять же через USBCOMFlashTx залил оригинальную прошивку Xiaomi - в надежде, что раз не Telink Flasher, то хотя бы Mi Home со смартфона его обнаружит. Результат - не обнаруживается.
И что теперь делать? Остается только любоваться на экран, который показывает температуру и влажность.

Интересный случай. Возможно вам поможет сделать перед прошивкой по uart очистку флеш-памяти в чипе. В питоновской утилите есть такая команда "ea".

Я делал очистку (насколько это позволяет  USBCOMFlashTx - там есть кнопка соответствующая). Не помогло.

Кстати, заметил интересный факт. USBCOMFlashTx прошивает "порциями" по 256 байт. И вот вчера вечером, во время очередной прошивки, я начал считать в уме эти порции. Насчитал 31. Умножил 31 на 256 - получил 7936 байт. Получается, что прошивка залилась не полностью, что ли? Но ведь  USBCOMFlashTx показал "ОК", никаких ошибок выдано не было.

И еще. Уже после написания вчерашнего поста я снова прошил в датчик прошивку z03mmc.bin. И... о, чудо! Датчик влетел в Z2M.

Короче, если сегодня будет время, попробую прошить локальным Python-прошивальщиком.

И вот еще проблема. Мне вдруг показалось, что датчик показывает температуру где-то примерно на 1,5 градуса выше реальной. Я понимаю, что все термометры врут, поэтому даже не стал сравнивать его показания с каким-то другим термометром, т.к. нет у меня термометра со 100%-ным доверием. Вместо этого я просто поднял из БД Home Assistant'а статистику по показаниям этого датчика за последние две недели - когда он был еще BLE'шным (он же как бьыл, так и есть в одном и том же помещении у меня в доме). И да, действительно убеждаюсь в том, что после перехода на Zigbee показания увеличились примерно на 1,5 градуса. Я не знаю, чем это вызвано - возможно, Zigbee вызывает повышенный нагрев внутренних элементов, что влияет на показания термометра.

Далее - в Zigbee2MQTT я обнаружил возможность коррекции показаний температуры (ну, и влажности тоже, но сейчас не об этом). Так вот. Первое, что смущает - это возможность коррекции с точностью только до целого градуса (а хотелось бы хотя бы до одной десятой). Ну а второе - это то, что эта коррекция совершенно никакого влияния на показания датчика не оказывает - и температура на экране, и температура, отjбражаемая в Z2M и HA, не изменилась.

Можно, я продолжу свою грустную историю. Я вчера немножко соврал - на самом деле, я прошил не один датчик, а целых три. При этом проблемы, описанные вчера, были действительно только у одного датчика. Остальные два прекрасно прошились по воздуху, никаких проводов к ним паять не пришлось. Однако, это не говорит, что проблем с ними нет. Есть, еще как.

Первое - они точно так же, как и первый датчик , стали завышать температуру где-то на 1,5 - 2 градуса. Отсюда делаю вывод, что завышение температуры - это не особенность одного отдельно взятого датчика, а общая проблема обсуждаемой технологии.

Второе - коррекция температуры через Zigbee2MQTT всё-таки работает - зря я вчера грешил на неё. Но однако, работает она так - на своем экране датчик показывает одну температуру, а в Zigbee2MQTT (и далее в умный дом) приходит уже скорректированная. Другими словами, хочется взять фломастер и на корпусе датчика написать "отображаемая температура завышена, вычитайте полтора градуса".

Третье. По прошествии суток (к сожалению, весь сегодняшний день был в разъездах и заботах) с печалькой обнаружил в Z2M состояние "Оффлайн" для двух датчиков из трех, вчера перешитых (того самого "сверхпроблемного" и еще одного - ну а третий пока держится). Что с ними делать? Идти передергивать батарейки? И так придется делать каждый день, да?

https://habr.com/ru/articles/767886/#comment_26073202

смотрите как у человека батарейку жрёт. Он поди температуру завышает потому что греется, и дохнет выжрав батарейку, у вас есть график батарейки?

Поделитесь готовой прошивкой z03mmc.bin. Имеются проблемы с компиляцией.

Добрый день датчик прошился уверенно. Скажите, он теперь типа вайфай? По блютус в михом не подключатеся, по вайфай в смартлайф не подключается. Его теперь только с хабом можно увидеть, или же через приложения можно как то подтянуть? Как скажем вайфай терморегулятор пола.

Не вайфай, а zigbee

Спасибо. Ушел читать дальше)))

Очень интересно что чип поддерживает zigbee. Было бы интересно сравнить потребление батареи через zigbee. У него оно должно быть меньше чем у BLE. Zigbee устройства в принципе живут дольше.

А как часто вам приходится менять батарею в этих датчиках с заводской прошивкой? У меня есть 5 датчиков и у всех все по разному.

Один где-то раз в три месяца умирает, а он даже не подключен к сети и используется просто как монитор.

Остальные раз в год.

Ещё один находится в ванной и управляет вентиляцией, видимо из-за частых изменений влажности батарея живёт около полгода

Пока потребление от батарейки не оптимизировано и пользователи жалуются на быстрый разряд. Сейчас нахожусь в поисках решения.

Поделюсь своими наблюдениями, прошил без проблем, с конвертером залетел в Z2M, датчик сильно реагирует на заряд батарейки в зависимости от окружающей температуры, положил на балкон, там автомат поддержания температуры, чтобы показания почаще отправлял

Прошил по вышеуказанной схеме датчик. В z2m home assistant пишет что данное устройство не поддерживается. Подскажите что я сделал не так.

До следующего релиза z2m требуется внешний конвертор. Он есть в репозитории

Накосячил где-то, у меня уже была установлена кастомная прошивка из репозитория pvvx, поэтому накатил z03mmc.bin, но датчик умер :( Теперь на экране ничего не показывает. Подскажите как восстановить?

Можно прошить через проводки, подпаявшись. Схема и инструкция указана в репозитории. Вам понадобится резистор 1кОм и usb-uart адаптер. Можно прошить любую, как зигби так и блютус прошивки.

Разобрался, RX/TX в одну точку подключается, только TX через резистор.
Веб прошивальщик TLSR825x USB-COM из репозитория сломан.

Правильно понимаю, что к одному проводу надо на преобразователе припаять выход rxd и выход txd через резистор 1ком?

Доброго времни суток.

На смог сгенерить zigbee.bin по инструкции.

Выдал ошибку - ниже. Что я сделал не так?

CMake Warning:
Ignoring extra path from command line:

"/../tc32"

-- Configuring done (0.0s)
CMake Error at src/CMakeLists.txt:188 (ADD_EXECUTABLE):
Cannot find source file:

$/platform/boot/link_cfg.S

Tried extensions .c .C .c++ .cc .cpp .cxx .cu .mpp .m .M .mm .ixx .cppm
.ccm .cxxm .c++m .h .hh .h++ .hm .hpp .hxx .in .txx .f .F .for .f77 .f90
.f95 .f03 .hip .ispc

CMake Error at src/CMakeLists.txt:188 (ADD_EXECUTABLE):
No SOURCES given to target: z03mmc

CMake Generate step failed. Build files cannot be regenerated correctly.
CMake is re-running because C:/be-sandbox/dsdsdsddsd/z03mmc/build/CMakeFiles/generate.stamp dependency file is missing.
-- Configuring done (0.0s)
CMake Error at src/CMakeLists.txt:188 (ADD_EXECUTABLE):
Cannot find source file:

$/platform/boot/link_cfg.S

Tried extensions .c .C .c++ .cc .cpp .cxx .cu .mpp .m .M .mm .ixx .cppm
.ccm .cxxm .c++m .h .hh .h++ .hm .hpp .hxx .in .txx .f .F .for .f77 .f90
.f95 .f03 .hip .ispc

CMake Error at src/CMakeLists.txt:188 (ADD_EXECUTABLE):
No SOURCES given to target: z03mmc

CMake Generate step failed. Build files cannot be regenerated correctly.

У меня, к сожалению, нет windows чтобы проверить сборку. Вернее, в виртуалке у меня возникали разные ошибки, но собрать так и не удалось. Зато на linux и macos собирается без проблем. Буду признателен за доработку инструкции или cmake файлов. У вас, судя по тексту, не задан или неверно определились пути SDK_PREFIX и TOOLCHAIN_PREFIX

Пока для виндоус можно воспользоваться IDE от telink и инструкцией с другого проекта для кастомных прошивок для девайсов tuya. https://github.com/doctor64/tuyaZigbee/blob/master/docs/sdk_installation.md

Спасибо за инфу. Есть машина на линуксе. Соберу на ней.

Спасибо. Есть машина на линуксе. Соберу на ней.

Автор, Огромное спасибо!

Прошилось отлично, зацепилось к яндекс хабу тоже.

Всплыл момент. Если перезагрузить хаб, данные перестают обновляться. Передергиваем батарейку на датчике, и снова начинается передача данных.

Если ставить на даче, то там со светом часто бывает отключение.

Вопрос это хаб яндекса так себя ведет? Или в zigbee протоколе прошивки эта ситуация неучтена?

У меня нет программатора, и только один датчик на еще старой прошивке. Поэтому права на ошибку нет)))

По воздуху я понял она только через ha обновляется. У меня же яндекс хаб. Но если бы не этот нюанс -вообще все шикарно. И точность тоже норм. Ничем не отличается от стоковой прошивки

Прошивка пока дорабатывается, потому имеет смысл не торопиться, если нет возможности обновлять до новых версий.

У меня такой же датчик но на ZigBee, можно его как то на Bluetooth перепрошить? :-)

А если серьезно, то может от него прошивка подойдёт? Если что он себя так идентифицирует:

https://www.zigbee2mqtt.io/devices/ZTH05.html

Там тот же чип, но по всей видимости, другая периферия. Т.е. прошивка залезет, но непонятно, что из этого заработает. На блютус перепрошить можно, если доработать прошивку pvvx.

Прошивки больше в НА не обновляются? Прошито 3 датчика. В НА видно что появилось обновление, но обновить не возможно, потому, что не загружается само обновление. Постоянно крутятся "колечки" справа от обновления и ни чего сделать нельзя.

Должны обновляться стандартным механизмом ОТА в зигби. Что там происходит в HA зависит от вашей установки.

Ок. Напишу по порядку. Датчики были прошиты изначально с самой первой версии. И конвертер стоял тоже первой версии. Дальше шли обновления прошивок до версии 1005 и после этого больше не обновлялись. Сейчас со старым конвертором пишет что есть обновление, но почему то не может загрузить. Обновил сегодня конвертер и обновления пропали, хотя вроде как есть версия 1006 на гитхабе. Может я что то не так делаю?

Конвертор не должен иметь отношения к обновлению версий. В последних версиях поменялись только параметры отправки и переключение на фаренгейты.
Версия в теории могла обновиться, но з2м не считал данные о новой версии. Можете вручную прочитать из genBasic кластера

Это просто гениально! нашел эту статью случайно когда стал гуглить на что с zigbee поменять надоевшие отваливающиеся bluetooth устройства!

прошил два из трех, а один с дуру раньше обновил и пишет такое:

9:33:07 PM: (!) Version: 2.1.1_0159 is temporarily not supported (!)
9:33:07 PM: Disconnected.

можно как то откатить до прошиваемой версии?

К сожалению, по воздуху такую прошивку пока поменять нельзя. Только подпаявшись к нужным контактам и залив уже любую прошивку.

понял, спасибо, уже заказал и жду usb-uart чтобы шить по проводу

выдает такую ошибку, подскажите куда копать?
выдает такую ошибку, подскажите куда копать?

пробовал все - и сброс замыкать до запуска, во время, пробовал с батарейкой, все одинаково...

что значит в инструкции включить и выключить в данном контексте?

  1. Power off the sensor

  2. python3 TLSR825xComFlasher.py -p <YOUR_COM_PORT> -t5000 wf 0 z03mmc.bin

  3. Now you have 5 seconds to power on the sensor

Во-первых, вы можете сразу прошивать .bin файл нужной прошивки, без промежуточной. Если хотите bluetooth - прошивайте сразу её.

По поводу очерёдности:
1. подключить донгл с отключённым питанием на чип (белый проводок не подключён к донглу
2. запустить команду
3. за 5 секунд подать питание
4. он должен переключить чип в режим прошивки, дальше можно запускать без -t5000.

Если не получилось, повторить с пункта 1.

значит я правильно понял и пробовал. не идет получается адаптер кирпич, попробую вернуть и поменять

в общем похоже я совсем положил свой термометр..(

другим адаптером подключение и прошивка пошли, сразу же зашил z03mmc.bin

но после этого он больше ни разу не включился.. пробовал и очистку через ea и другие версии - ATC_ota_40000,

Original_OTA_Xiaomi_LYWSD03MMC_v1.0.0_0109,

Original_OTA_Xiaomi_LYWSD03MMC_v1.0.0_0130

все так же. перед зашивкой всегда делал ea.также пробовал ресет замыканием контактов, ничего не помогает, экран ни чего не отображает, но и bluetooth не определяется на родных, т.е. видимо совсем не стартует. такие дела

п.с.: hw 1.7

п.с.2: возможно стоит написать что нестоит зашивать 159 версию через mi home

Попробуйте снизить скорость до 340000, или какая там минимальная. Программно датчик окирпичить невозможно, просто стоит еще раз попробовать. Используйте питон скрипт, он лучше контролирует поток прошивки (веб Прошивальщик по ком порту не делает этого совсем)

попробовал, не помогло также. ну как, во первых пришлось винду установить чтобы скорость порта менять, и она совпадала с переданной скрипту. Потом, да, скрипт принимает не меньше 340000, но при запуске по факту любые значения меньше дефолтных 921600 говорят что скорость слишком низкая и прерывают процесс после записи нескольких секторов

удалось только прошить на двух скоростях которые есть в настройках порта, они обе выше 1М , но после этого так и не включился(очистку тоже пробовал)

пробовал даже обновленный скрипт из репы pvvx, он там уже 5 версии, тоже самое

в общем думаю либо датчик ушатан, возможно я перепутал в какойто момент 3в и 5в подал, но он после этого включался от батарейки либо новый адаптер что то криво зашивает

можно как то другим способом проверить на каком то другом дешевом чипе что он шьется нормально?

или например из этого датчика слить файл обратно и сравнить? пробовал через rf но там чтото не понятно как правильно указать параметры

такто я уже заказал два новых, пока они щас дешевые, но интресно было бы этот добить, может еще кому полезно будет

также и работающие возможно придется както прошивать в будующем по проводу, не хочется тоже их в такое состояние загнать

если что могу даже выслать и датчик и адаптер на крайний случай

Только что столкнулся с таким же. Прошил промежуточную в два датчика и оба умерли. Разобрал и припаял провода. У меня преобразователь ch340. На сайте автора скрипта написано, что с переходниками где есть светодиоды на rx tx подключенные - не работает. Потыкал тестером - у меня были подключены. Выпаял светодиоды. Опять весь квест прошел со скоростями, таймаутами и прочим - максимум до адреса 0x300 доходит и все.

Плюнул. Открыл веб-версию проводного прошивальщика - слишком быстро шьет. Испробовал все скорости и на 2000000 он вдруг стал работать раз этак в 20-30 медленнее. Дождался завершения - датчика нет. Поменял скорость на 921ххх и на ней стало еще медленее, но после завершения датчик постучался в z2m, ожил экран.

Второй датчик прошивал уже по упрощенной схеме. Подключил (rts - питание, rx - p14, tx через 1К резистор в p14, gnd в gnd), поставил скорость 2000000, удалил весь флэш, прошил, поменял скорость на 921ххх и прошил еще раз (шаманство блин какое-то, но разбираться лень). И второй тоже ожил.

спасибо за опыт, буду пробовать тогда еще, у меня тоже преобразователь со светодиодами, но видимо это также не поможет

попробую через web. А каким способом настройки порта менялись? синхронно значения в диспетчере и в команде скрипта прошивки или только в скрипте?

А скорость прямо там в вебе выбирается.

ура я свой наконецто тоже победил! помогло только сменить адаптер и прошивать через web. Причем со скоростями вообще не играл, просто те что были по умолчанию прокатили

Вообще нет никакой боли с BT если знать, что существует Passive BLE Monitor. На стоке спокойно и радостно работает, втаскивается в HASS в полпинка.

Вы сейчас поделились своим решением и оно имеет право на жизнь. Но HA не единственная система УД. Например, данный зигби датчик залетает в яндекс-хаб и работают через его приложение.

HA + bluetooh + blueZ установленные на SSD очень быстро его ушатывают непрерывной записью логов

Я честно, теряюсь в догадках, что значит "ушатать" (убить диск? сделать его медленным?), о какой конкретно связке HA и BT идет речь и так дальше. С возрастом я становлюсь все более ленивым, отсюда я даже прояснять пожалуй не стану, а сразу скажу - что-то вы делаете фатально не так, переделывайте.

Мой конфиг крутится на сервере в докере где-то года три уже. Там не пара устройств, а пара десятков от разных вендоров (Tuya + Xioami + Samsung, что-то там еще, уже не вспомню). Описанный датчик брался сразу в количестве 4-х штук в момент, когда стоковая фирмварь на них отчаянно тупила, описанная мной интеграция была в зародыше, хотя и уже неплохо работала и так дальше, и тому подобное. И мягко говоря, я знаю, о чем говорю, бо все эти прыжки с перепрошивками я уже давно прошел.

Ни разу я не помню каких-то вопросов по скорости из-за "записи логов" при том, что у меня в качестве HDD обычный Seagate Barracuda на 7200 rpm. Потому что дешево и сердито. На текущий момент Xiaomi апнули стоковую фирмварь так, что коннект из их приложения к датчику пошел намного резче, а описанная интеграция работает вообще без проблем, если не крутить настройки, которые, повторюсь, особо нет смысла крутить. Для задач домашней автоматизации частоты отсылки пакетов за глаза, другие задачи решать таким датчиком, мягко говоря, странно. Отсюда, если есть желание использовать и стоковое приложение, и HA - в миллион примерно раз проще остаться на BT.

Не помню, как там с ценами на ZigBee-хабы, но в среднем, если ты берешь какую-то железку для домашнего сервиса компактного размера, это будет либо Rapsberry, либо пободбные ей мини-платы, либо что-то нибудь типа Mele. Bluetooth на борту, никакие хабы не нужны, можно работать. Ну и так, конфиг - не паяльник, BT был дешевле, чем то же самое с ZigBee. Как сейчас, не знаю, ибо просто не нужно.

Ну и финально, я даже не стану спорить на темы типа HA vs Яндекс-хаб. Нет смысла сравнивать по гибкости и возможности втащить в себя так-то три инфры разных "умнодомопроизводителей". Это не говоря о том, что весь Яндекс в плане IoT - это перебрендованная Tuya. И работать с Tuya напрямую без в них в качестве прокладки адски удобнее просто.

я тоже не буду спорить, тем более не начинал, вы сами написали много чего о чем вообще не было вопросов)

речь была про ssd, у вас hdd, такчто это вас к счастью не коснулось

ушатать ssd это значит превысить расчетное число байт записи, после этого он умирает внезпно и навсегда со всем содержимым

ну и плюс возможно большая чистота от сервера сяоми на котором остаются подключенными устройства в случае сток прошивки

Поменял прошивку на zigbee по воздуху через браузер, Алиса его нашла, два дня все работало, потом внезапно (а может быть из-за появления второй колонки) перестали поступать данные

я удалил устройство, алиса нашла его еще раз, но при этом пишет "не в сети"

удалил снова, теперь вообще не ищет его

блютус тоже его не видит

сайт https://devbis.github.io/telink-zigbee/ тоже не видит

контакты GND и Reset замыкал, без толку

при этом сам термометр на экране все показывает, только его никто не видит

что-то можно еще сделать?

Ребята, нужен совет. Задача проста - получать статистику в MiTemp2 от датчика. Со стоковой прошивкой все работает отлично. Заливаю последний кастом от pvvv - MiTemp устройство обнаруживает, но данные о влажности/температуре - по нулям, не подтягивает.

В настройках выставляю вроде все флаги AdFlags и Encrypted beacon, в Advtype - MIJIA (MIHOME), bind i mitoken беру со стоковой прошивки.

Что я делаю не так?

p.s. может быть есть что-то аналогичное MiTemp2 для получения данных и сбора статистики с датчиков с кастомными ble прошивками?

Один датчик прошил. Подключился к Алисе миди с зигби без проблем. Три датчика перед проковкой обновил через приложение ксаоми до версии прошивки 2.1.1_0159. А эта прошивка не коннектится с прошивальщиком выложенным здесь. Что делать?

Эту версию нельзя прошить по воздуху. Либо использовать её в системе михоум в стоковом исполнении, либо прошивка проводами через UART.

Что может быть?

1) 4 из пяти обновились (с переменным успехом, с N попыток в течение месяцев) но один никак, выдает такие ошибки(были разные ошибки, в т.ч. что некорректный image)

2) у некоторых одна версия но разная дата сборки?

z2m: 1.35.3

Может спит датчик. Стоит попробовать батарею потыкать или даже поменять на свежую.

Делюсь своим опытом работы с LYWSD03MMC с прошивкой Zigbee:

Использую самую последнюю версию. Имеется 6 устройств.

1) Если устройство теряет связь с Zigbee-сетью (а в Zigbee это бывает. Ну или например если сервер обесточится), то датчик засыпает. Проявляется это тем, что показания на дисплее не меняются.

2) Батарейка тратится быстрее.

3) Если вынуть батарейку, то придется перевводить устройство в зигби сеть, настройки не сохраняются.

Плюсы: в последней версии отличные настройки, можно настроить через zigbee2mqtt абсолютно все.

Zigbee безопаснее, т.к. при использовании боютуса любой может подключиться к датчику и сделать что угодно, даже прошить.

Но лично я в итоге откатился на блютус.

Sign up to leave a comment.

Articles