Выключатель с обратной связью посредством MQTT

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

Модератор: immortal

Ответить
mrcoolyok
Сообщения: 14
Зарегистрирован: Вс янв 19, 2020 9:11 am
Благодарил (а): 5 раз
Поблагодарили: 0

Выключатель с обратной связью посредством MQTT

Сообщение mrcoolyok » Вс янв 19, 2020 10:18 am

Добрый день, уважаемые форумчане.
Решил перейти на MD с домотикза.
MD значительно более гибкая и настраиваемая под себя система, однако возникла проблема с тривиальным выключателем.
Есть розетка от Sonoff модель s20 c прошивкой Tasmota.
Она общается с MD посредством Mosquito.
Статус "включенности" розетка вещает в топик /switches/switch_is/POWER (ON или OFF)
Команда на переключение розетка принимает в топике /switches/switch_is/cmnd/POWER (ON или OFF)
Если привязать выключатель к /switches/switch_is/cmnd/POWER и прописывать в него ON или OFF, то розетка прекрасно отрабатывает команды.
Но есть нюанс, розетка может быть выключена с физической кнопки и тут уже MD не знает об этом статусе, так как выключатель не привязан к топику /switches/switch_is/POWER
Есть ли штатная возможность управлять выключателем через один топик, но при этом актуализировать состояние выключателя получая показания из другого топика?
Пошерстил форум, но так и не нашел ответа на свой вопрос и буду признателен за подсказку.
Аватара пользователя
tarasfrompir
Сообщения: 2466
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 168 раз
Поблагодарили: 533 раза

Re: Выключатель с обратной связью посредством MQTT

Сообщение tarasfrompir » Вс янв 19, 2020 3:12 pm

mrcoolyok писал(а):
Вс янв 19, 2020 10:18 am
Добрый день, уважаемые форумчане.
Решил перейти на MD с домотикза.
MD значительно более гибкая и настраиваемая под себя система, однако возникла проблема с тривиальным выключателем.
Есть розетка от Sonoff модель s20 c прошивкой Tasmota.
Она общается с MD посредством Mosquito.
Статус "включенности" розетка вещает в топик /switches/switch_is/POWER (ON или OFF)
Команда на переключение розетка принимает в топике /switches/switch_is/cmnd/POWER (ON или OFF)
Если привязать выключатель к /switches/switch_is/cmnd/POWER и прописывать в него ON или OFF, то розетка прекрасно отрабатывает команды.
Но есть нюанс, розетка может быть выключена с физической кнопки и тут уже MD не знает об этом статусе, так как выключатель не привязан к топику /switches/switch_is/POWER
Есть ли штатная возможность управлять выключателем через один топик, но при этом актуализировать состояние выключателя получая показания из другого топика?
Пошерстил форум, но так и не нашел ответа на свой вопрос и буду признателен за подсказку.
создай еще 1 свойство - привяжи туда /switches/switch_is/POWER - и по изменению этого свойства - меняй свойство уже тобой привязанное к /switches/switch_is/cmnd/POWER
Спасибо нам ПОМОЖЕТ..!
mrcoolyok
Сообщения: 14
Зарегистрирован: Вс янв 19, 2020 9:11 am
Благодарил (а): 5 раз
Поблагодарили: 0

Re: Выключатель с обратной связью посредством MQTT

Сообщение mrcoolyok » Вс янв 19, 2020 5:51 pm

tarasfrompir писал(а):
Вс янв 19, 2020 3:12 pm
создай еще 1 свойство - привяжи туда /switches/switch_is/POWER - и по изменению этого свойства - меняй свойство уже тобой привязанное к /switches/switch_is/cmnd/POWER
Приношу извинения, но не могли бы вы описать подробней?
Сейчас у объекта и так есть два свойства.
Первое, это его статус:
switch_is.Status - оно берется из топика /switches/switch_is/POWER
Второе, это команда:
switch_is.command - оно привязано к переключателю. При нажатии переключателя оно изменяется и отправляется в /switches/switch_is/cmnd/POWER
Вот я не понимаю, как актуализировать статус переключателя свойством switch_is.Status
Наверное это нужно делать с помощью методов? Не могли бы вы подсказать код, либо направить меня на соответствующий мануал, так как не смог найти самостоятельно.
mrcoolyok
Сообщения: 14
Зарегистрирован: Вс янв 19, 2020 9:11 am
Благодарил (а): 5 раз
Поблагодарили: 0

