Это статья 2 из цикла статей по установке и настройке Home Assistant.
- 1. Умный дом. Выбор.
- 2. Home Assistant. Выбор железа.
- 3. Установка Armbian на Orange Pi Zero Plus2
- 4. Home Assistant. Установка в docker на Orange Pi Zero +2 H5. И почему это плохо.
- 5. Home Assistant. Установка на Orange Pi Zero +2 H5
- 6. Home Assistant. Настройка VS Code. Темы. Первый сценарий.
- 7. Home Assistant. Подключение электрокарниза по радиоканалу.
- 8. Home Assistant. Подключение электрокарнизов по RS485.
Для начала нужно определиться с железом на котором мы будем устанавливать Home Assistant для нашего умного дома. Выбор у нас большой. Home Assistant можно установить на всём, на чём можно установить python3 — Windows, Mac OS, Linux. Т.е. подойдёт любой компьютер, который есть у вас дома. Возможно вы решите использовать старый ноутбук. Это хороший выбор в основном из-за того, что вы будете делать установку в привычной для себя среде. И не придётся что-то для этого покупать. Но с точки зрения расхода электроэнергии можно рассмотреть другой вариант. Ваш ноутбук, оставаясь всё время в активном состоянии, будет потреблять, скажем 100 ватт в час. Это примерная цифра. В сутки это даст 2,4 квт потребления, за месяц 72 квт, за год 876 квт. Разумеется эта цифра при оплате нас не задавит, но все мы ответственные граждане, заботимся об окружающей среде и совсем не против того, чтобы снизить на неё нагрузку. К тому же у ноутбука время от времени может включаться вентилятор. Вы, возможно с удивлением, заметите, что операционная система и многие программы предпочитают обновляться ночью. Ваш ноут, если не выключен, обычно ближе к утру, вдруг начинает жить активной жизнью. Пока мы не спим это не проблема, но лишний шум ночью нам не нужен. Нам нужно что-то, что будет экономичным и бесшумным. Компьютерный системы строятся вокруг вычислительного ядра — процессора. Процессор во многом определяет производительность и, как следствие, энергопотребление. В домашних компьютерах стоят процессоры x86. Но в смартфонах, там, где экономичность в плане энергопотребления очень важна, используются процессоры ARM. Я не знаю этими ли соображениями руководствовались разработчики Home Assistant, но из четырёх способов установки два с половиной — это установка на Raspbery Pi — крошечный компьютер с ARM процессором и операционной системой Linux.
Вот эти способы:
- Hass.io — Установка на Raspberry Pi в среду Docker. Мы начали с него, потому что это рекомендованный метод.
- Hassbian — Наиболее простой способ установки Home Assistant на Raspberry Pi. При установке операционной системы будет также установлена последняя версия Home Assistant. Версии обновляются каждые две недели, поэтому это удобно.
- Docker — Установка в Docker. Поддерживаемые системы:
- — LINUX
- — RASPBERRY PI 3 (RASPBIAN)
- — MACOS
- — WINDOWS
- — SYNOLOGY NAS
- — QNAP NAS
- Manually — Установка прямо в систему, используя виртуальное окружение Python.
Установка на Raspberry Pi наиболее дружественна и описана лучше всего. Для небольшой системы, наверное, это лучший вариант. Но, при разрастании, система начнёт подтормаживать. Вначале начнут появляться ошибки тайминга в логах. Затем, когда нужно, чтобы была выполнена группа команд по-возможности одновременно, (например, нужно включить сразу несколько групп источников света) будет заметна задержка выполнения команд. Будет видно, что устройства срабатывают не в один момент, а по-цепочке, последовательно. Говоря образно — окружающие заметят, что ваш домашний помощник уже не молод и, кажется, стал хромать. Возможно, в начале с этим можно как-то мириться, но при очередном добавлении нового устройства в нашу систему умного дома и при усложнении автоматизации, наш помощник захромает на обе ноги. Калека в помощниках нам не нужен и всё закончится отправкой его на заслуженный отдых.
Вариант установки в Docker хорош тем, что Home Assistant устанавливается сразу с дополнительными плагинами и хорошо переносится с одного железа на другое. Лёгкость переноса с системы на систему — это то, для чего был создан Docker. Из недостатков — дополнительная сложность. Особенно при доступе к периферии. Если какое-то оборудование нужно подключить к Home Assistant не по сети, то нужно либо преобразовать интерфейс в сетевой (например воспользовавшись ser2net для проброса последовательного порта), либо придётся копаться в документации, чтобы разобраться с тем, как пробросить это оборудование из основной системы в Docker.
Через некоторое время вы обнаружите, что кроме контейнера с Home Assistant у вас есть контейнеры с MQTT, Node-RED, HomeBridge, Dasher, Unifi, MuxiMux, ESPHomeYaml, Grafana и InfluxDB. Вы этого не хотели. Честно-честно. Как-то это само собой так получилось.
Home Assistant обновляется каждые две недели и мы хотим, чтобы у нас всегда была самая свежая версия самой системы и всех дополнений, поэтому пару раз в месяц нам нужно будет останавливать все контейнеры, обновлять их и запускать их в нужной последовательности, со всеми нужными параметрами, чтобы всё работало и мы не получали ошибок. В итоге нам понадобиться какая-нибудь система управления Docker. Мы и без этого рискуем из обычных пользователей превратиться в системных администраторов и предпочли бы перенести знакомство в Docker на другое, более подходящее время.
В итоге, установим Home Assistant в виртуальном окружении Python3. Такой подход даст нам наибольший контроль над системой. Не будет дополнений. Это не проблема. Просто нужно будет немного дополнительного времени, чтобы установить то, что нужно в ручную. Зато не будет ничего лишнего. Того, чем мы не пользуемся и что только занимает ресурсы. Для разных операционных систем эта процедура будет немного отличаться. Сложного ничего нет. Если появились ошибки — нужно прочитать что нам пишут и если что-то не совсем понятно немного погуглить. Обычно ошибки связаны с тем, что в системе нет какого-то пакета или программы. Если так, то вы знаете что делать — установить то, чего не хватает. Я решил установить Home Assistant на Orange Pi Zero Plus 2 H5.
Причины:
- — eMMC flash(8GB). Это основное. Обмен с картой памяти micro sd тормозит всю систему. Это, возможно, основная причина подтормаживания Raspberry Pi. Когда установим систему, протестируем скорость обмена с eMMC и картой памяти. Посмотрим есть ли смысл в таком решении. В любом случае мы ничего не теряем т.к. слот для установки micro sd никуда не исчезнет и систему можно запускать как с eMMC, так и с micro sd.
- — Производительный процессор H5: Quad-core Cortex-A53. Если столкнёмся с тем, что процессор окажется узким местом в системе, тогда нужно переходить на x86.
Ещё из достоинств — компактный размер (46 мм × 48 мм × 12 мм) и вес (36 грамм). Совсем демократичная цена, WiFi, Bluetooth 4.2, выход HDMI, возможность нахлобучить сверху плату расширения с микрофоном (что возможно, нам пригодится, если захотим управлять умным домом голосом), ик-портом, USB разъёмами и выходом AVI. USB OTG — вроде бы мелочь, но при подключении к большому компу Orange Pi виден как последовательный порт и доступ к системе можно получить через него. Без всяких переходников. По бокам два двухрядных разъёма на 13 и 26 контактов с выведенной на них периферией. Вход CSI для камеры 1080p@30fps — не уверен, что нужен, но есть. Потребление 700mA — 2A при питании 5 Вольт. Это 3,5 — 10 Ватт — на порядок меньше, чем у ноута. Стоимости сэкономленной за год электроэнергии будет достаточно, чтобы окупить приобретение новой игрушки. Были опасения с тем, что операционная система может работать нестабильно, но с этим оказалось всё в порядке.
Не хватает ethernet. И это основной недостаток. Подключение к сети через ethernet проще — не нужна авторизация. И пропускная способность выше, чем у WiFi. Большая пропускная способность нам пригодится, если мы навесим на Orange Pi ещё и камеры, кроме прочего. С парой камер не слишком большого разрешения справится и WiFi, но для камер с высоким разрешением лучше использовать ethernet. Частично решается расширителем-переходником USB-ethernet. Тот, что у меня был — на RTL8152 система увидела сразу без установки каких-либо драйверов. Плюсом к ethernet вместо одного разъёма USB стало три. Всё это, конечно, висит на одном хабе и пропускная способность ограничена хабом USB. Отсутствие ethernet без подключенного адаптера в нашем случае — лишний повод посмотреть как в linux из командной строки подключиться к WiFi.
Есть несколько причин для того, чтобы запускать Home Assistant в виртуальной среде. Virtualenv ограничит действие всех составляющих среды Python в пределах одного дерева каталогов. Это означает, что пакеты Python, которые вы устанавливаете для Home Assistant, не будут взаимодействовать с остальной частью вашей системы и наоборот. Случайный апгрейд для какой-либо другой программы на вашем компьютере не окажет влияния на Home Assistant. И вам не нужно устанавливать пакеты Python с правами root. Возможно сейчас вам кажется, что если мы выделили под систему специальное устройство, то можно обойтись и без этого. Но мы знаем, что система будет дополняться и расширяться. Никто не знает к чему это в итоге нас приведёт. Нет ничего плохого в том, чтобы проявить немного предусмотрительности.
Прежде, чем установить Home Assistant, на Orange Pi нужно установить операционную систему. Если зайти на сайт производителя, на страницу доступных дистрибутивов и найти нашу плату мы увидим доступные опции. Можно установить либо Android, либо LInux. Нам нужен Linux. Видим, что нам предлагаются не самые свежие версии дистрибутивов. Плата у нас новая и не очень-то хочется наряжать её во что-то, что попахивает нафталином. Поэтому переходим на сайт armbian и находим версию для Orange Pi Zero Plus 2 H5.
В следующей части установим и настроим операционную систему.