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

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

izhadapter

New member
Он разве дешевле?
У Xiaomi экономия уже идет до каждой пайки - места под детали есть, а деталек нет и начали исключать сами посадочные места и контрольные выводы для диагностики...
Развитие экономии на лицо - в LYWSD03MMC ещё есть место для пайки нормального керамического конденсатора на десятку мкФ (или более) в питание, а тут уже нет и стоит совсем малый - чисто для галочки.
Но кто-то подложил им свинью - вместо затрат на кондер напаяли ненужных диодов :)
И сам аппарат для внутреннего рынка - с иероглифами и прописывается только в китайский сервер. А говорят, что они на внешку товары делают хуже...
Ну во-первых потому что этот термогигрометр-3 ещё не представили для внешнего рынка он даже поисковиком не находится. А во-вторых оптимизация - это естественно для производства проверили как работает протестировали -всё, хватит .контрольная точка можно убрать, сэкономить на всём что можно, это же китайцы они зажмут даже перемычку
 

pvvx

Активный участник сообщества
Ну во-первых потому что этот термогигрометр-3 ещё не представили для внешнего рынка он даже поисковиком не находится.
Вы не по тому имени его ищите.
Он давно работает в HA (добавлен в BTHome и Passive BLE Monitor integration).
И ныне уже активируется в TelinkMiFlasher.html и пользователям на сегодня доступна возможность зашить оригинальную прошивку - Original_OTA_Xiaomi_MJWSD05MMC_v2.0.0_0026.bin.
А альтернативная версия ещё варится и скорее всего будет в другом репе из-за множественной разницы опций и алгоритмов.
 

izhadapter

New member
Поставьте автомобильный аккумулятор и не мучайтесь мыслями о батарейках.
И ещё можно поставить ионистор и фонарик с Динамо машинкой будете домой приходить по вечерам жамкать ручку фонарика или USB Динамо зарядки.
Все нормальные люди так делают, Присоединяйтесь.
 

Вложения

sL0n1k

Member
Здрасьте.
Интересная прошива.

Вопросы для pvvx:

как включить long range advert?
в исходнике отключен кусок этот (то что я видел)
как планировалось использовать advert extention?

эта тема будет работать, если сенсор вынести (проводом) метров на 10?

да, с с тем что на e-ink: не ясно поведение значка блютуза, ведет себя, как если бы там централ еще жил
можете что-то прояснить?

thnx
 

pvvx

Активный участник сообщества
как включить long range advert?
Включается только в экспериментальной версии.
Далее вы не сможете соединиться, т.к. большинство адаптеров и операционных систем не поддерживают BT5.0 ещё 2016 года, в котором был заявлен Coded PHY (он-же LongRange).
А для возможности переключения адаптера на прием только в LongRange вам придется покопаться в Linux и установках всяких Bluez...
По этому обычным пользователям это недоступно, чтобы по глупости не включили.. Есть специальный issue на github об поддержке BT5.0+
да, с с тем что на e-ink: не ясно поведение значка блютуза, ведет себя, как если бы там централ еще жил
можете что-то прояснить?
Ваш вопрос не понятен. Задержка обновления экрана?
Время между обновлениями экрана ограничено, т.к. E-Ink при обновлении нещадно жрет батарею. Т.е. любой E-Ink кушает всегда больше чем старый тип LCD, вопреки рекламам.
Период минимального обновления настраивается в меню TelinkMiFlasher.html
 

pvvx

Активный участник сообщества
Да, и поддержка BLE LongRange пока (наверно на долго) осуществляется исключительно на русском языке. Другие языковые запросы и вопросы по данной тематике не принимаются, пока закрыт доступ из России на большинстве англоязычных инфо-ресурсов производителей и прочих корпораций.
Так что все вопросы по LongRange тут или на гит на русском...
 

sL0n1k

Member
Да ну?
Это уже пользую года 2 как. Любой телефон это умеет, не фламан-онли.
А вот с блюзом как раз есть вопрос. Точнее не самим блюзом, а с железом на котором нужен long range.
Ни малина, ни апельсин не имеет на борту соответствующих чипов, даже последний 5-ый апельсин (который вообще ничего не имеет, как оказалось). Если Вам известны одноплатники с чипами BLE 5.x (подтвержденно работающим), то тоже буду признателен за информацию.
Так что можете включать кусок с long range, кого-то этим удивить сложно, разве что на русскоязычных сайтах)

Ну да, ладно.
Остался один вопрос без ответа, а он как раз имеет сейчас утилитарную ценность:
"эта тема будет работать, если сенсор (sht) вынести (проводом) метров на 10?"
Года 4 тому назад, я недолго пытался это сделать с прошивкой (от иносранца), не помню кто это был),
но как-то безуспешно (скорось i2c понижал).
 

Вложения

sL0n1k

Member
точнее, так: это работало (при понижении скорости i2c), но нестабильно (время от времени датчик терялся на шине)
 

pvvx

