21 февраля 2020 3610
В заключительной части серии статей Павел Цытович делится опытом реализации умного дома в квартире. В первых частях была изложена точка зрения автора на подход к проектированию, а также описан процесс разработки решения для умного дома.
В заключительной части серии статей Павел Цытович делится опытом реализации умного дома в квартире. В первых частях была изложена точка зрения автора на подход к проектированию, а также описан процесс разработки решения для умного дома.

Реализация

Для реализации умного дома, кроме аппаратных решений, обзор которых не является целью данной статьи, нужно выбрать программную платформу. Сейчас на рынке представлено достаточно много решений на базе свободного ПО. По мнению автора, к рассмотрению достойны следующие проекты (включены системы, с которыми автор непосредственно работал):

  • Majordomo — система написана на PHP. Для программирования используется концепция объектов, их свойств и методов. Поддерживает большой набор устройств и имеет большое русское комьюнити. Хороша для быстрого старта, однако использование этой системой СУБД MySQL и архитектуры классического веб-приложения является ее существенным недостатком. Эта система была использована автором в первой версии умного дома. В качестве средства программирования логики можно использовать PHP или Google Blockly

  • OpenHAB — достаточно известная система, написанная на Java. По мнению автора статьи, она сложна в настройке и обеспечении логической связи между устройствами умного дома. В качестве средства программирования логики умного дома также можно использовать Google Blockly

  • Node-red — система для реализации простейшей логики умного дома, при условии, что устройства связаны по стандартным протоколам прикладного уровня (rest, mqtt и т. д.). Рекомендуется автором данной статьи для использования в простых решениях, например, охранная система, система имитации присутствия и т. д.

  • ioBroker — система написана на JavaScript (Node JS). Имеет простую и грамотную архитектуру, является достаточно стабильной и поддерживает большой набор устройств. Использует простую парадигму — устройства с наборами состояний и возможностью подписки на изменения состояния. В качестве средства программирования логики умного дома можно использовать JavaScript, Google Blockly или Node-red, который вошел в состав ioBroker как отдельный компонент. Именно эта система используется автором во второй версии умного дома, запущенной с сентября 2019 года.

Сам умный дом в настоящее время реализован на базе Rapsberry PI 3 и операционной системы Rapsberrian. В качестве системы управления, как уже было сказано, используется система ioBroker. Управление освещением и электроснабжением построено на базе технологии Noolite. В качестве аппаратного дополнения используется GSM-модуль, который задействован для экстренного оповещения при отсутствии Интернета, а также как дополнительный канал управления системой по SMS с доверенных телефонов.

Логика взаимодействия между устройствами реализована на основе сценариев JavaScript, Google Blockly и Node-red.

Сценарий на JavaScript представляет собой обычную программу для NodeJS. Например, вот так реализован в умном доме автора статьи бой курантов:

            schedule('0 0,8-23 * * *',() =>

            {

             let currentTime = new Date();

             let hour = currentTime.getHours();

             if(hour > 12)

                        hour -= 12;

             let file = hour.toString() + 'h.mp3';

            playSound('audio/' + file);

           });

Здесь код ioBroker вызывает каждый час в интервале 8:00AM-11:00PM функцию, формирующую имя файла, в котором записан бой курантов для соответствующего часа, и воспроизводит на внешнем устройстве требуемый аудиофайл.


Google Blockly позволяет писать код на визуальном языке программирования, не вдаваясь в подробности JavaScript. Например, так реализовано включение света в прихожей по датчику движения: когда солнце зашло, свет включается на 100 %, в ночном режиме — на 10% яркости:

Умный дом. Опыт разработки и внедрения. Часть 3

Здесь мы видим подписку на событие изменения состояния датчика движения. Данный код будет вызван, когда состояние изменится и будет содержать «true».

Используя же Node-red, мы можем реализовывать простейшие сценарии управления. Например, в ванной комнате мы можем с помощью несложного кода реализовать управление светом от датчика движения:

Умный дом. Опыт разработки и внедрения. Часть 3

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

Таким образом, благодаря подходу к умному дому как к системе повышающей качество жизни, автору проекта удалось воплотить свою мечту об умном доме, не испытывая серьезных экономических затрат. На момент запуска проекта для двухкомнатной квартиры затраты составили порядка 50 000 руб (811$). 

Первая и вторая части серии статей.


Последние статьи в блоге

Системный аналитик 100 lvl — дорожная карта развития

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

23 декабря 2024

Платформа сертификации IBS признана лучшим digital-решением для корпоративного обучения

Центр сертификации IBS стал обладателем Гран-при премии «Смарт пирамида» — одной из самых престижных российских премий за достижения в области обучения и развития человеческого капитала.

20 декабря 2024

Учебный центр IBS получил сертификат ГОСТ Р ИСО 9001-2015

