Умная электроника Ростов-на-Дону
8 (863) 227-18-52
Российский производитель оборудования для систем домашней автоматизации умный дом и интеллектуальных зданий
 

СТАТЬИ

Общие статьи:

Статьи для программистов контроллера Alpha SE:

Система автоматизации начального уровня "Комфорт":

Система управления освещением подъездов "ТСЖ Оптим":

 
Использование данной статьи возможно только после личного разрешения автора.

Библиотека разработчика программного обеспечения для переносных, настенных ЖК панелей умного дома (Applied Digital, УМНАЯ ЭЛЕКТРОНИКА).

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

Оборудование производителей Applied Digital и УМНАЯ ЭЛЕКТРОНИКА привлекает к себе невысокой ценой, обширными возможностями его применения, а также наличием дополнительных модулей, с помощью которых можно реализовать практически любую задачу по домашней автоматизации для небольших объектов. Возможность совместной работы со всеми модулями X10 только повышает его рейтинг.

Но при всех достоинствах это оборудование накладывает ограничения на дополнительные компоненты, такие как цветные ЖК панели, которые могли бы содержать удобное, красивое, русскоязычное программное обеспечение, позволяющее управлять всеми системами умного дома. Эти достаточно важные дополнительные модули Applied Digital не производит.

Для реализации возможности подключения и использования цветных настенных ЖК панелей, переносных ЖК Touch Screen планшетов, настольных панелей управления совместно с оборудованием Applied Digital организацией “Умная электроника” г.Ростов-на-Дону было разработано Win32 интерфейсное приложения, позволяющее использовать любые персональные компьютеры, с установленной операционной системой Windows, в качестве контрольных панелей. Учитывая то, что компаний, выпускающих мини ПК с сенсорными дисплеями достаточно много, появляется возможность подобрать панель, подходящую по цене, внешнему виду и расцветке для конкретного интерьера дома. При этом стоимость таких панелей дешевле стоимости аналогичных панелей других производителей (AMX, Crestron) не менее, чем в 2 (2-5) раза. Уже сегодня можно в розничных сетях без проблем можно приобрести Samsung Q1 и Asus.

Переносная сенсорная панель

При подключении таких панелей центром умного дома остается контроллер (Ocelot, Leopard II, Alpha SE). Планшеты остаются лишь красивой оболочкой для взаимодействия человека с «умным» домом. ПК, к которому подключается контроллер, будем далее называть сервером. На сервере устанавливается и запускается программа "CPU-XA Network Server" (CNS), которая позволит любой клиентской программе управлять контроллером.

На первый взгляд схема выглядит громоздкой и не совсем понятно зачем вообще нужен сервер. Но объяснение этому есть, сервер необходим по нескольким причинам:
  • во-первых, только при использовании серверной программы в одном умном доме можно установить сразу несколько сенсорных панелей. Сервер и контроллер могут находиться в подвале, а сенсорные панели будут размещены в разных частях дома.
  • во-вторых, серверная программа дает возможность управления Вашим домом через интернет.
  • в-третьих, пропадают ограничения на максимальное расстояние между контроллером и сенсорной панелью. Максимальное расстояние между контроллером и компьютером при подключении по Com порту не должно превышать 9 метров. При использовании сервера расстояние между контроллером и панелями может достигать нескольких километров при использовании обычных локальных сетей и тысяч километров при управлении через интернет.

Программа CPU-XA Network Server (CNS), устанавливаемая на первую сенсорную панель, поддерживает одновременную работу с несколькими клиентскими компонентами – такими же панелями. CNS позволяет выполнять некоторый набор действий над контроллером:

  • Изменять значения переменных, таймеров,
  • Получать данные из подключенных к контроллеру модулей, их количестве, типах и версиях,
  • Позволяет управлять входами и выходами подключенных модулей,
  • Получать и передавать команды X10, используя подключенный к контроллеру интерфейс X10,
  • Получать и изменять дату и время контроллера,
  • Посылать Ir команды.

Написать программу для сенсорной панели, которая позволит управлять умным домом, сможет любой грамотный программист, знающий среду разработки C++ Builder. Учитывая, что об этой среде разработки знают абсолютно все программисты, найти необходимого сотрудника или стороннего разработчика не представляет трудностей.

С использованием свободно распространяемой компоненты СPU-XA Client Component для среды разработки C++ Builder 6 сторонние разработчики могут создавать приложения любой сложности, позволяющие управлять всеми доступными параметрами контроллера. Об одном из вариантов программы Вы можете узнать, прочитав статью, посвященную пользовательскому программному обеспечению для сенсорных панелей.

Схематический вид системы и дополнительные возможности

Клиентская компонента и CNS взаимодействуют посредством WinSocket, что позволяет успешно работать при нахождении их на одном компьютере, в локальной сети или в сети интернет (см. рис.1). При этом количество передаваемой информации будет напрямую зависеть от скорости изменения состояния системы – срабатывания датчиков, включения или выключения света и пр.

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

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

Настройка сервера

Все настройки CNS хранятся в базе данных MS Access. В первую к этим настройкам относятся номер com порта, соединяющего ПК с контроллером, номер порта взаимодействия серверной программы со всем клиентскими. Указанные настройки хранятся в таблице “setup”.

