En préparation…
Le plugin volvocars permet à Jeedom d’interagir avec votre véhicule Volvo en utilisants les API volvocars.
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.
Le plugin s’installe de manière standard depuis le market de Jeedom.
Une fois le plugin installé, il faut créer un account.
Cliquer sur Ajouter
Saisir le nom du compte puis cliquer sur OK
Saisir le login et le password du compte VolvoId puis cliquer sur Valider
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
Le nouveau véhicule est ajouté à la liste des véhicules
:bulb: Dans certains cas, le site fournisseur d’image peut bloquer les accès effectués par un script. Dans ce cas, le logo Volvo sera affiché à la place de l’image du véhicule. L’image du véhicuke devra être chargée manuellement depuis la page de configuration du véhicule.
Paramètres généraux
Ces paramètres sont les paramètres standards des équipements Jeedom. Ils ne seront pas détaillés ici.
Paramètres du véhicule
Ces paramètres sont renseignés automatiquement lors de la synchronisation de l’account. D’édition des ces paramètres est désactivée par défaut car ils ne devraient pas être modifiés par l’utilisateurs.
En cas de nécessité, il est possible de débloquer l’édition de ces paramèetres en cliquant sur le bouton Editer
Paramètres d’alertes
Automomie électriques
La valeur de la commande al_electricAutonomy
passe à 1 lorsque l’autonomie électrique est inférieur
à cette limite.
Automomie thermique
La valeur de la commande al_fuelAutonomy
passe à 1 lorsque l’autonomie du moteur themique est inférieur
à cette limite.
Paramètres de localisation
Les coordonnées GPS de deux site peuvent être configurée. Deux commandes seront créées pour chacun de ces sites:
distanceSite#
: Distance entre la site et la véhiculepresenceSite#
: binaire qui indique est sur le siteLes paramètres:
Jeedom
: Récupèere les coordonnées GPS de Jeedom qui ont été renseignées dans la config de Jeedom.Véhicule
: Récupère la position actuelle du véhiculeDescription
Info libre
Image
Image du véhicule qui sera utilisée dans le panel. Si l’image du véhicule n’a pas pu être récupérée lors
de la synchronisation de l’account, elle sera remplacée par un logo Volvo et un bouton Récupérer une image
du véhicule
(voir plus bas pour la procédure de récupération manuelle de l’image).
Données brute
Ce bouton ouvre un popup avec les données tels qu’elle sont fournies par les API. Ces infomations peuvent être utiles pour analyse en cas de problème.
Le plugin n’a pas d’image, le logo Volvo et le bouton Récupérer une image du véhicule
sont affichés:
Récupérer une image du véhicule
Récupérer une image du véhicule
n’est plus affiché:Utiliser le menu contextuel (PAS DE RECOURCI CLAVIER!) pour copier l’image.
Utiliser le menu contextuel (PAS DE RECOURCI CLAVIER!) pour coller l’image dans la zone prévue à cet effet.
La zone prévue pour la réception d’une copie de l’image n’est pla affichée.
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.
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 |
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.
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.