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

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

Модератор: immortal

Ответить
2lenkoff
Сообщения: 4
Зарегистрирован: Пт янв 19, 2018 8:18 pm
Благодарил (а): 0
Поблагодарили: 0

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

Сообщение 2lenkoff » Чт окт 04, 2018 8:35 pm

Добрый вечер. Хочу создать сцену, на которой будут необходимые для работы сценариев уставки. Например, уставка температуры для включения обогревателя или кондиционера, уставка времени для включения каких-либо приборов. Нужно, чтобы были поля на сцене, в которых эти уставки можно было бы менять. Я не знаю, каким образом создать эти поля и осуществить привязку с этих полей к коду в сценариях или, допустим, к времени в коде объекта ThisComputer. Прошу помочь, с решением данной задачи. Возможно, что то подобное обсуждалось на форуме, но что то не попадалось мне. Заранее благодарен.
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

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

Сообщение Chainik » Чт окт 04, 2018 9:53 pm

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

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

Скорее всего, если поискать по форуму, будут и другие варианты, но они, наверняка, будут более сложными.
2lenkoff
Сообщения: 4
Зарегистрирован: Пт янв 19, 2018 8:18 pm
Благодарил (а): 0
Поблагодарили: 0

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

Сообщение 2lenkoff » Пт окт 05, 2018 7:52 pm

В общем, добавил на сцену 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 (в данном примере).
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

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

Сообщение Chainik » Сб окт 06, 2018 1:00 am

Жаль, что я в программировании ничего не понимаю.
Может тут найдется ответ:
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 элемента меню.
Jilber
Сообщения: 682
Зарегистрирован: Ср май 03, 2017 7:41 pm
Благодарил (а): 111 раз
Поблагодарили: 107 раз

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

Сообщение Jilber » Пн фев 04, 2019 3:39 am

А можно ли как-то создать в меню элемент для ввода значения какого-то свойства вручную. Что-то вроде элемента "Выбор времени", но ввод не времени, а например числа или текста ?
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

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

Сообщение skysilver » Пн фев 04, 2019 12:50 pm

Jilber писал(а):
Пн фев 04, 2019 3:39 am
А можно ли как-то создать в меню элемент для ввода значения какого-то свойства вручную. Что-то вроде элемента "Выбор времени", но ввод не времени, а например числа или текста ?
Тип "Текстовое поле" - это не то что ли?
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Jilber
Сообщения: 682
Зарегистрирован: Ср май 03, 2017 7:41 pm
Благодарил (а): 111 раз
Поблагодарили: 107 раз

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

Сообщение Jilber » Ср фев 06, 2019 7:13 am

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