Програмне забезпечення для розумного дому

Всім добрий день. Як хобі написав програму, яку можна використовувати як частину системи «розумний будинок». Щоб відразу зацікавити читача, продемонструю деяку малу частину сценаріїв використання ПЗ:

 

Увімкнення і вимкнення ZWave лампочки через мобільний додаток

 

При появі пристрою в мережі (по приходу користувача додому) відбувається

включення ZWave лампочки, релейного додатка Modbus RTU, запуск комп'ютера через WakeOnLan і включення ТБ

 

Запуск браузера, перехід на яндекс.радіо,

перегортання треків (емуляція клавіш)

Коротко:

1. Основна частина ПЗ - сервер, який крутиться на ОС Windows, написаний на C #;

2. Клієнт на ОС Android, написаний на Java;

3. Плануються клієнти на UWP і IOS, web-клієнт.

Деякі особливості ПЗ:

1. Конструктор сценаріїв. Створення складних сценаріїв з циклами та умовами;

2. Робота з пристроями ZWave і Modbus;

3. Вкладення сценаріїв. Можна використовувати один сценарій в іншому як процедуру;

4. Запуск віддаленого скрипту. У сценарії поточного сервера можна запускати скрипт віддаленого;

5. Можливість додавати до системи свою функціональність за допомогою створення додатків;

6. Запуск сценаріїв за допомогою смартфона.

Конструктор сценаріїв

Програма дозволяє створювати як складний сценарій, так і самотню дію.

Одна дія - це сценарій, який містить лише одну дію. У ньому немає можливості створювати цикли і умови, а можна лише «замапити» певну дію на кнопку в UI клієнта.

Як приклад наведу свій спосіб їх використання: створив категорію «Розетки», в ній зібрав всі лампи, побутовий вентилятор, світильники, телевізор і комп'ютер. Тепер, щоб увімкнути один з цих пристроїв, слід відкрити клієнт на андроїді, зайти в категорію «Розетки» і вибрати відповідний пункт меню.

Зазвичай, поодинокі дії використовувати незручно, оскільки різні пристрої зручно запускати за якоїсь умови або хоча б не по одному. Саме для цього потрібен «складний сценарій», про що далі.

Конструктор складного сценарію дозволяє створювати сценарії з циклами та умовами. Має два режими: перегляд і редагування.

Приклад скрипту в режимі перегляду

Приклад сценарію в режимі редагування

   

ЯКЩО й інакше у конструкторі. У даних конструкціях можна створювати ланцюжки умов з логічними операторами НЕ, АБО, І. Конструктор дозволяє створювати групу умов і використовувати оператори безпосередньо з групою. Якщо умова залишається порожньою, то вона автоматом обчислюється як брехня.

Є деяка кількість вбудованих перевірок (такі як перевірка на дату, час тощо), а також деяка кількість як підключених додатків.

Цикл ПОКИ в конструкторі. Цикл складається з умови і тіла. Умова створюється аналогічно тому, як вона створюється в конструкції ЯКЩО (групи умов, оператори НЕ, АБО, І).

Оператор ЯКЩО і можливі умови

Оператор ПОКИ

   
 

Тіла ЯКЩО, ІНАКШЕ і ПОКИ потрібно чимось заповнювати. Власне, це вміст і є найважливішим у сценарії.

Основне вікно конструктора сценаріїв

 
     

Також можна налаштувати такі параметри сценаріїв:

- Запуск ззовні (вкл/викл), дозволяє заборонити або дозволити запуск сценарію з іншої машини або з клієнта;

- Автоматичний запуск скрипту при старті системи;

- Вибір категорії сценарію, дозволяє показувати в UI клієнта пункт меню для запуску сценарію в певній категорії.

Робота з пристроями ZWave і Modbus

Зараз система підтримує пристрої ZWave (на основі openzwave) і Modbus RTU (на основі nmodbus).

ZWave - це бездротовий протокол зв'язку, який використовується в домашній автоматизації. Для реалізації протоколу використовуються мініатюрні малопотужні радіочастотні модулі. Зараз на ринку ZWave представлений досить великий перелік пристроїв, таких як ZWave лампочки, розетки, релейні модулі, перемикачі, замки, датчики температури (вологості, руху, протікання), терморегулятори, пристрої управління кондиціонером тощо. Також поширені мультисенсори - пристрої, що поєднують кілька датчиків (наприклад, датчик освітленості, присутності, температури, дверний датчик тощо), що досить привабливо з точки зору фінансових витрат і розташування в приміщенні.

