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

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

pvvx

Активный участник сообщества
Кэша у вашей системы не хватило (?) - лучше жрать батарейки и время пользователя?
UUID в термометре не меняются. Меняются только атрибуты доступа при вводе pin-code и то исключительно после полной перезагрузки "на холодною". Т.е. не во время соединения, но и там SDK должно отработать параметры смены c какого по какой UUID изменились в нужном UUID.
И даже в таком случае есть проблемки с некоторыми адаптерами (точнее с их дровами) - они не хотят обновить кэш, без отключения и повторного включения питания.
А с теми устройствами, которые не имеет нужного UUID потом возникают проблемы и некоторые ссылаются что это ошибки SDK :)
Подробнее об отсылках что SDK имеет ошибки, а не кривописанное устройство BLE можно найти у автора в теме https://esp8266.ru/forum/threads/ch582m-sh581-ch582-sh583.6371/
 

pvvx

Активный участник сообщества
Чат ГПТ, насколько мне сообщили, сносно пишет на бейсике.
Более лучше он пишет в Arduino. И прочих - java, питон. Хорошо находит ошибки и недочеты.
Жду когда его натаскают на PDF чипов и он сможет писать на микроконтроллеры... Интересно - сколько на это уйдет времени его обучения... А то надоело ждать.
 

sL0n1k

Member
Это не повод говорить что у вас правильная программа, соответствующая рекомендациям bt SIG.
Да, тут надо, видимо пояснить.
Эта информация может кому-то из читателей пригодится.

Вы вспомнили, о том что я писал: qt предупреждает о работе устройства с явными отклонениями от спецификации?
Так это он протранслировал сообщения от блютоз-стека андроида. Я тут ни при чем.)

Получается, что разработчики стека на андроиде позаботились об этом (частично), и nRF коннект эту информацию тоже получает,
но никак не визуализирует и не пишет в логи.
Хорошо, что андроид в свое время отказался от Bluez, хотя все были недовольны тогда))

Собственно, это путь который позволяет просто и беззатратно проверить, как обстоят дела с теми-ли иными ble-девайсами.
 

pvvx

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

sL0n1k

Member
И возвращаясь к нашим баранам, опять же.))
Я добавил функционал, похожий на то что есть у сяоми, а именно передачу данных датчиков на публичный (или частный) MQTT брокер (в том числе и архив данных), что позволяет интегрировать это все в любую систему Home Automation (хоме ассистент в том числе). Вот это: rightech.io , правда, посерьезней, на мой взгляд (ну их сейчас таких - море подобных)

Кроме того, теперь для того чтобы из приложения данные начали улетать на сервер-брокеру (указанный при настройке группы), достаточно просто начать сканирование и данные из рекламы полетят в MQTT и т.д. В режиме коннекта, кроме данных из рекламы на сервер улетит и архив (ограничил частью в последние 300 точек). Как Вы понимаете, в том числе с датчиков в режиме long range. Кроме того, таких групп (разных MQTT брокеров) может быть сколько угодно. Изначально, это было задумано для наших датчиков и электросчетчиков, но наличие у Вас рекламы с данными и почти допиленный long range, посчитал целесообразным это тоже добавить.
Описание этого всего и публичный доступ откроем, видимо, на RuStore, где-то через месяц.

На самом деле это все было сделано в коллекторе, сейчас просто частично вынес на уровень клиентского приложения.
Заставить себя это сделать, без добавления нового функционала, мне было сложно, т.к. я не страдаю графоманией, а прикручивать только сяоми - слишком банально.)) Это к вопросу для чего мне это все, если он у кого-то возник))
 

sL0n1k

Member
Оставлю это здесь, может кто заинтересуется, да реверсирует его - очень интересно поведения индикатора блютуз.
Прошу поделиться реверсом ))

Некоторые специфические подробности работы датчиков температуры и влажности Xiaomi

XMWSDJ04MMC новый датчик на E-ink

