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

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

pvvx

Активный участник сообщества
Здрасьте.
В азарте спора отвлекаюсь от реалий, знаете ли, что мне мешает, поэтому отписался от отслеживания)
Интеграция Longe Range и HA не представляет проблемы, для этот не нужно апеллировать к разработчикам.
Достаточно будет небольшого скрипта (bash, perl, raku). Ну, конечно, если это кому-то действительно надо, не ясно зачем только)
Скрипта не хватает. Bt интеграция переинициализит адаптер при сбоях. И на ходу PHY не переключается для уже открытой сессии в HA.
А другая интеграция вообще не работает с выбранным PHY - устанавливает 1M.
Для получения большого BLE-покрытия используются более традиционные методы, опять же очень давно - лет как 15 ))
Зачем мне больше 1 км - у меня участки в длину меньше.
 

pvvx

Активный участник сообщества
> не нужно апеллировать к разработчикам.
Пусть эти разработчики включат поддержку BT5.0. Мне нужны все опции, включая периодическую рекламу. Это тоже нужно всем для уменьшения потребления на перепрошитых Xiaomi термометрах, а так- же для DIY и всего IoT.
Или так и сидеть на BT4.0 всем в Linux и т.д.?
Ко мне с этими термометрами пользователи в основном лезут с вопросами по их ошибкам :p и в основном по ESPHome.
 

pvvx

Активный участник сообщества
Для получения большого BLE-покрытия используются более традиционные методы, опять же очень давно - лет как 15 ))
В перед - в руки термометр и смарт и увеличьте "BLE-покрытие" используя только эти 2 устройства. И лучше замените смарт на RPI4, как это навязали всем.
Или каждому в дом оборудование со связью с Вояджер 1 и 2 ? :)
 

pvvx

Активный участник сообщества
Достаточно будет небольшого скрипта (bash, perl, raku). Ну, конечно, если это кому-то действительно надо, не ясно зачем только)
Это заявки пользователей, а не мои.
Мне приходиться учитывать бредовый код данных писателей, а им пару байт не поправить?
Ваше предложение гораздо хуже - если взять их проекты и переписать - для них это типа поставить свой (c), то вой будет ещё больше.
А писать за них, тем более под лицензии Товальдса - это значить принять систему лицензирования и частной собственности на все знания человечества.
Там везде расчет идет на то, что какой либо кент забивает место под солнцем и заявляет название проекта, и все права, включая ваши поправки и ваш код будут под его именем и правами.
Ныне такой метод open-sorce - застолбивший кент ничего не делает, кроме вставки своих прав на чужой код, который ему присылают :p , а так-же осуществляет лицензацию, заложенную бомбой в open-sorce Товальдсом.
 

pvvx

Активный участник сообщества
Говорят, что CR2032 - это батарейка. На одном из опытных Xiaomi LYWSD03MMC у меня припаян разъем для отладки и прочего. При его подключении батарейку не вынимаю, и она включается к 3.3В источнику и типа заряжается:
1676724724286.png
Сколько этой батарейке я уже не помню с 2021 года, но она перенесла все отладочные перепрограммирования всех версий с кол-вом от десятка опытных на каждую выложенную в git версию и работает по сей день...
Но если пробовать "зарядить" уже севшую батарею CR2032, то ничего хорошего не выходит...
Полная неопределенность с параметрами этих CR2032.
 

sL0n1k

Member
В перед - в руки термометр и смарт и увеличьте "BLE-покрытие" используя только эти 2 устройства. И лучше замените смарт на RPI4, как это навязали всем.
Или каждому в дом оборудование со связью с Вояджер 1 и 2 ? :)
Я для этого использую модули с интегрированными усилителями. Очень прилично. При заявленных 400 метрах, реально адверт летит 1 км, по потреблению это даже лучше, чем long range. Но если хочется еще лучше - берем модули без усилителей с внешними ufl разъемами, ставим антенну хоть 30 dbi и получаем расстояние до 10 км, не меньше. Ну, а если взять фрязенские свч-усилители, то 50 км - проверено (это правда уже не BLE, но BLE тоже будет работать) .

По поводу скрипта. Я бы делал так.
1. Берем малину или лучше оранж (у них, кстати внешние антенны) с BLE-4.2 на борту (ну или что-то еще где HA)
2. Предоставляем HA работать с дефолтным 4.2 BLE.
3. Вставляем BLE-5 донгл и пишем скрипт, который работает только с ним, HA про него не знает даже.
4. Скрипт запускает сканирование одновременно, например, c btmon.
5. Парсим выход btmon-а и кладем это все в mqtt- топики для HA.
6. Скрипт запускаем кроном. На этом все.

