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

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

pvvx

Активный участник сообщества
Ну вот наконец HA сточил китайский SSD на 256 GB своей базой данных и так и не исправленной вечной записью Bluez по десяток байт с переписыванием мелких файлов в /var/lib/bluetooth/ .
У SSD началось заполнение резервной памяти - в последние месяцы по 5%... Пришлось переезжать на новую платформу...
Т.е. для HA SSD в 256GB xватает всего на два года...
Вот поведение HA на PCI-NVME, на котором установлен только HA cо своей базой данных, без записи от Bluez и прочих логов системы (по данным SMARTCTL 'data units written'):
1698059634565.png
# smartctl -A /dev/nvme0
...
Data Units Written: 19,984 [10.2 GB]
...
 

pvvx

Активный участник сообщества
В Home Assistan ныне включена SQLite WAL, что увеличивает кол-во записи на диск вдвое :)
Итог - 6 Гбайт записи на диск базы данных в сутки и обрезкой базы на глубину в месяц каждый день.
А в configuration.yaml:
Код:
recorder:
  purge_keep_days: 31
  commit_interval: 60
1698130824680.png
по данным от файловой системы и smart SSD
Код:
cat /sys/block/mmcblk1/stat | awk '{printf "%.3f\n", $7*512/1048576}'
cat /sys/block/nvme0n1/stat | awk '{printf "%.3f\n", $7*512/1048576}'
smartctl -A -j /dev/nvme0 | awk '/"data_units_written"/ {printf "%0.3f\n", $2*512/1000000}'
6 Гбайт - это чисто трафик данных, без учета что SSD или другой накопитель производит запись путем стирания и переписывания больших блоков - страниц flash, даже если была команда дописать один байт.

Ныне SD карточки для HA хватает на пару недель? :)
 

enjoynering

Well-known member
В Home Assistan ныне включена SQLite WAL, что увеличивает кол-во записи на диск вдвое
Все что нужно знать о Home Assistant.

А то как все пишут config, складывая все один файл напоминает Arduino головного мозга. Правда с появлением GitHub качество кода на Ардуино сильно возросло, чего нельзя сказать про HA. Там все тот же дремучий лес.

Это какой то позор.
 

pvvx

Активный участник сообщества
Все что нужно знать о Home Assistant.
Ныне SSD/NVME - это расходник. Типа батарейка.
Но главные тенденции не только в HA, а во всем Linux. Полная порука с перекладыванием друг на друга...
Типа - "Мы в HA используем Bluez и ошибки в нем, сказывающиеся на HA нас не волнуют - пишите им."
На вопрос - "а нафига используете такое г... ?" Будут обиды и прочее, типа бана...
Аналогично отсылают до глубин в kernel. А там уже Главный - "хочу включаю патчи, хочу и не включаю = см. авторское право."
 

pvvx

Активный участник сообщества
Типа. Это их задумка на open-source налепить лицензий, хуже чем у коммерческих продуктов.
 

pvvx

Активный участник сообщества
Ладно ещё наш баярин - Михалка – просто кинул оброк на всех – денех хочет, а те чего?
 

cool2000

Member
Ну вот наконец HA сточил китайский SSD на 256 GB своей базой данных
Нужно дополнительно настроить recorder.
Начать можно с commit_interval. Я поставил 1200, по умолчанию у HA 5. Вот здесь вообще предлагается 86400 - писать раз в сутки. Далее, настроить фильтр данных.
Также можно попробовать подключить другую БД, например, mysql(MariaDB) вместо стандартной sqlite. Для долговременных данных VictoriaMetrics.
SD вообще не годится ни для чего кроме как для начальной загрузки системы. У меня после вылета очередной карты (данные HA на карту не записывались), теперь RPi грузится с NAS по сети и работает с сетевого диска.
 

pvvx

