Skip to content

Instantly share code, notes, and snippets.

@mathieucarbou
Last active March 14, 2023 17:45
Show Gist options
  • Save mathieucarbou/e54c29c1f6b091c0e69ad1164550502e to your computer and use it in GitHub Desktop.
Save mathieucarbou/e54c29c1f6b091c0e69ad1164550502e to your computer and use it in GitHub Desktop.
Renault Zoé E-Tech R110 + Home Assistant + Charge auto avec le soleil

Renault Zoé E-Tech R110 + Home Assistant + Charge auto avec le soleil

Overview

image

image

Installation

  1. Installer l'intégration Renault dans Home Assistant et ajouter votre véhicule.
  2. http://homeassistant.local:8123/config/helpers => Creer ces entrées:
  • Nom: Zoé Charge Auto Started, ID: input_boolean.renault_zoe_charge_auto_started (ce capteur sert à enregistrer un démarrage automatique de la charge)
  • Nom: Chargeur Zoé Status, ID: binary_sensor.chargeur_zoe_status, Limite supérieure: 10 (ce capteur sert de façon plus efficace si l'auto est en charge)
  1. http://homeassistant.local:8123/config/script/dashboard => Ajouter les scripts ci-dessous
  2. http://homeassistant.local:8123/config/automation/dashboard => Ajouter les automatisations ci-dessous
  3. http://homeassistant.local:8123/lovelace/ => Ajouter une vue avec la config ci-dessous

Note: les scripts sont basés sur l'existence de:

  1. sensor.chargeur_zoe_power : mesure le courant pris par la charge en temps réel (j'utilise un Shelly EM)
  2. sensor.grid_power: mesure le courant importé ou exporté sur le réseau (j'utilise un Shelly EM)
  3. notify.whatsapp_group_mathieu_aurelie: (optionnel) service qui envoie une notification sur whatsapp. C'est optionnel et hors sujet alors vous pouvez enelever le code relatif à ça
  4. sensor.rte_tempo_couleur_actuelle: (optionnel) Comme j'ai EDF Tempo, je ne lance pas de charge automatiques pour les journées touges. L'intégration EDF Tempo est ici: https://github.com/hekmon/rtetempo

Fonctionnalités:

  • Automatismes:
    • Démarre la charge automatiquement si la batterie est < 60%. Cette charge ne s'arrêtera pas automatiquement.
    • Démarre la charge automatiquement si on exporte beaucoup pendant 3min
    • Arrête la charge automatiquement si on importe beaucoup pendant 3min et qu'elle a été démarrée automatiquement suite à une forte injection
    • Envoie des motifications Whatsapp (optionnel)
    • Évite les automatismes les journées rouges de EDF Tempo
  • Dashboard:
    • Bouton pour lancer une charge manuelle et voir si une charge est en court. Cette charge ne s'arrêtera pas automatiquement.
    • Boutn pour activer une charge nocture qui démarrera en HC à 22h et s'arrêtera à 6h maximum
    • Bouton pour lancer le HVAC
    • Bouton pour rafraichir l'intégration Renault
    • États:
      • cable de charge branché, Charge en cours
      • Capacité batterie, Niveau batterie
      • Évolution dans le temps du niveau de la batterie
      • Odométre et hsitorique
      • Autonomie
      • Etc

Notes importantes

Si l'API Renault ne répond pas, il faut attendre quelques minutes ou appuyer sur le bouton Refresh sur le dashboard

image

Entrées

Capteur de seuil (limite suoérieure à 10)

image

Boolean

image

alias: "Zoé: Charge Auto Start"
description: ""
trigger:
- platform: numeric_state
entity_id: sensor.grid_power
for:
hours: 0
minutes: 2
seconds: 0
below: -600
- platform: state
entity_id:
- binary_sensor.renault_zoe_plugged_in
to: "on"
condition:
- condition: state
entity_id: binary_sensor.renault_zoe_plugged_in
state: "on"
- condition: numeric_state
entity_id: sensor.chargeur_zoe_power
below: 10
- condition: not
conditions:
- condition: state
entity_id: sensor.rte_tempo_couleur_actuelle
state: Rouge
- condition: numeric_state
entity_id: sensor.renault_zoe_battery_level
below: 100
- condition: or
conditions:
- condition: numeric_state
entity_id: sensor.renault_zoe_battery_level
below: 60
- condition: numeric_state
entity_id: sensor.grid_power
below: -600
action:
- service: script.renault_zoe_charge_start
data: {}
- if:
- condition: numeric_state
entity_id: sensor.renault_zoe_battery_level
above: 60
then:
- service: input_boolean.turn_on
data: {}
target:
entity_id: input_boolean.renault_zoe_auto_charge
mode: single
alias: "Zoé: Charge Auto Start (HC)"
description: ""
trigger:
- platform: state
entity_id:
- binary_sensor.rte_tempo_heures_creuses
to: "on"
condition:
- condition: state
entity_id: binary_sensor.renault_zoe_plugged_in
state: "on"
- condition: numeric_state
entity_id: sensor.chargeur_zoe_power
below: 10
- condition: numeric_state
entity_id: sensor.renault_zoe_battery_level
below: 100
action:
- service: script.renault_zoe_charge_start
data: {}
- service: input_boolean.turn_on
data: {}
target:
entity_id: input_boolean.renault_zoe_auto_charge
mode: single
alias: "Zoé: Charge Auto Stop"
description: ""
trigger:
- platform: numeric_state
entity_id: sensor.grid_power
for:
hours: 0
minutes: 3
seconds: 0
above: 1500
- platform: state
entity_id:
- binary_sensor.rte_tempo_heures_creuses
to: "off"
condition:
- condition: numeric_state
entity_id: sensor.chargeur_zoe_power
above: 1500
- condition: state
entity_id: binary_sensor.renault_zoe_plugged_in
state: "on"
- condition: state
entity_id: input_boolean.renault_zoe_auto_charge
state: "on"
- condition: state
entity_id: binary_sensor.rte_tempo_heures_creuses
state: "off"
action:
- service: script.renault_zoe_charge_stop
data: {}
mode: single
alias: "Zoé: Restore States"
description: ""
trigger:
- platform: numeric_state
entity_id: sensor.chargeur_zoe_power
for:
hours: 0
minutes: 1
seconds: 0
below: 10
- platform: state
entity_id:
- select.renault_zoe_charge_mode
to: unavailable
for:
hours: 0
minutes: 0
seconds: 10
- platform: state
entity_id:
- binary_sensor.renault_zoe_plugged_in
to: "off"
- platform: state
entity_id:
- binary_sensor.rte_tempo_heures_creuses
to: "off"
condition: []
action:
- if:
- condition: state
entity_id: binary_sensor.rte_tempo_heures_creuses
state: "on"
- condition: device
type: is_on
device_id: f5a9992a01daf53da6afb83d122b7d58
entity_id: switch.shelly_em_3
domain: switch
- condition: numeric_state
entity_id: sensor.chargeur_zoe_power
below: 10
then:
- type: turn_off
device_id: f5a9992a01daf53da6afb83d122b7d58
entity_id: switch.shelly_em_3
domain: switch
- if:
- condition: state
entity_id: input_boolean.renault_zoe_auto_charge
state: "on"
- condition: numeric_state
entity_id: sensor.chargeur_zoe_power
below: 10
then:
- service: input_boolean.turn_off
data: {}
target:
entity_id: input_boolean.renault_zoe_auto_charge
- if:
- condition: state
entity_id: binary_sensor.rte_tempo_heures_creuses
state: "off"
- condition: state
entity_id: binary_sensor.renault_zoe_plugged_in
state: "off"
then:
- service: renault.charge_set_schedules
data:
vehicle: 2ea99505924c16efefa58a2d9d360a86
schedules:
- id: 1
activated: true
monday:
startTime: T06:30Z
duration: 1
tuesday:
startTime: T06:30Z
duration: 1
wednesday:
startTime: T06:30Z
duration: 1
thursday:
startTime: T06:30Z
duration: 1
friday:
startTime: T06:30Z
duration: 1
saturday:
startTime: T06:30Z
duration: 1
sunday:
startTime: T06:30Z
duration: 1
- if:
- condition: state
entity_id: select.renault_zoe_charge_mode
state: unavailable
for:
hours: 0
minutes: 0
seconds: 10
then:
- service: homeassistant.reload_config_entry
data: {}
target:
device_id: 2ea99505924c16efefa58a2d9d360a86
mode: single
alias: "Zoé: Charge Start"
sequence:
- if:
- condition: numeric_state
entity_id: sensor.chargeur_zoe_power
above: 1500
then:
- stop: Charge déjà démarrée
- service: notify.whatsapp_group_mathieu_aurelie
data:
message: "[ZOÉ] CHARGE - Starting..."
enabled: true
- type: turn_on
device_id: f5a9992a01daf53da6afb83d122b7d58
entity_id: switch.shelly_em_3
domain: switch
- device_id: 2ea99505924c16efefa58a2d9d360a86
domain: select
entity_id: select.renault_zoe_charge_mode
type: select_option
option: always_charging
- wait_for_trigger:
- platform: numeric_state
entity_id: sensor.chargeur_zoe_power
above: 1500
timeout:
hours: 0
minutes: 2
seconds: 0
milliseconds: 0
continue_on_timeout: false
- service: notify.whatsapp_group_mathieu_aurelie
data:
message: "[ZOÉ] CHARGE - Started!"
enabled: true
mode: single
alias: "Zoé: Charge Stop"
sequence:
- if:
- condition: numeric_state
entity_id: sensor.chargeur_zoe_power
below: 10
then:
- service: input_boolean.turn_off
data: {}
target:
entity_id: input_boolean.renault_zoe_auto_charge
- stop: Charge déjà arrêtée
- service: notify.whatsapp_group_mathieu_aurelie
data:
message: "[ZOÉ] CHARGE - Stopping..."
enabled: true
- service: renault.charge_set_schedules
data:
vehicle: 2ea99505924c16efefa58a2d9d360a86
schedules:
- id: 1
activated: true
monday:
startTime: T06:30Z
duration: 1
tuesday:
startTime: T06:30Z
duration: 1
wednesday:
startTime: T06:30Z
duration: 1
thursday:
startTime: T06:30Z
duration: 1
friday:
startTime: T06:30Z
duration: 1
saturday:
startTime: T06:30Z
duration: 1
sunday:
startTime: T06:30Z
duration: 1
- wait_for_trigger:
- platform: numeric_state
entity_id: sensor.chargeur_zoe_power
below: 10
timeout:
hours: 0
minutes: 2
seconds: 0
milliseconds: 0
continue_on_timeout: false
- service: notify.whatsapp_group_mathieu_aurelie
data:
message: "[ZOÉ] CHARGE - Stopped!"
enabled: true
- service: input_boolean.turn_off
data: {}
target:
entity_id: input_boolean.renault_zoe_auto_charge
mode: single
- theme: Backend-selected
title: Zoé
subview: false
icon: mdi:car
path: zoe
badges: []
cards:
- type: vertical-stack
cards:
- square: false
columns: 3
type: grid
cards:
- type: conditional
conditions:
- entity: binary_sensor.renault_zoe_plugged_in
state: 'off'
card:
show_name: true
show_icon: true
type: button
tap_action:
action: more-info
entity: binary_sensor.renault_zoe_plugged_in
show_state: false
name: Câble débranché
hold_action:
action: more-info
- type: conditional
conditions:
- entity: binary_sensor.renault_zoe_plugged_in
state: 'on'
card:
show_name: true
show_icon: true
type: button
tap_action:
action: more-info
entity: binary_sensor.renault_zoe_plugged_in
show_state: false
name: Câble branché
hold_action:
action: more-info
- type: conditional
conditions:
- entity: binary_sensor.chargeur_zoe_status
state: 'on'
card:
show_name: true
show_icon: true
type: button
entity: binary_sensor.chargeur_zoe_status
show_state: false
hold_action:
action: more-info
tap_action:
action: call-service
service: script.renault_zoe_charge_stop
data: {}
target: {}
name: En charge
- type: conditional
conditions:
- entity: binary_sensor.chargeur_zoe_status
state: 'off'
- entity: binary_sensor.renault_zoe_plugged_in
state: 'on'
card:
show_name: true
show_icon: true
type: button
entity: binary_sensor.chargeur_zoe_status
show_state: false
hold_action:
action: more-info
tap_action:
action: call-service
service: script.renault_zoe_charge_start
data: {}
target: {}
name: Charger
- type: conditional
conditions:
- entity: binary_sensor.renault_zoe_plugged_in
state: 'off'
card:
show_name: true
show_icon: true
type: button
entity: binary_sensor.chargeur_zoe_status
show_state: false
hold_action:
action: more-info
tap_action:
action: more-info
icon: mdi:battery-lock
name: Câble débranché
- show_name: true
show_icon: true
type: button
tap_action:
action: toggle
entity: automation.renault_zoe_charge_auto_start_hc
icon: mdi:battery-clock
name: Charge de nuit
show_state: false
- type: gauge
entity: sensor.renault_zoe_battery_level
name: Batterie
unit: '%'
max: 100
needle: true
severity:
green: 70
yellow: 30
red: 0
- type: gauge
entity: sensor.renault_zoe_battery_available_energy
unit: kWh
max: 52
needle: true
name: Capacité
severity:
green: 35
yellow: 15
red: 0
- type: gauge
entity: sensor.renault_zoe_battery_autonomy
name: Autonomie
needle: true
max: 395
unit: km
severity:
green: 100
yellow: 50
red: 0
- chart_type: line
period: day
days_to_show: 30
type: statistics-graph
entities:
- sensor.renault_zoe_battery_level
stat_types:
- mean
- min
- max
- type: vertical-stack
cards:
- square: false
columns: 3
type: grid
cards:
- type: entity
entity: sensor.renault_zoe_mileage
name: Odomètre
- show_name: false
show_icon: true
type: button
tap_action:
action: more-info
entity: binary_sensor.renault_zoe_hvac
show_state: true
hold_action:
action: more-info
icon: mdi:air-conditioner
name: Climatisation
- show_name: true
show_icon: true
type: button
entity: automation.renault_zoe_restore_states
name: Refresh
icon: mdi:recycle
hold_action:
action: more-info
show_state: false
tap_action:
action: call-service
service: homeassistant.reload_config_entry
data: {}
target:
device_id: 2ea99505924c16efefa58a2d9d360a86
- chart_type: bar
period: day
days_to_show: 30
type: statistics-graph
entities:
- sensor.renault_zoe_mileage
stat_types:
- change
- type: vertical-stack
cards:
- type: entities
entities:
- entity: input_boolean.renault_zoe_auto_charge
show_header_toggle: false
- type: map
entities:
- entity: device_tracker.renault_zoe_location
dark_mode: false
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment