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

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

Kruzo

New member
Я не в теме этих библиотек, просто хобби полистать машинный код вот и не смог пройти мимо чтоб не взглянуть, мне самому эта библиотека то ни к чему :). Да, данные *.a и *.lib в архиве это один standard_auth, как я писал с несколькими обертками (которые соответственно записываются в си за минуты) над импортируемыми функциями. Больше там ничего нет. А вот реализации импортируемых функция я в этом архиве не нашел, для примера и привел rxfer_process, в архиве есть только заголовок mible_rxfer.h, но реализации нет. То есть в таком виде архива от востановленного standard_auth толку нет, еще какой то архив нужен.
 

Kruzo

New member
Где то должна быть еще либа/исходники с этими импортами для этих *.a. Но по ответу я так и не понял об этом моменте.
 

volaltd

Member
Оно уже с батарейкой, индикатором и сенсором. При этом цена для пользователя одинакова, а работы меньше.
На BLE модулях можно лепить аналог "HA", например для увлажнителя или обогревателя - датчик на Xiaomi LYWSD03MMC, а выключатель, дублирующий установленный триггер на JDY-10. работающий по скану пассивной рекламы...
Можно и мощнее сценарии вписать - раздельно по температуре и влажности... Но пока нафиг не сдалось - тогда зачем "HA" с rPI4 и SSD?
Каждый раз когда кто-то говорит про как сделать проще понимаю что будет болтающаяся на проводах байда, с залитым соплями местом выхода и в целом совсем не вот как по скинутому вами линку где устройство из одной платы, торчащее в цветке и позволяющее спокойно вытереть пыль с подоконника. Что поделать, у каждого разные понятия о красоте, функциональности и практичности.

Смысл в том что нафиг не сдался вариант с кучей затрат времени на реверс, допиливание и интеграцию. Есть вариант взять WT32-ETH01, 100Mbit, питание по тому же кабелю сделать, готовая хорошая открытая прошивка ESPEasy с тонной поддерживаемых устройств и интеграций с системами умного дома, конфигурирование через вебку, покрутикуете?

Так rpi 4 с SSD и незачем, летает HA на rpi3 с сд-карточкой класса A2.
 

pvvx

Активный участник сообщества
Я не в теме этих библиотек, просто хобби полистать машинный код вот и не смог пройти мимо чтоб не взглянуть, мне самому эта библиотека то ни к чему :). Да, данные *.a и *.lib в архиве это один standard_auth, как я писал с несколькими обертками (которые соответственно записываются в си за минуты) над импортируемыми функциями. Больше там ничего нет. А вот реализации импортируемых функция я в этом архиве не нашел, для примера и привел rxfer_process, в архиве есть только заголовок mible_rxfer.h, но реализации нет. То есть в таком виде архива от востановленного standard_auth толку нет, еще какой то архив нужен.
Соберите демо-пример от Telink для Mijia (mi_release_version_4_1_1)
1620479949447.png
и увидите. что ничего кроме пары функций, находящихся в *.a не требуется.
Линковщик не найдет только функции из указанных *.a.
И второй вопрос - а зачем вам другие функции mijia, такие как распределение в ней процессов и прочее? У вас своя система и они не требуются. Точнее уже известны и реализованы альтернативно.

Кроме standard_auth есть и другие варианты - к примеру для MESH. Там шифруются другие команды и все они есть в том SDK в исходниках.
 

pvvx

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

pvvx

Активный участник сообщества
Внешняя процедура, работающая с функциями в *.a - это "Do Activation" в https://atc1441.github.io/TelinkFlasher.html, переписанная на js из java
Каждый раз когда кто-то говорит про как сделать проще понимаю что будет болтающаяся на проводах байда, с залитым соплями местом выхода и в целом совсем не вот как по скинутому вами линку где устройство из одной платы, торчащее в цветке и позволяющее спокойно вытереть пыль с подоконника. Что поделать, у каждого разные понятия о красоте, функциональности и практичности.
Угу, вплавленные в корпус два штыря - это убогость дизайна. :)
Смысл в том что нафиг не сдался вариант с кучей затрат времени на реверс, допиливание и интеграцию.
Это исключительно ваши условия существования.
Есть вариант взять WT32-ETH01, 100Mbit, питание по тому же кабелю сделать, готовая хорошая открытая прошивка ESPEasy с тонной поддерживаемых устройств и интеграций с системами умного дома, конфигурирование через вебку, покрутикуете?
Зачем сравнивать устройства разной ценовой категорией, тем более когда различия выше десятикратных?
Так rpi 4 с SSD и незачем, летает HA на rpi3 с сд-карточкой класса A2.
Тесты не я делал, а "толпа" и сказано, что если у вас одно устройство-датчик - то карточка будет жить год, а для нормальной системы объем записи на карту в HA увеличивается во столько раз, сколько система имеет тегов от датчиков и скорости обновления данных с них. Т.е. не более 2-х месяцев для средней системы "вумного дома"...
Это породило специальные скрипты по выносу базы во внешние сервисы и специальные фильтры, которые определяют, что писать, а что нет в базу...
 

