Страница 1 из 9

[Модуль] Сцены (scenes)

Добавлено: Чт май 24, 2012 3:23 pm
sergejey
Скоро на экранах... :)

В общем идёт работа над новой концепцией интерфейса управления. Всё будет очень наглядно, очень настраиваемо и очень динамично.

Re: Новый интерфейс

Добавлено: Чт май 24, 2012 3:48 pm
Vit
sergejey писал(а):Скоро на экранах... :)
В общем идёт работа над новой концепцией интерфейса управления. Всё будет очень наглядно, очень настраиваемо и очень динамично.

Спасибо Сереж тебе за твой проект и огромную проделанную работу!!!

С нетерпением буду ждать нового интерфейса управления.

Думаю Все, кто уже использует, либо решил использовать для домашней (и не только) автоматизации проект "MajorDoMo" поддержат меня.

Re: Новый интерфейс

Добавлено: Пт май 25, 2012 10:43 am
Alex
Просто огонь :)

То, что надо. Ждём подробностей.

Re: Новый интерфейс

Добавлено: Пт май 25, 2012 5:11 pm
sergejey
Пока оно ещё в работе, но делюсь некоторыми подробностями.

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

Далее, к сценам можно будет добавлять элементы управления/индикации. У каждого элемента может быть любое количество состояний -- для них будут настраиваться условия показа. Например, элемент "Лампочка" будет отображаться в состоянии "Горит", если переменная "ThisComputer.LightIsOn" в состоянии "1". Каждое состояние может иметь своё отображение, проще говоря, картинку.

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

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

Прямо сейчас этот модуль готов процентов на 30% -- можно создавать сцены, добавлять элементы, настраивать состояния. Дальше надо сделать пользовательскую часть и можно будет уже как-то пользоваться.

Re: Новый интерфейс

Добавлено: Сб май 26, 2012 6:16 am
Vit
sergejey писал(а):Пока оно ещё в работе, но делюсь некоторыми подробностями.

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

Далее, к сценам можно будет добавлять элементы управления/индикации. У каждого элемента может быть любое количество состояний -- для них будут настраиваться условия показа. Например, элемент "Лампочка" будет отображаться в состоянии "Горит", если переменная "ThisComputer.LightIsOn" в состоянии "1". Каждое состояние может иметь своё отображение, проще говоря, картинку.

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

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

Прямо сейчас этот модуль готов процентов на 30% -- можно создавать сцены, добавлять элементы, настраивать состояния. Дальше надо сделать пользовательскую часть и можно будет уже как-то пользоваться.
Классно, ждем когда можно будет пощупать данный интерфейс :)

Re: Новый интерфейс

Добавлено: Пт июн 01, 2012 4:40 pm
sergejey
Выложил в исходниках первую версию модуля. Ниже распишу что это такое для тех, кто решится у себя поставить :)

Итак, немного повторюсь. Суть модуля в создании так называемых "сцен", на которые можно навешивать элементы интерфейса. Элементы могут быть либо информационными либо интерактивными, т.е. на них можно нажимать и инициировать какие-то действия.

Первоначально в модуле нужно задать размеры области показа сцен:
Изображение
(сами сцены могут быть других размеров, но не больше)

Добавляем сцену, указывая путь к фоновой картинке:

Изображение
(названия элементов сцены сразу на ней показываются, если они были добавлены на сцену -- сделано для удобства ориентирования)

После того как у нас есть сцена, мы можем на неё добавлять элементы:
Изображение

При добавлении элемента надо указать как он будет называться, его координаты (TOP, LEFT -- отступ сверху и слево), и тип (image/html).
Изображение

Немного о типах. Тип Image обозначает, что элемент будет картинкой, а HTML значит, что он будет блоком HTML-кода (или просто текста). В последнем случае нужно будет задать ещё ширину и высоту блока (для картинки используется ширина/высота картинки).

После добавления элемента появляется возможность добавить его "состояния". На самом деле, на экране как раз будут показываться различные состояния элмента в заданных координатах.

Вот пример настройки состояния "On" для картинки:
Изображение

Основные опции настройки состояния:

Название -- ни на что не влияет и нигде не отображается, просто для удобства

Image -- картинка состояния. Если элемент типа HTML, то здесь может быть текст или код. Кстати, в текст можно вставлять служебные обозначения к примеру %Object.Property%, которые при выводе будут заменены на значение свойства объекта. Можно сделать вывод времени или температуры.

Run script on click -- если выбран сценарий, то он будет запущен при клике на элемент

Display condition -- (самое интересно) это условие отображения состояния. Может быть n/a -- т.е. всегда активно. Полезно для кнопок или отображения какой-то меняющейся информации (температура и прочее). Условие может быть simple -- простое и, наверное, наиболее часто используемое. При выборе такого типа условия нужно будет задать объект/свойство и критерий сравнения. Если условие будет верно, то состояние будет активно и отображаться, если нет, то нет.

Пример simple условия:
Изображение

При температуре котла больше 40 градусов на сцене будет отображен элемент в данном состоянии. Это может быть, например, большая красная лампочка. Даже мигающая, если в качестве картинки использовать gif-анимацию.

Последним типом условия является advanced, при котором можно ввести собственный php-код со сколь угодно сложными условиями. Главное, чтобы этот код устанавливал значение переменной $display в 0 или 1.

Пример advanced условия:
Изображение

В приведённом выше примере реализовано случайное включение/выключение состояния.

Если выбран тип условия simple или advanced, то появляется ещё одна опция: switch scene when activated . Если эта галочка выбрана, то в случае активации состояния, будет автоматически активирована соответствующая сцена. Это может быть очень удобно, когда сцен несколько (этажи здания) и происходит важное событие на сцене, которая в данный момент не выбрана, тогда система сама переключится из текущей сцены в ту, где произошло событие.

Вот как выглядит интерфейс сцен со стороны пользователя:

Сцена 1 (два элемента -- лампочка и сообщение)
Изображение

Сцена 2 (один элемент -- большая красная кнопка)
Изображение

Элементы дизайна сцен (картинки) находятся в папке /cms/scenes/backgrounds и /cms/scenes/elements -- туда можно копировать свои и они будут доступны для выбора. Со временем хотелось бы набрать какую-то базу часто-используемых элементов (выключатели, лампочки, кнопки и т.п.).

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

Вот собственно и всё :)

Re: Новый интерфейс

Добавлено: Сб июн 02, 2012 3:47 pm
Vit
Обновился, пощупал, впечатления классные. Совсем по другому все воспринимается.... Все наглядно, универсально, легко настраиваемое.

Изображение
Пробуйте, пишите отзывы..

Re: Новый интерфейс

Добавлено: Сб июн 02, 2012 11:30 pm
Panchez
Отличная работа, очень удобно, легко настраивать!

Re: Новый интерфейс

Добавлено: Пн сен 17, 2012 4:14 pm
sochkasov
А в каком ПО рисуются такие замечательные картинки "разрезов" помещений?

Re: Новый интерфейс

Добавлено: Пн сен 17, 2012 5:31 pm
sergejey
sochkasov писал(а):А в каком ПО рисуются такие замечательные картинки "разрезов" помещений?
Картинки с планами это я просто для примера в интернете нашел. Но вообще можно использовать Google Sketchup -- простая программа для 3d-моделирования. На ней можно быстро план стен набросать. Ну или смотреть уже что-то специализированное, например веб-сервис http://www.roomle.com/