HA здесь вообще никоим образом не задействуется

Самое долгое здесь будет - аккуратно написать реджекс в п.5. Но это все-равно, думаю, не больше 2-х часов все вместе.
Думаю, Ваши пользователи вполне в состоянии зааплодить такой скрипт на борт )
В общем, напишите (так или иначе) - поделитесь, думаю в несколько часов уложитесь))
Мне пока не нужен, но вдруг..
 

pvvx

Активный участник сообщества
Я для этого использую модули с интегрированными усилителями. Очень прилично. При заявленных 400 метрах, реально адверт летит 1 км, по потреблению это даже лучше, чем long range. Но если хочется еще лучше - берем модули без усилителей с внешними ufl разъемами, ставим антенну хоть 30 dbi и получаем расстояние до 10 км, не меньше. Ну, а если взять фрязенские свч-усилители, то 50 км - проверено (это правда уже не BLE, но BLE тоже будет работать) .
Зачем усилитель, если чип TLSR825x в термометре может выдавать +10дБ?
Но на это неспособна батарейка. С CR2032 до проседания напряжения не выжать 25+ мА. Если только у свежей, на несколько дней.
Тем более кому нужна связь по BLE c Вояджерами? У большинства владения ограничены 25 метрами из одного угла к самому дальнему :)
Текущий вариант термометров с LE LongRange, без доработок и при RF-TX +0Дб, находящийся в сарае с обивкой профлистом, успешно соединяется со смартом на расстояниях в 200 метров.
Туда WiFi не добивает.
Куда ещё больше?

По поводу скрипта. Я бы делал так.
1. Берем малину или лучше оранж (у них, кстати внешние антенны) с BLE-4.2 на борту (ну или что-то еще где HA)
2. Предоставляем HA работать с дефолтным 4.2 BLE.
3. Вставляем BLE-5 донгл и пишем скрипт, который работает только с ним, HA про него не знает даже.
4. Скрипт запускает сканирование одновременно, например, c btmon.
5. Парсим выход btmon-а и кладем это все в mqtt- топики для HA.
6. Скрипт запускаем кроном. На этом все.
Детсад какой-то.
Проще вписать 2 строки в bt_helpers.py, и перезагрузить HA, тем более что и как уже указано.
 

pvvx

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

Вариант 1:

В TelinkMiFlasher.html измените строку :
const MAX_RF_TX_Power = false;
на
const MAX_RF_TX_Power = true;
изображение

Вариант 2:

В Google Chrome:
изображение
изображение


Далее при соединении с термометром с установками более +3дБ (VANT) будет всегда доступно это переключение.
Это всё сделано для защиты от детей, орущих что у них не работает термометр или быстро умирает батарейка.
В реальности, даже на более-менее свежей батарейке CR2032 переключение на +10дБ вызовет невозможность найти или соединиться с термометром, т.к. RF-TX переключается напрямую к батарейке, а итоговый сигнал становиться меньше, чем -20дБ из-за просадок..

А RPi выкиньте в помойку.
 

pvvx

Активный участник сообщества
Самое долгое здесь будет - аккуратно написать реджекс в п.5. Но это все-равно, думаю, не больше 2-х часов все вместе.
Думаю, Ваши пользователи вполне в состоянии зааплодить такой скрипт на борт )
В общем, напишите (так или иначе) - поделитесь, думаю в несколько часов уложитесь))
Мне пока не нужен, но вдруг..
И нафига всё это?
Ещё раз переписывать весь парсер и передавать исправленные исходники Ernst79, чтобы интеграция начала работать нормально и дело с BLE в HA хоть как-то закрутилось?
Уж хватит - думаю что он уже сам сможет.
 

pvvx

Активный участник сообщества
Ныне проблема с интеграцией "bluetooth". О они ссылаются на используемую прокладку API "Bleak" к Bluez (хотя напрямую из питона вызывают консольные приложения :) :) , но фиг с ними). У Bluez вроде всё более менее в нутре, но не в прилагаемых утилитах. У "Bleak" пинок под зад вызвал какое-то движение. Но что это даст и когда - неизвестно.
Уровень прокладок зашкаливает. Но они же Программисты с большой буквы, а я не являюсь программистом.
Bleak-у видители нужен API. Т.е. ещё прокладку. Им оно найдено и указано для Linux и Android.
 

pvvx

Активный участник сообщества
В дальнейшем я предполагаю, что будет борьба в Linux с DBUS, c Bluez по правильности работы их декларированном API, и с кривостями в ядре Linux...