pvvx

Активный участник сообщества
Вот для теста установил в windows 10 минималку HA:
1620494918412.png
Система из 4-х датчиков и розетки Zigbee, подключено ”ESPHome” и “шлюз 3”, данные с датчиков идут максимально раз в 10 минут, нет никаких сценариев.
Смотрим что творит в *.db HA:
1620494970167.png
Берем 20 килобайт в сек и множим на год - получаем поток в 600 Гбайт для записей в год. Это без учета что запись в базу идет мелкими блоками, а на носителе типа SD это заставляет переписать сегмент не менее от 64 килобайт, а когда база в Гбайты меняется, то её всю и переписать :)
 

pvvx

Активный участник сообщества
volaltd на ваших носителях выгоднее майнить Chia, чем HA. Через пару лет купите полный готовый дом с интегрированной системой от какой корпорашки.. :p
 

volaltd

Member
pvxx, На данный момент моя база имеет размер 344Mb. Возможно проблемы от того что никто не читает документацию и про теги "history:" и "recorder:" не слышали, а так же что по дефолту "purge_keep_days: 10" и пару лет там и не хранится, зато попадает туева куча мусора...

Расскажите мне лучше почему на оригинальной прошивке интеграция https://github.com/custom-components/ble_monitor работает замечательно,
а вот на кастомной как только ставлю advertizing type: Mi и чуть ниже птичку Encrypted Mi beacon, то по Show all mi keys показывает только Device MAC, ключей будто и нет, а интеграция начинает говорить "2021-05-08 23:42:08 DEBUG (Thread-3) [custom_components.ble_monitor.ble_parser.xiaomi] Invalid data: Invalid index".

В целом я бы сказал что малина вполне себе ловит рекламу, как вы хотели 1мбит нет конечно, но с сенсоров принимать сгодится. Ваша кастомная пришивка с настройками по умолчанию укушала мне за месяц 20% батареек.
 

pvvx

Активный участник сообщества
pvxx, На данный момент моя база имеет размер 344Mb. Возможно проблемы от того что никто не читает документацию и про теги "history:" и "recorder:" не слышали, а так же что по дефолту "purge_keep_days: 10" и пару лет там и не хранится, зато попадает туева куча мусора...
А меня интересует история на 50 лет минимум.
Расскажите мне лучше почему на оригинальной прошивке интеграция https://github.com/custom-components/ble_monitor работает замечательно,
а вот на кастомной как только ставлю advertizing type: Mi и чуть ниже птичку Encrypted Mi beacon, то по Show all mi keys показывает только Device MAC, ключей будто и нет, а интеграция начинает говорить "2021-05-08 23:42:08 DEBUG (Thread-3) [custom_components.ble_monitor.ble_parser.xiaomi] Invalid data: Invalid index".
В целом я бы сказал что малина вполне себе ловит рекламу, как вы хотели 1мбит нет конечно, но с сенсоров принимать сгодится.
А там неполный разбор формата mijia. Видимо писателям лень прочитать инструкции от Mijia.
Ваша кастомная пришивка с настройками по умолчанию укушала мне за месяц 20% батареек.
Каким образом?
Если батарейку зарядить путем кратковременного подключения к 3.3В (или взять новую и подогреть), то спад с 3.3В до нормы в 2.9+В у неё будет как раз день/неделю/месяц в зависимости от качества батарейки.
Эти 20% оно сожрало? :) Я за историю копания, проверок, тестов и прочих испытаний ещё не заменил ни одной батарейки на более 10 устройствах. Только одну тестовую, которая изначально разряжена до 2-х В и дающую ток кз не более 1 мА. Пришлось выкинуть - совсем померла... Но проработала к месяцу с дополнением электролита...
PS: Вы уже надоели байками не совместимыми с реальностью.
 