Re: Выключатель с обратной связью посредством MQTT

Сообщение mrcoolyok » Вс янв 19, 2020 6:02 pm

Спасибо за помощь, я разобрался.
Перепривязал переключатель к свойству switch_is.Status только на чтение, и привязал к созданному методу:

Код: Выделить всё

if (gg("switch_is.Status")=="0")
{sg("switch_is.command","1");
}else
{sg("switch_is.command","0");
}
Теперь все работает так, как я и хотел.
pash4uga
Сообщения: 137
Зарегистрирован: Чт окт 04, 2018 12:04 pm
Благодарил (а): 19 раз
Поблагодарили: 26 раз

Re: Выключатель с обратной связью посредством MQTT

Сообщение pash4uga » Пн янв 20, 2020 8:44 am

mrcoolyok писал(а):
Вс янв 19, 2020 6:02 pm
Спасибо за помощь, я разобрался.
Перепривязал переключатель к свойству switch_is.Status только на чтение, и привязал к созданному методу:

Код: Выделить всё

if (gg("switch_is.Status")=="0")
{sg("switch_is.command","1");
}else
{sg("switch_is.command","0");
}
Теперь все работает так, как я и хотел.
У меня тоже Tasmota.
Делаю на много проще, просто привязываю статус реле к топику stat/POWER, а путь ответа уже прописываю cmnd/POWER.
СпойлерПоказать
Сохраненное изображение 2020-1-20_13-39-1.371.jpg
Сохраненное изображение 2020-1-20_13-39-1.371.jpg (82.55 КБ) 278 просмотров
И еще статус привязываю к топику tele/POWER, что бы если в случае отсутствия связи между реле и MD произошло ручное включение реле, статус в MD все же обновился через некоторое время.
За это сообщение автора pash4uga поблагодарили (всего 3):
mrcoolyok (Пн янв 20, 2020 9:24 am) • TrDA (Пн янв 20, 2020 4:46 pm) • kostya4000 (Ср янв 22, 2020 8:27 am)
Рейтинг: 3.75%
mrcoolyok
Сообщения: 14
Зарегистрирован: Вс янв 19, 2020 9:11 am
Благодарил (а): 5 раз
Поблагодарили: 0

Re: Выключатель с обратной связью посредством MQTT

Сообщение mrcoolyok » Пн янв 20, 2020 9:22 am

pash4uga писал(а):
Пн янв 20, 2020 8:44 am
У меня тоже Tasmota.
Делаю на много проще, просто привязываю статус реле к топику stat/POWER, а путь ответа уже прописываю cmnd/POWER.
СпойлерПоказать
Сохраненное изображение 2020-1-20_13-39-1.371.jpg
И еще статус привязываю к топику tele/POWER, что бы если в случае отсутствия связи между реле и MD произошло ручное включение реле, статус в MD все же обновился через некоторое время.
То есть эту настройку вы делаете в модуле MQTT?
Я честно даже не заметил там поле для ответа write.
Это прям лучшее решение, без использования методов и лишнего кодинга.
Спасибо за подсказку!
pash4uga
Сообщения: 137
Зарегистрирован: Чт окт 04, 2018 12:04 pm
Благодарил (а): 19 раз
Поблагодарили: 26 раз

Re: Выключатель с обратной связью посредством MQTT

Сообщение pash4uga » Пн янв 20, 2020 9:36 am

mrcoolyok писал(а):
Пн янв 20, 2020 9:22 am
То есть эту настройку вы делаете в модуле MQTT?
Я честно даже не заметил там поле для ответа write.
Это прям лучшее решение, без использования методов и лишнего кодинга.
Спасибо за подсказку!
Да, все через модуль MQTT.
А еще там есть Replace list, для тех кому лень менять ответы в Tasmota)
mrcoolyok
Сообщения: 14
Зарегистрирован: Вс янв 19, 2020 9:11 am
Благодарил (а): 5 раз
Поблагодарили: 0

Re: Выключатель с обратной связью посредством MQTT

Сообщение mrcoolyok » Пн янв 20, 2020 10:53 am

pash4uga писал(а):
Пн янв 20, 2020 9:36 am
Да, все через модуль MQTT.
А еще там есть Replace list, для тех кому лень менять ответы в Tasmota)
Реплейс сразу настроил.
Еще раз спасибо, отличное и лаконичное решение
Ответить