Т.е. это надо ждать новых версий kernel и когда эта толпа наворочает кучу спам-кода... Быстрее ChatGPT попросить...
 

pvvx

Активный участник сообщества
Google Web Bluetooth API вообще сдвинуть невозможно, как и Windows и MACOS. Там всё связанное с BLE запущено изначально и даже думать не стоит.
@sL0n1k - если это как-то возможно, киньте какой пример на Android для работы с Coded PHY. Правда времени на какие-то разработки приложений под Android у меня через несколько дней уже не будет - есть свои большие делишки...
 

pvvx

Активный участник сообщества
Руководство как включить бесшовный прием рекламы на всех типах PHY в HA на русском. На английском пока продолжается блокировка русских ip инструкций не будет, или пока кто не переведет :).

Обнаружена фича в Chrome Android:
1. Сбросить термометр в режим BT4.2.
2. Соединиться с ним в Chrome Android с помощью TelinkMiFlasher.html.
3. Включить "LE Long Range", сохранить конфигурацию и "Disconnect".
4. Не выключать страницу. Термометр перезагрузится и будет работать в "long Range".
5. Нажать "Reconnect" - смарт в Chrome подключится к термометру работающему в "long Range" режиме.

Отключения и соединения на других страницах можно продолжать до бесконечности.
Но если Chrome забудет (закроете или обновите все страницы), что существует такое BLE устройство, то больше не подключится, т.к. сканирование в форматах BT5.0 ещё не реализовано в его API, а всё остальное делает адаптер BT.
 

sL0n1k

Member
Зачем усилитель, если чип TLSR825x в термометре может выдавать +10дБ?
Но на это неспособна батарейка. С CR2032 до проседания напряжения не выжать 25+ мА. Если только у свежей, на несколько дней.
Тем более кому нужна связь по BLE c Вояджерами? У большинства владения ограничены 25 метрами из одного угла к самому дальнему :)
Текущий вариант термометров с LE LongRange, без доработок и при RF-TX +0Дб, находящийся в сарае с обивкой профлистом, успешно соединяется со смартом на расстояниях в 200 метров.
Туда WiFi не добивает.
Куда ещё больше?

Детсад какой-то.
Проще вписать 2 строки в bt_helpers.py, и перезагрузить HA, тем более что и как уже указано.
Для этого у меня есть 3 режима Long Deep Sleep, который предназначен для ухода в глубокий сон до суток - батарейки может хватать на несколько лет (2032 - не знаю, я их не пользую).

Да, и потом, я лучше буду использовать Legacy Advert с устройствами с хорошей внешней антенной, хотя бы 2-3dbi,
чем Long Range на микро донглах (типа реаклтека, что у Вас) - это просто теряет всякий смысл. Чтобы это имело смысл, нужны не донглы, а карты M2 и ufl разъемами, тогда - да.)
 

sL0n1k

Member
Это из IEEE 802.x, так сказать подтверждение предыдущего мое утверждения про откровенную чушь)))

In DSSS, the message bits are both frequency and time spread DSSS.
This kind of spreading reduces the influence of interference and fading. The percentage error in DSSS is less than FHSS

В wi-fi помехоустойчивость заложена в самой сути, так сказать, на самом низком уровне.
То что мы наблюдаем в спецификации SIG - притянутое за уши помехоустойчивое кодирование, которое НЕ изменяет энергетику,
т.е. чуда c Long Range не будет - можете расходиться))
 

pvvx

Активный участник сообщества
Это из IEEE 802.x, так сказать подтверждение предыдущего мое утверждения про откровенную чушь)))

In DSSS, the message bits are both frequency and time spread DSSS.
This kind of spreading reduces the influence of interference and fading. The percentage error in DSSS is less than FHSS

В wi-fi помехоустойчивость заложена в самой сути, так сказать, на самом низком уровне.
То что мы наблюдаем в спецификации SIG - притянутое за уши помехоустойчивое кодирование, которое НЕ изменяет энергетику,
т.е. чуда c Long Range не будет - можете расходиться))
Т.е. у вас до сих пор нет BLE с Long Range для тупого теста?
Это ясно из сообщений о RPi...
 

sL0n1k

Member
Детсад какой-то.
Проще вписать 2 строки в bt_helpers.py, и перезагрузить HA, тем более что и как уже указано.
Тут Вам предлагалось написать скрипт в десяток строк и не зависеть от ни от разработчиков HA ни от разработчиков Bluez, а
Вы опять хотите наступать на все грабли которые есть и будут?)))
 
Сверху Снизу