Активный участник сообщества
Нужно дополнительно настроить recorder.
Начать можно с commit_interval. Я поставил 1200, по умолчанию у HA 5. Вот здесь вообще предлагается 86400 - писать раз в сутки. Далее, настроить фильтр данных.
Также можно попробовать подключить другую БД, например, mysql(MariaDB) вместо стандартной sqlite. Для долговременных данных VictoriaMetrics.
SD вообще не годится ни для чего кроме как для начальной загрузки системы. У меня после вылета очередной карты (данные HA на карту не записывались), теперь RPi грузится с NAS по сети и работает с сетевого диска.
RPi не имеет PCIE для NVME SSD, только новая.
При других условиях, с более низкой скоростью работы с диском, смотреть на тормоз загрузки графиков в HA нет сил и времени.
SSD ныне расходный материал. На пару лет хватает и не стоит изхищряться ограничениями для записи желаемых данных.
 

cool2000

Member
В Home Assistan ныне включена SQLite WAL, что увеличивает кол-во записи на диск вдвое :)
А здесь пишут, что переход на WAL уменьшил обьём записи на диск.
pvvx написал(а):
SSD ныне расходный материал
2,5ГБ записи на SSD за сутки всё равно как-то многовато для такой примитивной системы.
Покопался я со статистикой iotop и fatrace. По моим наблюдениям, в клубе убийц SSD 2 первых места с огромным отрывом делят HA Sqlite и systemd journald. После настройки объём записи на SSD упал до <10МБ за час.
1. Отключаем запись журнала на диск: правим файл /etc/systemd/journald.conf
Код:
[Journal]
Storage=volatile
RuntimeMaxUse=64M
2. Очищаем журнал (на всякий случай).
sudo journalctl --user --flush --rotate --vacuum-time=1s
3. Переключаем запись во внешнюю БД: добавляем в файл configuration.yaml.
YAML:
# Recorder integration
recorder:
  db_url: mysql://<login>:<password>@<db server ip address>/hass?charset=utf8mb4
  commit_interval: 3600
  purge_keep_days: 120
commit_interval - можно поставить 86400 (сутки)
purge_keep_days - по вкусу.
При 120 дней у меня размер DB ~500MB без доп. фильтров. С фильтрами можно раза в 2 как минимум уменьшить. Подробнее здесь.
Главное отличие от sqlite - нет постоянной перезаписи всей базы.
Дополнительно ещё можно перенести zigbee.db на RAM диск, позаботившись о её периодическом сохранении на SSD/HDD.
 

shaman1010

Member
Код:
  git clone https://github.com/pvvx/ATC_MiThermometer.git

  cd ATC_MiThermometer

  make
...
Building file: SDK/components/application/print/putchar.c
/bin/sh: 1: ./SDK/tools/linux/tc32/bin/tc32-elf-gcc: Exec format error
make: *** [src/uprintf.mk:11: out/application/print/putchar.o] Error 126
 

pvvx

Активный участник сообщества
А здесь пишут, что переход на WAL уменьшил обьём записи на диск.
Всё это не дает возможности вести отладку устройств. Ныне их более двадцати разновидностей устройств, считая все подмодели, поддерживаемых в ZigbeeTLc и ATC_MiThermometer.
Или, например, чтобы сравнить пропуски и качество работы ZHA и Zigbee2BLE.
Два TS0201 (лежат впритык друг с другом), один работает на ZHA, второй на Zigbee2BLE:
1700606415118.png
1700606423125.png
Сразу видно, что качество повторяемости и калибровки датчиков используемых у Tuya намного хуже чем у Xiaomi.
А это 2 Xiaomi LYWSD03MMC работающих рядом с друг другом с датчиками SHTV3.
1700606661712.png
По диаграммам можно сразу догадаться где Zigbee, а где BLE.
 

pvvx

