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

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

pvvx

Активный участник сообщества
Вспомнил Python и случайно полностью переписал 3 основных файла из https://github.com/custom-components/ble_monitor
И всё связанное с Custom прошивкой и прочими её модификациями заработало... До Xiaomi ещё не добрался, но расковырял и раскидал всё там. Когда выпадет дцать минут в предсонном состоянии - допишу и Xiaomi и возможно выкину на гит, чтобы https://github.com/custom-components/ble_monitor было неповадно... У них там вся разборка рекламных BLE пакетов впихнута, но не пользуется по назначению - типа довесок, для тормоза - скопипастили и впихнули просто грузом, а реальные пакетики для рабочих устройств разбирают по наитию. :)
Исправленная версия не пропускает ни одного измерения с термометров...
1621397553251.png
Теперь и триггеры и герконы у датчиков пашут... И код сократился в несколько раз...
 

pvvx

Активный участник сообщества
Ещё надотъ огородную версию впихнуть и с новый тип с ещё меньшим потреблением и шифрацией... и заодно ВСЕ варианты Xiaomi. :p
"HA" за ночь гигабайт нафигачила:
/root/.homeassistant/custom_components/ble_monitor$ cat /sys/block/mmcblk0/stat | awk '{printf "Uptime read: %.3fMiB (%.1f%% I/Os merged) written: %.3f MiB (%.1f%% I/Os merged)\n", $3*512/1048576, $2/$1*100, $7*512/1048576, $6/$5*100}'
Uptime read: 233.139MiB (48.0% I/Os merged) written: 1473.859 MiB (19.8% I/Os merged)
 

pvvx

Активный участник сообщества
Лихой overhead по write в eMMC... :)
При этом swap в RAM:
Код:
$ free
              total        used        free      shared  buff/cache   available
Mem:        1016268      212932      457864        9936      345472      693336
Swap:        524284           0      524284
А home-assistant_v2.db всего 64 MiB.
 

volaltd

Member
Лихой overhead по write в eMMC... :)
При этом swap в RAM:
Код:
$ free
              total        used        free      shared  buff/cache   available
Mem:        1016268      212932      457864        9936      345472      693336
Swap:        524284           0      524284
А home-assistant_v2.db всего 64 MiB.
Хез что вы там смотрите, но вот вывод с моей малины:
Mem: 948076 328880 103352 48128 515844 511048
Swap: 102396 63488 38908
 

nikolz

Well-known member
Что включить? :oops:
LCD или E-Ink уже включен и не мешает жрать до 17 мкА, а при connect и менее.
На огороде измерение электродов - это включение PWM на 1..2 ms на один вывод к изолированному электроду и на второй изолированный электрод-вход производится снятие сотен замеров в RAM-FIFO с ADC для анализа амплитуды...
Т.к. данные огородо-контроллеру не нужны каждую секунду, то снятие показаний влажности почвы идет раз в минуту, а прочие - температура и влажность воздуха - с периодом от 20 сек.
Ещё впрограммил туда кнопку-геркон - не знаю нафиг он, но пока пущай будет.
В итоге среднее потребление огородо-датчика с двумя изолированными электродами на основе Xiaomi LYWSD03MMC не превышает 15 мкА от CR2032.
Можно выкинуть LCD - будет на пару мкА меньше :) - тогда уж лучше увеличить интервал рекламы до 10 сек и опроса датчиков раза в три и получить что-то менее 10 мкА... Смарты с Android нормально соединяются и с такими интервалами для настройки калибровки датчика влажности почвы под электроды и прочие настройки.
Вот только смысл - за два сезона батарейки CR2032 всё равно потеряются за зиму...
Все датчики пишут историю в 20 тысяч замеров - на всякий случай.
Огородо-контроллер тоже на Xiaomi LYWSD03MMC. У него есть I2C для расширителя портов если надо и ещё несколько свободных GPIO, на один вешается измеритель освещенности, на другие - ключи управления моторами...
Всё настраивается с мобильника. Можно интегрировать и в "HA" - Огородо-контроллер является ретранслятором рекламных данных от датчиков + свои данные...

