• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

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

nikolz

Well-known member
В самом термометре оф. версия хранит данные что-то за 4 месяца, если не более. Шаг то ли 1 час, то ли 30 мнут... Точно не помню, т.к. оф.версией не пользуюсь.
Время в термометре гуляет, т.к. нет часового кварца - Xiaomi пожидилось.
Reading recorded measurements on original firmware.
Всё описано на github.
У модифицированной прошивки 20 тысяч замеров. Шаг записи задается. По умолчанию - 10 минут = 4.5 месяца.
Получил вот такой пакет рекламы с LYWSD03MMC с официальной прошивкой:
02010000 A4C13888BF14:0106 1695FE:30585B0501:A4C13888BF14:28 01 00 CA
он обработан MAC перевернут и выделен Тип объявления 16 и UUID маяка Xiaomi Mi 95FE , но странно то,
что в нем нет измеренных значений температуры и влажности (на экране сенсора 24.8 и 29%)
вернее сказать есть всего три байта в конце 28 01 00
CA - это мощность RSSI
------------------------
Кто-нибудь может объяснить , что не так?
 

pvvx

Активный участник сообщества
Получил вот такой пакет рекламы с LYWSD03MMC с официальной прошивкой:
02010000 A4C13888BF14:0106 1695FE:30585B0501:A4C13888BF14:28 01 00 CA
он обработан MAC перевернут и выделен Тип объявления 16 и UUID маяка Xiaomi Mi 95FE , но странно то,
что в нем нет измеренных значений температуры и влажности (на экране сенсора 24.8 и 29%)
вернее сказать есть всего три байта в конце 28 01 00
CA - это мощность RSSI
------------------------
Кто-нибудь может объяснить , что не так?
А где "пакет" то? Это какие-то куски...
 

pvvx

Активный участник сообщества
Тип объявления 16 и UUID маяка Xiaomi Mi 95FE , но странно то,
что в нем нет измеренных значений температуры и влажности (на экране сенсора 24.8 и 29%)
Да и оф. прошивка передает значения один раз в 10 минут в виде пачки быстро следующих реклам. В остальное время, каждую секунду с гаком, передается пустой пакет mijia, на передачу которого просто тупо садит батарейку :p
 

nikolz

Well-known member
А где "пакет" то? Это какие-то куски...
это весь пакет для сенсора с правильным отображением MAC и удаленными значениями длины пакета и ADn блоков.
Длина используется для выделения блоков и не передается.
мой сниффер распаковывает и передает пакеты на терминал вот в таком виде
02010000 68273793A9E6:02011A:1BFF7500420401207E17070000000000000000000000000000000000:C2
02010000 68273793A9E6:02011A:1BFF7500420401017E68273793A9E66A273793A9E50108329F000000:B2
02010000 68273793A9E6:02011A:1BFF7500420401207E17070000000000000000000000000000000000:AA
02010000 6CE8C685912A:020106:1107FC9DD0B3CB84E0840642F3F7E2E0BFCB:BA
02010001 70E6C6C92754:02011A:020A0C:0AFF4C0010054B1C0B09C3:BA
02010000 68273793A9E6:02011A:1BFF7500420401207E17070000000000000000000000000000000000:C2
02010000 68273793A9E6:02011A:1BFF7500420401017E68273793A9E66A273793A9E50108329F000000:C2
02010000 A4C13865FA4A:020106:111695FE30585B05014AFA6538C1A4280100:CA
02010000 68273793A9E6:02011A:1BFF7500420401207E17070000000000000000000000000000000000:C2
02010000 68273793A9E6:02011A:1BFF7500420401017E68273793A9E66A273793A9E50108329F000000:C2
02010000 68273793A9E6:02011A:1BFF7500420401207E17070000000000000000000000000000000000:AA
02010000 68273793A9E6:02011A:1BFF7500420401017E68273793A9E66A273793A9E50108329F000000:AA
02010001 70E6C6C92754:02011A:020A0C:0AFF4C0010054B1C0B09C3:BA
02010000 68273793A9E6:02011A:1BFF7500420401207E17070000000000000000000000000000000000:C2
02010000 68273793A9E6:02011A:1BFF7500420401017E68273793A9E66A273793A9E50108329F000000:C2
02010000 68273793A9E6:02011A:1BFF7500420401207E17070000000000000000000000000000000000:B2
02010000 68273793A9E6:02011A:1BFF7500420401017E68273793A9E66A273793A9E50108329F000000:AA
-----
Да и оф. прошивка передает значения один раз в 10 минут в виде пачки быстро следующих реклам. В остальное время, каждую секунду с гаком, передается пустой пакет mijia, на передачу которого просто тупо садит батарейку :p
спасибо за ответ.
---------------------------
Зачем в пакете сенсора два раза передается MAC адрес рекламщика, в чем тайный смысл дублирования?
 

