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