language

PLugin “volvocars” pour Jeedom

En préparation…

Le plugin volvocars permet à Jeedom d’interagir avec votre véhicule Volvo en utilisants les API volvocars.

Principe

Ce plugin interagit avec les API Volvocars au travers le cloud, Par conséquent, ce plugins nécessite un connection internet. Il faut aussi que votre véhicule soit accessible dans l’app Volvo Cars.

La documentation des API indique qu’elles sont disponnibles pour tous les modèles entre de 2015 à 2022. Mais il semble que cette documentation n’est pas à jour et que les modèles post 2022 sont aussi disponibles via ces API. Le plugin a été dévoloppé en utilisant un XC40 électrique de 2023.

Modèles compatibles

Installation et configuration du plugin

Configuration du plugin

Installation du plugin

Le plugin s’installe de manière standard depuis le market de Jeedom.

Configuration du plugin

Une fois le plugin installé, il faut créer un account.

Les accounts

Pas d'account

Cliquer sur Ajouter

nom account

Saisir le nom du compte puis cliquer sur OK

Edit account

Saisir le login et le password du compte VolvoId puis cliquer sur Valider

No car

Les véhicules

Les équipements jeedom pour les véhicules associés à un account sont automatiquement créés (ou mis à jour) lors de la synchronisation de l’account

Synchronisation d’un account (création des véhicules)

With car

Configuration du véhicule

configuration véhicule

Récupération manuelle de l’image

Les commandes

Le plugin peut envoyer au véhicule les commandes suivantes

Les commandes effectivement activées dans le plugin pour un véhicule dépendent des fonctionnalités du véhicule remontées par les API.

Les actions

Les infos