pvvx

Активный участник сообщества
02010000 A4C13865FA4A:020106:111695FE30585B05014AFA6538C1A4280100:CA
Это и есть "пустой" пакет. В нем есть инфа только о том в каком состоянии находится регистрация и весь его смысл - типа устройство online.
Дешифрация информации в пакете указана и тут:
Зачем в пакете сенсора два раза передается MAC адрес рекламщика, в чем тайный смысл дублирования?
Только такие домыслы:
Для системы mijia это может быть использовано для дублирования данной рекламы другим устройством, со своим MAC.
Не все драйвера/ПО операционных систем выдают MAC адрес самого устройства при сканировании. К примеру этого сервиса нет в расширениях Chrome. Вы можете получить данные из рекламы, но не можете получить MAC устройства :p
Лучше это спрашивать у больных Persecutory delusion. От них и так много бед в электронике...
 

Dual

New member
Искал Гуглом информацию по LYWSD03MMC, нашёл только эту тему более-менее детальную. Вопросы такие:
1) До какой температуры работает датчик (видел самое низкое в приложении -21,5, что соответствовало истине) ?
Могу поделиться опытом за прошлую зиму.
Датчик с родной батарейкой от продавца, данные забирал android приложением "MiTemp2"
Стоковая прошивка.
Temp.JPG
 

pvvx

Активный участник сообщества
Падение напряжения на практически новой батарейке CR2032 в LYWSD03MMC B1.9, включенной ровно неделю назад, при перемещении из +22С в -10.5С (хвост графика):
1638876325802.png
составляет 0.009В на градус.
А батарейка CR2032, проработавшая более года с альтернативной прошивкой уже не будет работать при -10С, т.к. на ней уже 2.64В (+22С) в последние месяцы...
 

nikolz

Well-known member
Это и есть "пустой" пакет. В нем есть инфа только о том в каком состоянии находится регистрация и весь его смысл - типа устройство online.
Дешифрация информации в пакете указана и тут:
Только такие домыслы:
Для системы mijia это может быть использовано для дублирования данной рекламы другим устройством, со своим MAC.
Не все драйвера/ПО операционных систем выдают MAC адрес самого устройства при сканировании. К примеру этого сервиса нет в расширениях Chrome. Вы можете получить данные из рекламы, но не можете получить MAC устройства :p
Лучше это спрашивать у больных Persecutory delusion. От них и так много бед в электронике...
Вопрос затоку:
1) можно ли реализовать прием данных из рекламы лишь конкретного мак адреса без соединения.
2) можно ли в TLSR реализовать передачу рекламы лишь на одном канале.
 

pvvx

Активный участник сообщества
1) можно ли реализовать прием данных из рекламы лишь конкретного мак адреса без соединения.
Есть такое - белый список. Выступает в качестве фильтра, иногда и аппаратного...
Перед какими либо действиями надо задать список мак адресов для белого списка.
А в настройках приема рекламы надо поменять константную переменную на условие включения этого фильтра.
Реклама вообще-то на любых модулях с BLE принимается без соединения...
2) можно ли в TLSR реализовать передачу рекламы лишь на одном канале.
Смотрите SDK - процедура назначения рекламы имеет операнд, который указывает на каком канале или каналах (маска бит) будет транслироваться основная реклама.
И эта маска есть у всех просмотренных SDK к разным чипам...
А с BT 5.0 существует расширенная реклама, которая всегда идет не на основных 3 каналах (чтобы не мешало другим.). И эти сообщения не ограничены по длине...
Но на основных 3 каналах выдается указание на каком канале модуль ведет трансляцию расширенной рекламы..
 

pvvx

Активный участник сообщества
@nikolz - Стандарты и SDK к BLE меняются быстрее, чем вы осваиваете азы BLE... Если не догоните, то будете плодить массу ошибок перебирая функции из SDK...
Обычным терминалом рекламы BLE уже давно нет смысла смотреть - запутаетесь в потоках :)
 

nikolz

Well-known member
@nikolz - Стандарты и SDK к BLE меняются быстрее, чем вы осваиваете азы BLE... Если не догоните, то будете плодить массу ошибок перебирая функции из SDK...
Обычным терминалом рекламы BLE уже давно нет смысла смотреть - запутаетесь в потоках :)
Спасибо за ответы, но в моих задачах BLE не подходит, поэтому шибко с ним не вожусь.
Да стандарты на BLE меняются быстро, вот уже и BLE 5.3 сделали.
Все это лишь подтверждает сказанное мною ранее, что BLE не для умного дома и умных приборов.
В итоге скорострельно лепят новые версии дабы залатать старые дырки.
 

pvvx

