• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

TLSR8251 + LCD + термометр = LYWSD03MMC XIAOMI Bluetooth термометр

sL0n1k

Member
Да, с рекламой китайцы что-то непонятное сделали.
Открытая без телеметрии 200 мс флудит, с телеметрией - по чайной ложке в час.

Для сбора телеметрии на андроиде в фоне приходится сканирование делать периодическое, типа того:
проснулся 20 сек посканировал, заснул на 40 сек. С данными t, h - нормально, но батарейка раз в сутки - это печаль совсем.

Точнее, тут проблема в новых андроидах: 8 и выше - при переходе в режим ожидания bluetooth вырубается. На старых - все гуд, как раз: андроид не вмешивается и не вырубает bluetooth, если работающее приложение его использует. Понятно, что батарея страдает, но тем не менее, все как представляется так и работает. Новые андроиды считаю, что приоритет - батарея. Как то так.

Конечно, на постоянном питании нет проблем и на новых андроидах, но это не интересно)
 

sL0n1k

Member
Вот и получается, что с такой редкой рекламой с телеметрией и очень частой без телеметрии - на андроиде
гораздо выгодней характеристику читать, а частая реклама на Long Range - это чересчур дорого по батарейке.
Видимо, BLE 5.3 эту ситуацию исправит.
 

pvvx

Активный участник сообщества
Видимо, BLE 5.3 эту ситуацию исправит.
Xiaomi до сих пор на BT5.0 не перешли, а вы о 5.3.
Из известного нового - год назад mijia освоила 4.2 с увеличенным размером MTU. И то прошивки делают проверку путем передачи двухсот байтного фрейма и приема в начале соединения (при регистрации).
И если блок обрезан - переходят к старому варианту передачи по 20 байт. И это при том, что информация о MTU передается отдельно.
И не все прошивки :) а только избранные... У остальных так и оставили по 20 байт.
Всему виной, наверняка - нежелание Товальдса починить BLE в Linux :)
И кнопки делают для соединения. По кнопке интервал рекламы уменьшается до значений подходящих для Linux. :)
 

pvvx

Активный участник сообщества
Дешевый BT5.3 USB-BT адаптер вышел уже давно, но патчи для прохода инициализации в Linux сделали только совсем недавно, а функции относящиеся к 5+ закрыли патчами, чтобы не вызывались.
Ждем китайскую версию Linux. Другого видать не дано.
А аборигены уже запретили даже показ open-source бесплатных программ для России в ютубе...
 

pvvx

Активный участник сообщества
Надо будет запомнить всех аборигенов-авторов и потом напомнить, в лицензии :)
 

sL0n1k

Member
А кнопку для соединения на устройстве кто будет жать? - Привет от Linux :p
Так, я же писал, что это легко решается.
Напомню, еще раз:

....
  • Если XMWSDJ04MMC был активирован каноническим способом, то при отсутствии к нему подключения не более 1 минуты, выключает блютуз и включает его по короткому нажатию кнопки на корпусе. Если связь была установлена более чем на 1 минуту, то XMWSDJ04MMC выключает блютуз сразу по окончании сеанса. Тут “включает/выключает блютуз” означает включение/отключение передачи только нешифрованных пакетов без телеметрии. При неканонический способе активации датчик регулярно производит измерения и постоянно шлет незашифрованную рекламу без телеметрии (200 ms), что позволяет оперативно вычитывать телеметрию по требованию устанавливая соединение. Зашифрованная телеметрия поступает от датчика в рекламе с той же периодичностью, что и при канонической активации, т.е. достаточно (т.е. очень!) редко
Я сейчас его так и использую, но сначала активировал обычно, чтобы ключ прилетел в облако к MiHome для дешифрации адверта.
Кнопку на корпусе не надо жать и для MiHime в том числе.
 

sL0n1k

Member
Заодно, как раз и будет ясно, насколько хватит его батарейки с адвертом 200 мсек ))

А еще я писал, такое:

  • При установленном соединении XMWSDJ04MMC переключает канал с 1 МБита на 2 и наоборот при изменении уровня сигнала (без переключения в longe range - каналы s2 и s8)
Это к вопросу о BT 5.0 у Xiaomi.
 

sL0n1k

Member
Из этого можно сделать вывод, что XMWSDJ04MMC вполне себе соответствует BT 5.0.
Учитывая, что SDK для BT 5.0 и выше у многих производителей написаны как под копирку, можно с большой вероятностью утверждать, что функционал для Long Range рекламы XMWSDJ04MMC уже присутствует в текущей прошивке и
либо его надо включить, либо ждать, что он точно будет доступен в следующих прошивках этого девайса.

Ну, чтобы самим включить нужно сделать реверс - всего лишь))).
Благо там ARM и достаточно простой.
 

pvvx

Активный участник сообщества
  • При установленном соединении XMWSDJ04MMC переключает канал с 1 МБита на 2 и наоборот при изменении уровня сигнала (без переключения в longe range - каналы s2 и s8)
Это к вопросу о BT 5.0 у Xiaomi.
Это только зачатки BT5.0. И то у одной модели.
Ну, чтобы самим включить нужно сделать реверс - всего лишь))).
Благо там ARM и достаточно простой.
Бинарным патчем такое не исправить. Нужны доп. части либ, которые выкинул линковщик.
 

pvvx

Активный участник сообщества
Заодно, как раз и будет ясно, насколько хватит его батарейки с адвертом 200 мсек ))
И так известно - все замеры чипа c использованным SDK известны и подтверждены.
Можно навскидку сосчитать - 2 мс овер 6 мА (TX +0дБм) + мелочь типа 1.5 мс на 3 мА и спящий пусть будет 1.5 мкА...
 

pvvx

Активный участник сообщества
Если там стандартная реализация, то lto не сможет это никак выпилить. Даже lto.
И кто же будет писать дополнение с распределением ресурсов для ext. рекламы, да сам формировку самого запроса?
Не легче ли взять SDK и накатать на СИ программу, тем более там всё известно с периферией - как управлять эрканом и датчиком. Логи с шины E-Ink все выложены.
 

pvvx

Активный участник сообщества
JTAG со всеми расширениями там выведен на типовой разъем SiliconLabs. А мне хватает и так "поддержки" термометров на китайском Telink TLSR825x серии. Зачем мне европейские? :unsure:
Пущай сами евпопейцы и занимаются.
 

sL0n1k

Member
Не легче ли взять SDK и накатать на СИ программу, тем более там всё известно с периферией - как управлять эрканом и датчиком. Логи с шины E-Ink все выложены.
Да это так, из академического только интереса, потому как ясно, что это реализуемо (в смысле реверса), интересно только понять как быстро это можно сделать в случае силикон лаба, т.к. "..международная обстановка, наш ответ Чемберлену", ну Вы понимаете ))

А писать что-то для чужого железа, ну мне своего хватает, спасибо)
 

pvvx

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

sL0n1k

Member
Ваше железо не даст того, что даст толпа леммингов. Они, за счет массовости, быстрее "отладят" и проверят все стыковки со всем что возможно.
Поле этого, учтя все нюансы, вы может писать уже под своё "железо", но пока не видно чтобы оно чем-то отличалось от самых дешевых термометров с али (кроме как завышенной ценой).
Так Вы сперва сделайте хотя бы 4 внешних температур хотя бы на термисторах + влажность, я уже не говорю по 1 wire и сделайте это в пром. исполнении, потом приходите, пообщаемся ))

Или может покажете кто из китайцев такое сделал? ))
 
Сверху Снизу