SWITCH PARA TASMOTA+YEELIGHT VIA MQTT
Lo que se quiere conseguir es que el pulsador de tasmota actué sobre mqtt en vez de sobre el relé, así podremos apagar o encender lamparas yeelight desde ha sin cortar la corriente.
Si la comunicación con mqtt falla entonces ya actúa directamente sobre el relé.
Agradecer antes de nada al gran @Macs0 ya que sin su ayuda esto hubiera sido un gran dolor de cabeza
Paso 1. Configurar Tasmota
Vamos al modo consola y activamos lo siguiente:
switchmode1 1
rule1 on switch1#state do publish cmnd/<<topic_ficticio>>/action %value% endon
rule2 on switch1#state=2 do publish cmnd/<<nombre_esp>>/power %value% endon
rule3 on Mqtt#Disconnected do rule1 0 endon on Mqtt#Disconnected do rule2 1 endon on Mqtt#Connected do rule1 1 endon on Mqtt#Connected do rule2 0 endon
rule3 1
Con esas rules lo que estamos haciendo es decirle a tasmota que si pierde la conexion con mqtt ejecute el rele al actuar sobre el switch, pero que si si que hay conexion con mqtt entonces envie un topic sin hacerle nada al switch
Paso 2. Configuar HA
binary_sensor:
- platform: mqtt
name: Yeelight Mqtt ficticio
state_topic: "cmnd/<<topic_ficticio>>/action"
payload_on: "1"
payload_off: "0"
automation:
- alias: Yeelight ficticio ON-OFF
initial_state: True
trigger:
- platform: state
entity_id: binary_sensor.yeelight_mqtt_ficticio
action:
- service_template: >-
{%- if is_state('binary_sensor.yeelight_mqtt_ficticio', 'on') %}
light.turn_on
{%- elif is_state('binary_sensor.yeelight_mqtt_ficticio', 'off') %}
light.turn_off
{% endif %}
entity_id: light.luz_ficticio
- alias: Enviar CMND
initial_state: True
trigger:
- platform: state
entity_id: binary_sensor.yeelight_mqtt_ficticio
action:
- service: mqtt.publish
data_template:
topic: "cmnd/nombre_esp/power"
payload_template: >-
{% if is_state('sensor.sensor_ficticio', '1') %}
{{ "1" }}
{% elif is_state('sensor.sensor_ficticio', '0') %}
{{ "0" }}
{% endif %}