LYWSD03MMC предыдущая модель

  • Сброс по питанию XMWSDJ04MMC – зажатием кнопки на корпусе на 7 секунд. После сброса по питанию новый датчик предоставляет 30 минут для его активации (периода активации) и, в течение этого времени, мигает индикатором блютуза. Если его не активировать в течение 30 минут, то он выключает свой интерфейс блютуз до следующего сброса по питанию. Активировать XMWSDJ04MMC можно двумя способами. Первый – канонический путем добавления его в MiHome, однако в настоящее время (25.01.2023) возможность использовать этот датчик есть только в регионе Китай. Второй способ активации – установить с ним подключение (и удерживать подключение) до момента истечения момента активации. Во втором случае индикатор блютуз выключится (при установленном коннекте с устройством), что сигнализирует об успешной активации. В общем, в этом случае надо установить коннект с устройством не позднее 30-ти минут после сброса по питанию (и удерживать коннект) до момента исчезновения значка блютуз. Замеченное отличие в способах активации состоит в том, что после активации по второму способу индикатор блютуз не будет отображаться при дальнейших установлениях коннекта (такой себе своеобразный silence-mode). В период активации датчик не производит новые измерения при установленном коннекте, т.е. передает последние измеренные значения, даже при включении нотификации данных. Также следует учитывать, что при каноническом способе активации датчиком генерируются ключи шифрования для дальнейшего использования совместно с MiHome, при втором способе этого не происходит. Активация требуется после каждого сброса по питанию, если предполагается использование датчика по блютуз (посредством MiHome).

  • Значение RTC также сохраняется в энергонезависимой память (видимо с тем же периодом, что и у предыдущей модели – 5 минут). Однако синхронизировать RTC нельзя. Хотя характеристика RTC и позволяет запись, новые значения не принимаются датчиком. Новая модель датчика сохраняет в энергонезависимой памяти и значение RTC момента последней активации (без учета минут). По сути значение RTC в новой модели служит счетчиком общей работы датчика в секундах (с точностью до 5 минут).

  • Архив значений сбрасывается после сброса по питанию, что означает ведение архива в оперативной памяти, а не в энергонезависимой, как у предыдущей модели. В общем, вполне рациональное изменение, существенно продлит жизнь батарейки.

  • Период адвертазинга у новой модели в ~10 раз меньше (до 200 миллисекунд), чем у LYWSD03MMC. Это с одной стороны негативно скажется на продолжительности работы батарейки, с другой – повысит скорость подключения и, соответственно, комфортность чтения показаний для пользователя.

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

  • Если XMWSDJ04MMC был активирован каноническим способом, то при отсутствии к нему подключения не более 1 минуты, выключает блютуз и включает его по короткому нажатию кнопки на корпусе. Если связь была установлена более чем на 1 минуту, то XMWSDJ04MMC выключает блютуз сразу по окончании сеанса.
 

Yakov

New member
В новой версии уменьшен интервал и соединение стало немного стабильнее.
Причина нестабильности - аппаратная - жадность Xiaomi - не впаяны конденсаторы по питанию.
Я использовал версию прошивки ATC_v40.bin , есть более новая ?
Сложно ли впаять туда кондёры самому ? и какие надо ?
 

pvvx

Активный участник сообщества

pvvx

Активный участник сообщества
XMWSDJ04MMC имеет проблемное подключение для активации.
@sL0n1k - народу нужно не эти описания, а как его заставить войти в соединение с активной активацией. Очень плохо это и в MiHome.
Тема до конца не разгадана. Есть подозрения, что он запоминает MAC того кто его сканировал и только с ним включает разрешение активации при последующем соединении...
В итоге надо хитро жать кнопку на нем, чтобы он активировался.
 

sL0n1k

Member
XMWSDJ04MMC имеет проблемное подключение для активации.
@sL0n1k - народу нужно не эти описания, а как его заставить войти в соединение с активной активацией. Очень плохо это и в MiHome.
Тема до конца не разгадана. Есть подозрения, что он запоминает MAC того кто его сканировал и только с ним включает разрешение активации при последующем соединении...
В итоге надо хитро жать кнопку на нем, чтобы он активировался.
 

sL0n1k

Member
Я все написал, кому надо тот активирует))
У меня прекрасно работает без ми хоме)

Да, мне это и не важно работает это у вас или нет.

Это инфа для тех кто захочет его реверсить, благо там нормальный арм.
Если кто готов, я, возможно, тоже подключусь)
 

sL0n1k

Member
Да именно )
Я его прикрутил к своему приложению и это вам показал, как и то показал, что оказывается (о чудо !)
long range у всех на андроиде работает))

Вы читайте, проверяйте, а потом пишите.
Или чукча не читатель, - чукча писатель?
 

pvvx

Активный участник сообщества
Это инфа для тех кто захочет его реверсить, благо там нормальный арм.
И нафига эта инфа для создания собственной прошивки?
Всё необходимое уже указано тут XMWSDJ04MMC
Прошивки заливаются, пины указаны, логи RTT работают...
 

pvvx

Активный участник сообщества
Да именно )
Я его прикрутил к своему приложению и это вам показал, как и то показал, что оказывается (о чудо !)
long range у всех на андроиде работает))

Вы читайте, проверяйте, а потом пишите.
Или чукча не читатель, - чукча писатель?
Так и не работает "long range у всех на андроиде". Это доступно исключительно в специальной программе работающей с дровами BT напрямую c 2016 года. Т.е. ничего не изменилось для народу.
И Вы пока ничего не сделали, что было указано ранее - любой BT5.0 адаптер может работать с Long Range.
 
Сверху Снизу