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