-
Compteur de contenus
166 -
Inscription
-
Dernière visite
-
Jours gagnés
1
Tout ce qui a été posté par tibahut
-
Topic unique Boîtier Connecté Pour Voiture Xeeconnect
tibahut a répondu à un(e) sujet de tibahut dans Périphériques et matériels autres
Tu l'as pris où ? Chez norauto avec le code 2903214001017, je l'ai eu à 119 euros en retrait en magasin. -
Topic unique Boîtier Connecté Pour Voiture Xeeconnect
tibahut a posté un sujet dans Périphériques et matériels autres
Je n'ai pas vu de sujet concernant cet objet donc je vais faire une petite description. Il s'agit d'un boîtier connecté pour voiture et qui se branche pour la plupart des modèles sur le port OBD2 de cette dernière, pour les autres il faut le faire installer par un professionnel. Que fait donc ce boîtier ? Ici la page de présentation sur le site officiel : http://www.xee.com/comment-ca-marche/ Ce boîtier rend les voitures compatibles connectées grâce à la récupération des informations de diagnostic sur la prise OBD2 par laquelle il est aussi alimenté. Il comprend pour plus d'informations une balise GPS, un accéléromètre ainsi qu'une carte SIM de l'opérateur Orange pour envoyer les données sur leurs serveurs. Le point intéressant est qu'il n'y a pas d'abonnement à payer. C'est comme ça que j'ai pu connecter ma vieille Laguna 2 de 2003, qu'aucun autre boîtier OBD2, même en bluetooth ne reconnaissait. La fonctionnalité principale du boîtier est de savoir si notre véhicule roule et sa position. De plus, suivant les modèles, il est possible de récupérer le niveau d'essence, si les feux sont restés allumés ou encore si la voiture n'est pas fermée. Là où ça devient encore plus intéressant, c'est qu'il y a une API pour récupérer les données et que l'on peut se créer un compte développeur afin de créer notre propre application. Je me suis donc inscrit et je me suis créé une application de test pour récupérer mes données via un script PHP sur mon serveur. Ma box récupère ensuite le JSON pour l'afficher dans un module virtuel. Voici le lien pour s'inscrire en tant que développeur pour accéder à l'API : https://dev.xee.com/ Il est possible de récupérer les informations concernant l'utilisateur, la voiture et son status et l'historique des trajets. MAJ du 18/05/2016 : Ajout en pièce jointe du module virtuel de test pour Fibaro HC2. Je laisse l'url de test afin que vous puissiez voir le rendu et le contenu du JSON. Attention, le contenu du fichier JSON de test est compilé à partir de plusieurs requêtes effectuées sur l'API. Je vous prépare pour bientôt un exemple de fichier PHP à mettre sur un serveur. Il me reste un point bloquant qui est l'identification obligatoire par le site de Xee. MAJ du 23/05/2016 : nouvelle version du module virtuel V1 pour Fibaro HC2 avec 2 icônes, le script PHP à mettre sur votre serveur et un mini tuto pour faire votre application sur le site de Xee. Prérequis pour pouvoir récupérer des données de l'API, l'inscription sur le site de développement de Xee : https://dev.xee.com/ NB : je pense que l'on peut utiliser son compte Xee pour se connecter à Xee dev, à vérifier. Une fois l'inscription réalisée, il faut créer une nouvelle application comme suit : Vous obtiendrez alors un client ID et un secret ID qu'il faut précieusement garder sinon il faudra refaire une nouvelle application. Ces IDs vous seront utile pour faire fonctionner le script PHP. Script PHP pour faire l'interface entre l'API de Xee et la box domotique (à installer sur un serveur web accessible depuis la HC2) : 1. Remplacer les données dans les constantes en haut du fichier par celles que vous avez renseignées lors de la création de votre application et celles que vous avez obtenues : XEE_API_CLIENT_ID, XEE_API_SECRET_ID et XEE_API_REDIRECT_URI. 2. Déposer le fichier sur votre serveur à l'emplacement XEE_API_REDIRECT_URI. 3. Aller sur la page via un navigateur. Vous devez arriver sur une page de connexion où il faut renseigner vos identifiants Xee. 4. Récupérer le refresh_token dans le code JSON retourné et l'ajouter dans le module de la HC2. (variable defaultToken). <?php define('XEE_API_CLIENT_ID', 'votreclientid'); define('XEE_API_SECRET_ID', 'votresecretid'); define('XEE_API_REDIRECT_URI', 'http://votre-serveur.com/le/chemin/de/votre/script/php'); define('XEE_API_DEFAULT_URL', 'https://cloud.xee.com/v3/'); /** * get data from the web service * @return array agreggation from all results */ function getData() { $totalResults = array(); $totalResults['token'] = getAccessToken(); $totalResults['user'] = getUserData($totalResults['token']['access_token']); $totalResults['car'] = getCarData($totalResults['token']['access_token'], $totalResults['user']['id']); $totalResults['carStatus'] = getCarStatusData($totalResults['token']['access_token'], $totalResults['car']['id']); return $totalResults; } /** * get connected user data * @param string $accessToken access token * * @return array all informations about me */ function getUserData($accessToken) { return getRequest( XEE_API_DEFAULT_URL . 'users/me', $httpHeaders = array( 'authorization: Bearer ' . $accessToken, 'cache-control: no-cache' ) ); } /** * get user's car data * @param string $accessToken access token * @param int $userId car's owner * * @return array all informations about the first car */ function getCarData($accessToken, $userId) { $carData = getRequest( XEE_API_DEFAULT_URL . 'users/' . $userId . '/cars', $httpHeaders = array( 'authorization: Bearer ' . $accessToken, 'cache-control: no-cache' ) ); //get only the first car return $carData[0]; } /** * get car status * @param string $accessToken access token * @param int $carId car id * * @return array all informations about car status */ function getCarStatusData($accessToken, $carId) { $carStatusData = getRequest( XEE_API_DEFAULT_URL . 'cars/' . $carId . '/status', $httpHeaders = array( 'authorization: Bearer ' . $accessToken, 'cache-control: no-cache' ) ); return $carStatusData; } /** * automatic switch to get the first token from first connection * or to get a fresh token from the web service * @return array access token, refresh token and expiration date */ function getAccessToken() { if (isset($_GET['token']) && !empty($_GET['token'])) { return getFreshToken($_GET['token']); } elseif (isset($_GET['code']) && !empty($_GET['code'])) { return getToken($_GET['code']); } firstConnection(); } /** * get an access token and a new refresh token from a refresh token * @param string $refreshToken current refresh token * @return array access token, refresh token and expiration date */ function getFreshToken($refreshToken) { return getToken($refreshToken, 'refresh_token'); } /** * generic function to get a token * @param string $key authorization code or refresh token * @param string $type grant type * * @return array access token, refresh token and expiration date */ function getToken($key, $type = '') { switch ($type) { case 'refresh_token': $parameters = 'grant_type=refresh_token&refresh_token=' . $key; break; default: $parameters = 'grant_type=authorization_code&code=' . $key; break; } return postRequest( XEE_API_DEFAULT_URL . 'auth/access_token', $parameters, $httpHeaders = array( 'authorization: Basic ' . base64_encode(XEE_API_CLIENT_ID . ':' . XEE_API_SECRET_ID), 'cache-control: no-cache', 'content-type: application/x-www-form-urlencoded' ) ); } /** * first Connection to the webservice with an Oauth authentification */ function firstConnection() { $urlParams = array( 'client_id' => XEE_API_CLIENT_ID, 'scope' => 'users_read cars_read trips_read signals_read locations_read status_read', 'redirect_uri' => XEE_API_REDIRECT_URI ); header('Location: ' . XEE_API_DEFAULT_URL . 'auth/auth?' . http_build_query($urlParams)); die; } /** * do a request with POST method * @param string $url url do do the request * @param string $postFields keys/values to POST * @param array $httpHeaders additionnal HTTP headers * * @return array json decoded request result */ function postRequest($url, $postFields, $httpHeaders = array()) { return sendRequest($url, $requestType = 'POST', $postFields, $httpHeaders); } /** * do a request with GET method * @param string $url url do do the request * @param array $httpHeaders additionnal HTTP headers * * @return array json decoded request result */ function getRequest($url, $httpHeaders = array()) { return sendRequest($url, $requestType = 'GET', $postFields = '', $httpHeaders); } /** * generic function to make curl request * @param string $url url do do the request * @param string $requestType request type : GET or POST * @param string $postFields keys/values urlencoded for POST method * @param array $httpHeaders additionnal HTTP headers * * @return array json decoded request result */ function sendRequest($url, $requestType = 'GET', $postFields = '', $httpHeaders = array()) { $curl = curl_init(); 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, ) ); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { die('cURL Error #:' . $err); } else { return json_decode($response, true); } } // display json encoded data echo json_encode(getData()); exit; Et enfin, installation du module : 1. Importer le module 2. Ajouter les 2 icônes, vert pour l'icône par défaut et rouge pour l'icône en erreur 3. Modifier les paramètres du module : Voici les paramètres à modifier dans le module pour que celui-ci récupère les données : local host = 'votre-serveur.com'; local path = '/chemin/ou/se/trouve/le/fichier/php'; local defaultToken = 'token a récupérer lors de la première connexion au script PHP dans un navigateur'; local iconNok = numéro de l’icône quand le script est déconnecté de l'API, soit xee_fail.png; 4. Enjoy ! XeeConnect.vfib -
Topic unique Ecocompteur Legrand
tibahut a répondu à un(e) sujet de Yohan dans Périphériques et matériels autres
Je n'avais pas vu que vous aviez fait un topic concernant l'éco compteur Legrand. Je l'ai acheté en octobre 2015 lors de la refonte de mon tableau électrique. J'en ai eu pour 160 euros environ chez PKE avec 5 pince ampèremétriques. L'électricien qui m'a refait le tableau m'a fait exprès des boucles avec les phases afin que je puisse les changer facilement. Je confirme qu'on peut accéder à l'API en trichant un peu en regardant les requêtes faites par l'interface web. Je n'ai trouvé aucune documentation sur l'API en elle-même. La page principale de l'interface web appelle en ajax toutes les secondes une page qui retourne du JSON. Je me suis servi de cette page pour faire un module virtuel dans la HC2 afin de récupérer les données des 5 mesures prises par les pinces. Je vous confirme que cela fonctionne très bien. -
La version minifiée d'un fichier de code nettoie tout ce qui n'est pas utile au code pour fonctionner. C'est à dire les espaces, les commentaires, les caractères inutiles. De plus, tout le code est transformé pour prendre le moins de place possible. Du genre "function recupereUnIdChezFibaro()" en "function a()". Le code tient donc sur une ligne et prend beaucoup de "place" en moins au niveau de sa taille en mémoire. Il y a donc un fichier pour développer : GEA.lua qui est tout beau et bien lisible pour ne pas décourager les gens à développer dessus ^^ Et il y a un fichier pour installer sur la HC2 en production qui, de toutes façons ne doit pas être touché.
- 12 330 réponses
-
- 1
-
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Merci pour le merge, désolé de ne pas avoir vu le soucis hier pour le patcher rapidement. De toute façon, c'est le code de Steven ^^ donc la ligne reste la même àpatcher ^^
- 12 330 réponses
-
- 2
-
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Je suis de près le topic de GEA ^^ pour être réactif, mais je ne pensais pas qu'on en parlerai dans le sujet d'une beta ^^ Oui, pour les fuites mémoire, le "while true" de GEA y contribue. Mais tant que Fibaro ne nous donnera pas les moyens de passer outre, nous n'aurons pas le choix.
-
Bonsoir, Bon, je n'ai pas été aussi réactif que Steven, donc je viens seulement de faire une PR sur github pour mettre à jour "ma" version. C'est la même que celle de Steven, hein ! C'est juste que j'ai beautifié un peu le code pour s'y retrouver un peu mieux. Les seules erreurs que j'ai pu faire sont de mal retranscrire le code original. Moi, j'ai ma version en prod ^^ (même une nouvelle mise à jour que je suis en train de tester). Et j'ai surtout ajouté une version minifiée pour que cela prenne moins de place. Après, pour la mémoire, je pense que ça dépend surtout des scripts de chacun. Je ne pense pas que "ma" version soit plus ou moins performante que celle d'avant.
-
Topic unique Fibaro - Smoke Detector - Fgsd-002
tibahut a répondu à un(e) sujet de Fanou dans Modules Fibaro
Merci pour la précision Lazer. Il faut que je le retienne en me disant que c'est la taille maximum supportée par IPv4 en octets ^^ -
Topic unique Fibaro - Smoke Detector - Fgsd-002
tibahut a répondu à un(e) sujet de Fanou dans Modules Fibaro
Il me semble que le paramètre a une valeur max de 65 000 ou un nombre proche de celui-ci. Si quelqu'un a le nombre exact. Car j'ai eu le même soucis en voulant le mettre à 86400 ^^ -
Ah les joies de la domotique ^^ J'ai moi-même un peu de mal encore avec GEA car il faut du temps pour comprendre toutes les possibilités. Mais ça va venir, c'est en faisant des erreurs qu'on apprend Joyeux anniversaire alors ! ^^ (si c'est bien aujourd'hui est pas un test).
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
C'est rigolo, je suis en train actuellement d'essayer de refactoriser le code qui parse les dates dans GEA. Est-ce que tu as essayé d'enlever l'année : GEA.add(true, 30, "Anniversaire Christian", {{"Global", "Karotz", "Joyeux anniversaire, Christian !"},{"VirtualDevice", 68, 1},{"Time", "12:00", "12:00"},{"Time", "18:00", "18:00"},{"Dates", "14/02", "14/02"}}) Car je pense que les [ ] veulent dire que l'année est optionnelle. Et les anniversaires, c'est tous les ans ^^ Il y a ces lignes là dans GEA qui me font penser que c'est à cause de l'année entre crochets qui fait buger le tout : if (string.len(from) == 5) then from = from .. "/" .. os.date("%Y") end Et donc il faut bien mettre juste le jour et le mois pour qu'il prenne l'année courante et donc te souhaiter ton anniversaire tous les ans Je pense aussi que pour les "Time", il faut laisser 1 minute entre le début et la fin pour être sà»r que l'événement se déclenche bien car GEA est exécuté toutes les 30 secondes. {"Time", "12:00", "12:01"},{"Time", "18:00", "18:01"}
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Topic unique Fibaro - Motion Sensor - Fgms-001
tibahut a répondu à un(e) sujet de Moicphil dans Modules Fibaro
Il faut le dévisser, et il y a un bouton blanc àl'intérieur. Personnellement, j'appuie 3 fois rapidement, il se met àclignoter bleu, et je rappuie 3 fois pour être sûr que la demande est bien prise en compte. Dans l'interface fibaro, on voit les paramètres défiler en haut au centre, ce qui signifie que la box récupère et envoie les nouveaux paramètres. -
Topic unique Fibaro - Motion Sensor - Fgms-001
tibahut a répondu à un(e) sujet de Moicphil dans Modules Fibaro
Yep C'est bizarre que ça ne fonctionne pas. Quand tu changes un paramètre, tu réveilles le module après ? Sinon, il garde l'ancien paramètre. Il faut avoir en tête que l'interface n'est mise à jour que quand le module a pris en compte ses nouveaux paramètres, et donc qu'il a été réveillé. -
Topic unique Fibaro - Motion Sensor - Fgms-001
tibahut a répondu à un(e) sujet de Moicphil dans Modules Fibaro
Bonjour, En fait, il faut déjà chercher sur le forum Voici ma méthode qui marche avec tous les modules pour changer les paramètres sans prise de tête : C'est d'abord de changer le paramètre de réveil à 5 secondes. Cela permet un enregistrement rapide des autres paramètres. Il faut bien sà»r le réveiller manuellement la première fois. Ensuite on peut modifier les autres paramètres, enregistrer et attendre 5 secondes. On actualise la page (F5) et on regarde si les paramètres sont bien gardés. Une fois tout bien réglé, on change le paramètre de réveil à 18000 ou plus et on enregistre. à‡a m'a vraiment simplifié le paramétrage de tous mes modules ! -
Topic unique Fibaro - Smoke Detector - Fgsd-002
tibahut a répondu à un(e) sujet de Fanou dans Modules Fibaro
Normalement, il ne faut pas installer un détecteur de fumée dans la cuisine ou proche àcause de cela. Si il n'est pas près de la cuisine, il faut alors régler la sensibilité ou faire cuire moins fort les steaks ^^ -
Topic unique Fibaro - Motion Sensor - Fgms-001
tibahut a répondu à un(e) sujet de Moicphil dans Modules Fibaro
Pour moi aussi, je ne comprenais pas que mes paramètres ne soient pas pris en compte. En fait, la bonne méthode, je trouve, c'est d'abord de changer le paramètre de réveil à 5 secondes. Cela permet un enregistrement rapide des autres paramètres. Il faut bien sà»r le réveiller manuellement la première fois. Ensuite on peut modifier les autres paramètres, enregistrer et attendre 5 secondes. On actualise la page (F5) et on regarde si les paramètres sont bien gardés. Une fois tout bien réglé, on change le paramètre de réveil à 18000 ou plus et on enregistre. à‡a m'a vraiment simplifié le paramétrage de tous mes modules ! -
Il reste le soucis du "S" àVOLET je pense.
- 12 330 réponses
-
- 1
-
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Bon, sur ce je retourne débugger l'application de mon taff. C'est moins amusant :/
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Moi je vois ça dans les paramètres qui ont été postés en pièce jointe ... local id = { FRIGIDAIRE = 110, CONGELATEUR = 112, VOLET_BUREAU = 74 } GEA.add( true, 30, "", {{"Time", "21:53", "21:55"}, {"Close", id["VOLETS_BUREAU"]}}) Donc VOLET_BUREAU != VOLETS_BUREAU
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Concernant le code de GEA, il y a plusieurs choses. En premier, il y a le code de base, qui contient plus ou moins de bugs. En second, il y a les forks et améliorations qui contiennent plus ou moins de bugs. Et en troisième, il y a les lignes ajoutées par chacun pour son utilisation qui contiennent plus ou moins de bugs. Le plus difficile est donc de savoir où se situent les bugs que les gens rencontrent pour pouvoir les patcher. Lorsque GEA plante, tu as le numéro d'une ligne. Le soucis est que ce numéro dépend du nombre d'instructions GEA que tu as ajoutées. C'est pour cela que personne n'a le même nombre de ligne dans le script GEA, sans compter les versions.
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Topic unique Fibaro - Smoke Detector - Fgsd-002
tibahut a répondu à un(e) sujet de Fanou dans Modules Fibaro
"Cet appareil est conforme à la norme Européenne DAAF EN 14604:2005, et répond aux obligations de la réglementation française en vigueur pour ce type d'équipement. " Cela signifie que c'est forcément la version 2. Après, j'en ai déjà commandé 2, il ne vendent plus le 1 qui est interdit à la vente car non conforme. -
Topic unique Fibaro - Smoke Detector - Fgsd-002
tibahut a répondu à un(e) sujet de Fanou dans Modules Fibaro
C'est bon, c'est dispo sur la boutique en ligne. Faites vite !! -
Topic unique Fibaro - Smoke Detector - Fgsd-002
tibahut a répondu à un(e) sujet de Fanou dans Modules Fibaro
L'acheter en boutique ? Après avoir imprimé la page du site ? -
C'est bizarre car le code est le "même" sauf qu'il est minifié. Il devrait fonctionner ou GEA.lua devrait planter aussi :/
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
A noter que la mise àjour est dispo pour la HC2 et la HCLite.