Home Assistant
2 поста
Уважаемый @admin, и команда @moderator. Я все понимаю, правда. Стоимость трафика растет, стоимость рекламы вероятно нет, инфраструктура дорожает, нужды деньги. А для этого нужно увеличивать количество сессий, длину сессий и конечно конверсию в рекламу. Я сам 20 лет почти игры делаю, часть из которых f2p.
Я даже не буду говорить что подобная "мотивация" запрещена частью сеток, и что я не согласен что такие вещи как лимит игнор листа должен продаваться.
Но уж раз вы решили это продавать - продавайте честно. Дайте прайс на игнор лист, не заставляйте взрослого дядьку по рекламным баннерам кликать, которых у него вообще нет (привет вашему продакт менеджеру, который одобряя такие дейлики не подумал об этом)
В этом цикле продолжу рассказывать о полезных плагинах и своих находках в стеке Home Assistans. И начнем с важного, с бекапов.
Коротко: Если у вас Home Assistant, и вы ещё не ставили Time Machine и Google Drive Backup - вы живёте на краю без страховки. Первый даёт возможность откатиться, когда что-то поломали. Второй - спасёт, если Home Assistant вовсе не загрузится.
Этот модуль записывает историю изменений ваших YAML-файлов и конфигурации. Представьте: обновили аддон — и весь интерфейс посыпался. А Time Machine просто говорит:
«Хочешь вернуться в прошлое, где всё работало?»
Установка:
Settings -> Add-ons -> Add-on store
Добавляем репозитарий (три точки в верхнем углу -> Add-on store -> Repositories - https://github.com/saihgupr/HomeAssistantTimeMachine)
Находите Home Assistant Time Machine в Add-on store
Установите и перезапустите HA.
После этого в меню появится вкладка Time Machine, где можно выбирать дату и возвращаться к нужной версии.
Совет: можно сделать автоснимок раз в день, чтобы не вспоминать, когда последний раз всё было “нормально”.
Этот модуль делает резервные копии всей системы и шлёт их в ваш Google Drive.
Если сервер сдох, SSD умер или кот выдёрнул кабель - просто ставите свежий HA и жмёте Restore from Drive. Всё вернётся, как было.
Установка:
Там же, в Settings -> Add-ons -> Add-on store указываете репозитарий https://github.com/sabeechen/hassio-google-drive-backup
Затем в Add-on store ищите Home Assistant Google Drive Backup.
После установки появится мастер подключения к вашему Google Drive.
Авторизуйтесь через Google, выберите папку для бэкапов.
Настройте расписание: например, ежедневно в 3:00 и хранить последние 5 копий.
Бонус: можно включить автоудаление старых бэкапов и уведомления в Telegram, если вдруг резервное копирование не удалось
Оба модуля ставятся за 10 минут, но могут спасти часы (или дни) восстановления. Лично мне - уже не раз спасали.
В предыдущем посте внимательный @Machaeon, заметил у меня на фотке Coral USB Accelerator и спросил, как он. К тому времени я еще не успел его настроить, поэтому пообещал написать пост как разберусь. Не то что бы я полностью разобрался, но постараюсь в этой статье рассказать
- что такое система домашнего видеонаблюдения, какие они бывают
- как установить Frigate и подключить к нему Coral TPU
- как настроить распознавание лиц
- какие ошибки я сделал в процессе настройки своей системы видеонаблюдения
Первые ошибки.
Когда мы говорим про умный дом, часто имеем в виду лампочки, розетки или голосовых ассистентов. Но на самом деле важнейший элемент - это видеонаблюдение и аналитика. Первым моим решением (ошибочным) было купить камеру Aqara Camera E1.
Минусы aqara стали мне очевидны только после покупки:
- нет возможности подключения по кабелю (видеосигнал через вайфай не самое надежное решение)
- нет нормальной интеграции с Home Assistant так как RTSP поток на ней не доступен (на самом деле после пары часов плясок с бубном и чатом гпт через go2rtc/HomeBridge мне удалось заставить HA увидеть камеру, но это был опыт который я не могу рекомендовать начинающим)
- большинство интересных функций вроде обнаружения лиц, животных, пожара, машины, посылки - убрано в подписку HomeGuardian за 9.99 евро в месяц.
Мне хотелось другого:
хранить записи локально, на NAS (зря его что ли покупал)
получать уведомления о реальном движении, а не «порхающей мухи»
интегрировать камеры в Home Assistant
определять не просто событие "человек в комнате" - но и распознавать этого человека.
Решением стал связанный тандем: Frigate + Coral TPU.
Frigate — это NVR (система записи и аналитики IP-камер) с открытым исходным кодом, созданная специально под Home Assistant.
Основные возможности:
- подключение камер по RTSP,
- детекция объектов (люди, машины, животные),
- хранение записей только по событиям,
- интеграция через MQTT и Home Assistant API,
- поддержка аппаратных ускорителей (Coral TPU, GPU).
Coral Edge TPU — это аппаратный ускоритель от Google, оптимизированный для TensorFlow Lite моделей.
Выполняет до 4 трлн операций в секунду при очень низком энергопотреблении.
Да, вместо Frigate можно использовать MotionEye, Shinobi или Blue Iris, но в первом нет АИ, второй показался сложным в настройке, а третий вариант платновый и под винду - а я же энтузиаст докера уже третий месяц.
Вместо Coral TPU я тоже мог использовать аналоги - подключить AORUS Gaming Box RTX 3080 или вообще использовать CPU. Но Видеокарта жрет существенно больше энергии и шумит, а проц не очень тянет четыре камеры - а я хочу со временем сделать еще парочку - на парковку и с балкона.
Установка.
Сам процесс установки оказался достаточно простым. Я напомню что использую виртуализатор Proxmox VE.
Создаем новую виртуалку. Я где то читал что CORAL может не работать на 13 дебиане и советы ставить на 12 - но забегая вперед скажу что это не правда, все работает хорошо. Если совсем лень, то можно воспользоваться готовым комьюнити скриптом по разворачиванию LXC пакета с Frigate, но мне показалось что проще пробрасывать физические устройства в виртуалку, а не в контейнер, поэтому я ставил фригейт сам.
Ставим собственно фригейт
sudo apt update
sudo apt install -y curl ca-certificates gnupg udev
# Docker
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
newgrp docker
Начинаем с докера. Потом в Проксмоксе прокидываем наш usb порт с коралом. Я советую прокинуть именно весь порт, а не отдельное устройство, меньше ебли с тем что виртуалка не увидит свисток.
Командой lsusb проверяем что корал виден, создаем каталоги под фригейт, монтируем NAS каталоги для хранения видео, создаем docker-compose.yml
version: "3.9"
services:
frigate:
container_name: frigate
image: ghcr.io/blakeblackshear/frigate:stable
restart: unless-stopped
privileged: true
shm_size: "512mb"
ports:
- "5000:5000" # Web UI
- "8554:8554" # RTSP (go2rtc)
- "8555:8555/tcp" # WebRTC
- "8555:8555/udp"
devices:
- /dev/bus/usb/004/004:/dev/bus/usb/004/004
device_cgroup_rules:
- 'c 189:* rmw'
volumes:
- /etc/localtime:/etc/localtime:ro
- /opt/frigate/config:/config
- /mnt/frigate/Frigate:/media/frigate
И в файл конфигурации фригейта добавляем настройки и наши камеры.
# === указываем брокера данных для связи с Home Assistant ===
mqtt:host: 192.168.0.* # адрес mqtt сервера, у меня он связан с Home Assistant
port: 1883
user: frigate # имя пользователя в mqtt
password: *** # пароль пользователя в mqtt
# === EdgeTPU (Coral USB) ===
detectors:
coral:
type: edgetpu
device: usb
# === Настройки записи ===
record:
enabled: true
retain:
days: 3
mode: motion
alerts:
retain:
days: 30
detections:
retain:
days: 30
snapshots:
enabled: true
retain:
default: 30
# === Настройки распознавания ===
detect:
enabled: true
version: 0.16-0
semantic_search:
enabled: true
model_size: small
face_recognition:
enabled: true
unknown_score: 0.6
recognition_threshold: 0.8
model_size: small
blur_confidence_filter: true # фильтровать размытые лица
lpr:
enabled: false
classification:
bird:
enabled: false
# === База и логирование ===
database:
path: /media/frigate/frigate.db
logger:
default: info
# === Камеры ===, указываем каждую камеру отдельно
cameras:
Имякамеры:
enabled: true
ffmpeg:
inputs:
- path: rtsp://имяпользователя:пароль@айпиадрескамеры:554/h264Preview_01_sub
roles: [detect]
input_args: [-rtsp_transport, tcp]
- path:
rtsp://имяпользователя:пароль@айпиадрескамеры/h264Preview_01_main
roles: [record]
input_args: [-rtsp_transport, tcp]
detect:
enabled: true
width: 640
height: 360
fps: 7
record:
enabled: true
retain:
days: 3
mode: all
Почти готово, вы великолепны. Осталось добавить интеграцию фригейт. Идем в HACS (надеюсь у вас он уже установлен!), затем подключить ее в разделе Настройки-Интеграции.
Обучение.
После того как все установлено и настроено - настало время самого интересного - настройка распознавания. Нам же нужно что бы камеры не просто видели какого то человека - а понимали что это за человек (и передавали это дальше в автоматизацию, чего я правда еще не сделал).
Идем в Настройки - Обогащение (Settings - Enrichments)
2. Добавляем лицо через Add Face (лучше скинуть селфи фронталки с телефона, можно парочку).
3. Активно ходим вокруг камеры, что бы она детектила лицо.
4. Затем заходите в Face Library - Train и вручную размечаете фотографии.
5. Указываем в конфиге frigate.yml настройки точности. Тут можно поиграть с вариантами в зависимости от освещенности, типа камеры, размещения.
6. В принципе можно еще поиграть с настройками точности
Google Coral достаточно редкий зверь, мне удалось достать его бушным на ебае только, поэтому прикладываю табличку сравнения - что бы понять чего его можно заменить.
Спасибо что дочитали, надеюсь кому то этот пост поможет избежать тех граблей, что были пройдены мной)
Если бы пол года назад, когда я ставил свою первую операционку на домашний сервер я бы прочитал этот пост - я бы принял иное решение и сейчас мой сервер выглядел по другому. С другой стороны - ничего принципиально нового в посте нет, вся информация давно есть на ютубе, реддите и в чате гпт - нужно было просто спросить. Разные люди по разному воспринимают понятие "домашний сервер" - для кого-то это это коробочка NAS, для кого-то просто виндовый компьютер на антресоли. В рамках этого поста я под домашним сервером буду иметь в ввиду физическую машину с операционной системой линукс. И поговорим о том, какой же дистрибутив можно поставить и в чем отличие.
Очень условно я классифицировал серверные операционные системы исходя из уровня подготовки и целей - и у меня получилось три типа.
- Простые = self-hosting + NAS + лёгкие UI
- Средние = виртуализация + более гибкая настройка
- Продвинутые = оркестрация, облачные сценарии, "мини-дата-центр"
Простые решения (для начинающих / low-entry).
Как следует из названия - это самые простые варианты, они (почти) не требуют знания линукс, имеют удобный веб интерфейс и возможность установки сервисов в несколько кликов. На рынке представлено множество таких решений, самые известные это: YunoHOST, CasaOS, Cosmos Cloud, Umbrel, Tipi, Sandstorm, unraid(!платновое), FreedomBox, cloudron, EmbassyOS
Отличия у них минимальны (например у embassy и FreedomBox чуть больше фокуса на приватность, интерфейс YunoHOST немного устарел - но зато самый большой встроенный магазин приложений), а общее у них одно - минимальный порог входа. Если вы новичок без технического бекграунда - с помощью этих решений вы легко можете выстроить всю инфраструктуру.
Интерфейс Космос Клауд. Можно потыкать тут https://cosmos-cloud.io/cosmos-ui/
Некоторые относят к операционным системам этого уровня и OpenMediaVault (OMV) с TrueNAS SCALE (и я купился на это, первая моя операционка как раз именно OMV) - но я с ними не согласен - это скорее операционка именно для NAS - если вы хотите ставить дополнительные сервисы - это возможно, но не интуитивно.
В общем для начинающего, или для "поставил, настроил и забыл" - я бы советовал взять в качестве ОС что то из вышеперечисленного.
А если по%баться? или средний уровень (для энтузиастов / medium-entry)
Вторая группа операционных систем несколько сложнее, требует базового понимания Linux, сетей, Docker, но и дают больше контроля. Я бы посоветовал эту группу себе энтузиастам, которым процесс важнее чем результат.
К этой группе я отношу Proxmox VE, XCP-ng, Harvester, NixOS, DietPi (тут я сразу отмечу, что сам тестировал и работал только с Proxmox VE, про остальное только читал. Поэтому буду рассказывать на его примере).
У проксмокса нет готового каталога приложений, которые можно поставить в один клик (хотя есть отличный каталог пользовательских скриптов установки, 300+ проверенных сервисов, которые устанавливаются через одну строчку) - это скорее универсальный хост для виртуализации. Зато поднять виртуальную машину с нужными параметрами, изменять эти параметры прям на ходу или использовать никогда не было так просто. Еще у проксмокса есть интересный формат контейнеров - LXC, я это воспринимаю как нечто среднее между виртуалкой и контейнером. Используется общее ядро, а контейнеры используют изолированное окружения. В результате эти контейнеры потребляют меньше ресурсов, чем виртуалка - но обладают большей степенью изолированности, чем докер контейнеры.
UI проксмокса чуть сложнее чем интерфесы ОС первого типа - но все еще существенно проще консоли, на мой взгляд.
В общем если бы я начинал сейчас - вместо OMV я бы поставил себе два Проксмокса.
Или три? Продвинутые решения (для экспертов / high-entry)
Последняя группа - это решения для профессионалов. Я не пробовал ничего из этого (пока?), поэтому коротко опишу как я вижу это со стороны и буду рад если кто то расскажет подробней.
VMware ESXi – классика корпоративной виртуализации (сейчас менее актуальна из-за Broadcom).
Kubernetes (k3s, MicroK8s, TalosOS) – для масштабирования контейнеров, требует глубоких знаний.
OpenShift OKD – корпоративный Kubernetes с дополнительным уровнем абстракции.
OpenStack – облачная платформа IaaS (виртуальные машины, сети, сторидж).
Nomad (от HashiCorp) – оркестрация контейнеров и VM, альтернатива Kubernetes.
Bare-metal Linux (Arch, Debian, Ubuntu, Gentoo) – "чистая" установка и ручная настройка всех сервисов.
FreeBSD / NetBSD / OpenBSD – более редкие, но мощные для сетевых и серверных задач.
Кажется что это решения, для маленького дата-центра дома. Явно не для всех - но если вы, например, делаете свой стартап, и хотите хостить его из дома - то это ваш выбор. Чат гпт подсказывает мне, что если я поставлю себе третий сервер - я смогу сделать кластер, который будет автоматически масштабироваться под нагрузку и работать даже в случае выхода из строя одной машины. Но я честно пока в душе не знаю, зачем мне это (*но очень надо)
На сегодня вероятно все, задавайте вопросы если есть, рассказывайте что стоит у вас, отдельно было бы интересно послушать людей с третьей группой операционок.
Предыдущий пост на удивление зашел, оказывается на Пикабу весьма много владельцев NAS, домашних серверов и даже целых серверных шкафов, и еще больше людей, которые интересуются тематикой селфхоста и умного дома. В комментах было задано куча вопросов, и план по постам в целом сформирован.
Дисклеймер:
Я уже говорил раньше что я не специалист, а энтузиаст, поэтому ошибался, ошибаюсь и буду ошибаться порой, на Пикабу много людей продвинувшихся в изучении дальше - буду рад если они будут поправлять ошибки и советовать лучшие решения. Все дальнейшие посты - лишь личный опыт.
Что было?
Сейчас уже не вспомню, когда я впервые загорелся идеей умного дома, но вероятно "Железный человек" с Робертом Дауни Младшим и его Джарвис произвел на меня неизгладимое впечатление. Останавливало меня лишь одно - что бы сделать умный дом - нужно было иметь хоть какой то, а первые 30 лет жизни я мотылялся по съёмным квартирам. Поэтому первым решением для меня, как и для многих стал "съёмный" дом на базе умной колонки Яндекс Алиса. Технически он состоял из:
датчик движения в кухне, туалете, комнате
умная лампочка на кухне, туалете, комнате
умная колонка Алиса
И несколько сценариев, позволяющих автоматически включать свет при походе в туалет или выключать при отсутствии движения. Очень удобно - и в качестве стартовой точки я до сих пор могу порекомендовать такой набор - при минимальном геморое он дает заметный прирост в комфорте. Вторая съёмная квартира обогатила дом датчиками открытия окон и дверей, несколькими умными разетками, куда было воткнуты телевизор и приставка, сяомовской видеокамерой и датчиком дыма. Все это все еще работало на основе колонки Яндекса и я был доволен.
Муки выбора.
В процессе переезда весь набор "Яндекса" оказался потерян, и обосновавшись на новом месте, я решил все начать заново. Яндекс к этому времени стал меня немного ограничивать - не все устройства сяоми конектились нормально, интернет был не всегда стабилен, а яндекс колонки мини периодически начинала самопроизвольно увеличивать и уменьшать громкость с характерным похрустыванием. Поэтому, немного погуглив, я решил что пора поменять стек, и полез изучать что есть на рынке. Требования, которые казались мне важными я выделил так:
- Локальное управление (интернет штука такая, то есть то нет)
- Приватность (не хотелось зависеть от облаков Яндекса или Гугла, большой брат конечно и так следит - но зачем облегчать ему жизнь)
- Максимальное разнообразие устройств (Zigbee, Z-Wave, Matter, MQTT, Bluetooth, Wi-Fi и устройства различных брендов)
- Гибкость автоматизаций (я не программист и не хотелось бы им становится, хотя базовая техническая грамотность присутствует)
Выбор естественным образом пал на Home Assistant, и так в моем доме появился первый линукс сервер.
На нем я завел Debian, поставил Home Assistant supervised, подключил такие же лампочки, Алисы, датчики, RF и IR пульты управления техникой и прочее. Подробно описывать процесс установки не буду - он весьма подробно, с картинками и пояснениями описан у них на сайте, лишь обозначу моменты, которые показались важными:
- Несмотря на то что у HA огромное количество (более 2500) нативных интеграций с различным оборудованием - многих вещей там все таки не хватает. Поэтому первое, что я сделал после установки HA - добавил в него HACS - это такой комьюнити каталог пользовательских репозиториев, различных полезных интеграций, тем для оформления и карточек для Lovelace. Что бы поставить его нужно чутка повозится, но процесс подробно и понятно описан тут, если будут какие то вопросы - можете задавать в комментариях.
- С этого года HA убрали подержку режима Home Assistant supervised и оставили только два варианта - запуск Home Assistant в контейнере и полноценную операционную систему HA OS
Так как контейнерная версия не дает возможность использовать аддоны, а без аддонов большая часть пользы теряется - советую ставить HAOS на виртуальной машине (или на реальной, как удобней)
В разделе аддонов есть множество полезных штук, в принципе их достаточно что бы сделать из сервера умного дома полноценный домашний сервер - упавлять медиа, ДНС, бекапами, и прочим.
Но если там не нашли нужного - поищите в HACS
Наиболее полезные интеграции в HACS для меня оказались
- YandexStation - позволяет управлять яндекс станциями и другими устройствами из умного дома яндекса через HA
- YandexDialogs - обратный процесс, позволяет управлять любыми устройствами умного дома HA через голосовой интерфейс Яндекс Алисы
- Passive BLE Monitor integration - позволяет подключить к HA почти любое устройство, у которого есть блютус.
На этом, пожалуй, мой писательский запал иссяк, и продолжение напишу позже. Пока писал - подумал что было бы интересно еще рассказать о:
- какие проблемы я поимел когда делал умный дом уже в своем собственном доме
- как единичный HA вырос до двух серверов с кучей локальных ресурсов
- как настроить внешний доступ к внутренним ресурам максимально удобно и безопасно
Еще в планах: (буду рад если кто то поделится опытом, как это сделать)
- настроить систему видеонаблюдения frigate с google coral
- разобраться с системой автоматизации n8n
stay tuned, как говорится)
Даже странно, что такого сообщества на Пикабу раньше не существовало. Штош - теперь есть.
Вводное слово:
Selfhost - это когда ты берешь привычные облачные сервисы и запускаешь их у себя: на домашнем сервере, мини-ПК или даже на старом ноутбуке. Почта, медиа, облако, умный дом, VPN - всё это можно держать под своим контролем.
Зачем это нужно? У кого-то это вопрос приватности, у кого-то — экономии. Для многих это просто удовольствие от того, что твоя система работает так, как ты её сам собрал и настроил.
Будет здорово, если получится собрать тут людей, интересующихся темой домашних серверов, делиться новостями, находками, инструкциями и личным опытом. Ну это программа максимум. А программа минимум - буду сам тут описывать свой путь по граблям.
Добрый день. Столкнулся с лимитом на игнорм листе
"Достигнут предел количества правил 2600"
Не очень понятно чем вызвано такое ограничение, но после того как минусы перестали влиять на формирование ленты - игнор - это единственное что спасало. Расширьте пожалуйста игнор лист хотя бы на пару тысяч.
Спасибо.
