Вы общаетесь не прямую с устройством, а через MQTT
Устройство публикует свой статус (свое состояние) в топик /devices/wb-mrm2-mini_163/controls/K1 (я реле, сейчас я включено)
В то время как “команда” на совершение действия (Эй реле, включись пожалуйста) публикуется вами в топик с /ON.
Между “включись” (это постановка вами задачи для реле и не факт что реле ее исполнит) и фактическим состоянием реле прямой свзи нет - вы же на самом деле публикуете команду “с просьбой” в MQTT (а не в само реле), а реле при этом может быть не на связи, выключено питание его мозгов, неисправно и пр. и просто проигнорирует вашу “просьбу” и не изменить своего состояния.
А вот когда реле примет эту команду (или по иным причинам произойдет его срабатывание), то оно “отчитается о своем статусе” в топик который без “/ON” и установит там соответствующий статус.
Это сделано для того, чтобы отделять команду от состояния (выключатель на стенке - к это команда, лампочка на потолке, подключенная к этому выключателю - это статус).
Команда не есть статус.
Если вы работаете с dev[ …/…] = X то движок правил сам сообразит, что это команда и правильно сформирует обращение в MQTT добавив необходимый подтопик
если var x = dev[ …/…], то движок понимая, что это “чтение статуса” произведете его так, как нужно.
При прямых обращениях к MQTT необходимо соблюдать правила самостоятельно.
В своем вопросе вы не указали как именно вы обращаетесь с топиком(ми)
Топик с /on явно указывает на действие, например, включение или выключение. Это удобно в системах, где одно устройство использует разные топики для управления.
Настоятельно рекомендуется придерживаться структуры топиков, описанной в документации. Это обеспечит предсказуемую работу в различных конфигурациях.