Активный участник сообщества
BL702 тоже нормально принимает BLE рекламу (в доках значится что и 5.0):
1638958851316.png
Для примера это вывод в текстовом виде в UART 2 мегабит в сек и в бинарном в USB-CDC...
Такое пишется, проверяется, программируется через USB за 5 минут на дешманской RV-Debugger-BL702.
Да стандарты на BLE меняются быстро, вот уже и BLE 5.3 сделали.
Все это лишь подтверждает сказанное мною ранее, что BLE не для умного дома и умных приборов.
В итоге скорострельно лепят новые версии дабы залатать старые дырки.
Это только ваше мнение - производители считают иначе и практически перешли на BLE для всех бытовых устройств, включая всякие вумные дома.
Да и народ ныне выкидывает старые WiFi (особенно с ESP) и заменяет на BLE с CR2032 - уже толпа таких сообщений только в репе на github про Xiaomi термометр.
Стандарт меняют по причине что теперь, после выхода 5.0 в него всё старое вписывается - уже и audio, давно и IP сети, всякие датчики и ручные безделушки...
 

nikolz

Well-known member
BL702 тоже нормально принимает BLE рекламу (в доках значится что и 5.0):
Посмотреть вложение 11529
Для примера это вывод в текстовом виде в UART 2 мегабит в сек и в бинарном в USB-CDC...
Такое пишется, проверяется, программируется через USB за 5 минут на дешманской RV-Debugger-BL702.
Это только ваше мнение - производители считают иначе и практически перешли на BLE для всех бытовых устройств, включая всякие вумные дома.
Да и народ ныне выкидывает старые WiFi (особенно с ESP) и заменяет на BLE с CR2032 - уже толпа таких сообщений только в репе на github про Xiaomi термометр.
Стандарт меняют по причине что теперь, после выхода 5.0 в него всё старое вписывается - уже и audio, давно и IP сети, всякие датчики и ручные безделушки...
Относительно белого списка.
Я так понимаю что это все тот же режим сканирования
только мас адреса фильтруются.
Меня же интересует прием лишь включение, прием одного мак адреса и выключение применика.
Есть такой режим?
------------------------
конечно перешли. А куда они денутся с подводной лодки. Но это не значит что BLE оптимален для указанных мною устройств.
Все еще впереди.
 

pvvx

Активный участник сообщества
Относительно белого списка.
Я так понимаю что это все тот же режим сканирования
только мас адреса фильтруются.
Да.

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

pvvx

Активный участник сообщества
Дуплекс реализован в MESH. Устройство передает рекламный пакет и ждет ответа. Время активного состояния у конечного устройства в MESH может быть пару мс при токе к 6 мА.
А обычный BLE (не маяк, который не умеет соединяться и т.д.) после передачи каждого пакета рекламы включает приемник на чуть более пятьсот мкс для приема запроса от ведущего. Ведущий может запросить дополнение к рекламе или потребовать соединение... Т.е. в режиме рекламы так-же существует типа "дуплекс"...
Ваш любимый ESP-NOW нервно курит в сторонке :p
 

pvvx

Активный участник сообщества
И с какого-то 5.x стандарта для BLE есть вариант выдачи рекламы по событиям, а не постоянно...
Но это не значит что BLE оптимален для указанных мною устройств.
Все еще впереди.
Вот "стандартизаторы" всё пишут и уточняют, пытаясь устаканить всеобщий разброд и шатания в приемлемые рамки, т.к. в BLE уже развелось сверх большое кол-во наворотов.
 

volaltd

Member
И с какого-то 5.x стандарта для BLE есть вариант выдачи рекламы по событиям, а не постоянно...
Вот "стандартизаторы" всё пишут и уточняют, пытаясь устаканить всеобщий разброд и шатания в приемлемые рамки, т.к. в BLE уже развелось сверх большое кол-во наворотов.
По факту клали все на эти стандарты и делают как им проще и быстрее :)
 

pvvx

Активный участник сообщества
По факту клали все на эти стандарты и делают как им проще и быстрее :)
Не заметил - стандарты пишут для крупных производителей, а не для китайцев с Али-экспресс или очумелых ручек c Arduino.
Это в ESP поклали на всё, включая любые стандарты IP, TCP и прочего.
----
Эта фиговина XMWSDJ04MMC на чем? На TLSR825x? (заказал пачку "на поковырять" давно, но что-то долго идут...)
А то надоели LYWSD03MMC с блеклым экраном LCD...
 

volaltd

Member
[QUOTE="pvvx, post: 83839, member: 6"
Эта фиговина XMWSDJ04MMC на чем? На TLSR825x? (заказал пачку "на поковырять" давно, но что-то долго идут...)
[/QUOTE]
Сча окажется собрали совсем на другой элементной базе, будете снова изучать новый прорывный китайский SoC вместо взять и сделать своё под свои потребности? Не сильно дороже и дольше выходит с учётом склада из промахов )
 
Сверху Снизу