Nom LogicalId API endpoint SousType Valeurs/Unité Description
GLOBALES
Disponibilité availability accessibility texte "AVAILABLE" Le véhicule est connecté
"UNAVALAIBLE" Le véhicule est déconnecté
"UNSPECIFIED" Information indisponible
"QUOTA_OUT" Le quota d'appels API a été atteint
raison indisponibilité unavailableReason accessibility texte "NO_INTERNET" Pas d'internet
"POWER_SAVING_MODE" Véhicule en mode veille
"CAR_IN_USE" Véhicule cours d'utilisation
"UNSPECIFIED" Information indisponible
"" Le véhicule est disponible
odomètre odometer odometer numérique Km Kilométrage du véhicule
service service diagnostics texte "NO_WARNING" Pas de service à effectuer
"REGULAR_MAINTENANCE_ALMOST_TIME_FOR_SERVICE" Délai pour un service bientôt atteint
"ENGINE_HOURS_ALMOST_TIME_FOR_SERVICE" Temps de fonctionnement du moteur avant service bientôt écoulé
"DISTANCE_DRIVEN_ALMOST_TIME_FOR_SERVICE" Kilométrage pour un service bientôt atteint
"REGULAR_MAINTENANCE_TIME_FOR_SERVICE" Délai pour un service atteint
"ENGINE_HOURS_TIME_FOR_SERVICE" Temps de fonctionnement du moteur avant service écoulé
"DISTANCE_DRIVEN_TIME_FOR_SERVICE" Kilométrage pour un service atteint
"REGULAR_MAINTENANCE_OVERDUE_FOR_SERVICE" Délai pour un service dépassé
"ENGINE_HOURS_OVERDUE_FOR_SERVICE" Temps de fonctionnement du moteur avant service dépassé
"DISTANCE_DRIVEN_OVERDUE_FOR_SERVICE." Kilométrage pour un service dépassé
"UNKNOWN_WARNING" Alerte inconnue
"UNSPECIFIED" indéterminé
Raison du service serviceTrigger diagnostics texte CALENDAR_TIME Délai depuis dernier service écoulé
"DISTANCE" Distance parcourue depuis dernier service
"ENGIME_HOURS" Temps de fonctionnement du moteur
"UNSPECIFIED" Non spécifié
"UNKNOWN" Inconnu
Heures moteur avant service engineHoursToService diagnostics numérique Heures Temps de fonctionnement du moteur avant le prochain service
Distance avant service distanceToService diagnostics numérique Kilomètres Distance avant le prochain service
Jours avant service timeToService diagnostics numérique Jours Nombre de jours avec le service.
L'API volvocars retourne soit un nombre de jours soit un nombre de mois. Le plugin convertit le nombre de mois en nombre de jour. Il peut donc y avoir une erreur de 30 jours.
LOCALISATION
position position location coordonnées GPS <lattitude>,<longitude> position du véhicule
distance <nom_site_1> distanceSite1 numérique mètre Distance entre le véhicule et le site 1
présence <nom_site_1> presenceSite1 binaire 0 Le véhicule n'est pas sur le site 1
1 Le véhicule est sur le site 1
distance <nom_site_2> distanceSite2 numérique mètre Distance entre le véhicule et le site 1
présence <nom_site_2> presenceSite2 binaire 0 Le véhicule n'est pas sur le site 2
1 Le véhicule est sur le site 2
OUVRANTS
Verrouillé locked doors text LOCKED Véhicule Verrouiller
UNLOCKED Véhicule Déverrouiller
UNSPECIFIED Information indisponible
état porte avant gauche
état porte avant droite
état porte arrière gauche
état porte arrière droite
état capot
état hayon
état trappe
doorFlState
doorFrState
doorRlState
doorRrState
hoodState
tailState
tankState
doors texte CLOSED fermé
AJAR entre-ouvert
OPEN ouvert
état vitre avant gauche
état vitre avant droite
état vitre arrière gauche
état vitre arrière droite
état toit
winFlState
winFrState
winRlState
winRrState
roofState
windows
UNSPECIFIED Information indisponible
porte avant gauche ouverte
porte avant droite ouverte
porte arrière gauche ouverte
porte arrière droite ouverte
vitre avant gauche ouverte
vitre avant droite ouverte
vitre arrière gauche ouverte
vitre arrière droite ouverte
capot ouvert
toit ouvert
hayon ouvert
trappe ouverte
doorFlOpen
doorFrOpen
doorRlOpen
doorRrOpen
winFlOpen
winFrOpen
winRlOpen
winRrOpen
hoodOpen
roofOpen
tailOpen
tankOpen
binaire 0 pas ouvert
1 ouvert
porte avant gauche fermée
porte avant droite fermée
porte arrière gauche fermée
porte arrière droite fermée
vitre avant gauche fermée
vitre avant droite fermée
vitre arrière gauche fermée
vitre arrière droite fermée
capot fermé
toit fermé
hayon fermé
trappe fermée
doorFlClosed
doorFrClosed
doorRlClosed
doorRrClosed
winFlClosed
winFrClosed
winRlClosed
winRrClosed
hoodClosed
roofClosed
tailClosed
tankClosed
binaire 0 pas fermé
1 ouvert
MOTEUR THERMIQUE
moteur en service engineON engine_status binaire 0 moteur à l'arrêt
1 moteur en marche
consommation carburant consoFuel statistics numérique l/100Km consommation moyenne calculée par le véhicule
consommation carburant (trajet) consoFuelTrip statistics numérique l/100Km consommation moyenne depuis de début du trajet automtique
carburant fuelAmount fuel numérique l Quantité de carburant restant
autonomie thermique fuelAutonomy statistics numérique Km Autonomie avec le carburant restant
Autonomie fuel faible al_fuelAutonomy binaire 0 Autonomie fuel suffisante
1 Autonomie fuel faible
niveau d'huile oilLevel engine_dignostics texte "UNSPECIFIED" Information indisponible
"NO_WARNING" Niveau normal
"SERVICE_REQUIRED" Nécessite un service
"TOO_LOW" Niveau bas
"TOO_HIGH" Niveau haut
alerte huile al_oil binaire 0 Le niveau d'huile est normal
1 Alerte (voir la commande oil_level pour plus de détails)
niveau liquide de refroidissement coolantLevel engine_dignostics texte "UNSPECIFIED" Information indisponible
"NO_WARNING" Niveau normal
"TOO_LOW" Niveau bas
alerte liquide de refroidissement al_coolant binaire 0 Le niveau est normal
1 Alerte (voir la commande coolant_level pour plus de détails)
MOTEUR ELECTRIQUE
consommation électrique consoElectric statistics numérique kW/100Km Consomation moyenne calculé par le véhicule
Autonomie électrique electricAutonomy statistics numérique Km Autonomie avec la charge restante
Autonomie électrique faible al_electricAutonomy binaire 0 Autonomie électrique suffisante
1 Autonomie électrique faible
niveau charge batterie batteryLevel recharge_status numérique % Pourcentage de charge de la batterie
Etat de la charge chargingStatus recharge_status texte "CHARGING_SYSTEM_CHARGING" Recharge en cours
"CHARGING_SYSTEM_IDLE" Système de recharge en attente
"CHARGING_SYSTEM_DONE" Recharge terminée
"CHARGING_SYSTEM_FAULT" Système de recharge en erreur
"CHARGING_SYSTEM_SCHEDULED" Recharge programmée
"CHARGING_SYSTEM_UNSPECIFIED" Etat indéterminé
Temps de charge restant chargingRemainingTime recharge_status numérique minutes Temps estimé avant fin de recharge
Heure fin de charge chargingEndTime texte jj HH:MM Heure de fin de charge prévue
Etat de la prise connectorStatus recharge_status texte "CONNECTION_STATUS_CONNECTED_AC" Branchée à une borne AC
"CONNECTION_STATUS_CONNECTED_DC" Branchée à une borne DC
"CONNECTION_STATUS_DISCONNECTED" Débranchée
"CONNECTION_STATUS_FAULT" Prise en erreur
"CONNECTION_STATUS_UNSPECIFIED" Etat indéterminé
LAVE-VITRES
Niveau lave-vitres washerFluidLevel diagnostics texte "UNSPECIFIED" Information indisponible
"NO_WARNING" Niveau normal
"TOO_LOW" Niveau bas
alerte lave-vitres al_washerFluid binaire 0 Le niveau est normal
1 Alerte (voir la commande washer_fluid_level pour plus de détails)
LIQUIDE DE FREIN
Niveau liquide de frein brakeFluidLevel brakes texte "UNSPECIFIED" Information indisponible
"NO_WARNING" Niveau normal
"TOO_LOW" Niveau bas
alerte liquide de frein al_brake_fluid binaire 0 Le niveau est normal
1 Alerte (voir la commande brake_fluid_fluid_level pour plus de détails)
PRESSION PNEUS
pneu avant gauche
pneu avant droit
pneu arrière gauche
pneu arrière droit
tyreFl
tyreFr
tyreRl
tyreRr
tyre texte "UNSPECIFIED" Information indisponible
"NO_WARNING" Pression normale
"VERY_LOW_PRESSURE" Pression très basse
"LOW_PRESSURE" Pression basse
"HIGH_PRESSURE" Pression élevée
alerte pneus al_tyre binaire 0 Les pressions sont normales
1 Alerte (voir les commandes tyre_* pour plus de détails)
ECLAIRAGES
feu frein gauche
feu frein droite
feu frein central
feu jour gauche
feu jour droit
feux brouillard avant
feux brouillard arrière
feux détresse
feu route gauche
feu route droite
feu croisement gauche
feu croisement droite
feu position avant gauche
feu position avant droite
feu position arrière gauche
feu position arrière droit
feu plaque
feu recule
feux latéraux
clignotant avant gauche
clignotant avant droit
clignotant arrière gauche
clignotant arrière droit
al_brakeLightL
al_brakeLightR
al_brakeLightC
al_daytimeRunningLightL
al_daytimeRunningLightR
al_fogLightF
al_fogLightR
al_hazardLights
al_highBeamL
al_highBeamR
al_lowBeamL
al_lowBeamR
al_positionLightFl
al_positionLightFr
al_positionLightRl
al_positionLightRr
al_registrationPlateLight
al_reverseLights
al_sideMarkLights
al_turnIndicationFl
al_turnIndicationFr
al_turnIndicationRl
al_turnIndicationRr
warnings texte "UNSPECIFIED" Information indisponible
"NO_WARNING" Pas de défaut
"FAILURE" Défaut
alerte lampes al_light binaire 0 Pas de lampe défectueuse
1 Défaut (voir les commandes de feux pour plus de détails)
PLUGIN
messages pour wigget msg2wigget texte json Messages pour le fonctionnement du widget du panel

