Aller au contenu

Boîtier Connecté Pour Voiture Xeeconnect


Messages recommandés

@tibahut, apparemment, il y a un bug dans l'Oauth du coté de chez Xee, cf cette discussion sur Google+ : https://plus.google.com/u/0/102331359334188074086/posts/U6zwmgp5tT8

Ah ok, merci Lazer :)

J'étais en train d'essayer PHP-OAuth2 pris sur Github mais sans succès non plus.

En effet, le refresh_token ne fonctionne pas. J'aurai dû contacter Xee avant mais j'ai pas mal de choses àgérer en dehors de la domotique.

La bonne nouvelle, c'est que quand Xee aura réparé le soucis, ça marchera direct et je pourrai faire des tests sur la fréquence des données récupérées.

Il faudrait aussi que je teste le retour de l'API Xee après l'authentification sur l'IP interne de la box. Mais tant que Xee n'autorisera pas le OAuth en mode password ou client ID, nous serons obligés de passer par un serveur tiers pour se loguer :/

Lien vers le commentaire
Partager sur d’autres sites

salut @tibahut et merci pour ce tuto!

Effectivement, j'ai un souci lors du lancement du php sur mon nas.

J'ai en retour une erreur:

cURL Error #:SSL certificate problem: unable to get local issuer certificate

et du coup, le VD ne fonctionne pas...

Lien vers le commentaire
Partager sur d’autres sites

mais de rien ;)

C'est parce que tu essaies d'accéder à  une ressource via HTTPS et que cURL ne peut pas vérifier le certificat. CF : https://curl.haxx.se/docs/sslcerts.html

Mon serveur mutualisé a dà» prévoir le coup :/

 

En test rapide pour savoir si c'est bien le soucis, tu peux mettre à  jour dans le code PHP (la dernière option a été ajoutée) et voir si cela fonctionne : 

curl_setopt_array(
$curl,
array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => $requestType,
CURLOPT_POSTFIELDS => $postFields,
CURLOPT_HTTPHEADER => $httpHeaders,
CURLOPT_SSL_VERIFYPEER => false
)
);

Si oui, alors, il faut ajouter un certificat comme mentionné dans ce commentaire : http://stackoverflow.com/a/16495053/4912312

et bien sà»r enlever la ligne du test rapide qui désactive l'utilisation de SSL.

Lien vers le commentaire
Partager sur d’autres sites

sympa la réponse si rapide  :13:

Alors oui, avec la maj du php, j'ai un retour dans mon navigateur.

J'ai testé alors le VD avec l'access token : rien, et avec le refresh token : m'affiche mon nom dans "voiture de".

Et dans le debug du vd:

 

[DEBUG] 14:45:33: Start process

[ERROR] 14:45:35: line 18: bad argument #1 to 'gsub' (string expected, got nil)
[DEBUG] 14:45:37: Start process
[ERROR] 14:45:38: line 88: bad argument #1 to 'ipairs' (table expected, got nil)
[DEBUG] 14:45:41: Start process
[ERROR] 14:45:43: line 88: bad argument #1 to 'ipairs' (table expected, got nil)
[DEBUG] 14:45:58: Start process
[ERROR] 14:46:00: line 88: bad argument #1 to 'ipairs' (table expected, got nil)
Lien vers le commentaire
Partager sur d’autres sites

Ok, on va débugger en MP et je mettrai les conclusions ici.

Sinon, j'ai fait des améliorations pour tenir compte du fait que le refresh_token ne marche pas en me connectant à ee àchaque fois.

Mais c'est un dirty fix donc je voudrais éviter de le présenter.

Lien vers le commentaire
Partager sur d’autres sites

Voici une version du VD et du script PHP pour forcer le login à  chaque connexion au webservice de Xee en attendant que tout fonctionne normalement.

En contrepartie il faut renseigner son login et mot de passe dans le script PHP et le client ID et le client secret dans le VD en plus du tutoriel de base.

 

Cette version est une version temporaire mais qui fonctionne.

 

Lignes à  modifier dans le PHP ainsi que le nom à  renommer en index.php :

 

define('XEE_API_CLIENT_ID', 'client ID');
define('XEE_API_CLIENT_SECRET', 'client secret');
define('XEE_API_REDIRECT_URI', 'http://host.com/path');
define('XEE_LOGIN', 'email de login');
define('XEE_PASSWORD', 'mot de passe');

 