pvvx

Активный участник сообщества
И методом тыка не удалось выяснить для чего EEP Bindkey
Я не собираюсь восстанавливать разные разметки ключей в Flash для всех типов градусников и выкрутасов Mijia. А есть пользователи, которые не регистрируют термометры в Mi-Home и соответственно разметки куда вписывать binkey с id там нема... Тогда и работает EEP Bindkey. Методом тыка с первой итерации простой пользователь c наличием пары извилин вводит одинаковые Bindkey во все позиции и вопросов не задет. Вы первый :LOL:
 

pvvx

Активный участник сообщества
а интеграция начинает говорить "2021-05-08 23:42:08 DEBUG (Thread-3) [custom_components.ble_monitor.ble_parser.xiaomi] Invalid data: Invalid index".
Python:
        adv_index = data.find(b"\x02\x01\x06", advert_start, 3 + advert_start)
        adv_index2 = data.find(b"\x15\x16\x95", advert_start, 3 + advert_start)
ERROR N1 - никто так не разбирает adv.пакет, кроме Ардуинщиков - по выдуманным шаблонам.
b"\x02\x01\x06" может отличаться в зависимости от возможности чипа и ПО по BT версиям...
Четко же писано 02 - это длина Ad-структуры, 01 - id что это из битов возможности, 06 - сами биты, которые могут быть разными и расширенными ещё на байты с другой диной в начале...
Используйте "HA" - там всё так в каждом файле python-на...
Для этого есть галочка в custom прошивке - "поддержка кривого ПО".
 

pvvx

Активный участник сообщества
Галочка в custom прошивке - "поддержка кривого ПО" ведет к увеличению потребления (порядок 2..7%) и видимости в списках BT устройств в windows, что большинству пользователей не понравилось, кроме школоты и Ардуинщиков.
Так-же у уважающих себя программистах BT чипов включение активного сканирования и отключение фильтра повторов ведет к ещё большему потреблению у внешних датчиков, т.к. нормально писанное ПО в них успевает запросить у устройства его имя на каждой рекламе, а устройство передать дополнительный пакет... Т.е. потребление у датчиков увеличивается минимум на 25..30%. :)
 

pvvx

Активный участник сообщества
custom-components/ble_monitor - это ещё ничего... Есть перлы ПО выжирающие батарейки у датчиков за неделю, особенно на фирменной прошивке, т.к. в custom включены примитивные меры защиты от этого... Но не полные - тогда многие, использующие всякие кривые BT адаптеры, дрова, ПО и т.д. не смогут связаться с датчиком.
 

pvvx

Активный участник сообщества
Всё-таки классный прикол - adv_index2 = data.find(b"\x15\x16\x95", advert_start, 3 + advert_start) - поиск в шифрованном сообщении совпадения 3-х байт. Наверно долго думали как слепить такое :)
вместо стандартного разбора BLE пакета, описанного в тысячах картинок в google.
Это - adv_index = data.find(b"\x02\x01\x06", advert_start, 3 + advert_start) можно списать на то, что писатель впервые сталкивается с BLE/BT и никогда не читал стандартов, по этому боится упустить что-то в пакете, считая это обязательным признаком что этот пакет именно тот. :) :) :)
 

pvvx

Активный участник сообщества
Завтра Xiaomi в каком чипе включит в SDK доп.рекламу или поддержку 2Mbit и пользователи начнут орать, что "Invalid data: Invalid index". :) :)
У Telink в SDK это всё есть, но нет возможности включить из-за горе программеров в HA.
 

pvvx

Активный участник сообщества
Ваша кастомная пришивка с настройками по умолчанию укушала мне за месяц 20% батареек.
Для впервые увидевших элемент CR2032 и подобные - на графиках обведены ваши 20%:
1620519017524.png
Расчет у Xiaomi и custom прошивки исходит из: 2200..3100 mv -> 0..100%
Другой формулы не требуется, т.к. эти батарейки являются градусниками и пляшут значительно более 20% от температуры и прочих условий. Компенсация возможна только имея два идентичных элемента, что в природе не бывает, если не применять квантовую запущенность...

PS: volaltd - может вы создадите свою тему и там будете писать свои детские вопросы и выдуманные похождения?
 
Сверху Снизу