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

Как создать поля для изменения уставок?

Добавлено: Чт окт 04, 2018 8:35 pm
2lenkoff
Добрый вечер. Хочу создать сцену, на которой будут необходимые для работы сценариев уставки. Например, уставка температуры для включения обогревателя или кондиционера, уставка времени для включения каких-либо приборов. Нужно, чтобы были поля на сцене, в которых эти уставки можно было бы менять. Я не знаю, каким образом создать эти поля и осуществить привязку с этих полей к коду в сценариях или, допустим, к времени в коде объекта ThisComputer. Прошу помочь, с решением данной задачи. Возможно, что то подобное обсуждалось на форуме, но что то не попадалось мне. Заранее благодарен.

Re: Как создать поля для изменения уставок?

Добавлено: Чт окт 04, 2018 9:53 pm
Chainik
Самое простое, но, возможно, не самое удобное - это использовать вид элемента сцены "Menu Control". Это "дубляж" элементов меню. Таким образом, например, можно продублировать "Слайдер" или "Выбор времени" (из меню).

Из очевидных недостатков - наличие линейки прокрутки, необходимость предварительного создания аналогичных пунктов в меню. На сцене все это занимает немало место. Однако эти элементы на сцене можно поместить в контейнер, а затем по необходимости скрывать/отображать их по клику на отдельный миниатюрный элемент (иконку). Например, как сделано здесь с ТВ-пультом (https://www.ab-log.ru/forum/viewtopic.p ... 641#p30641).

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

Re: Как создать поля для изменения уставок?

Добавлено: Пт окт 05, 2018 7:52 pm
2lenkoff
В общем, добавил на сцену html элемент с кодом:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Время</title>
</head>
<body>
<form>
<p>Время запуска обогрева</p>
<p><input type="time" name="обогрев" value="01:00" min="00:00" max="24:00"></p>
<p><input type="submit"></p>
</form>
</body>
</html>
Теперь остается вопрос, как к этому коду привязать время из метода OnNewMinute:

// включение отопления по времени
if (timeIs('21:50')) {
cm('hot_t.TurnOn');
}

чтобы 21:50 изменилось на значение 01:00 (в данном примере).

Re: Как создать поля для изменения уставок?

Добавлено: Сб окт 06, 2018 1:00 am
Chainik
Жаль, что я в программировании ничего не понимаю.
Может тут найдется ответ:
https://majordomo.smartliving.ru/forum/ ... 4&start=12
https://majordomo.smartliving.ru/forum/ ... f=7&t=1531
а скорее всего, тут
https://majordomo.smartliving.ru/forum/ ... &start=136

Ну а самый простой вариант, как я говорил, такой: создать в меню "служебный" элемент типа "Выбор времени", который связан со свойством нужного объекта. Затем разместить на сцене элемент типа "Menu control", сославшись на элемент меню.
Или вместо элемента типа "Menu control" разместить на сцене элемент типа HTML с кодом

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

<iframe src="/menu.html?parent=160&from_scene=1" frameBorder="0" width="100%" scrolling="no"></iframe>
где "160" в моем примере - это ID элемента меню.

Re: Как создать поля для изменения уставок?

Добавлено: Пн фев 04, 2019 3:39 am
Jilber
А можно ли как-то создать в меню элемент для ввода значения какого-то свойства вручную. Что-то вроде элемента "Выбор времени", но ввод не времени, а например числа или текста ?

Re: Как создать поля для изменения уставок?

Добавлено: Пн фев 04, 2019 12:50 pm
skysilver
Jilber писал(а):
Пн фев 04, 2019 3:39 am
А можно ли как-то создать в меню элемент для ввода значения какого-то свойства вручную. Что-то вроде элемента "Выбор времени", но ввод не времени, а например числа или текста ?
Тип "Текстовое поле" - это не то что ли?

Re: Как создать поля для изменения уставок?

Добавлено: Ср фев 06, 2019 7:13 am
Jilber
skysilver писал(а):
Пн фев 04, 2019 12:50 pm
Тип "Текстовое поле" - это не то что ли?
Спасибо. Значение присваивается свойству не сразу, поэтому думал, что не работает.