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