Sensores del mes no es nada más y nada menos que 4 nuevos sensores que crearé a mi Home Assistant. En nuestro Home Assistant, cuantos más tengamos, más información tendremos. También lógicamente, más opciones de hacer automatizaciones gracias a todos estos sensores.
Hoy cómo he dicho crearé 4 nuevos sensores. Uno me va a dar el día de la semana en el que estoy. El otro, el día del mes en número. El tercero el mes actual. Y el cuarto, cuántos días tiene el mes actual para saber qué día es fin de mes.
Todos tienes que crearlo dentro de tu archivo habitual de sensores en Home Assistant. Si todavía no tienes tu archivo, lo puede crear copiando la siguiente línea en tu archivo configuration.yaml y después creando el archivo sensor.yaml en la misma carpeta que tienes el archivo configuration.yaml.
sensor: !include sensors.yaml
Ahora sí, voy a por los sensores del artículo de hoy.
Sensor del día de la semana
platform: template
sensors:
diadelasemana:
friendly_name: "Día de la Semana"
icon_template: mdi:calendar
value_template: >
{{ ['Lunes','Martes','Miercoles','Jueves','Viernes','Sabado','Domingo'][now().weekday()] }}
Sensor del día del mes
platform: template
sensors:
diadelmes:
friendly_name: "Día del mes"
icon_template: mdi:calendar-today
value_template: "{{ ['1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31' ][ now().day-1] }}"
Sensor del mes
platform: template
sensors:
mes:
friendly_name: "Mes"
icon_template: mdi:calendar-month
value_template: "{{ ['Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'][now().month-1] }}"
Sensor de último día del mes
platform: template
sensors:
ultimo_dia_del_mes:
friendly_name: "Último día del mes"
value_template: >-
{{
31 if now().month in (1,3,5,7,8,10,12) else
30 if now().month in (4,6,9,11) else
29 if now().month == 2 and now().year % 4 == 0 else 28
}}
Ahora si no tiene que un sensor que te diga el consumo mensual de electricidad, lo puedes crear en el archivo utility_meters.yaml . Si no lo tienes lo puedes crear. Recuerda copiar la siguiente línea en tu configuration.yaml
utility_meter: !include utility_meters.yaml
Código a copiar en tu archivo utility_meters.yaml
energy_home_monthly:
source: sensor.general_casa_energy
cycle: monthly
La automatización
Ahora ya lo tienes todo para crear la automatización. Aquí te dejo la mía por si la quieres copiar. Recuerda cambiar el nombre de los sensores, por el nombre de los tuyos.
- id: '1633255664265'
alias: Energía consumo final de mes
description: ''
trigger:
- platform: time
at: '23:59'
condition:
- condition: template
value_template: '{{ now().day == states("sensor.ultimo_dia_del_mes") }}'
action:
- service: notify.telegram
data:
message: Tu consumo mensual ha sido de {{states('sensor.energy_home_monthly')}}
kWh, con un coste de {{states('sensor.energy_home_monthly_cost') | round(2)
}}€.
mode: single
Ya finalmente, esta es la plantilla para que se active siempre el día antes del día 1 de cada mes.
'{{ (now().date() + timedelta(days=2)).day == 7}}'