Non, pas encore trouvé pour le tableau de bord énergies.
Pour le reste, j’ai des utility meters pour la journée et le mois en cours, et des template sensors qui calculent le prix TTC directement.
Ma config est (un peu) en bazar mais voilà ce que j’ai .
Tout d’abord, j’ai modifié le script parce que j’aime me compliquer la vie et aussi parce que je préférais le code comme ça :
import json
import csv
import requests
from datetime import datetime
url = "https://www.data.gouv.fr/fr/datasets/r/c13d05e5-9e55-4d03-bf7e-042a2ade7e49" # BASE
P_SOUSCRITE = "9" # à modifier pour ajuster
with requests.get(url, stream = True) as r:
prices = csv.reader(r.content.decode('utf-8').splitlines(), delimiter=';')
prices = list(prices)
for price in prices:
if price[1] == '' and price[2] == P_SOUSCRITE:
last_update = datetime.strptime(price[0], '%d/%m/%Y').strftime("%Y-%m-%d")
info = dict()
info["last_update"] = last_update
info["part_fixe_ttc"] = float(price[4].replace(",", "."))
info["part_variable_base_ttc"] = float(price[6].replace(",", "."))
print(json.dumps(info))
break
Mon fichier tarif_reglemente.yaml
:
```command_line:
- sensor:
name: "Tarif réglementé base"
unique_id: "tarif_reglemente_base_api"
scan_interval: 86400
value_template: "{{ value_json.last_update }}"
#device_class: "date"
json_attributes:
- part_fixe_ttc
- part_variable_base_ttc
command: "/chemin/vers/trv_electricite_base.py"
template:
- sensor:
- name: "Tarif réglementé base part fixe ttc"
unit_of_measurement: "EUR/kWh"
device_class: "monetary"
state: "{{ state_attr('sensor.tarif_reglemente_base', 'part_fixe_ttc') }}"
unique_id: "tarif_reglemente_base_part_fixe"
- name: "Tarif réglementé part variable base ttc"
unit_of_measurement: 'EUR/kWh'
device_class: "monetary"
state: "{{ state_attr('sensor.tarif_reglemente_base', 'part_variable_base_ttc') }}"
unique_id: "tarif_reglemente_base_part_variable"
Je crois que le device_class: "date"
peut être décommenté et que c’est un oubli, à cause d’un bug qu’il y avait dans Home Assistant. à tester… La faute à mon addiction à la procrastination.
Mon fichier conso_electrique.yaml
:
utility_meter:
energie_quotidienne:
source: sensor.index_base
cycle: daily
energie_mensuelle:
source: sensor.index_base
cycle: monthly
template:
- sensor:
- name: "Coût consommation aujourd'hui"
unit_of_measurement: "Euro"
device_class: monetary
state: >
{% from 'easy_time.jinja' import days_in_month %}
{{ (states('sensor.energie_quotidienne')|float(0)*states('sensor.tarif_reglemente_part_variable_base_ttc')|float(0)+(states("sensor.tarif_reglemente_part_fixe_ttc")|float(0)/12/days_in_month()|int(1)))|round(2) }}
- name: "Coût consommation mensuelle"
unit_of_measurement: "Euro"
device_class: monetary
state: >
{{ (states('sensor.energie_mensuelle')|float(0)*states('sensor.tarif_reglemente_part_variable_base_ttc')|float(0)+(states("sensor.tarif_reglemente_part_fixe_ttc")|float(0)/12))|round(2) }}
- name: Coût consommation d'hier
state: "{{ states('input_number.cout_consommation_hier') }}"
unit_of_measurement: Euro
device_class: monetary
- name: Consommé hier
state: "{{ states('input_number.consomme_hier') }}"
unit_of_measurement: kWh
device_class: energy
automation:
- id: consommation_veille
alias: Consommation veille
description: Calcul la consommation de la journée pour afficher son coût le lendemain
trigger:
- platform: time
at: "23:59:59"
action:
- service: input_number.set_value
entity_id: input_number.consomme_hier
data:
value: "{{ states('sensor.energie_quotidienne')|float(0) }}"
- service: input_number.set_value
entity_id: input_number.cout_consommation_hier
data:
value: "{{(states('sensor.cout_consommation_aujourd_hui')|float(0))|round(2) }}"
L’automatisation est là en bonus on va dire mais pour l’utiliser il ne faut pas oublier de créer les input numbers.
Day in month fait parti de ce dépôt : GitHub - Petro31/easy-time-jinja: Easy Time calculations for Home Assistant templates
Je reconnais que ça n’est pas ce qu’on peut trouver de plus simple et que peut-être que ça mérite d’être améliorer. Mais ça fonctionne
Bon courage (ou bonne chance lol), pas de copier/coller sans comprendre vu comme j’ai fait ma config pour ça, prends bien le temps si tu veux l’appliquer et quoi qu’il arrive je ferais ce que je peux pour les points que tu ne comprendrais pas.