blues a écrit:Je suis en train de regarder l'API officielle qui permet de récupérer quelques infos et de contrôler la voiture à distance.
Mais c'est limité :
-Niveau de charge en cours,
-état de la charge,
-Câble connecté,
-Historique de charge,
-Débuter/ programmer la climat,
-Débuter/programmer la charge.
Pour obtenir tout cela c'est toujours le même problème de gestion d'authentification, de session et d'échange de messages JSON ou XML. Dans le meilleur des cas on peut y arriver avec la box et ses scripts. Sinon il reste les scripts hébergés sur un NAS/ serveur web.
De plus, si le modèle change, l'accès au serveur sera aussi peut-être revu bientôt.
blues a écrit:J'ai réussi via un script hébergé sur la box
Pour le moment j'ai récupéré la première série d'info :
-Date de la maj
-Niveau de charge
-Autonomie restante
-Câble branché
-Voiture en charge
C'est brut pour le moment. Il reste à intégrer les paramètres d'authentification, le cache de la session, etc
Pour ma part je fixe tout en dur via des numéros de périphériques à mettre à jour lors de l'exécution du script.
Pour le partage, un résultat XML à utiliser via XPATH serait plus simple je pense.
<?
$url = "https://www.services.renault-ze.com/api/user/login";
$post = '{"username": "<MAIL_SERVICE_RENAULT>","password": "<PWD_SERVICE_RENAULT>"}';
//agent de mon navigateur pour faire moins louche :
$headers = array("Content-Type: application/json","User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36");
$response = httpQuery($url, 'POST', $post,NULL,$headers,true);
$json = sdk_json_decode($response);
$url = "https://www.services.renault-ze.com/api/vehicle/<NUM_VEHICULE_QUI_DEBUTE_PAR_VF>/battery";
$headers = array("Content-Type: application/json","User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36","authorization: Bearer ".$json['token']);
$response = httpQuery($url, 'GET', NULL,NULL,$headers,true);
$json = sdk_json_decode($response);
if ($json['charging']) {
$charge=1;}
else
{
$charge=0;}
if ($json['plugged'])
{$branche=1;}
else
{$branche=0;}
setValue(<NUM_PERIPH_NIV_CHARGE>,$json['charge_level']);
setValue(<NUM_PERIPH_NB_KM>,$json['remaining_range']);
setValue(<NUM_PERIPH_DATE_MAJ>,date('d/m/Y H:i:s',$json['last_update']/1000));
setValue(<NUM_PERIPH_ETAT_BRANCHEMENT>,$branche);
setValue(<NUM_PERIPH_ETAT_CHARGE>,$charge);
?>
Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 7 invité(s)