@Stan_1

Должен ли HASS MQTT-switch переключаться, если изменить state-topic?

Второй день не могу разобраться с mqtt-switch. Настроил switch вот так:

- platform: mqtt
  command_topic: "koridor/light/main/set"
  state_topic: "koridor/light/main/state"
  name: light_koridor_main
  payload_on: 1
  payload_off: 0
  state_on: 1
  state_off: 0
  qos: 0
  optimistic: false


Когда в UI нажимаю на свитч - все нормально. Я вижу в MQTT-брокер изменение топика koridor/light/main/set, спустя секунду - изменение топика koridor/light/main/state. Всё хорошо. Но иногда koridor/light/main/state меняется без UI, через внешнее управление. Я рассчитываю, что если я изменю koridor/light/main/state, то свитч измениться в UI (станет включенным), и изменится koridor/light/main/set, которая станет равна koridor/light/main/state.

Но я вижу странную ситуацию. Действительно, сам движок в UI меняется, лампочка "зажигается" и становится желтой. Но в MQTT-брокере топик koridor/light/main/set остается старым.

Отсюда вопрос - это нормальное поведение? Или я чего-то не понимаю? Или нужно городить сложную конструкцию из template switch и искусственно делать publish данные в koridor/light/main/set через сервис mqtt.publish?
  • Вопрос задан
  • 115 просмотров
Пригласить эксперта
Ответы на вопрос 1
@whitefooot
Боюсь не актуально уже, но все же отвечу на вопрос.
Поведение абсолютно нормальное.
Состояние устройства следует смотреть только в топике для состояния. В топике для управления не следует ожидать каких-то изменений при изменении состояния, он служит только для управления и только для него. Другими словами, желаемое состояние отправляем в топик для управления, действительное состояние забираем из топика состояния.
Если вы отслеживаете изменение топика koridor/light/main/set, то это некорректно, вам необходимо опираться на топик koridor/light/main/state.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы