Боюсь не актуально уже, но все же отвечу на вопрос.
Поведение абсолютно нормальное.
Состояние устройства следует смотреть только в топике для состояния. В топике для управления не следует ожидать каких-то изменений при изменении состояния, он служит только для управления и только для него. Другими словами, желаемое состояние отправляем в топик для управления, действительное состояние забираем из топика состояния.
Если вы отслеживаете изменение топика koridor/light/main/set, то это некорректно, вам необходимо опираться на топик koridor/light/main/state.