Программирование контроллеров

Для программной составляющей контроллера умного дома уже существуют готовые программы, помогающие пользователям настроить свой «Умный дом». Одной из таких систем является MajorDoMo.

Система «Умный дом» Majordomo — проект по адаптации и автоматизации жилого помещения.

Системы Majordomo максимально адаптированы для начинающих пользователей и поэтому практически не требуют опыта или знаний в таких областях, как программирование или электроника.

Majordomo — это бесплатная общедоступная программа, которая поможет быстро обучиться комплексному управлению «Умным домом». Благодаря поддержке двух основных платформ (Windows или Linux) такая система может быть установлена фактически на любой персональный компьютер, поскольку потребляет относительно мало ресурсов. Даже имея малопроизводительный ПК, можно позволить себе пользоваться этой системой. [5]

Также для более продвинутых пользователей имеются системы с расширенными настройками и открытым кодом, такие как OpenHAB, Domoticz и Home assistant.

Что касается openHAB, - это очень гибкий конструктор. Основанный на технологии OSGi, он позволяет конфигурировать каждый отдельный плагин (Binding) «налету», не перезагружая весь сервер.

OpenHAB реализует единую шину, т.е. позволяет объединить все устройства с разными протоколами в единую сеть, абстрагируя пользователя от каждого конкретного протокола. Таким образом, можно пользоваться единственным средством управления (скажем, приложением на смартфоне) и реализовать сколь угодно сложную логику взаимосвязи между устройствами.

OpenHAB — это специальный сервер, который может работать на любом компьютере под управлением любой ОС (включая RaspberryPi). Вся установка заключается в распаковывании дистрибутива сервера и установке Java машины. Далее начинается процесс настройки.

Третья система, Domoticz - это мультиплатформенное ПО с открытым кодом ориентированное на создание системы управления умным домом. Поддерживает большое количество различных устройств разных вендоров, в том числе работает с устройствами Xiaomi.

Система имеет более гибкие возможности по настройке сценариев — например проверку активности устройства, то, чего нет в MiHome, или создание переменных — которые позволяют по одному условию — например нажатие клавиши — выполнять различные действия, в зависимости от значения переменной.

Home assistant - это программное обеспечение с открытым кодом для автоматизации умного дома, ориентирующееся на локальное управление и конфиденциальность. Он отлично подходит для работы на Raspberry Pi или локальном сервере. Проекту более пяти лет, он использует python и лицензию Apache 2. Для управления устройствами Home assistant использует отдельные модули (integrations, или components). Создать такой довольно просто. На их сайте можно найти каталог основных (одобренных и поддерживаемых сообществом) модулей. Среди общего их количества (1485 штук) попадаются совершенно разнообразные. 

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

Данный подход является самым сложным, но и самым гибким, так как уже готовые программы всегда имеют ограничения в возможностях.

При выборе языков программирования на одноплатные компьютеры, такие как Raspberry Pi, обычно останавливаются на таких популярных языках как C, C++, JavaScript и Python. Однако, лучше всего для этого подходят именно С и Python. Так как Raspbian – ОС на базе Unix, в качестве базового языка здесь выступает С. С его помощью можно получить максимальную производительность без использования машинных команд.  А IDLE, стандартная среда разработки программ на Raspberry, работает как раз на языке Python.

Исходя из анализа вышеуказанных фактов были сделаны выводы о том, какие программные средства лучше всего подходят для создания сервера умного дома. Это Home Assistant - программное обеспечение с открытым кодом для автоматизации умного дома. В качестве языка программирования целесообразно будет использовать Python в связи с его отличной совместимостью с выбранными программным обеспечением и аппаратной частью.

____________________________________

https://proumnyjdom.ru/sistemy-avtomatizacii/sistema-umnyj-dom-majordomo.html Дата доступа: 21.09.2020
https://habr.com/ru/post/471822/ Дата доступа: 21.09.2020