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

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

Модератор: immortal

mrcoolyok
Сообщения: 18
Зарегистрирован: Вс янв 19, 2020 9:11 am

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

Сообщение mrcoolyok »

Добрый день, уважаемые форумчане.
Решил перейти на 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
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин

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

Сообщение tarasfrompir »

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
Сообщения: 18
Зарегистрирован: Вс янв 19, 2020 9:11 am

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

Сообщение mrcoolyok »

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
Сообщения: 18
Зарегистрирован: Вс янв 19, 2020 9:11 am

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

Сообщение mrcoolyok »

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

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

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

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

Сообщение pash4uga »

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.
SPOILERSPOILER_SHOW
Сохраненное изображение 2020-1-20_13-39-1.371.jpg
Сохраненное изображение 2020-1-20_13-39-1.371.jpg (82.55 КБ) 4478 просмотров
И еще статус привязываю к топику tele/POWER, что бы если в случае отсутствия связи между реле и MD произошло ручное включение реле, статус в MD все же обновился через некоторое время.
mrcoolyok
Сообщения: 18
Зарегистрирован: Вс янв 19, 2020 9:11 am

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

Сообщение mrcoolyok »

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

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

Сообщение pash4uga »

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

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

Сообщение mrcoolyok »

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

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

Сообщение Sawwa »

Приветствую всех! ТОже недавно перешел с Domoticz на MD, почти все перенес, кроме управления ESP релюшками.

Согласен и предыдущими ораторами, что МД гораздо более перспективная и гибкая система, но отнюдь не для ламеров (типа меня)

Возникла проблема с прикручиванием ESP с прошивой ESPEasy.
Там управление релешкой реализовано через подачу WEB команды напрямую на ESP, а уже статус с ESP отправляется в MQTT.
Иначе, если и управление и проверку статуса делать через MQTT, в определенных ситуациях реле впадает в автогенерацию, и начинает переключаться туда и обратно самопроизвольно и часто.

Коллеги, подскажите, как создать действие на нажатие кнопки в МД, например чтобы отправилась команда на включение в ESP.

Например на включение: http://192.168.1.48/control?cmd=GPIO,12,1
Изображение настроек кнопки приложил, там в поле код просто вставил WEB-ссылку, думаю сделал неправильно
Снимок1.JPG
Снимок1.JPG (25.87 КБ) 4081 просмотр
Благодарю!
Ответить