ПО пока не дам. Жду альтернативы и пока отлажу...
Давайте обсудим Ваши доводы.
Вы пишите что втыкаете датчик в землю и он передает вам данные. и пишите историю в 20 тысяч замеров (вопрос -нафига?) -ответ - на всякий случай.
---------------------
Теперь давайте начнем с задачи, которую решаем.
1) датчик у вас под чистым небом. Даже ESP8266 способно (делал сам м вам писал ) работать от солнечной панельки размером 3 на 4 см. При этом посылать данные можно с периодом 1-10 мин, что вполне достаточно для контроля земли
2) Но можно и без солнечной батареи. На форуме есть и мои и ваши расчеты. поставим батарейку чуть больше чем CR2032 и устройство нормально проработает весь сезон. А дольше и не надо - Вы сами об этом писали. ESP-NOW - это фактически BLE но с мощностью передатчика в 100 раз больше. т е работает дальше но этого не надо.
3) 20 тысяч значений на всякий случай указывает на ваше полное незнание земледелия.
Т е отсутствие знания Вы подменяете кучей бесполезных данных.
Это и есть - тупой датчик.
Изучите земледелие либо посоветуйтесь с профи и перестаньте копать огород экскаватором.
--------------------------------
Поэтому я и написал -начните с постановки задачи и выбора метода решения, а железо и программа - это не первое, что надо делать.
И тогда все будет существенно проще и эффективнее в реализации.
----------------
 

nikolz

Well-known member
и еще..
относительно вашего довода - что у Вас есть земля, а у меня ее нет.
во-первых, это голословное ваше утверждение. Но предположу что это может быть и вашим недостатком.
во-вторых, вы противоречите сами себе. Вы профессионально разрабатываете устройства по просьбе ваших клиентов для их производств,но у вас самого нет в собственности их производств.
Следуя Вашей логики - Вы ничего в этом не понимаете и делаете г..но для своих клиентов. Все верно по вашей логике?
 

pvvx

Активный участник сообщества
1) датчик у вас под чистым небом. Даже ESP8266 способно (делал сам м вам писал ) работать от солнечной панельки размером 3 на 4 см. При этом посылать данные можно с периодом 1-10 мин, что вполне достаточно для контроля земли
Он зарастет и вечно будет в тени.
Панели на 3x4 мм в таких условиях не хватает для ESP8266. Как я его настрою? Буду носить туда-сюда к специальной зарядке?
2) Но можно и без солнечной батареи. На форуме есть и мои и ваши расчеты. поставим батарейку чуть больше чем CR2032 и устройство нормально проработает весь сезон.
Не работает ESP8266 - проверено - при коннекте с телефоном сразу мрет, да и надо роутер в огород ставить или вечно копаться в смарте и отключать инет по wifi...
3) 20 тысяч значений на всякий случай указывает на ваше полное незнание земледелия.
Это текущее кол-во сохраняемых замеров в кольцевом буфере для прошивки у датчика термометра. Оставил столько-же. Шаг записи с децимацией (усреднением значений) задается.
Датчик универсальный и программа та-же, что и в custom прошивке, просто есть доп. функции.
И тогда все будет существенно проще и эффективнее в реализации.
Оно уже всё реализовано и работает.
 

pvvx

Активный участник сообщества
и еще..
относительно вашего довода - что у Вас есть земля, а у меня ее нет.
Ни у меня ни у вас земли нет, если она не в горшке. И то вот горшок у вас есть, а завтра его нет. Так и с землей - в раз может оказаться уже чужой :p
во-вторых, вы противоречите сами себе. Вы профессионально разрабатываете устройства по просьбе ваших клиентов для их производств,но у вас самого нет в собственности их производств.
А зачем мне ещё заводы-параходы? Это суета, нагрузка, большие риски и прочие гадости. Проще зарыть золото, чем ежедневно суетиться по поводу как тама они, эти заводы и пароходы... Тем более прибыль в производстве меньше, чем в банковской сфере.
Следуя Вашей логики - Вы ничего в этом не понимаете и делаете г..но для своих клиентов. Все верно по вашей логике?
Судя по моей логике - клиенты любят го..но. Читают и ставят мои гов-ые прошивки, пишут чего-то постоянно...
 

pvvx

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

nikolz

Well-known member
Я разрабатываю устройства по своим хотелкам, а не клиентов. Это клиенты хотят то, что им выдаю, т.к. их хотелки ограничены тем, что им было выдано и предложено ранее. Они не знают, не строили, не разрабатывали с нуля технологический процесс и берут то оборудование, что ими дают. А стандартными хотелками клиентов занимается специальный персонал и там не требуется разработка - это обслуживающий персонал.
как Вам идея применить земляную батарею для питания измерителя влажности грунта в теплице или поле?
 

