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

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

Модератор: immortal

Stanislav
Сообщения: 22
Зарегистрирован: Пн апр 08, 2013 3:54 pm
Благодарил (а): 0
Поблагодарили: 1 раз

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

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

Я создал переключатель "Свет в гостиной"
Период авто-обновления "5"
Прописал связанный объект "svetGostinaya.status"
Добавил код (192.168.1.177 - IP Arduino)

if ($params['VALUE']) {
getURL("http://192.168.1.177/?LED1=1",0);
say('Свет в гостиной включен');
setGlobal("svetGostinaya.status",1);
}
else {
getURL("http://192.168.1.177/?LED1=0",0);
say('Свет в гостиной выключен');
setGlobal("svetGostinaya.status",0);
}

В Объектах добавил новый класс "svetGostinaya", добавил свойство "status".
Добавил метод "statusChanged", в свойствах прописал код $this->setProperty('status',$params['status']);
Отправляю запрос в адресной строке браузера (192.168.1.2 - IP компа) " http://192.168.1.2/objects/?object=svet ... op=set&v=1 ", но переключатель не реагирует. Что я сделал не так? или не доделал?
Прошу сильно не ругать. С Web программированием не сталкивался еще.
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

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

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

да вроде бы всё так. даже метод statusChanged в данном случае необязателен, раз код прописан в самом переключателе.
т.е. после вызова http://192.168.1.2/objects/?object=svet ... op=set&v=1 значение свойства объекта не меняется? (переключатель пока оставим, разберёмся работает ли установка свойства)

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

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

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

я создал метод "govori", который вызывается при изменении статуса, в нем прописал код say('статус изменился');
По идее, Алиса должна сказать это при изменении статуса, да?
а как посмотреть изменение статуса? я отметил хранить историю 5 дней, но в истории объектов "No Data".
Но тишина... а в окне браузера, где написал запрос появляется следующее: Request: &object=svetGostinaya&p=status&op=set&v=1

Все! Разобрался! моя ошибка была в том, что я создал только класс, а объектов в нем не создал. Теперь переименовал класс в "svet", создал в нем объект "svetGostinaya". Отправил запрос и переключатель переключился.
Спасибо большое за помощь! Теперь буду дальше разбираться. Надо погоду с gismeteo.ru прикрутить. Может кто-то уже использовал гисметео?
PAV
Сообщения: 949
Зарегистрирован: Пт дек 06, 2013 11:30 am
Откуда: Москва
Благодарил (а): 68 раз
Поблагодарили: 94 раза

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

Сообщение PAV » Чт дек 12, 2013 6:06 pm

Следующий ;)
Помогите разобраться.
На ардуине отслеживается датчик движения.
Через Arduino GW значения передаются в Мажордом.
GET /objects/?object=sensorMovement1&op=m&m=statusChanged&status=1 HTTP/1.0
Создал Объект sensorMovement1 - все работает.
sensorMovement1.status = 0
sensorMovement1.statusText =
sensorMovement1.updatedTimestamp = 1386859713

Как теперь заставить выключатель в главном меню включаться и выключаться в зависимости от состояния датчика?
Создал в меню выключатель
прописал
Связанный объект.Свойство: sensorMovement1.status
Запускать Объект.Метод: sensorMovement1.statusChange
Не работает. Ну что такое?
PAV
Сообщения: 949
Зарегистрирован: Пт дек 06, 2013 11:30 am
Откуда: Москва
Благодарил (а): 68 раз
Поблагодарили: 94 раза

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

Сообщение PAV » Чт дек 12, 2013 6:26 pm

Вопрос снят. Слишком быстро меняются значения датчика.
Создал объект Switch.HallLight
В методах датчика прописал
sg("HallLight.status","1");
sg('HallLight.statusText','Включено');
clearTimeOut("HallLight");
SetTimeOut("HallLight",'sg("HallLight.status","0");
sg("HallLight.statusText","Выключено");',30);
Теперь свет горит 30 секунд.
У выключателя поставил обновление раз в 1 сек.
Все заработало
Geral
Сообщения: 1
Зарегистрирован: Ср окт 06, 2021 8:39 pm
Благодарил (а): 0
Поблагодарили: 0

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

Сообщение Geral » Ср окт 06, 2021 9:20 pm

Доброго времени суток!
Столкнулся с проблемой описанной dimitrystd в первом сообщении.
Задача: Настроить управление реле (Xiaomi LLKZMK11LM) с помощью выключателя (Xiaomi QBKG25LM).
Сразу оговорюсь, все описанные рекомендации в данной ветки, и в парочке других, я опробовал в различных комбинациях (с/без вызов родительского метода, код только в одном из методов и т.д.). Описываю вариант на котором потерял надежду запустить самостоятельно.
Мои действия:
1) Отвязал реле от кнопки выключателя с помощью MQTT Explorer (т.к. для выключателя QBKG25LM еще не реализован пользовательский интерфейс отвязки кнопок, как для QBKG03LM);
2) Создал простое устройство типа реле;
3) Привязал к простому устройству объект "реле/управляемый выключатель". В методах TurnON, TurnOFF и Switch прописал команды отправки сообщений в Zigbee2mqtt (Пример части кода для метода Switch: $z2m->sendcommand('zigbee2mqtt/0x...ed2/set', '{"state_l1": "TOGGLE"}')). Отключил вызов родительского метода;
4) На событие выключателя _Single привязал созданное в п.2 простое устройство с отработкой метода Switch;
Результат: по нажатию на клавишу выключателя реле включается и сразу выключается.
Прошу помочь в реализации данной настройки.
Ответить