Интеллектуальная система автоматизации зданий
Мы предлагаем собственную разработку в области систем "умный дом". Это полностью готовое комплексное решение превращающее здания любых масштабов в современные энергоэффективные системы наделенные определенным уровнем интеллекта, позволяющие Вам даже вести с ними диалог, что является результатом внедрения ультрасовременной технологии управления голосом.
Данное решение включает в себя центральный контроллер, наиболее востребованное оборудование, программное обеспечение для настройки контроллера и оборудования, а также программное обеспечение для настройки сенсорных панелей (iPhone/iPad/iPod и Android-совместимые устройства) к использованию в составе системы.
Наше решение является одним из самых лучших по критерию цена/качество не только на российском рынке, но и среди лучших зарубежных аналогов.
Основные преимущества
- Управление системами объекта с помощью iPhone/iPad/iPod и Android-совместимых устройств
- Голосовое управление и интеллектуальный ассистент - создание и поиск заметок, запрос погоды, управление параметрами оъекта (освещение, отопление и др.) 100% поддержка русского языка
- Неограниченная масштабируемость
- Совместимость с устройствами всех известными производителей электроники
- Все наиболее часто используемые устройства автоматики собственной разработки
- Полностью программируемая функциональность
- Простата программирования
- Лучшая цена на рынке подобных систем
- Сотни довольных клиентов
Текущий состав системы
Устройства:
Программное обеспечение:
- ПО «Контроллер»;
- ПО для сенсорных панелей(IPhone/IPad/IPod, устройства на базе ОС Android);
- ПО LinkStudio2;
- ПО SmartHomeStudio.
Устройства, находящиеся в разработке:
- Контроллер температуры (позволяет измерять температуру помещения и управлять сервоприводами систем отопления)
- Контроллер влажности (позволяет измерять влажность помещения и управлять другими устройствами автоматики в сети)
- Измеритель параметров сети (измерение напряжения и тока в сети, определение сдвига фаз и др. параметров)
- Стереоусилитель со встроенным FM-тюнером.
Архитектура системы