Активный участник сообщества
Или 2 MHO-C401 впритык друг к дугу, один Zigbee в ZHA, второй LE long Range:
1700607133871.png
При одинаковом потреблении. Но дальность работы у MHO-C401 LE long Range с моей базой в 2.5 раза больше.
И ZHA ещё и с патчем, т.к. в базе не понимает принятых в Zigbee единиц (кол-во цифр после запятой).
 

pvvx

Активный участник сообщества
И скопом, все что стоят на одной полке в одной куче:
1700608404161.png
LUMI (датчик давления, температуры и влажности Aqara) со своей оф.прошивкой сразу виден :)
(На разброс не стоит смотреть, т.к. если есть конвекция, то дельта между датчиками всегда будет, а пихать всё в единую спец. коробку для теста расхождений я не собираюсь)
 

pvvx

Активный участник сообщества
При 120 дней у меня размер DB ~500MB без доп. фильтров. С фильтрами можно раза в 2 как минимум уменьшить. Подробнее здесь.
Зачем тогда вообще используете HA?
Датчики и исполнители сами могут работать и без HA. Тем более это гораздо надежнее.
К примеру координатор Zigbee2BLE потребляет всего около 5 мА 3В.
А для установки только z2m нужно от пары сотен мегабайт RAM, производительность в несколько ГГц у CPU, диск SSD, не дешевый адаптер Zigbee, роутер на сеть, жрущий ещё Амперы ...
 

pvvx

Активный участник сообщества
А здесь пишут, что переход на WAL уменьшил обьём записи на диск.
Никто не сравнивал в реале.
Когда у вас типовой HA с типовыми датчиками, то данные от датчиков в базу поступают не чаще 1 раза в минуту.
От ZHA ещё реже, т.к. он ставит такие установки:
1700610112227.png
И дополнительно фильтрует данные на +-0.1 единицу для Zigbee данных с большим разрешением.
Для % батарейки так-же округляет до целых - в Zigbee типовая 0...200, что есть 0...100% с шагом 0.5%.
А многие типовые датчики сами ещё реже передают "репорты". И т.д.
В итоге средний поток данных у пользователей HA - пару значений в час.
(Такое нужно только для игры в посмотреть что тама, поиграть в установку HA, но не для работы умного дома. А пользователи ведутся - типа это ныне модно :) )
 

pvvx

Активный участник сообщества
Проанализируйте требуемое быстродействие у домашних исполнительных устройств, вместе с порогами и гистерезисом к данным от датчиков.

Включение/выключение света и прочие выключатели должны отрабатывать за не менее 200 мс. Больше – это критическое значение для восприятия человека...

Типовые нагревательные элементы, батареи и прочий обогрев и кондиционеры, не использующие ШИМ или плавную регулировку, имеют время от включения до проявления на окружающую среду изменений в 0.1 С или 1% влажности от 10 секунд до нескольких минут. Обогреватели обычно имеют запас по мощности в несколько раз от средней необходимой при типовых условиях (для поддержки температуры в условиях пониженных внешних температур). И их приходится часто коммутировать.

В итоге, чтобы удерживать температуру, влажность, вентиляцию в пределах +-0.1С +-1%, от датчика потребуется получение показаний каждые 10 сек.

Этих условий Home Assistant в базовом виде не обеспечивает. Т.к. всё, что имеет больший временной лаг или дискретность времени шага передачи данных, является датчиком для “посмотреть”. Т.е. не для управления самой системой “умного дома”, а для управления дома человеком :)
 

pvvx

Активный участник сообщества
Вопрос - как в HA заставить держать температуру в +-0.1С при использовании самого маленького масляного обогревателя (макс 800 Вт) в зимней кладовке (типа для продуктов):
1700613965866.png
Инерция обогревателя (мощность обогревателя, температура на стене в 1 метре):
1700614004539.png

Механическая система регулировки температуры в морозилке холодильника (мощность компрессора, температура в морозилке):
1700614115516.png
 

pvvx

Активный участник сообщества
Nov 2016 ... 2024 ? :)
 
Сверху Снизу