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:

Vamos a crear un binary_sensor que es sucriba al topic mqtt y reciba los cambios:
- platform: mqtt
    name: Yeelight Mqtt ficticio
    state_topic: "cmnd/<<topic_ficticio>>/action"
    payload_on: "1"
    payload_off: "0"

automation:

Vamos a crear un automation para que encienda o apague la luz con cada cambio en el sensor:
 
- 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       
 
Si ademas queremos actuar sobre otro rele del esp o actuar sobre otro tasmota podemos generar un automation para que envie el comando asi:
 
- 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 %}    
 

Deja una respuesta

Síguenos

Siguenos en facebook