В октябре 2024 года Учебный центр IBS получил сертификат соответствия ГОСТ Р ИСО 9001-2015. Это важное достижение подтверждает, что мы придерживаемся высоких стандартов качества и результативно управляем образовательными процессами организации.

19 декабря 2024

9 курсов со скидкой до 50%

Друзья, в январе стартует 9 курсов, обучение на которых можно купить со скидкой до 50%*! 

15 декабря 2024

8 заблуждений про тестирование

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

15 декабря 2024

Путь к Fullstack-тестировщику: что нужно знать о ручном и автоматизированном тестировании?

Тестирование программного обеспечения — одна из самых востребованных областей в IT. И часто новички и даже опытные специалисты, желающие строить свою карьеру в этом направлении, часто сталкиваются с вопросом: какое тестирование выбрать — ручное, автоматизированное или Fullstack? У каждого из этих направлений свои особенности, преимущества и требования к знаниям. В этой статье рассмотрим каждое из направлений, их плюсы и минусы, области применения и навыки, необходимые для успеха.

15 декабря 2024

Совет по развитию сертификации ИТ-специалистов при АПКИТ аккредитовал «Платформу сертификации IBS»

Директор департамента обучения и развития IBS Владимир Гернер участвовал в заседании Совета по сертификации ИТ-специалистов при АПКИТ.

Новости Жизнь компании
08 октября 2024

Java-сертификация: IBS в сравнении с Oracle

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

Новости
04 октября 2024

Исследование IBS: число новых ИТ-решений в реестре ПО выросло в 2023 году более чем на треть

Анализируем ситуацию на рынке российского ПО.

Жизнь компании
01 октября 2024

6 суперспособностей Fullstack-тестировщиков, которые напоминают навыки животных

Читайте о скиллах, которые делают тестировщиков востребованными на рынке труда.

27 сентября 2024

5 мифов о системных аналитиках

Вместе с Екатериной Тихомировой, специалистом по системному и бизнес-анализу, разбираемся, чем занимаются системные аналитики.

20 сентября 2024

Методология 12 факторов: как успешно разрабатывать облачные приложения

Андрей Бирюков рассказывает о методологии, которая помогает разрабатывать качественные, устойчивые и эффективные веб-приложения.

12 сентября 2024

Баги, которые стали фичами

Многие вещи, которые мы используем ежедневно, были случайно открыты. В честь дня тестировщика рассказываем про 5 багов, которые стали фичами.

09 сентября 2024

Шаблоны облачного проектирования

Читайте про наиболее популярные шаблоны облачного проектирования: шаблон Bulkhead и шаблон Sidecar.

06 сентября 2024

Бесплатные мини-курсы ко Дню знаний

Друзья, поздравляем с Днём знаний! Желаем любопытства, открытий и новых побед!

02 сентября 2024

5 курсов со скидкой 30%

Друзья, в сентябре стартует 5 курсов со скидкой 30%*

29 августа 2024

Исследование IBS: на одну вакансию в Java-разработке приходится 4 резюме

По данным исследования рекрутингового центра IBS, наибольшая конкуренция среди соискателей наблюдается среди Python-разработчиков: на одну вакансию приходится 10 резюме. В менее конкурентной среде находятся Java-разработчики (4 резюме на одну вакансию). Самыми дефицитными являются специалисты по языку Go: менее 2 резюме на одну вакансию.

28 августа 2024

Индексирование баз данных в PostgreSQL: погружение в тему

В продолжение серии статей об устройстве системы управления базами данных (СУБД) PostgreSQL (раз, два) смотрим, как ускорить выполнение запросов к базе данных с помощью индексов.

28 августа 2024

Книги для системных и бизнес-аналитиков, а также будущих и нынешних архитекторов

Наш коллега, архитектор информационных систем Сергей Политыко, поделился полезными книжными рекомендациями.

Жизнь компании
19 августа 2024

Сценарии кибератак с использованием ИИ. Внутренний периметр.

Кибератаки, направленные на внутренние периметры организаций, становится особенно актуальной темой. Внутренние атаки могут происходить как от злоумышленников с доступом к ресурсам, так и извне, используя уязвимости внутренней инфраструктуры. Использование ИИ в таких атаках позволяет автоматизировать и улучшить процесс поиска уязвимостей, создать вредоносный код и разработать методы социальной инженерии, что увеличивает скорость и масштаб атак. Расскажем про сценарии таких атак подробнее.

16 августа 2024

Не нашли, что искали? — Просто напишите, и мы поможем

Продолжая, я подтверждаю, что ознакомлен с Условиями использования и Порядком обработки персональных данных
Корпоративное обучение Оценка персонала Сертификация О нас Стань тренером Блог
Пользователь только что записался на курс ""
Спасибо!
Форма отправлена успешно.