Центральной частью системы является контроллер, он служит для обработки входящих данных и принятия решений в соответствии с заложенной в него логикой работы. Настройка контроллера осуществляется через ПО SmartHomeStudio.
Управлять системой можно при помощи сенсорных панелей, для этого в SmartHomeStudio создается интерфейс управления и осуществляется связывание графических элементов интерфейса с различными командами других устройств.
Устройства автоматики связаны информационной шиной и работают по протоколу ISBus. Устройства настраиваются через ПО LinkStudio2 и могут работать как автономно, так и в связи с контроллером. Данная связь осуществляется при помощи преобразователя интерфейсов Ethernet/ISBus. Также устройствами автоматики можно управлять используя контроллеры сторонних производителей, например, контроллеры компании AMX.
Среда программирования системы
SmartHomeStudio
SHS (SmartHomeStudio) - продукт для программирования взаимодействия различных устройств управления , автоматики и др. Программа написана на С++ с использованием фреймворка Qt(Nokia). Исходный код программы переносим на другие платформы, поддерживаемые Qt ( после процесса отладки ). Для удобства настройки и отладки программы, а так же для легкости запуска каких-либо рутинных операций, в продукт встроен язык V8 (разновидность JAVASCRIPT на основе ECMA стандарта - разработчик языка - Google и он использует его в раскручиваемом браузере Google Chrome, отличается высокой скоростью в выполнения, потому что компилируется в машинный код), который полностью управляет логикой программы на стадии запуска и в рантайме.
В программе реализована среда для написания интерфейса для устройств управления , на основе iOS (IPAD, IPhone) и Android, на которые программа может передавать составленный интерфейс по каналу TCP.
Наравне с этим в программе реализована среда для программирования логики совместной работы любых устройств на основе сигнально/слотовых соединений, которые позволяют наглядно создать логику работы, не имея каких-либо навыков - то есть данная деятельность ориентирована на широкий круг пользователей. Причём для более продвинутых пользователей доступны мощные низкоуровневые возможности, которые позволяют проектировать любые по сложности комбинации взаимодействия устройств. Хотя для вышеупомянутой "продвинутости" требуется всего лишь знание JavaScript (самый распространенный диалект среди разработчиков) и основ работы программы.
Вся спроектированная передается по каналу TCP на контроллер - приложение также написанное на Qt + V8 , играющее роль демона и управляющее работой всех устройств в рантайме, на основе спроектированной пользователем логики. Причём основную работу на контроллере выполняет V8 . Так как V8 в скомпилированном варианте представляет из себя тот же машинный(ассемблерный) код, то вся логика работает быстро и с минимальным расходом ресурсов. Надо отметить, что SHS полностью подготовлен для совместной работе с контроллером, в целях отладки проектов, из данной среды можно запускать скрипты на контроллере и также получать различную информацию с контроллера.
Особо программу (SHS) выделяет её универсальность. Она теоретически может работать с любыми типами устройств. Если пользователь хочет ,что бы контроллер мог работать с каким-либо новым устройством , он пишет протокол для него на JavaScript , на основе специального API. После этого устройство готово к работе. Таким образом, например, для управления мультимедийным центром XBMC достаточно реализовать протокол обмена на javascript, причем изменения не вносятся в код программы контроллера или SHS. Также рассматривается возможность встраивания DLNA библиотеки в контроллер для возможности управлять различными мультимедиа устройствами, поддерживающими данный стандарт.
Исходный код программы покрыт встроенными в неё unit-тестами на основе Google-test и Google-mock.
Принципы работы SmartHomeStudio
SHS предназначена для связывания различных устройств в единую систему управления. Основными логическими единицами программы являются:
- контроллер,
- устройство отображения и управления,
- драйвер какого-либо устройства.
Каждое из представленных устройств имеет входы управления этим устройством - «слоты» и события, которые порождает само устройство - «сигналы». Для получения логической связи сигнал устройства должен быть связан со слотом другого или того же устройства.
Например, сигналами панели управления являются: нажатие/удержание/отпускание определенной кнопки, перемещение ползунка. А слотами: изменения текста определенной кнопки, изменение состояния кнопки и .т.п.
Драйвер устройства имеет сигналы и слоты, которые определяются спецификой работы устройства. Например, если это драйвер усилителя, то слотами будут: установка значения громкости, установка определенного входа, установка баланса, тембра и т.п. А слотами: статус громкости, статус баланса, текущий вход.
Если мы хотим назначить на определенную кнопку панели управления изменение громкости, то мы связываем нажатие на кнопку(сигнал) с установкой значения громкости(слот) и получаем логическую связь. Данная связь обрабатывается контроллером. Контроллер получает событие нажатия на кнопку(сигнал), далее ищет слот(ы), который привязан к данному сигналу и выполняет их.
Для создания более сложных логических связей, которые требуют проверки каких-либо условий, в программе существует возможность написания скриптов на основе ECMA-скрипта.
Для добавления в программу драйвера неизвестного устройства необходимо описать при помощи скрипта вид сигнала/слота, из каких параметров он состоит, а также описать протокол работы данного устройства.
Основным протоколом связи контроллера с другими с устройствами является TCP либо UDP. Но также существует возможность использовать 232/485 интерфейсы компьютера, на котором установлен контроллер.
Функции и возможности SmartHomeStudio
-
Создание графического интерфейса для iPod, iPhone, iPad, Android (тестирование на данный момент происходит на iPad):
- Доступные элементы управления: кнопка, слайдер, список;
- Элементы графического интерфейса: страница, всплывающая страница;
- Свободное размещение элементов управления на страницах;
- Копирование/вставка/перемещение элементов управления;
- Назначение картинок элементам управления;
- Анимация при переходе со страницы на страницу.
- Загрузка графического интерфейса на панель
- Автоматические нахождение панели в сети.
- Загрузка проекта на контроллер;
- Создание логических связей устройств (сигнально-слотовых соединений);
- Возможность добавления новых драйверов устройств с использованием ECMA-скрипта без перекомпиляции всей программы;
- Настройка взаимодействия устройств без программирования;
- Возможность написания скриптов для создания сложной логики взаимодействия устройств;
- Двунаправленное взаимодействие контроллера и сенсорных панелей.
Контроллер
Контроллер - это приложение, которое управляет логикой работы всех устройств. Все устройства (как автоматики, управления и др) постоянно информируют контроллер о различных событиях и изменениях в своём состоянии, а он , в свою очередь , на основе логики , запрограммированной в SHS (так называемой 'схеме', имеющей вид массива сериализованных сигнально/слотовых связей), принимает решение о реакции на эти сообщения , в виде запуска каких-то действий (так называемых 'слотов') на том же или других устройствах. Вся эта деятельность происходит в контексте V8, что обеспечивает гибкость работы логики без потери производительности и ресурсов (по причине того, что V8 в рабочем (компилированном) виде представляет из себя тот же низкоуровневый - машинный( ассемблерный) код). Чтобы работа одних устройств, не влияла негативно на работу других устройств (в смысле использования ресурсов машины, где запущен контроллер), его работа построена максимально асинхронно . Практически каждое устройство управления общается с контроллером в отдельном потоке, что позволяет максимально снизить возможные коллизии.
В зависимости от настроек пользователя, контроллер может отправлять отладочную информацию , о происходящих на нём действиях (причём в стандартизированном виде), на SHS, что делает 'прозрачным' для настройщика механизм работы контроллера. Также из SHS (как и из контроллера, непосредственно) можно всегда повлиять на текущую работу контроллера, с помощью запуска различных скриптов, что может быть необходимо, в процессе отладки проекта.
Продукт написан на C++ с использованием фреймворка Qt(Nokia). Исходный код программы переносим на другие платформы, поддерживаемые Qt (после процесса отладки). Исходный код программы покрыт встроенными в неё unit-тестами на основе Google-test и Google-mock.
Настройка автоматики - Linkstudio 2
LinkStudio2 - программа для управления и настройки устройств автоматики. Продукт написан на C++ с использованием фреймворка Qt(Nokia). Исходный код программы переносим на другие платформы, поддерживаемые Qt (после процесса отладки). Для удобства настройки и отладки программы, а так же для легкости запуска каких-либо рутинных операций, в продукт встроен Qt Script (разновидность JAVASCRIPT на основе ECMA стандарта), который полностью управляет логикой программы на стадии запуска и в рантайме. Программа не ориентированна на конкретные виды устройств, а предоставляет API на Qt Script для динамического создания устройств любого вида, включая динамически программируемый диалог настройки устройств и программируемый механизм для работы с памятью устройства. В сетевом плане программа работает по TCP и 232 интерфейсу.
Исходный код программы покрыт встроенными в неё unit-тестами на основе Google-test и Google-mock. Инструментарий программы включает в себя различные утилиты для работы с устройствами автоматики, такие как поиск устройств по различным параметрам и сниффер. Программа снабжена мощными средствами логгирования - визуальный лог, асинхронные файловый и UDP лог, которые можно переключать/настраивать самостоятельно.
Обмен данными между устройствами осуществляется при помощи протокола ISBus на основе интерфейса RS-485. Каждое устройство имеет свой физический адрес в сети.
Функции устройств могут объединяться в группы, на основе групп осуществляется взаимосвязь между устройствами. Каждое устройство имеет свой набор функций и свой набор параметров для настройки. Объединение функций в группу приводит к образованию логической связи между этими функциями.




