• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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 и сделайте это в пром. исполнении, потом приходите, пообщаемся ))

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