Активный участник сообщества
Делать копи паст своих коментов с git?
Почти каждый дешевый прошлогодний смартфон имеет следующие опции:
изображение
Но это не значит, что он будет принимать стандартную рекламу в разных форматах PHY. Чтобы подключиться, вы должны принять стандартную рекламу на физическом уровне 1M. Только после установления соединения на 1M PHY можно переключить формат PHY.

«Расширенная реклама» — это передача заголовка на 1M PHY, который указывает, по какому каналу и в каком формате будут передаваться сами данные. Те. без получения на 1M PHY вы не будете знать, где и как получить сообщение LongRange.
Прием стандартной рекламы на основных каналах в формате longRange не реализован на большинстве устройств.
И видимо это сделано специально, чтобы не вытеснять ZigBee с рынка или в каких-то других корпоративных целях...
Даже для получения "Расширенной рекламы" с LongRange в программе "nRF Connect" нужно переключать опции в настройки.
Работа в BLE Long Range программно ограничена на всех пользовательских устройствах, включая адаптеры BT-USB. И дело не в аппаратной реализации,

Включение параметров BLE5.2 в пользовательской прошивке позволяет вам поддерживать «соединение» для всех параметров кодирования PHY, которые запрашивает ваш адаптер. Но передача рекламы на другие, кроме 1M PHY, в текущей общей версии не реализована из-за отсутствия поддержки с принимающей стороны.

----
Эксперименты с включением LongRange для «Расширенной рекламы» на основных каналах показали, что ни один из доступных адаптеров в приложении для «HA» не принимает эту опцию. Также проверил десятки смартфонов в nRFConnect выпущенных в том же году - ситуация аналогичная.
Передача «Расширенной рекламы» с заголовком на 1M PHY и данные на S8 успешно принимаются большинством (адаптеры BT5.0+).

Кроме того, вариант рекламы «закодированный PHY» не может быть использован сразу для подключения и сканирования.

И второе:
доступные версии SDK от Telink не поддерживают множественную «расширенную рекламу» .

Это стандартный интерфейс BLE Spec, используемый для включения/отключения расширенной рекламы, см. <Core_5.0> (том 2/часть E/7.8.56 «LE Set Extended Advertising Enable Command») и поймите его в контексте определений типов перечисления SDK и демонстрационного использования. Однако в настоящее время SDK поддерживает только 1 набор рекламных объявлений, поэтому этот API пока не поддерживается и в будущем будет зарезервирован только для множественных наборов рекламных объявлений. Тем не менее, Telink SDK написал упрощенный API, основанный на этой функции API, для включения/выключения 1 расширенных наборов для более эффективного выполнения. Упрощенный API показан ниже с теми же входными параметрами и возвращаемыми значениями, что и стандартный API, но используется только для установки 1 Adv
Set.
С помощью реверса библиотеки я получил возможность встроить "Расширенную рекламу" в вариант "кастомная прошивка". Но такая версия не может поддерживать все текущие опции и требует отдельной реализации.
Также реализация «Расширенной рекламы» в закрытых библиотеках SDK приводит к нестабильной работе устройства в целом. Требуется нормальная реализация библиотек или их открытый исходный код.
--
В результате единственным доступным для пользователей вариантом увеличения дальности приема и передачи остается вариант использования не BLE, а протокола ESB.
ESB (Enhanced ShockBurst) - в простонародье это "RF24". С настройками по протоколу BLE...
--
Аппаратной части чипов все равно, какую синхронизацию принимать, так как модуляция одинакова для разных PHY. Заголовок кадра передачи содержит всю необходимую информацию, а дальше дело программы.
А сообщение в Coded PHY просто отбрасывается, так как не соответствует программному детектору правильного кадра. Воспринимается как шум.
--
В Linux патч не нужен. Вам нужно переключить адаптер на закодированный PHY, и он будет принимать рекламу на LongRange. А вот другие, стандартные BLE, приниматься не будут.
Патчами внутреннего ПО адаптеров никто не занимается. Проще сделать свой BLE приемник рекламных сообщений или использовать полноценный сниффер.
--
И есть вторая проблема с ext_adv:
ext_adv не может быть «подключаемым» и «сканируемым» одновременно. Требуется переключение типа или наличие двух вариантов ext_adv одновременно, что не реализовано в SDK. (Переключение можно производить через холодную бут с разными вариантами инициализации драйверов. Но это дополнительный расход батареи.)
--
И еще одна проблема. Xiaomi LYWSD03MMC не имеет кнопок. На сегодняшний день у меня уже есть рабочая реализация с ext_adv для термометров, в том числе LongRange. Но не для LYWSD03MMC.
Кнопка временно переключает термометр на рекламный вариант подключения.

Также - BLE-реализация HomeAssistant не предусматривает временной рекламы или рекламы только смены данных с датчиков. По истечении встроенного периода, если нет ответов от датчика, то показания переводятся в состояние «Недоступно». Это делает невозможным экономию батареи на датчиках или увеличение периода передачи сообщений BLE.

