OpenSCADAWiki: Using/ Smart House
 
English (1 Kb) English
Ukrainian (1 Kb) Українська

 (2 Kb) Страница заморожена, актуальная тут.


Автоматизация жилого дома - "Умный дом" (HouseSpirit)

Имя: "Умный дом" (HouseSpirit)
Начат: 28 03(марта) 2011г
Завершен: 12 06(июня) 2011г
Расположение: г.Ханты-Мансийск, Россия
Участники: Олег Сидашов, Роман Савоченко
Описание: Реализация проекта автоматизации жилого дома - "Умный дом" (HouseSpirit).
Материалы: страница (доступ ограничен)
Умный дом (HouseSpirit) (57 Kb)


Contents

Введение

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

Система предназначена для решения следующих задач:

Целями создания системы являются:

1. Объект автоматизации

Площадь объекта автоматизации ≈ 300 м2. Температура воздуха в помещениях, предназначенных для установки сервера, датчиков и исполнительных механизмов: от 10 до 25 градусов Цельсия. Температура воздуха вне помещениях, где устанавливаются датчики и исполнительные механизмы: от - 30 до 30 °С.

Уровни загрязненности, влажности, освещенности, шума и ионизирующих излучений соответствуют санитарно-эпидемиологическим требованиям к жилым зданиям и помещениям (САНПИН 2.1.2.1002-00).

На объекте присутствует электромагнитное излучение, индуцируемое бытовыми приборами, а также средствами электронно-вычислительной техники (Bluetooth, Wi-Fi, GSM).

Система “Умный дом. Сервер управления” представляет собой программно-аппаратный модуль, являющийся основным управляющим центром объекта автоматизации. Сервер принимает и обрабатывает сигналы от различных датчиков, формирует и передает сигналы управления исполнительным устройствами, осуществляет связь с пользователем через сеть GSM. Управление системой пользователями осуществляется через веб-интерфейс.

Система “Умный дом. Сервер управления” включает следующие подсистемы:
  1. Подсистема контроля доступа.
  2. Подсистема управления освещением.
  3. Подсистема управления микроклиматом.
  4. Подсистема управления водопроводной сетью.
  5. Подсистема управления бытовой и мультимедийной электротехникой.
  6. Подсистема обработки информации, поступающей с датчиков.
  7. Подсистема обеспечения интерактивного взаимодействия с пользователем через Web-интерфейс и через сеть GSM.
  8. Подсистема авторизации.
  9. Подсистема формирования отчетов.
  10. Подсистема конфигурации обеспечивает механизмы добавления, извлечения и редактирования информации в используемой базе данных, для работы подсистем 1-8.

Структурная схема системы домовой автоматики приведена на рис.1.

Структура (202 Kb)
Рис. 1. Структурная схема системы домовой автоматики.


Для управления различным оборудованием жилого дома был разработан концентратор и выстроена беспроводная сеть ZigBee из устройств управления оборудованием. Общий контроль оборудованием, а также предоставление пользовательского Web-интерфейса и иные способы уведомления осуществляются выделенным сервером домовой автоматики. Концентратор сети ZigBee при этом подключается к серверу посредством интерфейса RS-232 и протокола ModBus/RTU. Нарушения в области контроля автоматики высылаются пользователю в виде SMS-уведомлений через подключенный GSM-модем.

Контроллер беспроводной связи имеет следующие технические характеристики:

GSM-модуль обладает следующими техническими характеристиками (Siemens TC65):

Аппаратная часть сервера:

В качестве программного окружения, для выполнения функции автоматизации жилых помещений - "Умный дом" использовано открытую SCADA систему OpenSCADA, в окружении которой разработан пользовательский Web-интерфейс "Умный дом", а также реализован опрос и контроль устройствами посредством ZigBee концентратора.

2. Система автоматизации

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

В лице интегрированных интерфейсов OpenSCADA содержит:

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

Для предоставления возможности свободного формирования пользовательских Web - интерфейсов, непосредственно в окружении OpenSCADA, предусмотрен модуль «UI.WebUser». В целом OpenSCADA содержит все основные функции типового Web-сервера, а именно:

Следовательно, для построения произвольного пользовательского интерфейса контроля достаточно иметь инсталлированную систему OpenSCADA с модулями: Transport.Sockets, Transport.SSL, Protocol.HTTP и UI.WebUser.

2.1. Структура и размещение файлов

