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

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

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