У моїй програмі модуль ZWave дозволяє виконувати всі стандартні операції з пристроями, такі як видалення, додавання пристроїв, скидання контролера. Також можна використовувати кілька ZWave контролерів, кінцевий користувач не побачить різниці. Наприклад, можна зробити зняття показань температури з датчика, який з'єднаний з контролером «А», і запустити кондиціонер за допомогою контролера «Б». Тут немає жодних обмежень, будь-яка дія і перевірка здійснюються стандартними способами і додаються в конструкторі сценаріїв.

 

Ринок ZWave пристроїв досить широкий. Є безліч виконавчих пристроїв, таких як релейні модулі, лампочки, пристрої для роботи з кондиціонером, терморегулятори, регулятори теплої статі, розетки, перемикачі. Так само існує безліч датчиків: датчик відкриття дверей, температури, датчик протікання, датчик присутності тощо. Як контролер ZWave можна використовувати USB stick.

 

Основне вікно ZWave додатка

 

Вікно вибору контролера і операцій з ним

 

Вибір вузла (датчики, перемикачі тощо)

 

Вибір параметра вузла (увімкнено/вимкнено, різні числові параметри, такі як температура, вологість тощо)

Modbus - це дротовий протокол, що застосовується для зв'язку між електронними пристроями, які його підтримують. У контексті нашої програми може бути корисний для роботи з релейними модулями, для чого я його і використовую у себе вдома.

 

Релейний додаток Modbus. З'єднується з контролером через COM-порт

 

Основне вікно Modbus RTU додатка

Долучення сценаріїв

Вкладеність сценаріїв використовується для декомпозиції сценаріїв розумного будинку. Часто бувають такі ситуації, коли одна дія бере участь у багатьох сценаріях (наприклад, відключення всіх побутових пристроїв може відбуватися за натисканням на пункт меню в програмі, за сценарієм виходу всіх wi-fi пристроїв з мережі, просто за таймером), і тому кожен раз створювати (або правити) однаковий алгоритм в кожному зі сценаріїв не представляється зручним. Для цього існує така вбудована дія, яка дозволяє запускати вже створений сценарій у поточному. Також це може бути зручно, коли часто додаються нові побутові пристрої (або інші часті зміни в алгоритмі роботи «розумного дому»), для зміни роботи всіх сценаріїв достатньо буде змінити лише один сценарій, який використовується в них.

Дія «Існуючий сценарій» у списку

Вибір існуючого скрипту

   

Запуск віддалених сценаріїв

За допомогою запуску віддалених сценаріїв можна запускати сценарій одного сервера в сценарії іншого. Як приклад хочу навести мій варіант використання цього функціоналу: створив сценарій (на домашньому сервері) під назвою «світло + мультимедіа», який включає світло в приміщенні, запускає мій десктоп (використовуючи WakeOnLan), включає тв, до якого підключений десктоп і чекає поки на ньому (десктопі) запуститься екземпляр нашої програми, потім запускає на ній сценарії «включити музику» і «звук на 20 одиниць» за допомогою запуску віддалених сценаріїв.

Запуск віддаленого сценарію у списку

Вибір сервера і його скрипту

   

Написання власних додатків

Крім того, що користувач може створювати складні сценарії штатними засобами, програма дозволяє «розширювати» її користувальницькими модулями на C #. Всі елементи дій і перевірок у сценаріях (такі як «Перевірка за датою», «Показати повідомлення», «Дія Modbus», «Дія ZWave» тощо) це класи, успадковані від ICustomAction і ICustomChecker. Дотримуючись певних правил, будь-який користувач може створити свій модуль, який може бути як дуже простим (наприклад, озвучування поточної температури повітря за вікном), так і складним, за яким може критися цілий фреймворк. Достатньо успадковуватися від інтерфейсів ICustomAction або ICustomChecker, розставити кілька атрибутів, скомпілювати DLL і додати до програми за допомогою вкладки «ДОДАТКИ» (повна інструкція створення додатків).

Вкладка «ДОДАТКИ»

 

Запуск сценаріїв за допомогою смартфона

* поки тільки OS Android

Скрипти відображаються на головному екрані та категоріях. Категорія є віртуальною «папкою». Під час запуску скрипту оновлюється статус відповідної кнопки.

Екран налаштування з "єднання

Екран з запуском сценаріїв

   

Крім цього, є можливість запускати сценарії з меню швидкого запуску на PC.

Меню швидкого запуску

 

Надалі планується клієнт для UWP, IOS, web, а так само голосовий модуль для управління пристроями (плани на найближче майбутнє) і створення сценаріїв за допомогою голосу (стратегічні плани).

Відео наостанок:

"Сторінка програми

"Посилання для скачування

"Інструкція для користування

"Інструкція для створення власних модулів

P.S.: Якщо ви знайшли помилку у програмі, будь ласка, перейдіть її на пошту.

COM_SPPAGEBUILDER_NO_ITEMS_FOUND

logo