Bonjour à tous,
Je viens de réceptionner ma nouvelle twingo ZE et je me suis empressé d’installer le plugin jeedom pour la piloter.
Tout marche globalement bien mais je pense que les json de réponse de cette nouvelle twingo sont un peu différent des autres…je m’explique …
Le json de réponse du endpoint battery-status est le suivant :
{"data":{"type":"Car","id":"VF1AH000669300478","attributes":{"timestamp":"2022-06-21T06:37:36Z","batteryLevel":100,"batteryTemperature":20,"batteryAutonomy":182,"batteryCapacity":0,"batteryAvailableEnergy":22,"plugStatus":0,"chargingStatus":-1.1,"chargingRemainingTime":-1,"chargingInstantaneousPower":0}}}
Ce qui différe c’est l’attribut pour récupérer la date de MAJ … ici timestamp and dans le code du plugin il est attendu lastUpdateTime.
Le soucis est que sur la Twingo ou général dû à une évolution de l’api renault ?
Pour corriger le soucis j’ai ajouté ces lignes dans la fonction updateBattery
if(isset($json['data']['attributes']['timestamp'])) {
$time = new DateTime($json['data']['attributes']['timestamp']);
$time->add(new DateInterval('PT' . '120' . 'M'));
$stamp=$time->format('Y-m-d H:i');
$ze->checkAndUpdateCmd('lastUpdate', $stamp);
}
Le json de réponse du endpoint hvac-status est un peu différent également sur la partie récupération de la température … dans le plugin il s’agit de l’attribut externalTemperature alors que chez moi je n’ai pas cet attribut mais l’attribut internalTemperature
Le soucis est que sur la Twingo ou général dû à une évolution de l’api renault ?
Pour corriger le soucis j’ai ajouté ces lignes dans la fonction updateHvac
if(isset($json['data']['attributes']['internalTemperature'])) {
$temp = $json['data']['attributes']['internalTemperature'];
$ze->checkAndUpdateCmd('temp', $temp);
}
Par contre cette info de température ne se met à jour que si on met la clim en route sinon cette valeur ne change pas … pareil chez vous ?
Chez moi l’arrêt de la clim ne fonctionne pas … cette fonction est elle opérationnelle chez vous ?
D’ailleurs je pense qu’il manque une MAJ du status de la clim lors d’une action sur celle-ci (sinon la maj se fait avec le cron 5 minutes apres … :-()
Je ne sais pas si le retour de l’appel du enpoint hvac-star est suffisant pour mettre a jour la commande hvacStatus … pour le moment je force un appel au endpoint hvac-status après l’execution d’une action on ou off de la clim
ze::updateHvac($VIN);
Dernière petite question sur la température de préconditionnement de la clim
Celle-ci est elle prise en charge ? Si oui ne serait il pas interessant de rajouter une commande de type curseur pour gérer cette donnée de manière dynamique ?
En attendant je vais potasser la doc api de renault pour voir si il est possible de faire d’autres choses …