Lignes à  modifier dans le VD :

 

local host         = 'host.com';
local path         = '/path';
local defaultToken = 'clientID:client secret';

XeeConnectForceLogin.vfib

indexForceLogin.php

Lien vers le commentaire
Partager sur d’autres sites

merci @tibahut

J'essaye en vain depuis hier soir mais impossible de le faire tourner...

avec le nouveau scirpt, j'ai une erreur d'accès un peu différente :

SSL certificate problem: unable to get local issuer certificate

tout en ayant remis dans le nouveau script:

CURLOPT_SSL_VERIFYPEER => false
Lien vers le commentaire
Partager sur d’autres sites

Je suppose que tu l'as remis dans la méthode sendRequest() mais dans le nouveau script j'ai patché vite fait la connexion au web service avec un cURL non factorisé.

Il faut donc aussi le mettre dans la méthode firstConnection() après la ligne "curl_setopt($ch, CURLOPT_POST, true);", ajouter la ligne curl_setopt($ch, CURLOPT_SSL_VERIFYPEER , false);

 

Par contre, j'insiste bien sur le fait que c'est un problème de configuration de PHP et non du script et que ce fix désactive la connexion sécurisée lors de l'utilisation de cURL.

La résolution se fait comme suit : 

 

 

It's a pretty common problem in Windows. You need just to set cacert.pem to curl.cainfo.

Since PHP 5.3.7 you could do:

  1. download https://curl.haxx.se/ca/cacert.pem and save it somewhere.
  2. update php.ini -- add curl.cainfo = "PATH_TO/cacert.pem"

 

Il faut télécharger le certificat cacert.pem et le sauvegarder sur le NAS. Ensuite, modifier le php.ini pour donner le chemin du certificat à  cURL : curl.cainfo=c:\path\cacert.pem

Lien vers le commentaire
Partager sur d’autres sites

Suite aux tests avec Jorderic, j'ai constaté une coquille dans le script PHP avec un mauvais copier-coller de $ch au lieu de $curl.

J'en ai profité pour cleaner un peu le fichier PHP pour enlever le système de rafraichissement avec le token.

Le fichier PHP de mon post précédent a été remplacé.

 

J'ai également testé la mise en place du script PHP sur un NAS Qnap, à  la base pour aider Jorderic mais aussi pour, à  l'avenir, placer mes scripts directement sur mon NAS.

Je ne sais pas dans quelle mesure c'est compatible avec un autre NAS, mais je pense que la manière est la même.

 

Dans l'interface de mon "appli" sur Xee dev, j'ai ajouté dans Redirect uri mon adresse IP interne avec le numéro de port associé. (http://192.168.XXX.XXX:port)

Dans le script PHP, il faut écrire la même chose dans XEE_API_REDIRECT_URI afin que Xee nous autorise à  récupérer des infos.

Dans le VD, il faut compléter :

 

local host         = '192.168.XXX.XXX';
local path         = '';

 

Et remplacer ici 80 par votre numéro de port :

 

local function checkStatus()
  HC2 = Net.FHttp(host, 80);

 

Ceci est valable si vous utilisez un script hébergé chez vous. Sinon la méthode que j'ai décrite dans les posts précédents marche très bien sur un serveur web tiers.

 

Voici ce que cela donne pour la tension de la batterie au fil des jours, à  raison d'un enregistrement toutes les 15 minutes :

post-2186-0-94716900-1466454600_thumb.png

Lien vers le commentaire
Partager sur d’autres sites

Un grand merci àtibahut qui àforce de patience et de d'écoute, àréussi àme faire tourner ce petit boitier!

On arrive donc àrécupérer, grâce àla dernière version du script et du VD, les éléments et àles intégrer ànotre box (pour ma Volvo V40).

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...
  • 2 semaines après...

Merci thbahut, dommage que l’authentification saute ;)

 

j'utilise Tasker et AutoNotification pour récupérer les divers informations en attendant que le bug soit résolut ;)

 

si quelqu'un veut jeter un coup d'oeuil c'est ici

http://domotique-home.fr/exploiter-les-donnees-xeeconnect-avec-tasker/

 

J'adapte la vocalisation selon différents scenarios vers SARAH, PAW et Karotz ;)

Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...

salut

 

Ou en est le vd et script ?

 

faut il avoir un serveur web ouvert de l'extérieur ?  donc fichier ouvert ?

 

