[Модуль] Сцены (scenes)
Модератор: immortal
- sergejey
- Site Admin
- Сообщения: 4284
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 75 раз
- Поблагодарили: 1559 раз
- Контактная информация:
[Модуль] Сцены (scenes)
Скоро на экранах...
В общем идёт работа над новой концепцией интерфейса управления. Всё будет очень наглядно, очень настраиваемо и очень динамично.
В общем идёт работа над новой концепцией интерфейса управления. Всё будет очень наглядно, очень настраиваемо и очень динамично.
- Рейтинг: 1.16%
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 867
- Зарегистрирован: Вт янв 17, 2012 12:31 pm
- Благодарил (а): 121 раз
- Поблагодарили: 78 раз
Re: Новый интерфейс
sergejey писал(а):Скоро на экранах...
В общем идёт работа над новой концепцией интерфейса управления. Всё будет очень наглядно, очень настраиваемо и очень динамично.
Спасибо Сереж тебе за твой проект и огромную проделанную работу!!!
С нетерпением буду ждать нового интерфейса управления.
Думаю Все, кто уже использует, либо решил использовать для домашней (и не только) автоматизации проект "MajorDoMo" поддержат меня.
-
- Сообщения: 2357
- Зарегистрирован: Пт апр 20, 2012 12:53 pm
- Благодарил (а): 42 раза
- Поблагодарили: 262 раза
- sergejey
- Site Admin
- Сообщения: 4284
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 75 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Новый интерфейс
Пока оно ещё в работе, но делюсь некоторыми подробностями.
Интерфейс будет состоять из сцен, для каждой сцены можно установить свою фоновую картинку -- например план участка, дома или этажа. Разные сцены нужны для возможности переключаться (например между этажами).
Далее, к сценам можно будет добавлять элементы управления/индикации. У каждого элемента может быть любое количество состояний -- для них будут настраиваться условия показа. Например, элемент "Лампочка" будет отображаться в состоянии "Горит", если переменная "ThisComputer.LightIsOn" в состоянии "1". Каждое состояние может иметь своё отображение, проще говоря, картинку.
Так же каждое состояние позволяет повесить на него сценарий, который будет отправлен на выполнение по нажатию на элемент.
В принципе, можно создать из этого модуля интерфейс по своему вкусу, загрузив свой дизайн для кнопок, рычажков и прочего.
Прямо сейчас этот модуль готов процентов на 30% -- можно создавать сцены, добавлять элементы, настраивать состояния. Дальше надо сделать пользовательскую часть и можно будет уже как-то пользоваться.
Интерфейс будет состоять из сцен, для каждой сцены можно установить свою фоновую картинку -- например план участка, дома или этажа. Разные сцены нужны для возможности переключаться (например между этажами).
Далее, к сценам можно будет добавлять элементы управления/индикации. У каждого элемента может быть любое количество состояний -- для них будут настраиваться условия показа. Например, элемент "Лампочка" будет отображаться в состоянии "Горит", если переменная "ThisComputer.LightIsOn" в состоянии "1". Каждое состояние может иметь своё отображение, проще говоря, картинку.
Так же каждое состояние позволяет повесить на него сценарий, который будет отправлен на выполнение по нажатию на элемент.
В принципе, можно создать из этого модуля интерфейс по своему вкусу, загрузив свой дизайн для кнопок, рычажков и прочего.
Прямо сейчас этот модуль готов процентов на 30% -- можно создавать сцены, добавлять элементы, настраивать состояния. Дальше надо сделать пользовательскую часть и можно будет уже как-то пользоваться.
- Рейтинг: 1.16%
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 867
- Зарегистрирован: Вт янв 17, 2012 12:31 pm
- Благодарил (а): 121 раз
- Поблагодарили: 78 раз
Re: Новый интерфейс
Классно, ждем когда можно будет пощупать данный интерфейсsergejey писал(а):Пока оно ещё в работе, но делюсь некоторыми подробностями.
Интерфейс будет состоять из сцен, для каждой сцены можно установить свою фоновую картинку -- например план участка, дома или этажа. Разные сцены нужны для возможности переключаться (например между этажами).
Далее, к сценам можно будет добавлять элементы управления/индикации. У каждого элемента может быть любое количество состояний -- для них будут настраиваться условия показа. Например, элемент "Лампочка" будет отображаться в состоянии "Горит", если переменная "ThisComputer.LightIsOn" в состоянии "1". Каждое состояние может иметь своё отображение, проще говоря, картинку.
Так же каждое состояние позволяет повесить на него сценарий, который будет отправлен на выполнение по нажатию на элемент.
В принципе, можно создать из этого модуля интерфейс по своему вкусу, загрузив свой дизайн для кнопок, рычажков и прочего.
Прямо сейчас этот модуль готов процентов на 30% -- можно создавать сцены, добавлять элементы, настраивать состояния. Дальше надо сделать пользовательскую часть и можно будет уже как-то пользоваться.
- sergejey
- Site Admin
- Сообщения: 4284
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 75 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Новый интерфейс
Выложил в исходниках первую версию модуля. Ниже распишу что это такое для тех, кто решится у себя поставить
Итак, немного повторюсь. Суть модуля в создании так называемых "сцен", на которые можно навешивать элементы интерфейса. Элементы могут быть либо информационными либо интерактивными, т.е. на них можно нажимать и инициировать какие-то действия.
Первоначально в модуле нужно задать размеры области показа сцен:
(сами сцены могут быть других размеров, но не больше)
Добавляем сцену, указывая путь к фоновой картинке:
(названия элементов сцены сразу на ней показываются, если они были добавлены на сцену -- сделано для удобства ориентирования)
После того как у нас есть сцена, мы можем на неё добавлять элементы:
При добавлении элемента надо указать как он будет называться, его координаты (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 -- туда можно копировать свои и они будут доступны для выбора. Со временем хотелось бы набрать какую-то базу часто-используемых элементов (выключатели, лампочки, кнопки и т.п.).
Модуль этот использовать можно очень широко, например как альтернативу меню управления и совсем не обязательно, чтобы фоновой картинкой был план комнат -- можно использовать в качестве фона картинку деревянного стола и на нём разложить иконки запуска различных действий. В общем, всё только в рамках вашей фантазии!
Вот собственно и всё
Итак, немного повторюсь. Суть модуля в создании так называемых "сцен", на которые можно навешивать элементы интерфейса. Элементы могут быть либо информационными либо интерактивными, т.е. на них можно нажимать и инициировать какие-то действия.
Первоначально в модуле нужно задать размеры области показа сцен:
(сами сцены могут быть других размеров, но не больше)
Добавляем сцену, указывая путь к фоновой картинке:
(названия элементов сцены сразу на ней показываются, если они были добавлены на сцену -- сделано для удобства ориентирования)
После того как у нас есть сцена, мы можем на неё добавлять элементы:
При добавлении элемента надо указать как он будет называться, его координаты (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 -- туда можно копировать свои и они будут доступны для выбора. Со временем хотелось бы набрать какую-то базу часто-используемых элементов (выключатели, лампочки, кнопки и т.п.).
Модуль этот использовать можно очень широко, например как альтернативу меню управления и совсем не обязательно, чтобы фоновой картинкой был план комнат -- можно использовать в качестве фона картинку деревянного стола и на нём разложить иконки запуска различных действий. В общем, всё только в рамках вашей фантазии!
Вот собственно и всё
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 867
- Зарегистрирован: Вт янв 17, 2012 12:31 pm
- Благодарил (а): 121 раз
- Поблагодарили: 78 раз
Re: Новый интерфейс
Обновился, пощупал, впечатления классные. Совсем по другому все воспринимается.... Все наглядно, универсально, легко настраиваемое.
Пробуйте, пишите отзывы..
Пробуйте, пишите отзывы..
- sergejey
- Site Admin
- Сообщения: 4284
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 75 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Новый интерфейс
Картинки с планами это я просто для примера в интернете нашел. Но вообще можно использовать Google Sketchup -- простая программа для 3d-моделирования. На ней можно быстро план стен набросать. Ну или смотреть уже что-то специализированное, например веб-сервис http://www.roomle.com/sochkasov писал(а):А в каком ПО рисуются такие замечательные картинки "разрезов" помещений?
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги