Практическая автоматизация дома на базе openhab. Часть 1 - вводная
Решил поделиться личным опытом про, как мне кажется, интересную открытую систему автоматизации, которую я активно и постоянно, на практике, использую в своем доме, рассказать что использую, что получилось что нет, какие планы и т.п.
Поделюсь разными решениями и наблюдениями, как по постройке системы так и по эксплуатации именно в контексте моего конкретного дома и моих представлений о том как это должно быть.
Вводные, дом около 200м2 в конец 2021 в состоянии строительства (внутренняя отделка), инженерные системы изначально планировались под автоматизацию и сделаны в основном самостоятельно либо по четким заданиям. Что-то уже автоматизировано, что-то еще только в планах, что-то не будет автоматизироваться никогда (поскольку не считаю нужным). В доме проживает 2 взрослых, 2 детей, кот. Отопление — газ, вода, канализация автономные. Посты буду писать по мере нововведений так и по мере вдохновения, рассказать и показать есть много чего но писать нужны силы.
В доме живем больше года (да, несмотря на идущую отделку) потому все опробовано, до этого, еще в трех арендованных домах использовал отдельные элементы по мере необходимости. На грабли наступлено и мнение сформировалось именно по практическому использованию.
Сам я програмист с достаточно большим стажем, потому есть некая профессиональная деформация в сторону программных решений, также есть бекграунд в электронике, в электрике и есть неуемный зуд в руках. Соответственно, некоторые решения которые приняты имеют легкий привкус задротства.
В автоматизации я отталкиваюсь от нескольких постулатов, которые сформулировал/подсмотрел и мне они кажутся основополагающими:
1. Автоматизация должна быть незаметной и беспроблемной, если ее надо чинить, следить, проверять то это фигня, если вашим постояльцам с автоматизацией живется сложнее чем без нее то это фигня.
2. Автоматизация должна быть не инвазивной и не нарушать максимально-привычный ход вещей, если вы 30–40 лет включали свет выключателем то заставлять вас пользоваться приложением это фигня.
3. Все что может сломаться то обязательно когда-то сломается, в этом штатном сценарии все должно продолжать работать как минимум в минимально-необходимой функциональности.
4. Узко-специализированные системы всегда выполняют положенные на них функции лучше универсальных.
Что такое openhab и почему я выбрал именно его?
Оpenhab это бесплатное, опенсорсное, мультиплатформенное программное решение, написанное на богомерзкой Java (пожалуй единственный минус для меня) которое ведет свое начало от когда-то существовавшего специализированного фреймворка Eclipse SmartHome, который достаточно давно, на заре всего Иот-движа, ставил задачей объединить всех разработчиков Иот под некой общей стандартизированной программной платформой. Естественно не получилось, но наработано большое количество кода, подходов и решений.
Фремворк ESH вроде даже еще живой но в 3й версии openhab активно выпиливали интеграцию с ним, как тормозящую развитие, но свое дело он сделал. Openhab версии 2 очень логичен, максимально лаконичен прост и очевиден, как минимум програмисту. В текущей версии 3, как мне кажется, сделали много шагов навстречу функциональному “багацству”, при этом лаконичность и простота пострадала.
Сухая инфа про опенхаб в вики uk.wikipedia.org/wiki/OpenHAB
Сайт проекта www.openhab.org/
Какая роль опенхаба в автоматизации дома?
Не секрет, что на рынке есть огромное количество технологий, решений, протоколов так или иначе относящихся к умному дому, все эти решения либо выполняют какие-то прикладные задачи либо ограничены неким небольшим набором продуктов, которые существуют на рынке. Openhab (а также несколько конкурирующих продуктов) делают попытку объединить их все в некий общий зоопарк и наладить взаимодействие между ними а также программными системами которые вообще не заточены изначально под умный дом но фактически оказались очень полезными и удобными.
Какие есть конкуренты?
Самый мощный и пожалуй более популярный — HomeAssistant (HASS).
На момент моего выбора я пощупал оба, и как программист буквально через пару часов влюбился в строгую и лаконичную идеологию опенхаба, где зная базовые принципы логики работы вы можете представить и спланировать как будет работать сколько угодно сложная система, все-же базис ESH фремворка сыграл огромную роль.
Грубо говоря, весь опенхаб это набор элементарных кубиков из ограниченного набора стандартизированных размеров и цветов, но с помощью которых можно сделать логику какой угодно сложности и вы всегда будете понимать почему она работает именно так как работает, но с некоторым ущербом в пользу визуальной красоты и причесанности.
В случае с HASS это все немножно не так, у него упор на юзерфрендли, большую доступность для не пограмистов но он изобилует ситуациями “сделайте именно так и не задавайте лишних вопросов”.
Моя любимая аналогия openhab vs hass которую я прочитал в какой-то статье:
Вы можете сделать шар в hass и в openhab, в случае с hass он будет визуально сильно более шаром НО вы никогда не будете знать на сколько он геометрически точный и куда покатится когда потребуется, в случае с OH шар будет состоять из одинаковых кубиков, выглядеть несколько угловато но при приложении нужного выверенного усилия он покатится именно туда куда вы ожидаете.
Мне как програмисту второй подход сильно более приятен и очевиден.