ou stocker le script de l'extérieur ?

 

merciiii  ((im envoyer a tibahut))

 

V2  =    

 

j'ai une erreur line 75 ::: doctor---adresse du patch?

 

la redirection url : ip/web/Script/xee   ou   ip/web/xee/index.php ?

Lien vers le commentaire
Partager sur d’autres sites

Bon... plusieurs essayé sur Jeedom , hc2 en script php sur server. ERREUR 404

Lors de la demande authentification du script sur les serveurs xeeconnect.

Demande d'aide au support Xee : support@xee.com ---> a l'attention de Mr julien Leconte ( vu le message, très gentil )

Réponse amicale : Support Xee (Support Xee)

26 oct. 17:05 CEST

Bonjour M. Reseau

Je me présente, Julien, Customer Happiness Officer chez Xee, en charge de la qualité produit et également utilisateur Jeedom àtitre personnel :)

Je vais essayer de comprendre votre soucis car, j'ai rencontré la même erreur cette semaine avec le plugin XeeCloud et Jeedom. Ce plugin n'étant pas développé chez nous, je ne peux pas m'assurer qu'il s'agit du même problème que le mien.

J'ai par ailleurs posté ma problématique dans le forum mais n'ai pas reçu de réponse. Toutefois, j'ai réussi àle faire fonctionner entre temps. Le lien vers le forum àtitre d'info : https://www.jeedom.com/forum/viewtopic.php?f=28&t=11248&p=388197

J'ai constaté qu'en passant par la redirection DNS de Jeedom, j'avais d'énorme soucis (et pas qu'avec ce plugin) en recevant des erreurs 500 et, quand j'arrivais finalement àla passer, des erreurs 404 sur la page Xee.

J'ai donc modifié la config Jeedom pour écouter également le port http "82", que j'ai pu rediriger dans ma box Internet. De ce fait, j'utilise désormais un autre DNS (celui de mon NAS Synology) pour accéder àma Jeedom.

Sous Jeedom dans le paramétrage réseau externe, j'ai entré mon nouveau domaine HTTP : MaBox.Synology.me port 82

J'ai ensuite récupéré le lien de redirection du plugin Xeecloud, àfournir dans l'espace Dev type : http://Mabox.synology.me:82/plugins/XeeCloud/3rdparty/oauth.php

J'ai ensuite recréé une app sur l'espace Dev.Xee.com en y entrant ce lien et rentré de nouveau mes clés dans le plugin.

Ensuite cela fonctionne comme avant. Je viens de le refaire àl'instant et, la première fois j'ai récupéré une 404 (peut être une mauvaise manip de ma part). La seconde fois c'est passé, j'ai pu ajouter mon véhicule ainsi que le second dans la foulée sans soucis.

Je ne sais pas si ces recommandations vous permettrons de trouver la solution, mais si vous passez par les DNS Jeedom, c'est peut être làque ce situe le problème.

N'hésitez pas àme remonter les informations

Cordialement,

Julien Leconte

Plus on sera plusieurs mieux serait ce ! Nico

Lien vers le commentaire
Partager sur d’autres sites

A savoir une : je suis en Jeedom docker syno donc une mon port est déjàrediriger autre que 80. ET je suis en Basic Jeedom donc pas de DNS jeedom.

De deux : meme problème avec script php ,,, mais la je crois , Pas de port direct puisque c'est le php qui fait la liaison interne.???! 'Tibahut'.

AVIS pour retour . Brrrrr

Lien vers le commentaire
Partager sur d’autres sites

Mon envoie.

On est plusieurs àne pas réussir àLE connectée se boîtier.

Pour vous répondre : c'est a la fin , sur l'authentification sur le serveur Xee que 404.

Jeedom--> je suis sur docker syno, mon port est déjàredirectionner autre que '80'.

Deux : je suis en Jeedom Basic donc Pas de DNS Jeedom (exclu en basic) mais j'ai une freebox ET j'ai un DNS interne.

Sur Fibaro : j'ai dépose un script sur server php, et apparemment pas de redirection de port a faire.

Si vous voulez POUR un échange cordiale plus sympa, joignez vous au forum, les retours de chacun sont très utile .

Moi c'est philippe, Pas Mr reseau de l'email lol.

Nos échanges seront plus rapide et vos ventes aussi lololol que d'argument Hihihi.

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...