Как заставить работать Switch с свойством (значения ON\OFF)

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

Модератор: immortal

dimitrystd
Сообщения: 80
Зарегистрирован: Пн апр 01, 2013 10:20 pm
Откуда: Днепропетровск

Как заставить работать Switch с свойством (значения ON\OFF)

Сообщение dimitrystd »

У меня есть свойство для лампочки Light.enabled. Оно содержит значения 'ON'\'OFF', вместо привычных 1\0. Прописал это свойство в меню, но переключатель не хочет правильно отображаться. Т.е. он переключается когда нажимаю, всё правильно срабатывает, но автоматически возвращается в положение Выкл. после автообновления. Приложил картинку. Пробовал вписывать "Текущее значение", оно пропадает и не помогает.
Помогите с настройкой, а лучше подскажите где посмотреть работу выключателя в коде. Похоже читать код быстрее чем опытным путём подбирать чтоб заработало.
Вложения
Switch.png
Switch.png (9.3 КБ) 15155 просмотров
Urbas81
Сообщения: 289
Зарегистрирован: Вс сен 16, 2012 9:39 am

Re: Как заставить работать Switch с свойством (значения ON\O

Сообщение Urbas81 »

if (($params['VALUE'])&&(gg("Storeroom.enabled")=="ON"))
{
sg("Storeroom.enabled","ON");
}
else
{
sg("Storeroom.enabled","OFF");
}
если так попробовать, пол часа назад себе подобное делал, но у меня 0 и 1 вместо ON OFF

это прописать в поле Код
Panchez
Сообщения: 99
Зарегистрирован: Вс апр 29, 2012 7:31 pm

Re: Как заставить работать Switch с свойством (значения ON\O

Сообщение Panchez »

Я так понимаю, это для Мегадевайса? Там в прошивке на крайний случай легко поменять на значения 0 и 1 и посмотреть как будет.
С уважением
Александр.
dimitrystd
Сообщения: 80
Зарегистрирован: Пн апр 01, 2013 10:20 pm
Откуда: Днепропетровск

Re: Как заставить работать Switch с свойством (значения ON\O

Сообщение dimitrystd »

Urbas81 писал(а):if (($params['VALUE'])&&(gg("Storeroom.enabled")=="ON")
Этот код меняет свойство когда кликаешь. У меня проблема с другой стороны. Switch отлично вызывает указанный метод и свет вкл\выкл. У меня проблема в том что switch не понимает моих значений on\off и в результате показывает не тот статус. Т.е. я включаю свет, он включился, а switch остаётся в состоянии выключен.

P.s. мне не сложно переделать код чтоб было 0\1, но пока интересно.
dmw
Сообщения: 469
Зарегистрирован: Вт мар 12, 2013 1:22 am

Re: Как заставить работать Switch с свойством (значения ON\O

Сообщение dmw »

Введите вторую переменную Storeroom.enabled_switch, она будет только для установки положения (привяжите её к переключателю).
в коде toggleSwitch присваивайте этой переменной 1/0 в зависимости от значения основной Storeroom.enabled
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Контактная информация:

Re: Как заставить работать Switch с свойством (значения ON\O

Сообщение sergejey »

Выключатель действительно понимает только 1/0, а вот "On" и "Off" всегда воспринимается как 1.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
dimitrystd
Сообщения: 80
Зарегистрирован: Пн апр 01, 2013 10:20 pm
Откуда: Днепропетровск

Re: Как заставить работать Switch с свойством (значения ON\O

Сообщение dimitrystd »

Ну раз автор рекомендует переделать на 1\0, сделаем. Думал я ещё не познал все тонкости.
И подскажите по контролу "Текущее значение". Какова его цель? Почему я могу его редактировать?
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Контактная информация:

Re: Как заставить работать Switch с свойством (значения ON\O

Сообщение sergejey »

dimitrystd писал(а):Ну раз автор рекомендует переделать на 1\0, сделаем. Думал я ещё не познал все тонкости.
И подскажите по контролу "Текущее значение". Какова его цель? Почему я могу его редактировать?
Контролы могут работать и без привязки к свойствам объектов и в таком случае текущее значение отражает последнее состояние. Собственно, оно всегда отражает последнее установленное состояние, просто в случае привязки к свойству это состояние обновляется автоматически из свойства. Редактировать его можно, но если есть привязка к свойству объекта, то оно ни на что не влияет.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Stanislav
Сообщения: 22
Зарегистрирован: Пн апр 08, 2013 3:54 pm

Re: Как заставить работать Switch с свойством (значения ON\O

Сообщение Stanislav »

Всем привет!
Я, как и все, собравшиеся на этом форуме, "добавляю мозгов" своему дому. Управление решил сделать на Arduino Мега. В принципе, скелет уже готов, все работает как мне надо, но появилась проблема с интерфейсом. Вот и нашел такую замечательную разработку! Спасибо авторам и всем, кто участвует в данном проекте!
После установки сервера, занялся подстройкой системы к дому. И сразу появился вопрос.
Я хочу сделать переключение реле объектом "Switch". Переключая переключатель, все отлично срабатывает. Но к ардуино у меня подключен радио пульт. который тоже переключает нужное реле.
Как из ардуино возвращать к серверу информацию о том, какой переключатель включен?
Например, я включил свет с радио пульта, а не с сервера, но в "Web морде", переключатель, естественно, остался в положении "0" т.е. "Выкл".
Мега подключена через W5100. Что нужно отправить серверу, чтобы переключатель встал в положение "Вкл" при нажатии кнопки на радио пульте?
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Контактная информация:

Re: Как заставить работать Switch с свойством (значения ON\O

Сообщение sergejey »

Stanislav писал(а):Всем привет!
Я, как и все, собравшиеся на этом форуме, "добавляю мозгов" своему дому. Управление решил сделать на Arduino Мега. В принципе, скелет уже готов, все работает как мне надо, но появилась проблема с интерфейсом. Вот и нашел такую замечательную разработку! Спасибо авторам и всем, кто участвует в данном проекте!
Добро пожаловать :)
После установки сервера, занялся подстройкой системы к дому. И сразу появился вопрос.
Я хочу сделать переключение реле объектом "Switch". Переключая переключатель, все отлично срабатывает. Но к ардуино у меня подключен радио пульт. который тоже переключает нужное реле.
Как из ардуино возвращать к серверу информацию о том, какой переключатель включен?
Например, я включил свет с радио пульта, а не с сервера, но в "Web морде", переключатель, естественно, остался в положении "0" т.е. "Выкл".
Мега подключена через W5100. Что нужно отправить серверу, чтобы переключатель встал в положение "Вкл" при нажатии кнопки на радио пульте?
Во-первых, лучше всего завести объект, который будет отвечать за этот выключатель (а лучше целый класс на будущее). В этом объекте добавить свойство status. Далее, сделать привязку переключателя к этому свойству (там можно задать связанный объект). Теперь изменение положение выключателя будет менять свойство объекта. Более того, изменение свойства объекта будет менять состояние переключателя. Нам лишь нужно, чтобы мега могла устанавливать это свойство. Для этого нужно просто инициировать http-запрос вида:
http://сервер/objects/?object=myObject&p=status&op=set&v=1
вместо myObject имя объекта, вместо 1 (включено) может быть и 0 (выключено)

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Ответить