Назва: "Розумний дім" (HouseSpirit) Розпочато: 28 03(березень) 2011р Завершено: 12 06(червень) 2011р Розташування: м.Ханти-Мансійськ, Росія Учасники: Олег Сидашов, Роман Савоченко Опис: Реалізація проекту автоматизації жилого дому — "Розумний дім" (HouseSpirit). |
Об'єктом автоматизації є жилий дім, оснащений обладнанням, яке підлягає автоматизації. Система призначена для автоматизації дій, виконуваних користувачем або обслуговуючим персоналом для забезпечення безпеки, комфорту, зручності проживання на об'єкті автоматизації — у жилому приміщені (кімната, квартира, приватний дім), а також на прилеглій до нього території (земельна ділянка, двір, сад).
Система призначена для вирішення наступних завдань:
Цілями створення системи є:
Площа об'єкту автоматизації ≈ 300 м2. Температура повітря у приміщеннях, призначених для встановлення серверу, давачів та виконавчих механізмів: від 10 до 25 градусів за Цельсієм. Температура повітря за приміщенями, де встановлюються давачі та виконавчі механізми: від - 30 до 30 °С.
Рівні забруднення, вологості, освітлення, шуму та іонізуючого випромінювання відповідають санітарно-епідеміологічним вимогам до жилих споруд та приміщень (САНПІН 2.1.2.1002-00).
На об'єкті присутнє електромагнітне випромінювання, індуковане побутовими пристроями, а також засобами електроно-обчислювальної техніки (Bluetooth, Wi-Fi, GSM).
Система “Розумний дім. Сервер керування” являє собою програмно-апаратний модуль, який є основним керуючим центром об'єкту автоматизації. Сервер приймає та обробляє сигнали від різних давачів, формує та передає сигнали керування виконавчим пристроям, здійснює зв'язок з користувачем через мережу GSM. Керування системою користувачем здійснюється через веб-інтерфейс.
Система “Розумний дім. Сервер керування” включає наступні підсистеми:
Структурна схема системи домової автоматики приведено на рис.1.
Для керування різним обладнанням жилого дому було розроблено концентратор та побудовано бездротову мережу ZigBee з пристроїв керування обладнанням. Загальний контроль обладнанням, а також надання користувацького Web-інтерфейсу та інші засоби повідомлення відбуваються сервером домової автоматики. Концентратор мережі ZigBee при цьому підключається до серверу за посередництвом інтерфейсу RS-232 та протоколу ModBus/RTU. Порушення у області контролю автоматики надсилаються користувачу у вигляді SMS-повідомлень через підключений GSM-модем.
Контролер бездротового зв'язку має наступні технічні характеристики:
GSM-модуль має наступні технічні характеристиками (Siemens TC65):
Апаратна частина серверу:
У якості програмного оточення, для виконання функції автоматизації жилих приміщень — "Розумний дім" використано відкриту SCADA систему OpenSCADA, у оточені якої розроблено користувацький Web-інтерфейс "Розумний дім", а також реалізовано опитування та контроль пристроїв за посередництвом ZigBee концентратору.
Система OpenSCADA має декілька засобів формування користувацьких інтерфейсів візуалізації, починаючи від інтегрованих інструментів розробки типових інтерфейсів контролю різних галузей автоматизації та закінчуючи низькорівневими механізмами бібліотек та інтерфейсів графічних концептів.
У особі інтегрованих інтерфейсів OpenSCADA містить:
До низькорівневих механізмів побудови користувацьких інтерфейсів можна віднести будь які інші графічні бібліотеки, у яких є інструменти швидкої розробки користувацьких інтерфейсів. При цьому кооперація з OpenSCADA відбувається як із джерелом даних та інтерфейсом уніфікованого керування обладнанням за посередництвом різноманітних протоколів.
Для надання можливості вільного формування користувацьких Web — інтерфейсів, безпосередньо у оточенні OpenSCADA, передбачено модуль "UI.WebUser". В цілому OpenSCADA містить всі основні функції типового Web-серверу, а саме:
Відповідно, для побудови довільного користувацького інтерфейсу контролю достатньо мати інстальовану систему OpenSCADA з модулями: Transport.Sockets, Transport.SSL, Protocol.HTTP та UI.WebUser.
З метою зменшення навантаження на повністю динамічне формування користувацького інтерфейсу, а також для спрощення наступного розширення та модифікації стилю Web-інтерфейс було поділено на статичну та динамічну частини.
Статична частина представляє з себе набір шаблонних HTML-файлів, з мітками розташування динаміки, та ресурсні файли: CSS, JavaScript та зображення. В цілому, статична частина представлена файлами, які описані у таблиці нижче:
Файл | Опис |
HTML-шаблони (HouseSpirit/Web/*) | |
main.html | Головний шаблон користувацького інтерфейсу. Містить загальний інтерфейс користувача з міткою розташування вмісту сторінок « |
auth.html | Шаблон інтерфейсу авторизації з міткою розташування вмісту « Створено для використання модулем протоколу HTTP (/sub_Protocol/mod_HTTP). |
access.html | Шаблон контролю доступу. |
temperature.html | Шаблон керування мікрокліматом. |
light.html | Шаблон керування освітленням. |
water.html | Шаблон керування водопровідною підсистемою. |
tech.html | Шаблон керування електронною та побутовою технікою. |
friend.html | Шаблон керування користувацькими пристроями. |
user.html | Шаблон диспетчеру користувачів. |
devices.html | Шаблон диспетчеру пристроїв. |
loginError.html | Сторінка повідомлення помилки аутентифікації або її відсутності. |
mess.html | Шаблон повідомлень активних аварійних випадків. |
report.html | Шаблон формування звітів про порушення, дії та системні повідомлення. |
welcome.html | Сторінка привітання, яку зображається по замовченню у полі контенту. |
Ресурси (HouseSpirit/Web/res/*) | |
stylesheet.css | Каскадні таблиці стилів користувацького інтерфейсу цілком. |
main.js | JavaScript код головного шаблону, для лічильнику часу та сеансу. |
devMon.js | JavaScript код реалізації динамічного AJAX інтерфейсу моніторингу пристроїв підсистем. |
access.png, accesson.png | Зображення підсистеми контролю доступу. |
temperature.png, temperatureon.png | Зображення підсистеми керування мікрокліматом. |
light.png, lighton.png | Зображення підсистеми керування освітленням. |
water.png, wateron.png | Зображення керування водопровідною підсистемою. |
tech.png, techon.png | Зображення підсистеми управління електронною та побутовою технікою. |
friend.png, friendon.png | Зображення підсистеми керування користувацькими пристроями. |
user.png, useron.png | Зображення диспетчера користувачів. |
devices.png, deviceson.png | Зображення диспетчеру пристроїв. |
report.png, reporton.png | Зображення формування звітів про порушення, дії та системні повідомлення. |
help.png, helpon.png | Зображення сторінки допомоги. |
HouseSpirit.ico | Іконка Web-інтерфейсу. |
hd_l.png, hd_r.png | Ліва та права частина заголовку. |
select_l.png, select_r.png | Зображення фону обраного елементу меню ліворуч та праворуч. |
space_l.png, space_r.png | Зображення вільного пункту меню ліворуч та праворуч. |
status_l.png, status_r.png status_edge.png | Зображення рядку статусу. |
Файли звітів (HouseSpirit/Web/reports/*) | |
rep_{user}.html | Останній звіт користувача user. |
Динамічну частину реалізовано скриптами OpenSCADA на внутрішній мові JavaLikeCalc, які описано у таблиці нижче:
В цілому алгоритм обробки запитів до сторінок наступний (на прикладі http://localhost:10002/WebUser/temperature?script=devMon):
Менеджер пристроїв доступний тільки суперкористувачу та формує форму редагування (рис.2), додання та видалення пристроїв двох типів: бінарний та десятковий.
Створювані пристрої безпосередньо розташовуються у переліку атрибутів параметру конкретно взятої підсистеми контролеру «ZigBee» модуля джерела даних ModBus (/sub_DAQ/mod_ModBus/cntr_ZegBee/). Формат запису атрибута має вигляд:
Крім безпосередньо давачів здійснюється конфігурація та формування порушень у вигляді тексту процедури. Програма формування розташовується у атрибут «var», параметру контролера порушень /sub_DAQ/mod_JavaLikeCalc/cntr_alarms/prm_rules. Атрибут «var» містить XML дерево вигляду:
<ALARMS>
<it id = "temperature.cond1">
if(x<10) err = "Низька температура: "+x+" < 10";
</it>
</ALARMS>
У Відповідності з цим XML-деревом здійснюється формування порушень та надсилання SMS-повідомлення підписаним користувачам у задачі контролеру /sub_DAQ/mod_JavaLikeCalc/cntr_alarms, яка виконується з періодом 1 хвилина.
SMS-повідомлення надсилаються через послідовний транспорт /sub_Transport/mod_Serial/out_GSM та за посередництвом користувацького SMS-протоколу (/sub_Protocol/mod_UserProtocol/up_SMS).
Передбачено також функцію відкладеної видачі керуючої дії. Для цього користувач встановлює потрібний час, у вигляді: {Min}:{Sec}. Обробка відкладеного керування здійснюється у контролері /sub_DAQ/mod_JavaLikeCalc/cntr_timers за посередництвом встановлення атрибуту «var», параметру «rules»; запитами у вигляді XML дерева:
<TIMERS>
<timer id="temperature.tGhost1" tm="60" user="root">20</timer>
<timer id="temperature.cond1" tm="10" user="root">0</timer>
</TIMERS>
Всі підсистеми візуалізації обслуговуються скриптом /sub_DAQ/mod_JavaLikeCalc/lib_web/devMon. В цьому скрипті здійснюється обробка запитів від скрипту динамічної візуалізації Web-браузера та передача йому даних про пристрої підсистеми, потрібні для візуалізації (рис.3). Дані про пристрої передаються у відповідності з правами доступу користувача який увійшов.
Конфігурація давачів читається з параметру, відповідного до підсистеми, контролера «ZigBee» (/sub_DAQ/mod_ModBus/cntr_ZegBee). Значення читаються та записуються у атрибути давачів цих параметрів або через контролер відкладеного керування.
Задача контролера «ZigBee» виконується з періодом 1 секунда, у процесі чого здійснюється запит поточних значень всіх сконфігурованих давачів. Запис значень здійснюється за фактом модифікації, незалежно від задачі періодичного опитування або через контролер відкладеного керування, у випадку встановлення ненульового часу таймеру.
Зв'язок контролеру «ZigBee» здійснюється через послідовний вихідний транспорт /sub_Transport/mod_Serial/out_ZegBee.
Менеджер користувачів (рис.4) призначено для створення, видалення та редагування облікових записів звичайних користувачів.
Користувачі умовно поділяються на адміністраторів та простих користувачів. Ідентифікація користувача як адміністратора, у системі OpenSCADA, здійснюється включенням його до групи «WebRoot» (/sub_Security/grp_WebRoot). Звичайний користувач включається до групи «Web» (/sub_Security/grp_Web).
У системі OpenSCADA у кожного користувача (/sub_Security/usr_test1/) є текстове поле опису, яке, у даному випадку, слугує для збереження його спеціалізованих параметрів у вигляді:
TEL: +380679859815
SMS: true
Report: false
sub_access: --
sub_friend: --
sub_light: --
sub_tech: --
sub_temperature: rw
sub_water: --
У випадку із адміністратором записи прав доступу до підсистем відсутні, але присутні загальносистемні параметри на зразок часу життя сеансу (/sub_Protocol/mod_HTTP).
Перелік повідомлень формується, виходячи з переліку активних порушень за їх категоріями «ALARM:House:*» у вигляді таблиці з часом, категорією, рівнем та повідомленням порушення (рис.5).
У формуванні звіту визначається діапазон часу та обираються типи повідомлень. Передбачена генерація повідомлень для типів:
Протокол формується у вигляді таблиці (рис.6) з часом, категорією, рівнем та повідомленням порушення, яке також записується у окремий файл звіту, надалі доступний за посиланням для окремого відкриття.