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

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

pvvx

Активный участник сообщества
Если у вас есть BLE-снифер под рукой, все-таки я бы глянул на полный адверт-пакет (то что прилетает с hci),
так чтобы видеть, как китайцы это сделали, потому как есть вариации. Частично из академического интереса.)
У меня есть, правда, в одном экземпляре и пока задействован под другие цели)
Но глянуть хочется, ну очень интересно)
Луше WireShark формат
Там всё хорошо и китайцы тут не при чем. Типовой BLE, в wireshark всё тоже ok.
Единственная фигня- это мои вставки туда имени и флага. Без них мудреное ПО в Bluez и следовательно в HA вообще не работает.
И реклама в longRange имеет тип connectable, т.е. там не может быть scanable. А раз нет scanable - то нет запроса имени, как это обычно и уже привычно у программеров.
Пришлось влепить в данные рекламы.
Но никакая windows или android такое устройство никогда не увидят. Требуется расширенная реклама c опцией scanable, а SDK Telink не умеет держать 2 набора расширенной рекламы.
И я ещё не до конца сревесил блобы либ связанных с этим.
Это и есть второстепенная причина почему ещё нет нормальной версии с LongRange. А первостепенная - нафиг она не нужна пока внешнее ПО не созреет. Я думаю что на это потребуются ещё годы.
 

pvvx

Активный участник сообщества
да и еще, самое интересное - гляньте на какой скорости происходит коннект с теми девайсами, которые с Longe Range advert-ом
это можно и нордиком увидеть, там в логе это должно быть видно
С нормальной скоростью - BLE тайминги нормированы и времена ответов и приветов паузы передачи-приема исчисляются в мкс.
Это у ESP лажа с пропусками и у тупых адаптеров с USB2.0FS и питоном. Там да - десятки секунд и батарейка термометра умерла из-за перезапросов и вечного ожидания при включенном RF RX...
Все графики давно опубликованы на git и тут даже часть есть...
 

sL0n1k

Member
Забудьте на время про свое ПО.
Специально открыл еще раз спецификацию, чтобы найти точное место, которое Вас наверняка если не обескуражит, то заставит задуматься, как человека достаточно глубоко знающего 5-ую спецификацию.
Как Вы абсолютно точно заметили вчера, без aux каналов long range не работает - если строго следовать спецификации и мы понимаем, что писатели стека не будут рисковать и отклоняться от этих требований, иначе SIG их пошлет на квалификации. А вот дальше так:
BLUETOOTH CORE SPECIFICATION Version 5.2 | Vol 6, Part B page 2888
Table 2.14: Aux PHY field encoding

вместе и информацией о aux канале на котором передаются данные, передается информация какой Phy может быть у этого канала,
а он как мы видим может быть и legacy т.е. 1М без кодирования. И как себя повели китайцы - это большой большой вопрос.
Т.е. вы видите как бы Long Range, только не кодированный - и это в полном соответствии со спецификацией. Так что без снифера - сложно.
 

sL0n1k

Member
Есть конечно, надежда, что нордик нас не дурит, но тогда почему нордику не дифференцировать S2 от S8 и показать нам это,
но он это не делает пишет, что закодировано и все
 

pvvx

Активный участник сообщества
То, что я написал что ваша прога затупила может быть масса причин - коллизии никто не запрещал в моем рое BLE и WiFi. Могли бы сами догадаться. :)
 

pvvx

Активный участник сообщества
Забудьте на время про свое ПО.
Специально открыл еще раз спецификацию, чтобы найти точное место, которое Вас наверняка если не обескуражит, то заставит задуматься, как человека достаточно глубоко знающего 5-ую спецификацию.
Как Вы абсолютно точно заметили вчера, без aux каналов long range не работает - если строго следовать спецификации и мы понимаем, что писатели стека не будут рисковать и отклоняться от этих требований, иначе SIG их пошлет на квалификации. А вот дальше так:
BLUETOOTH CORE SPECIFICATION Version 5.2 | Vol 6, Part B page 2888
Table 2.14: Aux PHY field encoding

вместе и информацией о aux канале на котором передаются данные, передается информация какой Phy может быть у этого канала,
а он как мы видим может быть и legacy т.е. 1М без кодирования. И как себя повели китайцы - это большой большой вопрос.
Т.е. вы видите как бы Long Range, только не кодированный - и это в полном соответствии со спецификацией. Так что без снифера - сложно.
Перед тем как писать всякое - смотрим давно опубликованную диаграмку на гите и внимательно читаем что пишет nRFConnect, а так-же подключаем сниффер и глядим.
 

