Некоторые системы работают с состояниями 1/0. например MajorDoMo, хотя там и можно переводить ON/OFF в логические 1 и 0 возникает необходимость в ESPHome публиковать 1 и 0, например я как то раз перепрошивал 12 контроллеров ESP8266 c прошивки WiFi-IoT на ESPHome, контроллеры были уже привязаны к системе Majordomo и не хотелось бы ещё ползти в систему и вносить столько правок, по этому я решил сделать чтобы контроллер с прошивкой ESPHome сразу публиковал в нужном формате.
в папку с проектом надо поместить файл homekit_switch.h
В файле прошивки необходимо подключить наш файл
esphome: includes: - homekit_switch.h
и дальше вставить следующий код по количеству каналов
custom_component: - lambda: |- auto my_component = new mqtt::HomeKitSwitchComponent(ID_RELAY); App.register_component(my_component); my_component->set_custom_state_topic($name/l1); my_component->set_custom_command_topic($name/set/l1); return {my_component};
ID_RELAY — заменить на id канала реле
$name это переменная записанная в
substitutions: name: tuya01
теперь публиковать состояния в mqtt будет не ON/OFF, а 1/0
Взято отсюда