Безопасная домашняя автоматизация, без облаков или выделенных узлов

Home Assistant позволяет клиентам мобильных и настольных браузеров контролировать устройства «умного дома» издалека, не требуя облачной поддержки или выделенного домашнего концентратора.

Несколько платформ домашней автоматизации поддерживают Python как расширение, но если вы настоящий демон Python, вам, вероятно, понадобится Home Assistant , который помещает язык программирования вперед и в центр.
Паулюс Шаутсен создал Home Assistant в 2013 году «как простой скрипт для включения света при заходе солнца», рассказывая участникам недавней презентации Embedded Linux Conference и OpenIoT Summit «Автоматизация вашего дома с помощью Home Assistant: ответ Python на Интернет вещей ».

Шоутсен, который работает старшим инженером-программистом в AppFolio в Сан-Диего, привлек 20 активных участников проекта.
Home Assistant теперь достаточно зрелый, с обновлениями каждые две недели и поддержкой более 240 различных интеллектуальных устройств и сервисов.
Программное обеспечение с открытым исходным кодом (лицензия MIT) работает на всем, что может работать на Python 3 - от настольных ПК до Raspberry Pi, и насчитывает тысячи пользователей по всему миру.

Как и большинство систем автоматизации, Home Assistant предлагает мобильные и настольные браузерные клиенты для удаленного управления устройствами умного дома.
Однако он отличается от большинства коммерческих предложений тем, что у него нет концентратора, что означает отсутствие встроенных радиомодулей.
Вы можете точно добавить, какие радиостанции вы хотите, используя USB-накопители.
Также нет облачного компонента, но Шаутсен утверждает, что любая функциональность, которой вы можете пожертвовать из-за этого, более чем соответствует лучшей безопасности, конфиденциальности и отказоустойчивости.

«Нет никакой зависимости от облачного провайдера», - сказал Шаутсен.
«Даже когда интернет отключается, дом не выключается, а ваши личные данные остаются в вашем доме».

Schoutsen не предложил большую часть промо в своей презентации, но быстро принялся за работу, объясняя, как работает платформа.
Поскольку Home Assistant радикально не отличается от других платформ IoT - одна из причин, по которой он легко взаимодействует с платформами, начиная от Nest до Arduino и Kodi, - презентация является полезным введением в концепции IoT.


Home Assistant Основная архитектура

(щелкните изображение, чтобы увеличить)

Чтобы лучше понять сильные стороны Home Assistant, я недавно спросил Schoutsen о его высоте лифта.
Он подчеркнул важность свободного программного обеспечения с открытым исходным кодом, а также конфиденциальность и безопасность локального решения.
Он также отметил простоту настройки и обнаружения, а также силу основного языка Python.


Взаимодействие ядра, компонентов и Интернета вещей Home Assistant

(щелкните изображение, чтобы увеличить)

«Python позволяет очень легко расширять систему», - сказал мне Шаутсен.
«Как динамический язык, он обеспечивает гибкость, о которой разработчики Java могут только мечтать.
Очень легко протестировать и создать прототип новых деталей на существующей установке, не ломая их навсегда.
С недавним представлением MicroPython, который работает на встроенных системах, таких как Arduino и ESP8266 , мы можем предложить единый язык для всех уровней IoT: от датчиков до автоматизации и интеграции со сторонними сервисами ».

В презентации Schoutsen ELC 2016 он описал, как Home Assistant - это управляемая событиями программа, включающая конечный автомат, который отслеживает «сущности» - все выбранные устройства и людей, которых вы хотите отслеживать.
Каждый объект имеет идентификатор, состояние и атрибуты.
Последний описывает больше о состоянии, таком как цвет и интенсивность света на умной лампе Philips Hue.

Например, для интеграции Philips Hue в систему вам потребуется использовать «компонент» освещения, который знает о лампочке и о том, как считывать ее состояние (выключено или включено).
Home Assistant предлагает компоненты для каждого поддерживаемого устройства или услуги, а также легкий доступ к группам компонентов, таким как освещение, термостаты, выключатели и гаражные ворота.
Установка облегчается с помощью компонента обнаружения сети, который сканирует сеть, и, если у вас есть поддерживаемое устройство, настраивает его автоматически.

Программное обеспечение дополнительно оснащено сервисным реестром, который предоставляет услуги по шине событий.
«Мы можем зарегистрировать команду включения для освещения и отправить ее по электронной почте или SMS», - сказал Шаутсен.
«Таймер может отправлять событие изменения времени каждую секунду, и компонент может запросить уведомление в определенное время или через определенные промежутки времени.
Основанный на событиях изменения времени, это вызовет обратный вызов компонентов. ”

Каждый компонент записывает свое состояние в конечный автомат, отправляя событие изменения состояния в шину событий.
«Компонент light регистрирует свой включенный сервис в реестре сервисов, чтобы любой мог запустить событие на шину событий, чтобы включить свет», - сказал Шаутсен.

Вы можете легко интегрировать компонент освещения с компонентом детектора движения, используя компонент автоматизации.
Он будет прослушивать события детектора движения и отправлять событие «включение света» на шину событий, которая, в свою очередь, будет перенаправлена ​​в реестр услуг.
Затем реестр проверит, что легкий компонент может обработать событие.
«Компоненты автоматизации могут прослушивать события, наблюдать определенные состояния атрибутов или триггеры и воздействовать на них», - объяснил Шаутсен.

Другой тип компонента обрабатывает обнаружение присутствия.
«Платформа может проверить маршрутизатор, чтобы узнать, какие телефоны подключены, чтобы узнать, кто дома», - сказал Шаутсен.
«Другие компоненты отвечают за запись истории событий и состояний или за организацию объектов - группирование нескольких объектов и обобщение их состояния». Компоненты доступны для интеграции сторонних сервисов, таких как MQTT или IFTTT, и другие компоненты экспортируют данные во внешние базы данных и инструменты анализа.

Шаутсен также объяснил такие понятия, как «платформенный» уровень, который расположен над компонентами сущности.
Каждая платформа объединяет «абстрактный базовый класс», который «действует как связующее звено между реальным устройством и устройством, представленным в Home Assistant», - сказал Шаутсен.
Позже он пробежал пример кода для базового коммутатора и исследовал использование триггерных зон для геозоны.

Как говорит Шаутсен, Home Assistant «набирает обороты». Посмотрите полное видео ниже, чтобы увидеть, что происходит, когда Python встречает IoT.

Автоматизация вашего дома с помощью Home Assistant: ответ Python на Интернет вещей

Слайды из презентации Самоута по Шоутсену доступны для скачивания здесь [pdf файл] .
Дополнительные слайды и видеопрезентации с саммита IoT в апреле 2016 года перечислены здесь .

В воскресенье, 26 июня, с 7:00 до 20:30 по восточному поясному времени США также проводится бесплатный вебинар Home Assistant.
Чтобы зарегистрироваться, здесь .

Этой осенью: конференция по встраиваемым Linux + OpenIoT Summit Europe

Хотите поделиться своим опытом, знаниями и идеями в области встроенного Linux и IoT с сообществом открытого исходного кода?
Конференция по встроенному Linux + OpenIoT Summit Europe 2016 пройдет 11-13 октября в Берлине, Германия.
Конкурс предложений возможен до 26 июня 2016 года. Отправьте свое предложение сейчас!

Эта статья защищена авторским правом © 2016 Linux.com и была первоначально опубликована здесь .
Он был воспроизведен этим сайтом с разрешения его владельца.
Пожалуйста, посетите Linux.com для получения последних новостей и статей о Linux и open source.