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

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

pvvx

Активный участник сообщества
На несколько минут включил в nRFConnect выдачу рекламы. Сразу вся панель HA залепилась (найдено миллион устройств :) ):
1675980736549.png
Видимо не отличить random MAC, от постоянного... Спасет только отключение авто-добавления, но оно мне нужно...
 

sL0n1k

Member
Прошил новый long range (пишет версия 9.9 так должно быть?)

Около 20 раз успешно прошло чтение данных (20 коннектов)

Следующая попытка коннекта привела к зависанию прибора в таком состоянии:

- коннект установлен;
- начат процесс discovery services;
- по экрану нет признаков, что жрет батарею;

Подобное поведение наблюдалось и в версии 4.0 (писал), но там прибор не зависал,
просто коннект к нему не проходил до сброса по питанию.
 

Yakov

New member
Приветствую.
Я пытаюсь использовать LYWSD03MMC как монитор для HA: посылать на LYWSD03MMC данные с другого датчика.
К HA подключен через nodemcu-32s с помощью ESPHome.
Прошивкана в LYWSD03MMC: 'ATC_v40.bin'
Интеграция (или как оно назавается) от сюда :

Мой код : несколько binary_sensor и sensor LYWSD03MMC (не копировал всё, чтобы не раздувать код) и один ble_client:
Код:
time:
  - platform: homeassistant
    id: homeassistant_time
    
esp32_ble_tracker:

binary_sensor:
  - platform: ble_presence
    mac_address: хх:56:хх:C7:хх:7D
    name: ${location}_mi_band_4_N
  - platform: ble_presence
    mac_address: E9:хх:2B:хх:хх:D3
    name: ${location}_mi_band_4_my_Y
sensor:
# Уровень сигнала обнаруженных устройств
  - platform: ble_rssi
    mac_address: хх:хх:08:хх:4B:хх
    name: ${location}_mi_band_4_N_rssi
# Датчики температуры и влажности
  - platform: xiaomi_lywsd03mmc
    mac_address: A4:хх:хх:81:хх:D6
    bindkey: "dbdaхххх208c8ххххх098c27"
    temperature:
      name: ${location}_bt1_temperaturе 


ble_client:
- mac_address: "хх:хх:хх:хх:хх"
  id: pvvx_ble_display
display:
- platform: pvvx_mithermometer
  ble_client_id: pvvx_ble_display
  lambda: |-
    it.print_bignum(23.1);
    it.print_unit(pvvx_mithermometer::UNIT_DEG_C);
    it.print_smallnum(33);
    it.print_percent(true);
    it.print_happy(true);
    it.print_bracket(true);
В логе частенько проскакивает :

19:57:54[W][display.pvvx_mithermometer:069][хх:хх:хх:хх:хх:хх] Not connected to BLE client. State update can not be written.

На самом LYWSD03MMC появляется то то что я на него посылаю , то всплывают его сонственные внутрение показания....
 

pvvx

Активный участник сообщества
На самом LYWSD03MMC появляется то то что я на него посылаю , то всплывают его сонственные внутрение показания....
В новой версии уменьшен интервал и соединение стало немного стабильнее.
Причина нестабильности - аппаратная - жадность Xiaomi - не впаяны конденсаторы по питанию.
 

pvvx

Активный участник сообщества
Следующая попытка коннекта привела к зависанию прибора в таком состоянии:

- коннект установлен;
- начат процесс discovery services;
- по экрану нет признаков, что жрет батарею;

Подобное поведение наблюдалось и в версии 4.0 (писал), но там прибор не зависал,
просто коннект к нему не проходил до сброса по питанию.
Вам тоже повторить в 100 раз - Причина нестабильности - аппаратная - жадность Xiaomi - не впаяны конденсаторы по питанию.
 

pvvx

Активный участник сообщества
Прошил новый long range (пишет версия 9.9 так должно быть?)
Да - это ключ для переключения в TelinkMiFlasher на временные отладочные версии с хитрыми опциями. По мере тестов в TelinkMiFlasher для версий 9.9 меняются опции для текущих отладочных версий, чтобы не трогать типовые пользовательские...
Разве сложно догадаться?
 

sL0n1k

Member
Да - это ключ для переключения в TelinkMiFlasher на временные отладочные версии с хитрыми опциями. По мере тестов в TelinkMiFlasher для версий 9.9 меняются опции для текущих отладочных версий, чтобы не трогать типовые пользовательские...
Разве сложно догадаться?
Мне что к гадалке записаться?))
Представил картину: карты, свечи, датчик и гадалка)))
Я понимаю, что лапидарность - не Ваш конек, но все же, можете кратко (можно односложно) ответить на:

1. В версии с конденсатором прибор в Long Range у Вас не зависает при коннектах?
2. Пришлите фото донгла (и ссылку на продукт) - достаточно одного, который у Вас подтверждено работает в long range в линухе.
 

pvvx

Активный участник сообщества
Мне что к гадалке записаться?))
Представил картину: карты, свечи, датчик и гадалка)))
Я понимаю, что лапидарность - не Ваш конек, но все же, можете кратко (можно односложно) ответить на:

