La bubble-card en question:
type: custom:bubble-card
card_type: button
entity: switch.chargeur_velo
name: Velo
sub_button:
main:
- name: Activer
show_arrow: true
show_background: true
show_icon: true
state_background: false
entity: switch.chargeur_velo
show_name: true
show_last_changed: false
show_last_updated: false
show_attribute: false
show_state: false
scrolling_effect: false
bottom: []
modules:
- get_state_attribute
force_icon: true
show_state: true
show_attribute: true
scrolling_effect: false
grid_options:
columns: 12
rows: auto
get_state_attribute:
- entity: sensor.chargeur_velo_power
- entity: sensor.velo_power_cycle
show_icon: true
show_name: true
button_type: switch
show_last_changed: false
show_last_updated: false
et pour les info de conso, c’est là :
Mais en résumé, il faut 2 automatisation, une qui détecte la fin de charge et une autre le début de la charge :
Voici l’automatisation qui détecte la fin de charge : (je fait exprès d’arrête la charge un peut avant, genre la batterie doit être chargé a 98-99% :
alias: "Velo en Charge : Fin"
description: ""
triggers:
- type: power
device_id: f35b09b9ca7ec46170e81c8d18c9c55f
entity_id: 1473d8f386dc9fd5af8959b5619a37ac
domain: sensor
below: 30
for:
hours: 0
minutes: 5
seconds: 0
trigger: device
conditions:
- condition: state
entity_id: input_boolean.velo_en_charge
state: "on"
actions:
- action: switch.turn_off
metadata: {}
data: {}
target:
entity_id: switch.chargeur_velo
- action: input_boolean.turn_off
data: {}
target:
entity_id: input_boolean.velo_en_charge
- variables:
time: >-
{{ ( now() -
(state_attr("automation.charger_velo_start","last_triggered"))).seconds
| int }}
hours: "{{ ((time % 86400) / 3600) | int }}"
minutes: "{{ ((time % 3600) / 60) | round | int }}"
- action: notify.mobile_app_xxx
metadata: {}
data:
title: Batterie Vélo Pleine
message: >-
Le cycle de charge s"est déroulé de {{
((state_attr("automation.charger_velo_start", "last_triggered"))|
as_local).strftime("%Hh%M") }} à {{ now().strftime("%Hh%M") }}\n Soit
une durée de {{ "{:01}h{:02}m".format(hours, minutes) }}\n Le cycle a
consommé {{ (states("sensor.velo_power_cycle") | float (default=0) ) |
round }}Wh({{ (states("sensor.velo_power_cycle") | float (default=0) *
(states("sensor.edf_tempo_info") | float(default=0) /1000 ) ) | round(2)
}}€)
- action: notify.send_message
metadata: {}
data:
message: >-
{{ now().strftime("%d/%m/%Y") }} ; {{
((state_attr("automation.charger_velo_start", "last_triggered")) |
as_local).strftime("%Hh%M") }} ; {{ now().strftime("%Hh%M") }} ; {{
"{:01}h{:02}m".format(hours, minutes) }} ; {{
(states("sensor.velo_power_cycle") | float (default=0) ) | round }}Wh ;
{{ (states("sensor.velo_power_cycle") | float(default=0) *
(states("sensor.edf_tempo_info")| float(default=0) ) / 1000 ) | round(2)
}}€ ;
target:
entity_id: notify.velo
- action: switch.turn_off
metadata: {}
data: {}
target:
entity_id: switch.interrupteur_garage_right
mode: single
et celle qui détecte le début de la charge :
alias: "Velo en Charge : Début"
description: >-
Debut de la chargeur du velo, on est a 0 la conso et on pourras recuperer le
debut de la charge via state_attr("automation.charger_velo_start",
"last_triggered")
triggers:
- type: power
device_id: f35b09b9ca7ec46170e81c8d18c9c55f
entity_id: 1473d8f386dc9fd5af8959b5619a37ac
domain: sensor
above: 100
for:
hours: 0
minutes: 1
seconds: 0
trigger: device
conditions:
- condition: state
entity_id: input_boolean.velo_en_charge
state: "off"
actions:
- action: utility_meter.calibrate
metadata: {}
data:
value: "0"
target:
entity_id: sensor.velo_power_cycle
- action: input_boolean.turn_on
metadata: {}
data: {}
target:
entity_id: input_boolean.velo_en_charge
mode: single
PS: le notify.velo enregistre dans un fichier csv like