Страница 1 из 2

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

Добавлено: Вс янв 19, 2020 10:18 am
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
Есть ли штатная возможность управлять выключателем через один топик, но при этом актуализировать состояние выключателя получая показания из другого топика?
Пошерстил форум, но так и не нашел ответа на свой вопрос и буду признателен за подсказку.

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

Добавлено: Вс янв 19, 2020 3:12 pm
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

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

Добавлено: Вс янв 19, 2020 5:51 pm
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
Наверное это нужно делать с помощью методов? Не могли бы вы подсказать код, либо направить меня на соответствующий мануал, так как не смог найти самостоятельно.

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

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

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

if (gg("switch_is.Status")=="0")
{sg("switch_is.command","1");
}else
{sg("switch_is.command","0");
}
Теперь все работает так, как я и хотел.

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

Добавлено: Пн янв 20, 2020 8:44 am
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.
СпойлерПоказать
Сохраненное изображение 2020-1-20_13-39-1.371.jpg
Сохраненное изображение 2020-1-20_13-39-1.371.jpg (82.55 КБ) 4130 просмотров
И еще статус привязываю к топику tele/POWER, что бы если в случае отсутствия связи между реле и MD произошло ручное включение реле, статус в MD все же обновился через некоторое время.

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

Добавлено: Пн янв 20, 2020 9:22 am
mrcoolyok
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.
Это прям лучшее решение, без использования методов и лишнего кодинга.
Спасибо за подсказку!

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

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

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

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

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

Добавлено: Пн апр 20, 2020 10:54 am
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 КБ) 3733 просмотра
Благодарю!

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

Добавлено: Пн апр 20, 2020 5:41 pm
Jilber