1. В версии с конденсатором прибор в Long Range у Вас не зависает при коннектах?
От БП ничего и никогда не "зависает". От батарейки - аналогично. Пару дней назад ездил в город, осматривал что там творится в пустующем доме и сменил батарейку CR2032 в LYWSD03MMC - работала 2 года при +24..25С и успешно всё слала. На оф. версии прошивки батарейки умирают каждый год :(
Ваша лапидарность зашкаливает - ничего и никому не понятно, что вы пишите. Тут не только гадалку надо, но и их десяток с часовым обсуждением что вы имели в виду не прокатит.
2. Пришлите фото донгла (и ссылку на продукт) - достаточно одного, который у Вас подтверждено работает в long range в линухе.
А "ключи от квартиры где деньги лежат" тоже?
Всё, что конкретно касается версий и вариантов как и куда находится на github. Даже картинка адаптера есть. Тут один треп.
И ссылки на где картинка дублируется и приложено описание тоже недавно даны тут.
 

pvvx

Активный участник сообщества
Дубли:
Bluetooth5.0+ PHY (LE 1M/2M/LongRange:500K/125K), CSA1/CSA2 (Channel Selection Algorithm)
Reception of advertising in the "Long Range" mode (Coded PHY S=8) does not work.

PS: лапидарность = "абырвалг" в технических темах на сайте, где необходимо всё разгребать до кухонного языка, понятного всем. Переводом на "кухонный язык" для обывателей не владеет тот, кто не врубается в тематику того, о чем пишет.
 

pvvx

Активный участник сообщества
С какой версии Bluez начало (начнет) работать переключение PHY для приема рекламы в Coded PHY без управления командами в HCI?
И когда заработают утилиты входящие в пакет Bluez c Coded PHY?
И где в btmon можно увидеть S=2 или S=8?
Вроде chartGPT уже работает и хорошо умеет исправлять ошибки...
 

pvvx

Активный участник сообщества
Следующая попытка коннекта привела к зависанию прибора в таком состоянии:

- коннект установлен;
- начат процесс discovery services;
- по экрану нет признаков, что жрет батарею;
Процесс discovery services производится один раз при первом соединении и список сервисов запоминаются к каждому MAC.
В дальнейших соединениях адаптер проверяет только один специальный UUID, по номеру (индексу) из таблицы, без запроса всей таблицы сервисов.
Этот UUID говорит о том, какие сервисы сменились. И только тогда их перечитывают.
Это даже исправили в Arduino к ESP32... А у вас кто будет исправлять?
Одни надежды на chartGPT?
 

pvvx

Активный участник сообщества
При правильном подходе считывание значений нужных UUID происходит за пару мс соединения. Проверено на многих SoC с нормальным, не урезанным SDK. До переключения интервалов, т.е. до запроса датчиком на переключение соединение не доходит, т.к. уже посылается disconnect после чтения по индексам. А передача ответов и приветов на интервалах запрашивающего - это пару мс.
В итоге, то, что вы, sL0n1k, городите в своем ПО - это какой-то детсад и отсебятина.
 

sL0n1k

Member
Процесс discovery services производится один раз при первом соединении и список сервисов запоминаются к каждому MAC.
В дальнейших соединениях адаптер проверяет только один специальный UUID, по номеру (индексу) из таблицы, без запроса всей таблицы сервисов.
Этот UUID говорит о том, какие сервисы сменились. И только тогда их перечитывают.
Это даже исправили в Arduino к ESP32... А у вас кто будет исправлять?
Одни надежды на chartGPT?
Ok.
Ну, если использовать nRF connect, то это чудо в long range зависает сразу, на первом коннекте.
Стесняюсь спросить, Вы хоть немного это тестируете?))
 

sL0n1k

Member
Процесс discovery services производится один раз при первом соединении и список сервисов запоминаются к каждому MAC.
В дальнейших соединениях адаптер проверяет только один специальный UUID, по номеру (индексу) из таблицы, без запроса всей таблицы сервисов.
Этот UUID говорит о том, какие сервисы сменились. И только тогда их перечитывают.
Не вводите людей в заблуждение, я могу делать дискавери когда мне захочется и это не повод девайсам зависать))
 

pvvx

Активный участник сообщества
Не вводите людей в заблуждение, я могу делать дискавери когда мне захочется и это не повод девайсам зависать))
Это не повод говорить что у вас правильная программа, соответствующая рекомендациям bt SIG.
А устройства бывают разные - некоторые убогие, обиженные жадность Xiaomi :p
 

sL0n1k

Member
Это не повод говорить что у вас правильная программа, соответствующая рекомендациям bt SIG.
А кто говорит?)
Если нет ошибок в программе, то надо их искать в операционной системе))
Чат ГПТ, насколько мне сообщили, сносно пишет на бейсике.

Я хорошо помню свою первую лекцию по программирования, когда у профессора спросили:
- Что мы разве не будем изучать бейсик?
На что он нам ответил:
-Бейсик - это язык для наркоманов и проституток.

Это было в прошлом веке)))
 
Сверху Снизу