sL0n1k

Member
Т.е. как вы понимаете, речь в конечном счете
То, что я написал что ваша прога затупила может быть масса причин - коллизии никто не запрещал в моем рое BLE и WiFi. Могли бы сами догадаться. :)
Врядли коллизии, пишите что она выдает, когда тупит, лучше скрин или кусок видео с экрана.
Да, на некоторых телефонах иногда нужно перевключать блютуз, но это пока редкость.

Но про косяки - обязательно пишите, даже малые, то что видите)
 

pvvx

Активный участник сообщества
Т.е. надо и сюда копипаст из гит по данной теме к термометрам для вас вставлять?
More than 8 times - advertising remains on the main channels + data, on another channel.
Full LongRange (Coded PHY S8, Coded PHY S8):
image

Legacy (1M PHY)
image
По времени TX не понятно?
 

sL0n1k

Member
Перед тем как писать всякое - смотрим давно опубликованную диаграмку на гите и внимательно читаем что пишет nRFConnect, а так-же подключаем сниффер и глядим.
Зачем?
Я читаю спецификацию ))
Мне этого достаточно

И я видел это у Техаса, кипариса, инфинеона))
 

sL0n1k

Member
Т.е. надо и сюда копипаст из гит по данной теме к термометрам для вас вставлять?
More than 8 times - advertising remains on the main channels + data, on another channel.
Full LongRange (Coded PHY S8, Coded PHY S8):
image

Legacy (1M PHY)
image
По времени TX не понятно?
А, ну это меняет дело)
Сорян))
Тогда Вам еще респект от меня, но то что я написал - возможно реально и будет квалифицировано SIG
 

pvvx

Активный участник сообщества
Ещё учить подключать сниффер?
Для nRF снифера в wireshark надо сначала переключить его в режим CodedPHY, а потом уже запускать. И он не покажет никакие 1M/2M если включен в CodedPHY. Он тупой и так-же нифига не дописан.
В nRFСonnect тоже надо галки в конфиге включать, чтобы он хоть что-то принял из 5.0+
 

sL0n1k

Member
Не у меня снифер умеет все, он аппаратный.

Coded то он Coded, только если менять s8 на s2 нордик не скажет об этом)
 

pvvx

Активный участник сообщества
И за китайский Telink не беспокойтесь - они входят в ассоциацию и имеют все подтверждения.
Но без NDA дают только огрызки вместо нормальных SDK.
Coded то он Coded, только если менять s8 на s2 нордик не скажет об этом)
А оно ему не надо - они давно отстающие... Всё переходит в Китай :)
 

sL0n1k

Member
И за китайский Telink не беспокойтесь - они входят в ассоциацию и имеют все подтверждения.
Но без NDA дают только огрызки вместо нормальных SDK.
А оно ему не надо - они давно отстающие... Всё переходит в Китай :)
Как Вы, наверное, понимаете проблемы китайцев шерифа волнуют не сильно)
А вот американцев - да, есть такое)
 

pvvx

Активный участник сообщества
Тут ответы на ваш вопрос:
Тип рекламы:
Кодировка по умолчанию для соединения и рекламы:
И никто не запрещает подключиться и изменить PHY на любой, в зависимости от условий эфира (хоть по rssi)
 

sL0n1k

Member
Тут ответы на ваш вопрос:
Тип рекламы:
Кодировка по умолчанию для соединения и рекламы:
И никто не запрещает подключиться и изменить PHY на любой, в зависимости от условий эфира (хоть по rssi)
понятно)
 

pvvx

Активный участник сообщества
Есть неизвестное, что нужно ещё изучить - во первых есть неизвестный доп. параметр у функции рекламы - scan response notify enable
Документации нет и не будет без NDA. Но есть подозрения, что где-то должно быть подтверждение приема номера канала данных (это нумерок уже канала или номера сообщения передачи и используется при передаче кусками длиннющей рекламы)
Такую рекламу должны подтвердить, чтобы устройству перейти к передаче следующих частей, нового пакета данных...
В какой доке BT это описано?
 
Сверху Снизу