EasyHome и голосовое управление + OpenHAB

Произошёл достаточно серьёзный прорыв в развитии программного обеспечения EasyHome, связанный с его интеграцией с OpenHAB. Расскажу о том, что это такое, как реализовано, и что позволяет сделать.

Сложное техническое описание EasyHome

Для начала упомяну, что EasyHome — это программное обеспечение для управления Умным Домом, которое состоит из двух частей. Одна часть, пользовательская — это программа, которая устанавливается на устройства пользователя с операционной системой Windows, Android или iOS. Именно она скачивается из Apple Store или Google Play. Программа EasyHome подключается к контроллеру по его IP адресу и может передавать ему сигналы управления или менять настройки. Сама по себе она не хранит никаких алгоритмов работы или настроек (кроме собственного внешнего вида), только передаёт команды пользователя на контроллер и принимает состояние входов и выходов от контроллера для отображения. Программа теоретически может управлять любым контроллером, с которым возможен обмен данными по протоколу ModBus TCP.

Вторая часть EasyHome — это программный код контроллера. Он зашит в контроллер и отвечает за выполнение всех алгоритмов и команд. Он же хранит все настройки работы системы, сценарии, расписания и прочее. Он отвечает за совместную работу разных систем, например, радиаторов, тёплого пола и кондиционеров, чтобы они работали согласованно. Этот код может быть запущен на контроллерах EasyHomePLC и Beckhoff BX9000, CX9000, CX9001, CX8080. Если в систему внесены все необходимые настройки, то в каких-то случаях программа EasyHome на планшете, смартфоне или компьютере вообще может быть не нужна, если всё необходимое управляется с выключателей или автоматически.

EasyHome — это закрытое платное программное обеспечение. Это означает, что у пользователя нет доступа к коду контроллера и исходникам пользовательской программы. Можно менять интерфейс пользователя, насколько он это позволяет (в достаточно широких пределах), можно менять огромное множество настроек, можно создавать свои сценарии работы (для этого есть инструмент «свободные функции»), но нельзя в программной части что-то самому допрограммировать или дописать драйвер устройства.

Но! У той части EasyHome, которая зашита в контроллер, с некоторых пор (с прошивки версии 511, июль 2019) есть открытый API. Это возможность с помощью JSON запросов управлять системой и запрашивать состояние всех подключенных к ней элементов. Это означает, что все желающие автоматизировать своё жилище свободным образом, то есть, сложными сценариями, которые не предусмотрены программистами системы, такую возможность получают. Можно писать свои скрипты на любом языке программирования, делать web-интерфейс, писать собственную программу управления системой для любых платформ. Для этого, конечно, надо быть программистом хотя бы на начальном уровне.

Кстати, этот API можно включать и выключать по желанию из соображений безопасности.

И именно появление открытого API даёт огромные возможности для интеграции. В начале лета 2019 система была интегрирована с голосовым помощником Алиса от Яндекса. Система получилась достаточно неуклюжей из-за необходимости каждые несколько минут отдельной командой запускать навык Алисы и того, что колонка не очень хорошо распознавала команды. Сейчас, насколько я знаю, разработчики Алисы много чего поправили в своей системе, но официально у EasyHome или Алисы готового решения по интеграции нет, желающие сами могут его реализовать через API.

OpenHAB и его возможности

OpenHAB — это программное обеспечение, разрабатываемое группой энтузиастов (то есть, открытое и бесплатное, а также без обязательств со стороны разработчиков). Хаб, исходя из определения этого слова — это некий программный узел, позволяющий объединять множество разных протоколов и систем Умного Дома. И реализовывать различные сценарии, связывающие все эти системы. И подключать разные системы управления (программы), которые смогут управлять всеми этими системами.

Перечислю некоторые системы, которые могут быть подключены к OpenHAB: KNX, HUE (управление светом от Philips), Sonos, ZigBee, Z-Wave, Xiaomi Mi Home, IKEA (у них тоже есть своя система, в России пока не продаётся), XMPP и KODI (программные медиаплееры), Telegram, Google календарь, HomeKit, Somfy (электрокарнизы), Yamaha, Benq и прочее. Полный список можно посмотреть на сайте OpenHAB.

Надо понимать, что все эти плагины пишут частные энтузиасты, полную работоспособность всех функций со всеми версиями систем никто не гарантирует. Поменяет, например, Xiaomi в своей системе Mi Home какой-нибудь формат команд, автоматически обновит прошивку своих устройств, а такие вот сторонние интеграции перестанут работать, пока сообщество не подсуетится и не скорректирует код плагина. Или Sonos легко может такое провернуть, системы-то закрытые и проприетарные.

