Dacia Spring et recharge programmée

La Dacia Spring est une petite voiture électrique fort sympatique. Légère, maniable, se gare dans un mouchoir de poche, et se charge assez rapidement vu la taille de la batterie.

Voulant équiper notre maison d’une wallbox ou borne de recharge nous avons opté pour le modèle présenté recement (ici)

Les avantages d’une borne de ce type :
– réglage du courant jusqu’à 32A ce qui permet une charge rapide en qq heures
– programmation de la mise en charge en horaire décalée (par exemple la nuit en heure creuse à 9.7centimes le kWh)
– limiter le temps de charge si on veut maitriser ce point.

Tout ca c’est bien cool, mais à première vu certaines voitures sont capricieuse quand il s’agit d’attendre la mise en charge en provenance d’une borne.

J’ai pu lire sur les forums que la Zoe a ou a eu ce soucis. Mais une chose est sur c’est que la Dacia Spring fait parti du lot.

Comment décaler la charge de la Dacia Spring.

Ceux qui ne veulent pas se soucier de la puissance de charge, ni du temps de charge peuvent opter pour un contacteur programmable. Et là aucun soucis.

En revanche, quand on programme une borne pour démarrer à 23h ou 2h du mat, il n’y a donc pas de courant avant cette heure…
Quand on insert la prise T2 dans la calandre de la voiture, la prise ne se verrouille pas (normal, y’a pas encore de courant)

Sauf, que bien que la voiture soit branchée, elle se met en sorte de veille au bout d’un moment.
Elle n’écoute pas la borne, ne vérifie plus la présence de courant.
Et quand la borne veut proposer du courant, elle ne detecte pas de voiture et rien ne se passe.

Sauf, si on intervient sur la voiture en faiisant une action (au choix) :
– ouvrir une portière
– déverrouiller la voiture avec la télécommande
– demander la reprise de charge si entre temps elle ne s’est pas mis en « debranchée »

Donc au bout d’un moment, il faut une intervention humaine. Ce qui n’est pas le but d’une programmation….

Et là dans chacun des 3 cas listés ci-dessus, la prise se verrouille, et la charge commence.

Voici un forum qui traite du problème : https://forums.automobile-propre.com/topic/comportement-%C3%A9trange-de-la-charge-36975/#comments

A première vu, le problème est connu chez Renaut/Dacia… et faut faire avec.

Donc la solution est de maintenir éveillée la Dacia Spring

Heureusement, Renault met à disposition une API.

Une API est une interface permettant de faire discuter des programmes entre eux.
Et cette api permet d’interroger la voiture, de récupérer un max d’info et surtout de demander la charge !

Renault API pour réveiller la Dacia Spring

Vous aurez besoin :
– d’un compte sur my-dacia ou my-renault (le même qui vous donne accès à l’appli)
– du code VIN de votre véhicule

Procédure :
1) install pip3
2) mise à jour de pip :
3) python3 -m pip3 install renault-api
4) pip3 install renault-api[cli]
5) adaptation des PATH si besoin
en tappant :
$ # set PATH so it includes user’s private bin if it exists
if [ -d « $HOME/.local/bin » ] ; then
PATH= »$HOME/.local/bin:$PATH »
fi
6) lancer renault-api une première fois. car il faut faire la config… ( choisir : fr_FR, puis entrez vos identifiants)
$ renault-api

7) Puis on peut commencer à interroger le serveur.
$ renault-api accounts

On récupère alors 1 ou 2 identifiants en fonction de l’appli utilisée. Perso j’ai pris celle de MYRENAULT

Type ID
——— ————————————
MYDACIA 13e97**************************dde14
MYRENAULT 54a9f7***********************e9192

Bon, passons au script python :

import aiohttp
import asyncio

from renault_api.renault_client import RenaultClient

async def main():
   async with aiohttp.ClientSession() as websession:
      client = RenaultClient(websession=websession, locale="fr_FR")
      await client.session.login('***************', '*********************')
      print(f"Accounts: {await client.get_person()}") # ici on récupère le code kamereon account id pour l'utiliser en dessous

      account_id = "*************************"  # <-- ici ! 
      account = await client.get_api_account(account_id)
      print(f"Vehicles: {await account.get_vehicles()}") # là on doit retrouver le VIN de notre véhicule pour le mettre plus bas

      vin = "***********************"  # <-  ici !
      vehicle = await account.get_api_vehicle(vin)
      print(f"Cockpit information: {await vehicle.get_cockpit()}")
      print(f"Battery status information: {await vehicle.get_battery_status()}")
      print(f"Start Charge : {await vehicle.set_charge_start()}")  # on demande la charge


loop = asyncio.get_event_loop()
loop.run_until_complete(main())

A vous d’adapter…

Perso, je lance ce script toutes les 10mn.
Je vérifie par les données GPS que la voiture est devant chez moi.
Si c’est le cas et qu’il est entre 15h et 2h du matin, je lui demande de « reprendre la charge ».

Ainsi la voiture reste à l’écoute d’une présence de courant, et dès que la borne s’active et bien ca charge.

Quelques captures d’écrans :

Dacia Spring recharge en heure creuse et horaire décalée

On voit que je récupère les données GPS 45.2…..
La voiture apparaît branchée ou pas (plugstatus), en attente ou en erreur (charginstatus)

Puis quand la wallbox se met en charge et que le code demande la reprise de charge :

Dacia Spring recharge en heure creuse et horaire décalée

Hop, ca se met à charger.

Magique !

Alors comment j’étais lancé, je me suis dit, autant l’afficher sur mon domoticz.

Domoticz et la charge de ma voiture électrique

J’ai modifié le script pour qu’il me génère un ptit fichier JSON.
Un script python sur domoticz vient lire ce fichier et met à jour des mesures.

Dacia Spring recharge en heure creuse et horaire décalée

A suivre…

Rmq : Suivre le projet sur GitHub car l’api renault peut évoluer.


Cet article vous a plu ? Partagez-le 😉



Ceci pourrait vous intéresser :

Leave a Comment