Como basicamente passo o dia a fazer relatórios, tudo para mim é importante e gosto de perceber como é que está a evoluir a dimensão do meu ficheiro de DB para perceber (mesmo sem alterar o nivel de log) se algo está mal e começou a escrever para a BD se eu me aperceber, como tal, e em linha com o que tenho publico, pesquisei, encontrei e adaptei as minhas necessidades.
#Conteúdo no ficheiro dos sensores:
#Sensor com o tamanho da bd actual
- platform: command_line
name: db_size
command: "du -m /config/home-assistant_v2.db | cut -f1"
unit_of_measurement: 'MB'
value_template: '{{ value | int - 1 }}'
scan_interval : 21600
#Sensor com o tamanho da bd no dia anterior
- platform: mqtt
state_topic: 'ha/log_db_file_size_prior'
name: 'db_size_prior'
unit_of_measurement: 'MB'
value_template: '{{ value_json.day_1 }}'
#Sensor que mostra o crescimento/decrescimo da mesma
- platform: template
sensors:
db_grow:
value_template: '{%- if not (is_state("sensor.db_size","unknown") or is_state("sensor.db_size_prior","unknown") )-%} {{ ((states.sensor.db_size.state | float)) - (states.sensor.db_size_prior.state | float) | max (0) | round(1) }} {%- endif -%}'
friendly_name: 'DB Grow Today'
unit_of_measurement: 'MB'
Por fim precisamos de algo que diariamente, ou conforme queiram, guardem o valor no momento do tamanho da BD, para isso usamos o nosso mqtt server
#Automação para guardar a dimensão da BD no “dia anterior”
automation:
- id: update size of db with previews day
alias: update size of db with previews day
initial_state: 'on'
condition: []
trigger:
- at: '23:59:00'
platform: time
action:
service: mqtt.publish
data_template:
payload: '{"day_1":"{{states.sensor.db_size.state}}"}'
retain: true
topic: ha/log_db_file_size_prior
O sensor que mostra o crescimento têm ainda em consideração valores que saem fora do scope e evita mostrar erros caso as automações não corram ou caso não exista valor previo (EX: quando adicionarem estes sensores não tem histórico)