Самым привлекательным для нас является возможность интеграции с приложением Дом, установленным на устройства Apple, и, как следствие, голосовым управлением через Siri. Также сразу станет возможным и управление с часов Apple Watch. Это самое распространённое пожелание пользователей на сегодняшний день. Ещё два важных бонуса — сразу сможем управлять системой через интернет (я позднее напишу, что для этого надо) и сможем использовать альтернативные приложения для управления системой, помимо EasyHome и Дом, включая приложения для Android и Web-интерфейс (через обычный браузер).

Что нужно для работы системы

Раньше у нас был только контроллер EasyHomePLC либо Beckhoff либо Овен, больше не нужно было ничего. Контроллер обменивается с программным обеспечением командами по ModBusTCP, доступ к контроллеру возможен только по IP адресу, никакого облачного сервера у него нет. Теперь нам нужен сервер, на котором будет установлен OpenHAB. Сервер — это вообще любой компьютер на любой операционной системе, без особых требований к производительности. Важно, чтобы он был постоянно включен и в сети. OpenHAB есть для Windows, Linux, MacOS, Raspberry Pi (также для Pine A64 и Docker, но это для специалистов).

Если у нас есть компьютер или ноутбук, который постоянно включен, то хорошо. Если нет, то самым недорогим вариантом будет купить Raspberry PI — компактный компьютер на Linux, бесшумный и малопотребляющий. Его не использовать будет в качестве чего-то ещё (видеосервера или файлового сервера), зато он стоит несколько тысяч рублей.

EasyHome и голосовое управление + OpenHAB
Raspberry Pi в корпусе

В ним работать несколько сложнее, чем с компьютером с полноценным графическим интерфейсом, надо это учитывать. Но в инструкции по интеграции EasyHome с OpenHAB описана именно установка его на Raspberry. На Windows всё гораздо проще.

Надо понимать, что сервер OpenHAB нужен только для работы интеграции, система с EasyHome сама по себе без него будет работать, просто без голосового управления, HomeKit и прочего.

OpenHAB делает так, что приложение Apple Дом, сканируя локальную сеть на предмет совместимых с HomeKit устройств, видит эти устройства. То есть, OpenHAB эмулирует устройства для Дома.

Не надо думать, что всё заработает само, и после запуска OpenHAB устройства Apple сразу увидят все входы и выходы контроллера. Можно почитать инструкцию. Все устройства, которые должен увидеть Дом, должны быть прописаны в файлах конфигурации OpenHAB, тут придётся вспомнить программирование как минимум на HTML или CSS и понять формат строчек.

Одного OpenHAB для работы системы недостаточно! Нам ещё нужен некий сервер со стороны Apple. Им может выступать либо iPad, либо колонка HomePod, либо AppleTV, постоянно включенные и находящиеся дома, в одной локальной сети с контроллером и сервером OpenHAB. Это нужно для реализации, во-первых автоматизаций, то есть, сценариев работы устройств, подключенных к приложению Дом, во-вторых, удалённого управления системой через интернет. Сервер (iPad, HomePod или AppleTV) всё время подключены к интернет и учётной записи Apple, а вы со своего устройства, находясь не дома, но тоже подключенного к серверам Apple, даёте команду, которая приходит на устройство дома, с него на OpenHAB, потом на контроллер. Вот так всё связано.

Без интернета дома не будет работать голосовое управление и удалённое управление, но будет работать обычное управление с приложения Дом.

Дополнительные плюсы

Из дополнительных плюсов интеграции, помимо голосового управления и удалённого управления, можно выделить следующие:

  • Можно не использовать EasyHome. Он всё равно понадобится для настройки системы, но для управления вы сможете использовать если не Дом, то разные совместимые приложения, например, очень красивое Eve (для iOS), собственное OpenHab, ещё несколько платных.
  • Можно делать сценарии автоматизации, в которых будут участвовать не только устройства, подключенные к контроллеру EasyHome, но и прочие совместимые с HomeKit, а также OpenHAB.
  • Можно управлять с часов Apple Watch!
EasyHome и голосовое управление + OpenHAB

Планирую написать отдельную статью про обновление прошивки контроллера и управление системой с приложения Дом. Если написание файлов конфигурации для OpenHAB не сильно меня затормозят.

Loading

Умный дом или дом по уму
Добавить комментарий