Configurando un programador diario en Home Assistant 1

En este tutorial en Home Assistant es muy útil para configurar automatizaciones que se activen en determinados días de la semana de manera dinámica. Por ejemplo, podrías programar el encendido del aire acondicionado, la calefacción o el riego según tus necesidades específicas para cada día de la semana.

Lo primero es crear el sensor.día_de_la_semana:

sensor:

- platform: template
sensors:
dia_de_la_semana:
value_template: " {{ ['Lunes','Martes','Miercoles','Jueves','Viernes','Sabado','Domingo'][now().weekday()] }}"
entity_id: sensor.time

Lo siguiente es crear los input_select de cada día o los input_boolean según lo que necesitemos:

input_select:

  lunes:
    name: Lunes
    options:
      - Libre
      - Lunes

  martes:
    name: Martes
    options:
      - Libre
      - Martes

  miercoles:
    name: Miercoles
    options:
      - Libre
      - Miercoles

  jueves:
    name: Jueves
    options:
      - Libre
      - Jueves

  viernes:
    name: Viernes
    options:
      - Libre
      - Viernes

  sabado:
    name: Sabado
    options:
      - Libre
      - Sabado

  domingo:
    name: Domingo
    options:
      - Libre
      - Domingo
input_boolean:

  lunes:
    name: Lunes

  martes:
    name: Martes

  miercoles:
    name: Miercoles

  jueves:
    name: Jueves

  viernes:
    name: Viernes

  sabado:
    name: Sabado

  domingo:
    name: Domingo

Ahora solo nos falta añadir una condición en el automation correspondiente, este ejemplo es con input_select:

  - alias: 'Encender Yeelight'
    initial_state: true
    hide_entity: false
    trigger:
      platform: mqtt
      topic: 'zigbee2mqtt/0x00158d0001f9c4f1'
    condition:
      - condition: template
        value_template: "{{ 'single' == trigger.payload_json.click }}"
      - condition: template  ##Condition necesaria para el programador
        value_template: >
          {%- if (states.sensor.dia_de_la_semana.state == states.input_select.lunes.state) or
          (states.sensor.dia_de_la_semana.state == states.input_select.martes.state) or 
          (states.sensor.dia_de_la_semana.state == states.input_select.miercoles.state) or
          (states.sensor.dia_de_la_semana.state == states.input_select.jueves.state) or
          (states.sensor.dia_de_la_semana.state == states.input_select.viernes.state) or
          (states.sensor.dia_de_la_semana.state == states.input_select.sabado.state) or
          (states.sensor.dia_de_la_semana.state == states.input_select.domingo.state) %}
            True
          {% else %}
            False
          {% endif %}
    action:
      - service_template: >-
          {%- if is_state( 'light.yeelight_salon', 'off') %}
            script.yeelight_on
          {%- elif is_state( 'light.yeelight_salon', 'on') %}
            script.yeelight_off
          {% endif %}
        entity_id: light.yeelight_salon

Para activar o desactivar un día es suficiente con declarar los input_select o boolean en una card de lovelace y luego seleccionar el día de la semana que corresponda.

Para añadir otro programador que no coincida en días activos con el que ya tenemos habrá que duplicar los input de los días y declararlos según el nuevo nombre que le designemos.

 

Fuente: lignux

¿Quién está en línea?

Hay 15608 invitados y ningún miembro en línea