Элемент сцены - "Изображение"

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич

Элемент сцены - "Изображение"

Сообщение Bagir »

Вот элемент Изображение
Изображение
У него есть состояния
Изображение
При клике можно на выбор запустить Скрипт, Объект.Метод, Показать меню и т.д. Поговорим о выборе Объект.Метод:
Тут нужно указать само имя объекта и имя его метода. А как передать параметры? Это очень нужно!!
Допустим мы вызываем метод объекта реле, в котором будет приниматься решение, включить или нет. Этому методу нужно сообщить, кто его вызвал. Конкретный пример - включение освещения. Если вызывает датчик движения - включить на 5 минут. Если кликом по элементу на сцене - включить на 1 час. То есть, методу нужно знать, кто именно его вызывает, чтобы соответственно отреагировать.
Сейчас, чтобы как то передать параметры, я выбираю "Выполнить сценарий при клике", а в этом сценарии просто пишу одну строчку кода

Код: Выделить всё

callMethod("RelayProjectorsDriveway.sendMessage",array("whosent"=>'Объект_на_сцене_лампа'));
но уже с передачей параметров.

Варианты решений:
1. Для выбора Запускать Объект.Метод добавить еще одно поле, с указанием параметров. Например вписывать туда все что находится внутри array(...)
2. К выбору Скрипт, Метод, Меню и т.д. добавить Код. А в соответствующем поле можно будет написать любой код, который нужно.

PS Вариант 2 мне нравится намного больше.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Контактная информация:

Re: Элемент сцены - "Изображение"

Сообщение sergejey »

Ещё вариант обхода органичения это добавить отдельный метод типа SendMessageScene

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич

Re: Элемент сцены - "Изображение"

Сообщение Bagir »

Да, можно и так. Просто у меня уже есть горькой опыт работы с одной системой. Ewclid. Может кто знает. Ее планировщик мало что позволял. Но я все еж выпросил, чтобы сделали возможность запускать сторонние приложения. После этого я начал закидывать свои скрипты пачками. В конечном итоге уже было трудно понять и отследить работу системы.
Так то пока отсутствие параметров не так уж и проблематично.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич

Re: Элемент сцены - "Изображение"

Сообщение Bagir »

А почему бы не сделать так же, как сейчас в настройке элемента меню? Там есть сразу все на выбор. Мне очень нравится! Все очень просто, и в то же время позволит сделать любую сложную схему. Пока что, я не делал таких очень сложных схем, когда используется сразу и объект метод (или/и код) и запуск скрипта одновременно. Но планы есть. Просто еще до них не добрался. Главное, я вижу в этом свободу. Ну и еще настройка элементов будет похоже друг на друга, что не маловажно.
Изображение
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Ivan
Сообщения: 1474
Зарегистрирован: Сб окт 12, 2013 11:03 pm

Re: Элемент сцены - "Изображение"

Сообщение Ivan »

Замените файл в templates\scenes
Вложения
elements_edit.zip
(4.4 КБ) 148 скачиваний
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич

Re: Элемент сцены - "Изображение"

Сообщение Bagir »

Ivan писал(а):Замените файл в templates\scenes
Пожалуйста немного подробней что должно произойти? В последнем обновлении есть
sergejey писал(а):* Возможность по клику на элемент сцены задать произвольный код
Это что то другое или оно и есть? Я обновился и теперь вижу новый выбор "Код". Так то это решает все мыслимые и немыслимые просьбы и предложения. Разве что лично мне все равно больше нравится вариант где всё открыто сразу без необходимости выбора чего то одного, как сейчас сделано в меню. Но это конечно на любителя.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Ivan
Сообщения: 1474
Зарегистрирован: Сб окт 12, 2013 11:03 pm

Re: Элемент сцены - "Изображение"

Сообщение Ivan »

Я сделал что вы просили в посте от 19 дек 2014, 00:49
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич

Re: Элемент сцены - "Изображение"

Сообщение Bagir »

Ivan писал(а):Я сделал что вы просили в посте от 19 дек 2014, 00:49
Все понял, большое спасибо! Похоже Сергей добавил это в обновление. Поэтому я и не увидел разницу. Сегодня перенесу код запуска метода с параметром из скриптов в элемент на сцене.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич

Re: Элемент сцены - "Изображение"

Сообщение Bagir »

Работает. Все что пишу в коде, все выполняется. Но на сценах у элемента отображается весь написанный код. Что то не так.
Изображение
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич

Re: Элемент сцены - "Изображение"

Сообщение Bagir »

Серёж, пожалуйста посмотри по возможности. Код так и прописывается прямо на сцене. Более того, если там будет что то наподобие

Код: Выделить всё

$sc='<img src="http://10.10.3.2:8000/asip-api/live/media/SERVER/DeviceIpint.4/SourceEndpoint.video:0:0?format=mjpeg&w=960&h=0" style="display:inline; top:120px; left:60px; width:640px; height:360px; position:relative;">';  
sg('ThisComputer.StreamingCode',$sc);
То все что у $sс в '' будет тоже сразу отображено на сцене. В данном примере у переменной $sc правильный код изображения. Оно и будет вставлено сразу, точно так же как просто печатается любой код.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Ответить