Bonjour à tous,
Mon problème
Je possède un véhicule électrique et je cherche à historiser un ensemble de données lors de chaque charge. L’idée est de faire ce que propose l’application du constructeur (Renault) mais en mieux (notamment ajouter l’énergie consommée réelle et le prix) et surtout le stocker dans mon HA et l’avoir en visuel dans mon dashboard.
Pour ce faire j’ai créé un ensemble d’helper et 2 automations :
- L’une qui s’exécute lorsque la charge débute, elle set tous les helper avec la valeur actuel
- L’autre qui s’exécute à la fin de la charge. Elle set une variable sous forme de template puis envoie une notification sur mon téléphone avec les infos et stocke le template dans une variable via cette intégration (car ça ne rentre pas dans un input_text). J’affichage ensuite les infos via
custom:logbook-card
ça donne ce résultat (j’avais testé au début sans les emojis) :
Le système fonctionne bien mais je me dis qu’il y a peut être mieux pour faire ce système et faciliter l’historisation ?
Voici le YAML des 2 automatisations :
# Voiture - début de charge
- id: car_start_charging
alias: Voiture - début de charge
trigger:
- platform: state
entity_id: binary_sensor.scenic_en_charge
from: "off"
to: "on"
action:
- service: input_number.set_value
data:
entity_id: input_number.pourcentage_batterie_scenic_debut_charge
value: "{{ states('sensor.scenic_batterie') | int }}"
- service: input_number.set_value
data:
entity_id: input_number.autonomie_scenic_debut_charge
value: "{{ states('sensor.scenic_autonomie_de_la_batterie') | int }}"
- service: input_number.set_value
data:
entity_id: input_number.consommation_prise_debut_charge
value: "{{ states('sensor.consommation_prise_voiture_em0_total_active_energy') | float }}"
- service: input_datetime.set_datetime
data:
entity_id: input_datetime.scenic_date_heure_debut_charge
datetime: "{{ now() }}"
# Voiture - fin de charge
- id: car_end_charging
alias: Voiture - fin de charge
trigger:
- platform: state
entity_id: binary_sensor.scenic_en_charge
from: "on"
to: "off"
action:
- variables:
charge_time_seconds: >
{{ as_timestamp(now()) - as_timestamp(states('input_datetime.scenic_date_heure_debut_charge')) }}
charge_summary: >
🕙 Début et fin : du {{ as_timestamp(states('input_datetime.scenic_date_heure_debut_charge')) | timestamp_custom('%d/%m/%Y %H:%M:%S') }} au {{ now().strftime('%d/%m/%Y %H:%M:%S') }}
⌛ Temps de charge : {{ (charge_time_seconds / 3600) | int }}h {{ ((charge_time_seconds % 3600) / 60) | int }}m {{ (charge_time_seconds % 60) | int }}s
🔋 Batterie : de {{ states('input_number.pourcentage_batterie_scenic_debut_charge') | int }}% jusqu'à {{ states('sensor.scenic_batterie') | int }}%
🚘 Autonomie en km : de {{ states('input_number.autonomie_scenic_debut_charge') | int }} km jusqu'à {{ states('sensor.scenic_autonomie_de_la_batterie') | int }} km
📈 Gain batterie par heure : {{
(
(
states('sensor.scenic_batterie') | float - states('input_number.pourcentage_batterie_scenic_debut_charge') | float
) /
(
(as_timestamp(now()) - as_timestamp(states('input_datetime.scenic_date_heure_debut_charge'))) / 3600
)
) | round(0)
}}% / heure
⚡ Energie consommée : {{ (states('sensor.consommation_prise_voiture_em0_total_active_energy') | float - states('input_number.consommation_prise_debut_charge') | float) | round(2) }} kWh
💶 Coût : {{ ((states('sensor.consommation_prise_voiture_em0_total_active_energy') | float - states('input_number.consommation_prise_debut_charge') | float) * states('input_number.prix_electricite_actuel') | float) | round(2) }} €
- service: var.set
data:
entity_id: var.scenic_charge_recap
value: "{{ charge_summary }}"
- service: notify.mobile_app_smartphone
data:
title: 🔋 Fin de charge du Scénic
message: >
{{ charge_summary }}
Merci d’avance pour vos avis
Ma configuration
System Information
version | core-2024.8.1 |
---|---|
installation_type | Home Assistant OS |
dev | false |
hassio | true |
docker | true |
user | root |
virtualenv | false |
python_version | 3.12.4 |
os_name | Linux |
os_version | 6.6.31-haos-raspi |
arch | aarch64 |
timezone | Europe/Paris |
config_dir | /config |
Home Assistant Community Store
GitHub API | ok |
---|---|
GitHub Content | ok |
GitHub Web | ok |
GitHub API Calls Remaining | 4810 |
Installed Version | 1.34.0 |
Stage | running |
Available Repositories | 1386 |
Downloaded Repositories | 22 |
Home Assistant Cloud
logged_in | false |
---|---|
can_reach_cert_server | ok |
can_reach_cloud_auth | ok |
can_reach_cloud | ok |
Home Assistant Supervisor
host_os | Home Assistant OS 12.4 |
---|---|
update_channel | stable |
supervisor_version | supervisor-2024.08.0 |
agent_version | 1.6.0 |
docker_version | 26.1.4 |
disk_total | 28.5 GB |
disk_used | 8.0 GB |
healthy | true |
supported | true |
host_connectivity | true |
supervisor_connectivity | true |
ntp_synchronized | true |
virtualization | |
board | rpi4-64 |
supervisor_api | ok |
version_api | ok |
installed_addons | Advanced SSH & Web Terminal (18.0.0), File editor (5.8.0), Z-Wave JS (0.6.2), Samba share (12.3.2), Mosquitto broker (6.4.1), Zigbee2MQTT (1.39.1-1), SQLite Web (4.2.0), ESPHome (2024.7.3) |
Dashboards
dashboards | 3 |
---|---|
resources | 12 |
views | 12 |
mode | storage |
Recorder
oldest_recorder_run | 5 août 2024 à 07:55 |
---|---|
current_recorder_run | 13 août 2024 à 16:30 |
estimated_db_size | 547.75 MiB |
database_engine | sqlite |
database_version | 3.45.3 |