Как создать поля для изменения уставок?
Модератор: immortal
Как создать поля для изменения уставок?
Добрый вечер. Хочу создать сцену, на которой будут необходимые для работы сценариев уставки. Например, уставка температуры для включения обогревателя или кондиционера, уставка времени для включения каких-либо приборов. Нужно, чтобы были поля на сцене, в которых эти уставки можно было бы менять. Я не знаю, каким образом создать эти поля и осуществить привязку с этих полей к коду в сценариях или, допустим, к времени в коде объекта ThisComputer. Прошу помочь, с решением данной задачи. Возможно, что то подобное обсуждалось на форуме, но что то не попадалось мне. Заранее благодарен.
-
- Сообщения: 1462
- Зарегистрирован: Вс янв 10, 2016 11:05 am
- Благодарил (а): 260 раз
- Поблагодарили: 454 раза
Re: Как создать поля для изменения уставок?
Самое простое, но, возможно, не самое удобное - это использовать вид элемента сцены "Menu Control". Это "дубляж" элементов меню. Таким образом, например, можно продублировать "Слайдер" или "Выбор времени" (из меню).
Из очевидных недостатков - наличие линейки прокрутки, необходимость предварительного создания аналогичных пунктов в меню. На сцене все это занимает немало место. Однако эти элементы на сцене можно поместить в контейнер, а затем по необходимости скрывать/отображать их по клику на отдельный миниатюрный элемент (иконку). Например, как сделано здесь с ТВ-пультом (https://www.ab-log.ru/forum/viewtopic.p ... 641#p30641).
Скорее всего, если поискать по форуму, будут и другие варианты, но они, наверняка, будут более сложными.
Из очевидных недостатков - наличие линейки прокрутки, необходимость предварительного создания аналогичных пунктов в меню. На сцене все это занимает немало место. Однако эти элементы на сцене можно поместить в контейнер, а затем по необходимости скрывать/отображать их по клику на отдельный миниатюрный элемент (иконку). Например, как сделано здесь с ТВ-пультом (https://www.ab-log.ru/forum/viewtopic.p ... 641#p30641).
Скорее всего, если поискать по форуму, будут и другие варианты, но они, наверняка, будут более сложными.
Re: Как создать поля для изменения уставок?
В общем, добавил на сцену 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 (в данном примере).
<!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 (в данном примере).
-
- Сообщения: 1462
- Зарегистрирован: Вс янв 10, 2016 11:05 am
- Благодарил (а): 260 раз
- Поблагодарили: 454 раза
Re: Как создать поля для изменения уставок?
Жаль, что я в программировании ничего не понимаю.
Может тут найдется ответ:
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 с кодом
где "160" в моем примере - это ID элемента меню.
Может тут найдется ответ:
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>
-
- Сообщения: 682
- Зарегистрирован: Ср май 03, 2017 7:41 pm
- Благодарил (а): 111 раз
- Поблагодарили: 107 раз
Re: Как создать поля для изменения уставок?
А можно ли как-то создать в меню элемент для ввода значения какого-то свойства вручную. Что-то вроде элемента "Выбор времени", но ввод не времени, а например числа или текста ?
-
- Сообщения: 3006
- Зарегистрирован: Чт авг 21, 2014 8:28 am
- Откуда: Киров, Россия
- Благодарил (а): 400 раз
- Поблагодарили: 1753 раза
- Контактная информация:
Re: Как создать поля для изменения уставок?
Тип "Текстовое поле" - это не то что ли?
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Мой CONNECT | Блоги | Telegram
-
- Сообщения: 682
- Зарегистрирован: Ср май 03, 2017 7:41 pm
- Благодарил (а): 111 раз
- Поблагодарили: 107 раз
Re: Как создать поля для изменения уставок?
Спасибо. Значение присваивается свойству не сразу, поэтому думал, что не работает.