Home Assistant має стільки функцій, що за ними буває складно встежити. Деякі з них працюють у фоновому режимі, і ви згадуєте про них лише тоді, коли вони вам потрібні, або коли щось іде не так. Саме це сталося з однією з найкращих функцій Home Assistant, яка призвела до збою всього мого розумного будинку.
Recorder виділяє Home Assistant серед інших систем розумного будинку
Реальна історія, до якої ви можете отримати доступ
Якщо ви запитаєте Alexa, Google Home або Apple Home, коли минулого четверга вимкнулося світло в кабінеті, вони не зможуть допомогти. У користувача немає доступу до детальної історії своїх пристроїв; навіть якщо інформація існує, вона знаходиться на сервері, який ви не можете запитати.
З Home Assistant ситуація інша. Якщо ви хочете дізнатися, коли вимкнулося світло в кабінеті, ви можете отримати доступ до розділу History (Історія) на бічній панелі, вибрати дату та сутність (entity), і побачити повну історію за цей період. Використовуючи екран Activity (Активність), я можу вибрати лампу в кабінеті та побачити повний список її активності за будь-який вибраний період часу.
Все це завдяки Recorder. Recorder тихо працює у фоновому режимі, записуючи кожну зміну стану у вашому розумному будинку до бази даних SQLite. Він забезпечує роботу Logbook (Журнал), History (Історія) та Activity (Активність), і навіть може створити ілюзію, що ваш дім не порожній, коли вас немає.
Як користувач Home Assistant, я рідко замислююся про Recorder. Це, мабуть, одна з найкращих функцій, які пропонує Home Assistant, оскільки вона підтримує багато корисних можливостей цієї системи.
Цей дисплей Home Assistant на базі E-Ink скоротив кількість сповіщень на телефоні вдвічі
Та сама інформація, менше сповіщень.
Home Assistant раптово перестав працювати
Закінчилося місце на диску
Я налаштував Uptime Kuma для моніторингу Home Assistant. Якщо Uptime Kuma виявляє, що Home Assistant вийшов з ладу, надсилається сповіщення до Telegram, яке повідомляє мене про проблему. Коли Home Assistant дає збій, я дізнаюся про це майже миттєво.
Однак іноді Home Assistant перестає працювати належним чином, не повністю виходячи з ладу. Наскільки відомо Uptime Kuma, Home Assistant все ще працює, тому я не отримую сповіщення. Лише коли я спробував увімкнути світло, я зрозумів, що щось не так.
Zigbee2MQTT вийшов з ладу і відмовлявся перезапускатися. Потім збій стався ще один аддон, який також не вдавалося перезапустити. Сталася каскадна серія, здавалося б, не пов’язаних збоїв, які повністю зупинили роботу мого розумного будинку.
Я спробував кілька речей, перш ніж натрапив на просте повідомлення про помилку, яке пояснило всю проблему: no space left on device (залишилося місця на пристрої). Home Assistant працює на віртуальній машині на міні-ПК, і диск для цієї віртуальної машини був повністю заповнений. Кожна інтеграція та аддон намагалися записувати дані на диск, як зазвичай, але не знаходили доступних нульових байтів.
Це також не було простим виправленням. Я не міг просто перезавантажитися, оскільки не було вільного місця на диску навіть для найпростіших процесів. Мені довелося вимкнути всю віртуальну машину і підключити її диск до хоста Proxmox, щоб я міг побачити, що займає весь простір.
Винуватцем виявився Recorder
Кілька відключених Bluetooth-проксі, ймовірно, змусили Bermuda працювати некоректно
Як ви, ймовірно, вже здогадалися, проблемою був Recorder. База даних досягла понад 74 ГБ. Recorder за замовчуванням зберігає дані лише за 10 днів, але якимось чином ці дані виросли до розміру встановлення відеогри.
Вивчивши базу даних, винуватець швидко став очевидним. Один датчик записав себе в базу даних понад 400 000 разів. Це призвело до того, що база даних заповнила весь дисковий простір.
Датчик належав до інтеграції Bermuda. Це інтеграція, яка забезпечує визначення присутності в кімнаті, відстежуючи силу сигналу Bluetooth-пристроїв, як це виявляється Bluetooth-проксі, розміщеними по всьому дому. Порівнюючи силу сигналів у кожному Bluetooth-проксі, вона може оцінити, в якій кімнаті знаходиться будь-який конкретний пристрій.
Я не можу бути впевненим, оскільки був змушений видалити базу даних, щоб знову запустити Home Assistant, але я думаю, що проблема виникла через те, що я тимчасово вимкнув три Bluetooth-проксі. Залишилося лише два, і Bermuda надсилає оновлення відстані, коли пристрій, здається, наблизився до певного Bluetooth-проксі. Слабкий, шумний сигнал міг створити враження, що мій телефон постійно наближається до одного чи іншого Bluetooth-проксі, записуючи величезний обсяг даних до Recorder.
Рішення полягало в трьох рядках YAML
Ви можете виключити певні датчики з Recorder
Хороша новина полягає в тому, що було дуже просте рішення. Home Assistant дозволяє виключати певні сутності (entities) з Recorder, щоб їхні дані не записувалися. Все, що мені потрібно було зробити, це додати три рядки YAML до файлу configuration.yaml.
Я оновив конфігураційний файл, щоб розділ Recorder включав наступний розділ виключення:
recorder: purge_keep_days: 10 exclude: entity_globs: - sensor.*_ble_distance
Це гарантує, що будь-які датчики, які відстежують відстань Bluetooth, будуть виключені з Recorder. Оскільки саме цей тип датчиків заповнив простір на моєму диску, я знав, що виключення цих датчиків зупинить повторення проблеми.
Home Assistant може виходити з ладу, але це робить його таким потужним
Повна зупинка роботи вашого розумного будинку — це не ідеально. Коли я визначив причину, я зміг вирішити проблему. Home Assistant знову працює, і я знаю, що така ж проблема більше не повториться. Home Assistant не є ідеальним, і речі можуть піти не так, але це невелика ціна за неймовірні функції, які він може запропонувати.
Інформація підготовлена на основі матеріалів: www.howtogeek.com