Информация о пользователях находится в таблице users (см. рис. 2):

  • Поле Login: Имя пользователя подключающегося к серверу. (обязательно 5 символов)
  • Поле PSW: Пароль для проверки подлинности пользователя. (обязательно 10 символов)
  • Поле Stat: Информация о возможности подключения данного пользователя к серверу. Используется для временного запрета доступа пользователя.,
  • Поля Ip, SocketHandle, Act: Служебные поля, которые заполняет сам CNS. В них хранятся данные о последнем подключенном клиенте с данным именем пользователя.

Настройка карты X10

Т.к. CNS не имеет возможности опрашивать состояния модулей X10, он следит за проходящими сообщениями в сети, используя X10 интерфейс, и хранит эти данные в памяти, сообщая сведения о состоянии устройств клиентским компонентам.

Есть определенные команды X10 на которые срабатывают далеко не все модули X10: AllLightsOn, AllLightsOff, AllUnitsOff. Для указания CNS серверу того, как эти команды влияют на срабатывание модулей X10, в базе данных были созданы таблицы с соответствующими названиями (X10LightCommand, X10UnitsCommand). Все House Code модулей разбиты по строкам, Key Code - по столбцам. (A = 0, B = 1,…)

Если на пересечении соответствующих House и Key Code установлено значение true – CNS будет считать, что модули с этим адресам реагируют на данную команду.

За счет использования такой схемы достигается наибольшая точность карты состояний X10 устройств.

Пользовательский интерфейс сервера.

После произведения настройки сервера можно произвести его запуск. При правильно произведенной настройке в строке статуса должна появиться надпись: “Time of the last request CPU-XA: ”, это значение должно меняться раз в секунду

Некоторый набор данных запрашивается у контролера всего один раз при запуске сервера: количество подключенных модусил еще раз эти данные у контроллера, требуется нажать кнопку “Reload All Parametrs”.

Нажав кнопку CPU-XA Info можно получить полную информацию о текущем состоянии системы: контроллера и подключенных к нему модулей

Для получения информации о состоянии модулей X10 необходимо нажать кнопку “X10 Unit Info”. С использованием открывшейся формы можно перезагрузить сохраненные маски срабатывания команд AllLights, AС использованием открывшейся формы можно перезагрузить сохраненные маски срабатывания команд AllLights, AllUnits, а также изменить карту состояний X10 (см. рис.6). Эта функция необходима, т.к. еще до запуска сервера некоторые модули могут быть включены, и контроллер может не знать об этом.

На форме Users можно увидеть информацию о пользователях. О том, кто из них подключен в данный момент и с каких Ip адресов они работают. С использованием этой же формы можно выборочно отключить подключенных пользователей в случае необходимости.

Внимание: Несколько пользователей не могут одновременно работать, используя один login.

CNS имеет возможность управления двумя сервисами - опроса контроллера (отвечает за обмен информацией с контроллером) и сервера (отвечает за взаимодействие с клиентскими компонентами).

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

Внимание: При отключенном сервисе опроса контроллера никакие команды на изменение параметров контроллера или отправки команд X10 выполняться не будут.

Т.к. при остановке сервиса опроса контроллера связь с ним прекращается полностью, а так же закрывается сам com-port, контроллер можно полностью отключить от компьютера, произвести его замену, модификацию или же подключится к нему с использованием других программных продуктов.

Если после подключения контроллера к компьютеру изменилось количество подключенных к контроллеру модулей, необходимо после старта сервиса опроса нажать кнопку “Reaload All Parametrs” для полной перезагрузки всех параметров.

При остановке сервиса «Сервер» произойдет отключение всех подключенных клиентских компонент.

Настройка клиентской компоненты.

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

  • Ip адреса CNS (если клиент и сервер установлены на одном компьютере Ip = 127.0.0.1),
  • Номера порта,
  • TypeClient = clNonBlocking,
  • Логина (5 символов) и пароля (10 символов).

Порядок работы клиентских компонент с сервером.

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

Безопасность и подключение.

Версия 1.0 не содержит никаких методов шифрования передаваемой информации. Все имена пользователей и пароли передаются по сети в открытом виде.

Программу, написанную с использованием клиентской компоненты, можно скачать ниже. Данный пример позволяет управлять значением таймеров, переменных, выходами подключенных к контроллеру модулей, инициировать отправку контроллером ИК сигналов, передавать команды X10, а также отображать общее состояние системы. Передача данных по локальной сети или через интернет идет по протоколу TCP/IP через 63336 порт. Считается, что контроллер подключен к Com1, если контроллер подключен к другому com-порту, произведите настройку сервера согласно инструкции.

Клиентскую компоненту для C++ Builder6 с описанием можно скачать здесь.
Пример клиентской программы с исходными кодами для C++ Builder 6 можно скачать здесь.

Автор: Быков Виктор Сергеевич
E-mail: smarthouse@aaanet.ru
Сайт: http://smarthouse.rostov.ru

т. (863) 227-18-52
© Компания УМНАЯ ЭЛЕКТРОНИКА г.Ростов-на-Дону,
e-mail: info@smart-elec.ru