С целью уменьшения нагрузки на полностью динамическое формирование пользовательского интерфейса, а также для упрощения последующего расширения и модификации стиля 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, которые описаны в таблице ниже:
Адрес скрипта Описание
Скрипт Web-сайта (/sub_UI/mod_WebUser/)
up_hs Главный скрипт Web-сайта, который выполняет непосредственный приём, первичную обработку и формирование окончательного ответа, а именно:
  • Обслуживание запросов к страницам-шаблонам:
    • чтение файла выбранной страницы-шаблона, если выбор имел место;
    • чтение и парсинг файла главного шаблона интерфейса (main.html);
    • помещение текущего времени сервера в атрибут value элемента дерева главного шаблона с идентификатором "time_vl";
    • помещение начального значения счётчика активного сеанса в атрибут "value", элемента дерева главного шаблона с идентификатором "ses_vl";
    • проверка общего доступа аутентифицированного пользователя к тем или иным частям интерфейса и скрытие элементов к которым нет доступа на просмотр;
    • обработка выбранного пункта меню страницы:
      • подсветка элемента меню активной страницы;
      • поиск и вызов скрипта динамики (/sub_DAQ/mod_JavaLikeCalc/lib_web/*) одноимённо, или из аргумента "script URL", выбранной страницы.
    • чтение файла страницы приветствия (welcome.html), в случае отсутствия выбора страницы из меню;
    • установка значений текущей страницы и пользователя в строке статуса;
    • помещение контекста страницы в главный шаблон интерфейса.
  • Обслуживание запросов к файлам ресурсов и отчётов:
    • Обработка расширения файлов ресурса и формирование атрибута типа (Content-Type), передаваемого контента.
  • Генерация ответов с ошибкой в случае отсутствия страниц-шаблонов или файлов ресурсов.
Библиотека скриптов шаблонов-страниц и системных процессов (/sub_DAQ/mod_JavaLikeCalc/lib_web/*)
user Скрипт страницы-шаблона «Диспетчер пользователей» реализует функцию формирования формы управления пользователями в зависимости от прав вошедшего пользователя.
devices Скрипт страницы-шаблона «Диспетчер устройств» реализует функцию формирования формы управления устройствами и генерацией нарушений по ним для двух типов устройств: десятичный и динамичный.
devMon Скрипт формирования интерфейса мониторинга и формы управления устройствами, сконфигурированными в «Диспетчер устройств». Данный скрипт используется всеми подсистемами мониторинга устройств.
alarms Скрипт задачи периодической проверки значений переменных устройств на предмет сконфигурированных аварийных ситуаций. Кроме непосредственного формирования нарушений данный скрипт осуществляет рассылку SMS-сообщений с уведомлениями по телефонам пользователей, установленных для уведомления посредством SMS.
mess Скрипт страницы-шаблона «Нарушения» реализует функцию формирования перечня активных нарушений.
report Скрипт страницы-шаблона «Отчёты» реализует функцию формирования таблицы-отчёта с событиями по системе и различным подсистемам за указанный период времени. Отчёт одновременно генерируется на экране и в файле, который можно, по ссылке, загрузить отдельно.

В целом алгоритм обработки запросов к страницам следующий (на примере http://localhost:10002/WebUser/temperature?script=devMon):

2.2. Менеджер устройств

Менеджер устройств доступен только суперпользователю и формирует форму редактирования (рис.2), добавления и удаления устройств двух типов: бинарный и десятичный.

Менеджер устройств. (99 Kb)
Рис. 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&lt;10) err = &quot;Низкая температура: &quot;+x+&quot; &lt; 10&quot;;
  </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>

2.3. Подсистемы

Все подсистемы визуализации обслуживаются скриптом /sub_DAQ/mod_JavaLikeCalc/lib_web/devMon. В этом скрипте осуществляется обработка запросов от скрипта динамической визуализации Web-браузера и передача ему данных об устройствах подсистемы, необходимых для визуализации (рис.3). Данные об устройствах передаются в соответствии с правами доступа вошедшего пользователя.

Управление подсистемой. (360 Kb)
Рис. 3. Управление подсистемой.


Конфигурация датчиков читается из параметра, соответствующего подсистеме, контроллера «ZigBee» (/sub_DAQ/mod_ModBus/cntr_ZegBee). Значения читаются и записываются в атрибуты датчиков этих параметров или через контроллер отложенного управления.

Задача контроллера «ZigBee» исполняется с периодом 1 секунда, в процессе чего осуществляется запрос текущих значений всех сконфигурированных датчиков. Запись значений осуществляется по факту модификации независимо от задачи периодического опроса или через контроллер отложенного управления, в случае установки ненулевого времени таймера.

Связь контроллера «ZigBee» осуществляется через последовательный исходящий транспорт /sub_Transport/mod_Serial/out_ZegBee.

2.4. Менеджер пользователей

Менеджер пользователей (рис.4) предназначен для создания, удаления и редактирования учётных записей обычных пользователей.

Менеджер пользователей. (97 Kb)
Рис. 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).

2.5. Сообщения

Список сообщений формируется, исходя из перечня активных нарушений по их категории «ALARM:House:*» в виде таблицы с временем, категорией, уровнем и сообщением нарушения (рис.5).

Сообщения. (72 Kb)
Рис. 5. Сообщения.

2.6. Отчёты

В формировании отчёта указывается временной диапазон и выбираются типы сообщений. Предусмотрена генерация сообщений для типов:

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

Отчёты. (153 Kb)
Рис. 6. Отчёты.


3. Материалы

3.1. Контакты

Олег Сидашов: loganmagg@gmail.com

3.2. БД и ресурсы проекта

БД проекта представлена в виде файлов БД SQLite, панель оператора:


Архив файлов БД проекта можно загрузить здесь: file:HouseSpirit.tlz

3.3. Оплата работы

Оплата работы


Ссылки

Referring pages: Using/SmartHouse