Проблема двойного срабатывания = РЕШЕНО =

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

Модератор: immortal

Ответить
Аватара пользователя
nightwind
Сообщения: 333
Зарегистрирован: Вс июн 26, 2016 4:42 pm
Откуда: Барановичи
Благодарил (а): 28 раз
Поблагодарили: 52 раза
Контактная информация:

Проблема двойного срабатывания = РЕШЕНО =

Сообщение nightwind » Пн окт 24, 2016 12:37 pm

Господа, помогите решить казалась бы детскую проблему! 2 полдня мучаюсь!
расклад:
MQTT релюшка слушает топик /сmnd/lamp1/power. 1- включает, 0 -выключает.
побликует в /stat/lamp1/power свое состояние раз в минуту. (излишество, но чтобы можно было без контроллера голым mqtt клиентом уследит, если надо)

у алисы в меню управления классический выключатель - свойство - status, метод - refresh.
status привязан по MQTT и к /сmnd/lamp1/power и к /stat/lamp1/power (косяк тут, но как сделать??)

жму выключатель - status=1 публикуется в /сmnd/lamp1/power - релюха включается и выставляет 1 в /stat/lamp1/power, что в свою очередь должно выставит выключатель в ВКЛ, он там и есть. вроде все норм. если реле включила или выключила не алиса - то в /stat/lamp1/power будут приходить его состояния и алиса будет рулить выключателем в меню., и он всегда будет показывать актуальное состояние. ТАК?
но что по факту? выключатель нажал на ВКЛ- mqtt отправил единицу. в это время (мог придти) пришел (отправленный периодически релюхой ) статус 0, выключатель алиса перевела в выкл, и опубликовала 0. свет моргнул и потух!!!!! сцуко!!!
или идет цикл - выключатель включил - /сmnd/lamp1/power =1, пришел ответ /stat/lamp1/power=1 , алиса сама дергает выключатель опять в 1 и цикл повторяется. странно, что раза 3-4 и затихает.
как сделать ПРАВИЛЬНО?
Последний раз редактировалось nightwind Вт окт 25, 2016 12:15 pm, всего редактировалось 1 раз.
Аватара пользователя
m-malva
Сообщения: 291
Зарегистрирован: Чт фев 26, 2015 1:38 am
Откуда: Санкт-Петербург
Благодарил (а): 16 раз
Поблагодарили: 66 раз
Контактная информация:

Re: Проблема двойного срабатывания

Сообщение m-malva » Вт окт 25, 2016 2:35 am

а что мешает разнести статус выключателя и статус состояния в разные свойства и скажем игнорировать ответ состояния в течении пары секунд выждав когда "успокоиться" контроллер?
Аватара пользователя
nightwind
Сообщения: 333
Зарегистрирован: Вс июн 26, 2016 4:42 pm
Откуда: Барановичи
Благодарил (а): 28 раз
Поблагодарили: 52 раза
Контактная информация:

Re: Проблема двойного срабатывания

Сообщение nightwind » Вт окт 25, 2016 12:14 pm

Поначалу так и хотел сделать. Но это же костыль!
Я понял в чем проблема. Но как решить по прежнему не вижу! доло в том, что выключатель при включении отправляет 1 в топик /cmnd/ как и должен. Но он не должен отправлять в топик /stat/ - статус выключателя нигде не нужен. В то же время он должен слушать /stat/ релюхи, и выставляться соответственно. А при получении измененного состояния релюхи он не должен писать в /cmnd/.

= Решено =
!!! Внезапно!!! снизошло озарение. просто убрал метод рефреш в настройках кнопки в меню управления. все работает, и не гоняет по 10 раз mqtt.
метод рефреш в настройках реле при изменениее свойства статус не выбран.
Ответить