Есть разные типы реле по способы работы, это обычные реле, которые при включении напряжения замыкают контакты, при пропадании напряжения контакты размыкаются, а есть бистабильные реле, для замыкания необходимо подать на один контакт высокий уровень, для выключения подать высокий уровень на второй контакт. Плюс такого реле в том, что при работе не потребляется ток, так как напряжение необходимо только для включения или выключения, так же при пропадании электричества на модуле состояние реле не измениться, однако минус заключается в том, что для управления необходимо использовать два GPIO или даже три для состояния статуса реле и после перезагрузки модуля нет статуса реле или необходимо использовать дополнительные элементы для определения статуса реле.
Попался у меня один такой выключатель на DIN рейку с модулем CBU от Tuya, в нем используется бистабильное реле и индикатор статуса, однако индикатор статуса не определяет состояние реле а всего лишь подключен на выход к одному из GPIO
Используются следующие контакты:
GPIO9 — статус реле, к этому GPIO подключен светодиод
GIPO24 — подключен к обмотке включения реле
GPIO26 — подключен к обмотки выключения реле
GPIO17 — кнопка на самом реле для ручного включения
binary_sensor:
- platform: gpio
pin:
number: GPIO17 # кнопка
name: "Button 1"
id: bt1
on_press: # нажатие на кнопку
then:
- if:
condition:
switch.is_off: rel_status # проверяем статус светодиода статуса
then:
- switch.turn_on: rel_status # если выключен то включаем
else:
- switch.turn_off: rel_status # иначе выключаем
switch:
- platform: gpio
pin: GPIO9 # светодиод статуса
id: rel_status
inverted: true
name: rel_status
on_turn_on:
- switch.turn_off: relay1_off # выключаем обмотку выключения реле на всякий случай
- switch.turn_on: relay1_on # включаем обмотку включения реле
- delay: 500ms # ждем 0,5 секунды
- switch.turn_off: relay1_on № выключаем обмотку включения реле
- logger.log: "Switch Turned On!"
on_turn_off:
- switch.turn_off: relay1_on
- switch.turn_on: relay1_off
- delay: 500ms
- switch.turn_off: relay1_off
- logger.log: "Switch Turned Off!"
- platform: gpio
pin: GPIO24 # обмотка включения реле
id: relay1_on
- platform: gpio
pin: GPIO26 № обмотка выключения реле
id: relay1_off