Основным достоинством данного интерфейса является максимальная простота и функциональность, которая достигается за счет использования сценарного управления объектом автоматизации и переноса в интерфейсы третьего уровня редко используемых функциональных элементов (например, пультов дистанционного управления).
Готовый интерфейс для автоматизации дома/квартиры
Дизайн и логика компоновки управляющих элементов позволяет с легкостью добавлять или исключать новые сценарные кнопки, что никак не повлияет на удобство использования и эстетическую составляющего интерфейса.
Интерфейс доступен для разрешения 1024x768 iPad 2, iPad mini. Остальные разрешения будут поддерживать в скором времени.
Проект интерфейса содержит:
Логика управления каждым помещением единообразна. В главном интерфейсе комнаты (например, страница BeeToo_room1_main_popup) располагаются кнопки запуска сценариев, план помещения, с размещенными на нем группами света, элементы управления климатом.
После запуска любого сценария пользователь переходит в интерфейс управления данным сценарием (страница BeeToo_room1_tv_popup, BeeToo_room1_radio_popup и т.д.), где так же имеется план помещения с группами света и элементами управления климатом, а так же имеются кнопки запуска всех доступных сценариев, кроме запущенного. Навигация в рамках интерфейса осуществляется уже привычным жестом слайдинга.
Для перехода в интерфейс управления другими помещениями необходимо нажать и удерживать на названии текущего помещения.
В данном интерфейсе видно: какой сценарий запущен в каждом из помещениий и включено ли в помещении освещение. Для выключения света или сценария пользователю необходимо нажать и удерживать на иконке освещения (лампочке) или на иконке сценария. Так же пользователь имеет возможность выключить все сценарии и всё освещение во всех помещениях нажав и удерживая и кнопку «Выключить все» (большая красная кнопка с значком выключения). Так же из меню можно поднять или опустить все шторы в доме.
Для перехода в другую комнату пользователю достаточно только нажать на кнопку соответствующей комнаты.
Ознакомиться с особенностями работы интерфейса вы можете, посмотрев ролик:
Управление набором комнат
Внимание! В графической части проекта значительное количество невидимых (прозрачных) компонентов графического интерфейса. Эти компоненты зачастую перекрывают друг друга, когда один компонент лежит поверх другого. За счет этого реализуется графическая целостность проекта и сохраняется его высокое удобство использования.
Например, на странице BeeToo_rooms_menu_popup располагается индикатор текущего запущенного сценария Room1ActiveScenarioRoomMenu. Индикатор спозиционирован так, чтобы он идеально вписывался в графическое оформление. Данный индикатор также можно нажать и тем самым выключить сценарий. Использовать индикатор как кнопку проблематично: его размеры слишком малы. Поэтому поверх индикатора располагается прозрачная кнопка Room1StopActiveScenarioBtn, которая обрабатывает события нажатии. Значительный размер кнопки и ее позиция (кнопка занимает почти всю площадь родительского цветного блока) обеспечивает доступность этой кнопки на экране мобильного устройства.
При работе с компонентами (добавление, копирование, удаление, перемещение) не забывайте о "невидимых" компонентах. Сохраняйте их позицию относительно условно связанных компонентов, над или под которыми они находятся. Не забывайте переименовывать и менять свойства невидимым компонентам вместе с видимыми.
Как переименовать комнату "room1" в "Кинозал"
Чтобы изменить название комнаты, под которым она отображается пользователю, достаточно исправить значение
Text для соответсвующих компонентов UI с
Внимание! Будьте аккуратны, не пропускайте компоненты
при переименовании. Переименовать необходимо строго все графические
компоненты.
Если хотя бы один будет пропущен, то возможно наложение имен при последующем слиянии (
Как изменить фоновое изображение для комнаты room1
Фоновое изображение (background) необходимо менять в UI компоненте Background на странице BeeToo_background_popup. У компонента Background множество состояний (State 1, State 2, State 3 и т.д.), в каждом определена фоновое изображение Image. Его и следует менять.
Как указывается взаимосвязь между конкретным помещением и номером состояния State компонента Background? Данный механизм описан на странице API: api.html/showBackground
Как удалить комнату "room2"
Чтобы удалить комнату, например
Удалить директории со страницами (из закладки
Внутри директорий множество страниц, которые буду удалены при удалении самих директорий. Удаляя три директории, описанные выше, фактически будут удалены следующие страницы:
Как создать новую комнату "Room12"
Чтобы создать новую комнату
Раскроем подробнее каждый этап.
Создать токены
Необходимо создать по образу и подобию остальных помещений следующий перечень токенов:
Страницы комнаты
Необходимо по образу и подобию других комнат, создать страницы для комнаты
Скриптовые модули
Необходимо создать скриптовые модули для реализации логики, связанной с помещением
Скриптовые модули можно скопировать со скриптов для другого помещения (например
function room3GoBackToMainPage(popup) {
showMainPopup('room3', 'BeeToo_room3_main_popup', false, false, popup);
}
→
function room12GoBackToMainPage(popup) {
showMainPopup('room12', 'BeeToo_room12_main_popup', false, false, popup);
}
var startRoom3TVScenario = function (){
stopRoom3ScenarioForced();
IR.SetVariable("Tokens.Room3TVScenarioActive", 1);
IR.SetVariable("Tokens.Room3ActiveScenario", true);
IR.SetVariable("Tokens.Room3ActiveScenarioNumber", 2);
};
→
var startRoom12TVScenario = function (){
stopRoom12ScenarioForced();
IR.SetVariable("Tokens.Room12TVScenarioActive", 1);
IR.SetVariable("Tokens.Room12ActiveScenario", true);
IR.SetVariable("Tokens.Room12ActiveScenarioNumber", 2);
};
BeeToo_rooms_menu_popup
Элементы для отображения состояния комнаты
Связь с оборудованием
Чтобы проект стал по-настоящему работоспособным, необходимо реализовать управление оборудованием. Управление оборудованием можно разделить на две большие категории:
Поседовательности команд или "ключевые" команды логическим контроллерам (если в вашем проекте используется подобное оборудование). К таким командам можно отнести:
Простые команды оборудованию:
"Ключевые" команды
Ключевые команды характерны способом своей отправки. Так, например, команды касательно старта/остановки сценариев отправляются в моменты, когда пользователь переходит между интерфейсами. Зачастую, эти ключевые команды отправляются НЕ по нажатию кнопки. При входе на страницу конкретного сценария BeeToo_room1_blueray3d_sc из главной страницы BeeToo_room1_main_popup происходит вызов процедуры startRoom1BLUERAY3DScenario в которую и следует помещять все команды, производящие непосредственную подготовку оборудования к проигрыванию сценария
Аналогичным образом, в процедуру stopRoom1ScenarioForced помещается код, выключающий все оборудование в комнате. А в процедуру stopRoom1Scenario помещается код, который выключает все оборудование, кроме того, которое долго стартует. Таким образом, можно оставить пользователю возможность выключить сценарий и запустить другой через небольшой промежуток времени и не ожидать длительное время повторного включения оборудования. Если же сценарий выключен через stopRoom1Scenario и некоторое время (например 2 минуты) помещение остается невостребованным, то можно выключать все оборудование по timeout.
"Простые" команды
Простые команды назначаются кнопкам и другим графическим элементам как правило простым стандартным способом,
который описан в разделе
Подобным образом назначаются команды кнопкам пультов устройств:
Исключением являются типизированные кнопки, которые повторяются на множестве страниц.
Например, кнопка
Аналогичным образом, для "ползунка" громкости, который присутствует практически на каждой странице сценария, назначаются две процедуры на два события (для примера рассмотрим сценарий Room1Blueray3DScenario):