Les endpoints des API volvocars

Ce plugin utilise trois APIs volvocars. Chacune de ces API donne accès à des endpoints qui fournissent chacun un ensemble d’informations. Le tableau des actions et des infos ci-dessus indiquent quel endpoint fourni l’information iassociée chacune dess commandes info ou action du plugin.

Volvo limite le nombre d’accès quotidien aux APIs à 10’000. Pour respecter cette limite tout en ayant des infos actualisées sans trop de délai, le plugin n’accède pas à tous les endpoints à la même fréquence. La position du vhéhicule est, par exemple, mise à jour chaque minute pour permettre une certaine réactivité lorsque le véhicule arrive au domicile alors que le niveau du liquide de frein ne l’est que toutes les 60 minutes.

:bulb: Je ne sais pas si la limite est de 10’000 appels par account, véhicule ou API. Tout retour d’expérience est le bienvenu.

Les endpoints

API endpoint fréquence Nombre d'appels quotidien
tout véhicule moteur thermique moteur électrique
Connected-vehicle brakes 60 min. 24
command-accessibility 5 min. 288
commands1 0
details1 0
diagnostics 10 min. 144
doors 2 min. 720
engine 15 min. 96
engine-status 5 min. 288
fuel 30 min. 48
odometer 15 min. 96
statistics 10 min. 144
tyres 30 min. 48
vehicles1 0
warnings 30 min. 48
windows 2 min. 720
Location location 1 min. 1'440
Energy recharge-status 5 min. 288
Total 3672 432 288

1 Endpoint appelé lors de la synchronisation d’un account.

Il y a donc:

A ceci, s’ajoutent les appels lors de l’envoi d’une commande, d’un refresh ou d’une synchronisation des véhicules associés à un compte.