pvvx

Активный участник сообщества
как Вам идея применить земляную батарею для питания измерителя влажности грунта в теплице или поле?
Никак - цена CR2032 + готовый корпус для неё c LCD и датчиком SHTC3 и платой с TLSR8251 убивают все ваши "идеи" на корню, особенно по цене и затратам времени.
 

pvvx

Активный участник сообщества
Переписал ещё одни файло в пакете ble_monitor - теперь он понимает все датчики Qingping и Cleargrass. Cleargrass - это старое название Qingping.
1621580985726.png
 

pvvx

Активный участник сообщества
Давайте обсудим Ваши доводы.
Давайте обсудим Ваши доводы по ESP.
ESP полюс только один элемент СR2032 уже дороже полного Xiaomi LYWSD03MMC.

Для ESP, в отличии от Xiaomi LYWSD03MMC, по самому минимуму ещё надо:
  • держатель батареи,
  • корпус,
  • куча деталек + индикация чего либо,
  • плату,
  • датчик за цену Xiaomi LYWSD03MMC,
  • программу,
  • программатор.
Xiaomi LYWSD03MMC не требует программаторов, плясок с бубном и т.д. Корпус LYWSD03MMC на шурупах-винтах и очень просто открывается-закрывается для аппаратных дополнений-модификаций (если это надо).
 

pvvx

Активный участник сообщества
Теперь по интеграции системы из десятка датчиков на основе LYWSD03MMC в структуру IoT и любой Cloud, MQTT, ... - по минимуму требуется один ESP32 с уже готовым софтом. Правда оно не очень стабильно, т.к. ESP, но "игрунчикам" сойдет.
Можно сразу любую плату по типу RPi которая будет управлять и логировать всё в "умном доме".
А для решений от nikolz и volaltd нет ничего даже в предварительной стадии для доработки.
 

pvvx

Активный участник сообщества
Спасибо! А xor данных в custom режиме для ксяоми не появился?
Какое ещё "Спасибо!" - я не выкладывал пока ничего из переписанного пакета ble_monitor для HA. Это будет когда перепишу всё в нем и когда будет подходящая "погода".
И какие ещё "xor данных в custom режиме"?
Внутренняя моя Custom прошивка имеет уже к десятку форматов рекламных данных и большинство из этих форматов шифрованы по AES.CCM.
Добавка одного нового из откатываемых форматов возможно будет в новой "общественной" версии, но там ещё не переписал основной цикл на алгоритмы с супер пониженным потреблением. Есть программные конфликты с уже имеющейся версией которые могут привести к раздвоению вариантов "Custom" прошивок... Это пока и не решено.
Все дела в данном направлении (BLE датчики и устройства для "умного дома") тормозятся и грохаются на кривизне скриптов к HA и прочего имеющегося "открытого ПО".
 

volaltd

Member
Какое ещё "Спасибо!" - я не выкладывал пока ничего из переписанного пакета ble_monitor для HA. Это будет когда перепишу всё в нем и когда будет подходящая "погода".
И какие ещё "xor данных в custom режиме"?
Вон жеж выше пишете что переписали 3 основных файла ble_monitor и положили у себя на гите...
Ну тот xor, который позволит через вебку поставить желаемое юзером значение и обойтись без заумных либ в плагине HA
 

pvvx

Активный участник сообщества
Вот у меня есть несколько разных плат типа NanoPi и аналогичных. В них, и во многих других имеющихся на руках у пользователей, без бубна не поставить HA.
Надо менять Python на новую версию. Это дело проходит более менее, т.к. там надо следить какие пакеты добавить для сборки.
Но после сборки и установки Python3.9.5 сам HA не поставить. Оно чаще всего будет спотыкаться на "Failed to build cryptography".
А причины в кривизне сборщика этого пакета для разных подверсий систем... И кривизна там беспощадная, а разговора о аппаратном использовании внутренних средств вообще не идет...
 

pvvx

Активный участник сообщества
Вон жеж выше пишете что переписали 3 основных файла ble_monitor и положили у себя на гите...
Читайте внимательнее - писал, что пока не переписано полностью нет смысла кидаться в паблик. Изменения в самом так сказать ядре этого пакета и необходимо переписывать все интеграции, а пока полностью переписаны и отлажены только две из четырех. Я это делаю когда голова уже устала от решения более сложных задач с учетом "погоды" и прочих факторов :)
 
Сверху Снизу