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

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

Модератор: immortal

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

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

Сообщение dimitrystd » Сб апр 06, 2013 8:52 pm

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

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

Сообщение Urbas81 » Сб апр 06, 2013 11:54 pm

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
Благодарил (а): 0
Поблагодарили: 0

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

Сообщение Panchez » Вс апр 07, 2013 12:02 am

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

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

Сообщение dimitrystd » Вс апр 07, 2013 1:06 am

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

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

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

Сообщение dmw » Пн апр 08, 2013 9:47 am

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

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

Сообщение sergejey » Пн апр 08, 2013 10:51 am

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

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

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

Сообщение dimitrystd » Пн апр 08, 2013 12:28 pm

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

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

Сообщение sergejey » Пн апр 08, 2013 1:23 pm

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

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

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

Сообщение Stanislav » Пн апр 08, 2013 4:28 pm

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

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

Сообщение sergejey » Пн апр 08, 2013 4:48 pm

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

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