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

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

Модератор: immortal

mrcoolyok
Сообщения: 18
Зарегистрирован: Вс янв 19, 2020 9:11 am
Благодарил (а): 7 раз
Поблагодарили: 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
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 815 раз

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
Сообщения: 18
Зарегистрирован: Вс янв 19, 2020 9:11 am
Благодарил (а): 7 раз
Поблагодарили: 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
Сообщения: 18
Зарегистрирован: Вс янв 19, 2020 9:11 am
Благодарил (а): 7 раз
Поблагодарили: 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
Сообщения: 192
Зарегистрирован: Чт окт 04, 2018 12:04 pm
Благодарил (а): 28 раз
Поблагодарили: 45 раз

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 КБ) 3780 просмотров
И еще статус привязываю к топику 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.49%
mrcoolyok
Сообщения: 18
Зарегистрирован: Вс янв 19, 2020 9:11 am
Благодарил (а): 7 раз
Поблагодарили: 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
Сообщения: 192
Зарегистрирован: Чт окт 04, 2018 12:04 pm
Благодарил (а): 28 раз
Поблагодарили: 45 раз

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

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

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

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

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

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

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

Сообщение Sawwa » Пн апр 20, 2020 10:54 am

Приветствую всех! ТОже недавно перешел с 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 КБ) 3383 просмотра
Благодарю!
Jilber
Сообщения: 686
Зарегистрирован: Ср май 03, 2017 7:41 pm
Благодарил (а): 113 раз
Поблагодарили: 107 раз

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

Сообщение Jilber » Пн апр 20, 2020 5:41 pm

За это сообщение автора Jilber поблагодарил:
Sawwa (Пн апр 20, 2020 8:33 pm)
Рейтинг: 1.16%
Ответить