PS: В итоге все сделано так, чтобы исключить работоспособность LongRange в BLE.
В итоге основная борьба происходит со сторонним софтом, а не с программой для термометров.
Когда сторонние программы решили эти вопросы, то имеет смысл включить поддержку LongRange в термометрах для общей группы пользователей.
И на сегодняшний день для продвинутых в вопросах BLE возможен только DIY вариант. Через какое-то время (дни) он будет в исходном репозитории, но полноценной поддержки ждать не стоит.
 

pvvx

Активный участник сообщества
Тестовая прошивка с поддержкой 'Extended Advertising' и 'LongRange' для LYWSD03MMC.
Файл https://github.com/pvvx/ATC_MiThermometer/blob/master/LR_v99.bin
.
После сброса питания прошивка работает в стандартном протоколе '1M PHY'.
Сброс и замена питания отключает 'Расширенную рекламу' и 'LongRange'.
Для включения режима «Расширенная реклама» в TelinkMiFlasher установите:
изображение

'EXT.ADV' без 'LongRange' включает передачу рекламы в формате LEGACY_CONNECTABLE_SCANNABLE_UNDIRECTED.
изображение

'LongRange' - включает передачу основной и расширенной рекламы в формате 'Coded PHY' c S8 и версию EXTENDED_CONNECTABLE_UNDIRECTED.
изображение

Далее следует, что приемная сторона поддерживает 'Расширенную рекламу' в режиме 'LongRange', а если нет – вытащите и вставьте батарейку.
 

pvvx

Активный участник сообщества
А вот с блюзом как раз есть вопрос. Точнее не самим блюзом, а с железом на котором нужен long range.
Ни малина, ни апельсин не имеет на борту соответствующих чипов, даже последний 5-ый апельсин (который вообще ничего не имеет, как оказалось). Если Вам известны одноплатники с чипами BLE 5.x (подтвержденно работающим), то тоже буду признателен за информацию.
Любая с адаптером BT5.0+.
Требуется софтовое переключение в режим CodedPHY S8.
Так что можете включать кусок с long range, кого-то этим удивить сложно, разве что на русскоязычных сайтах)
Зачем кого-то удивлять? :unsure:
в исходнике отключен кусок этот (то что я видел)
Тестовую прошивку вы можете собрать сами включив эту опцию и установив номер версии в 0x99 (9.9) для её поддержки в TelinkMiFlasher.
 

pvvx

Активный участник сообщества
точнее, так: это работало (при понижении скорости i2c), но нестабильно (время от времени датчик терялся на шине)
И нафига провода?
Сначала разберитесь что и как такое "LongRange" в BLE - тогда провода не потребуются.
 

sL0n1k

Member
Не надо вводить людей в заблуждение.
Ещё раз повторяю, long range advert отлично поддерживается любым телефоном. Я это давно реализовал на своих девайсах и не только я, в том числе и в России
Вторым мерином был показан адверт работающего на s8 устройства, переключение режима адверта, также происходит бесшовно.
 

pvvx

Активный участник сообщества
Пока.
В итоге и выходит, что и вы при включении “LongRange” получите из термометра тыкву и начнете истошно орать на git – “Прошивка не работает!” и единственным вариантом лечения будет аппаратное перепрограммирование чипа проводами.
 

pvvx

Активный участник сообщества
Не надо вводить людей в заблуждение.
Ещё раз повторяю, long range advert отлично поддерживается любым телефоном. Я это давно реализовал на своих девайсах и не только я, в том числе и в России
Вторым мерином был показан адверт работающего на s8 устройства, переключение режима адверта, также происходит бесшовно.
:love:
Реализацию "в студию". Особенно для смартов "фламан-онли" 🤪 в которых больше всего неисправляемых годами кривостей как раз с BLE, по причине пихания в них спец. версий дров...

---
PS: Как раз и получается пример, почему пока не стоит включать LongRange в прошивке к термометрам для всех пользователей. И потом каждому ещё жувать на английском в чем беды…
 

sL0n1k

Member
И снова здравствуйте)
Я как раз хотел добавить поддержку Ваших девайсов в свое приложение. В общем-то и спрашивал для этого, т.к. на странице настроек в приложении есть возможность выбора long range adverta
 

sL0n1k

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

pvvx

Активный участник сообщества
Точнее девайсы ми добавлены давно, имеется ввиду Вашу кастомную реализацию. Потому как есть много общих моментов с собственными девайсами, они конечно на других аппаратных платформах
Когда расскажите как в HomeAssistant обычному пользователю включить прием рекламных пакетов на CodedPHY S8 по основным каналам (заголовка расширенной рекламы BT5.0), и как это включить в Bluetooth API Chrome, тогда и возможен дальнейший разговор. :)
Иначе LongRange не имеет ни какого смысла.
 

sL0n1k

Member
Ну меня меньше всего интересует чужие сложности, у меня свои задачи и если будет такая задача с НА, то поговорим))
 
Сверху Снизу