Fredric Posté(e) le 22 août 2014 Signaler Posté(e) le 22 août 2014 bonjour à tous, j'ai acheté un module Netatmo que j'ai reçu aujourd'hui et je suis un peu déçu , je comptais le mettre à l’extérieur, mais je viens de m'apercevoir qu'il existe que des module additionnel "intérieur". bref, je souhaite récupérer ses valeur dans la HC2 comme la station mais je ne sais par ou commencer. je suppose qu'il faut modifier le PHP, mais comment appeler ce module? quelqu'un a t'il rajouté un module? 1
Krikroff Posté(e) le 22 août 2014 Signaler Posté(e) le 22 août 2014 Oui nous sommes nombreux a utiliser la station netatmo avec le HC2 et il existe pal de solution niveau intégration: script php, script google, asp.net C# etc le truc c'est que netamto utilise Oauth qui demande le support Https qui n'est toujours pas supporté par le HC2 donc il faut une passerelle Moi j'ai opté pour un proxy codé en C# pour l'intégration mais le plus simple reste encore la solution php ... il y a un tuto sur domotique-info et aussi sur le forum Envoyé de mon GT-P5210 en utilisant Tapatalk
Fredric Posté(e) le 22 août 2014 Signaler Posté(e) le 22 août 2014 merci Krikroff, désolé, j'ai du mal m'exprimé . j'ai effectivement fait par le PHP sur mon nas avec la station météo, mais là , j'ai rajouté un module à la station météo et je voudrais également l'intégrer dans un vd.
Krikroff Posté(e) le 22 août 2014 Signaler Posté(e) le 22 août 2014 Non c'est moi qui ai mal lu oui pour cela il faut modifier le php qui de base il me semble n'intègre pas les modules externes, n'utilisant pas cete solution je ne vais pas pouvoir être dune grande aide Envoyé de mon GT-P5210 en utilisant Tapatalk
Fredric Posté(e) le 22 août 2014 Signaler Posté(e) le 22 août 2014 je pense que c'est dans cette partie qu'il faut rajouter le module mais je ne sais même pas le nommer, je cherche sur le site des renseignement sur l'API... $url_devices = "https://api.netatmo.net/api/devicelist?access_token=" . $params['access_token']; $resulat_device = file_get_contents($url_devices); $json_devices = json_decode($resulat_device,true); $module_interne = $json_devices["body"]["devices"][0]["_id"]; $module_externe = $json_devices["body"]["modules"][0]["_id"]; $url_mesures_internes = "https://api.netatmo.net/api/getmeasure?access_token=" . $params['access_token'] . "&device_id=" . $module_interne . "&scale=max&type=Temperature,CO2,Humidity,Pressure,Noise&date_end=last"; $mesures_internes = file_get_contents($url_mesures_internes); $url_mesures_externes = "https://api.netatmo.net/api/getmeasure?access_token=" . $params['access_token'] . "&device_id=" . $module_interne . "&module_id=" . $module_externe . "&scale=max&type=Temperature,Humidity&date_end=last"; $mesures_externes = file_get_contents($url_mesures_externes); if ($intext == "int") echo $mesures_internes ; else echo $mesures_externes ;
Krikroff Posté(e) le 22 août 2014 Signaler Posté(e) le 22 août 2014 Dans l'api l'adresse du module doit apparaître dans le node devices Envoyé de mon GT-P5210 en utilisant Tapatalk
Krikroff Posté(e) le 22 août 2014 Signaler Posté(e) le 22 août 2014 le https://api.netatmo.net/api/devicelist retourne un truc comme cela: { "status":"ok", "body":{ "[color=#ff0000]modules[/color]":[ { xxx } ], "[color=#ff0000]devices[/color]":[ { "_id":"xx:xx:xx:xx:xx:x", "access_code":"xxxxxxxxxxxxxxxxxxxxxx", "alarm_config":{}, "battery_vp":0, "co2_abc_status":"co2_abc", "co2_calibrating":false, "date_setup":{}, "firmware":87, "invitation_disable":true, "last_status_store":1408217814, "meteo_alarms":[], "module_name":"Int\u00e9rieur", "[color=#ff0000][b]modules[/b][/color]":[ "02:00:00:00:57:b4", "xx:xx:xx:xx:xx:xx" ], "place":{}, "public_ext_data":true, "station_name":"Maison", "type":"NAMain", "wifi_status":69, "dashboard_data":{ "AbsolutePressure":1007.8, "time_utc":1408217550, "Noise":55, "Temperature":21.1, "Humidity":63, "Pressure":1020.2, "Particle":11939, "CO2":634, "date_max_temp":1408192415, "date_min_temp":1408169108, "min_temp":19.8, "max_temp":21.2 }, "data_type":[ "Temperature", "Co2", "Humidity", "Noise", "Pressure" ] } ] }, "time_exec":0.029767036437988, "time_server":1408233011 } dans la list des devices il y a la liste des modules, je pense que c'est cela. donc je pense que l'idée serait.. $module_interne = $json_devices["body"]["devices"][0]["_id"]; traitement ... puis $module_interne = $json_devices["body"]["devices"][1]["_id"]; nouveau traitement vers un $mesures_internes_modules2
Fredric Posté(e) le 22 août 2014 Signaler Posté(e) le 22 août 2014 ah oui, c'est ça qui m'avait échappé Merci, je pense que je vais aller au lit j'ai compris l'idée, mais cela dépasse mes compétences
Fredric Posté(e) le 23 août 2014 Signaler Posté(e) le 23 août 2014 me revoilà avec mon PHP, je n'ai jamais fait de PHP, j'ai essayé de modifier le fichier, mais bien entendu, ça ne fonctionne pas. je post le code en soulignant ce que j'ai modifier,au cas ou une âme charitable et qui connaisse le PHP, jette un Å“il. le but étant de récupérer les données d'un module aditionnel dans la HC2. merci par avance <?php $intext=$_GET['intext']; $password="********"; $username="************"; $app_id = "*****************"; $app_secret = "***********************"; $token_url = "https://api.netatmo.net/oauth2/token"; $postdata = http_build_query( array( 'grant_type' => "password", 'client_id' => $app_id, 'client_secret' => $app_secret, 'username' => $username, 'password' => $password ) ); $opts = array('http' => array( 'method' => 'POST', 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => $postdata ) ); $context = stream_context_create($opts); $response = file_get_contents($token_url, false, $context); $params = null; $params = json_decode($response, true); $api_url = "https://api.netatmo.net/api/getuser?access_token=" . $params['access_token']; $requete = file_get_contents($api_url); $url_devices = "https://api.netatmo.net/api/devicelist?access_token=" . $params['access_token']; $resulat_device = file_get_contents($url_devices); $json_devices = json_decode($resulat_device,true); $module_interne = $json_devices["body"]["devices"][0]["_id"]; $module_externe = $json_devices["body"]["modules"][0]["_id"]; $module_interne2 = $json_devices["body"]["devices"][1]["_id"]; $url_mesures_internes = "https://api.netatmo.net/api/getmeasure?access_token=" . $params['access_token'] . "&device_id=" . $module_interne . "&scale=max&type=Temperature,CO2,Humidity,Pressure,Noise&date_end=last"; $mesures_internes = file_get_contents($url_mesures_internes); $url_mesures_externes = "https://api.netatmo.net/api/getmeasure?access_token=" . $params['access_token'] . "&device_id=" . $module_interne . "&module_id=" . $module_externe . "&scale=max&type=Temperature,Humidity&date_end=last"; $mesures_externes = file_get_contents($url_mesures_externes); $url_mesures_internes2 = "https://api.netatmo.net/api/getmeasure?access_token=" . $params['access_token'] . "&device_id=" . $module_interne . "&module_id=" . $module_interne2 . "&scale=max&type=Temperature,CO2,Humidity&date_end=last"; $mesures_internes2 = file_get_contents($url_mesures_internes2); if ($intext == "int") echo $mesures_internes ; else echo $mesures_externes ; else echo $mesures_internes2 ; ?>
Shyrka973 Posté(e) le 24 août 2014 Signaler Posté(e) le 24 août 2014 Salut Fredric, Peux-tu essayer ce script ?
Fredric Posté(e) le 24 août 2014 Signaler Posté(e) le 24 août 2014 j'ai réussi àmodifier le PHP initial pour rajouter un module interne. le voici: les lignes modifiés sont: la ligne 43, de 55 à60 et 64 à68. <?php $intext=$_GET['intext']; $password="xxxxx"; $username="xxxxxxxx"; $app_id = "xxxxxxxxxxxxxxxx"; $app_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; $token_url = "https://api.netatmo.net/oauth2/token"; $postdata = http_build_query( array( 'grant_type' => "password", 'client_id' => $app_id, 'client_secret' => $app_secret, 'username' => $username, 'password' => $password ) ); $opts = array('http' => array( 'method' => 'POST', 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => $postdata ) ); $context = stream_context_create($opts); $response = file_get_contents($token_url, false, $context); $params = null; $params = json_decode($response, true); $api_url = "https://api.netatmo.net/api/getuser?access_token=" . $params['access_token']; $requete = file_get_contents($api_url); $url_devices = "https://api.netatmo.net/api/devicelist?access_token=" . $params['access_token']; $resulat_device = file_get_contents($url_devices); $json_devices = json_decode($resulat_device,true); $module_interne = $json_devices["body"]["devices"][0]["_id"]; $module_externe = $json_devices["body"]["modules"][0]["_id"]; $module_interne2 = $json_devices["body"]["modules"][1]["_id"]; $url_mesures_internes = "https://api.netatmo.net/api/getmeasure?access_token=" . $params['access_token'] . "&device_id=" . $module_interne . "&scale=max&type=Temperature,CO2,Humidity,Pressure,Noise&date_end=last"; $mesures_internes = file_get_contents($url_mesures_internes); $url_mesures_externes = "https://api.netatmo.net/api/getmeasure?access_token=" . $params['access_token'] . "&device_id=" . $module_interne . "&module_id=" . $module_externe . "&scale=max&type=Temperature,Humidity&date_end=last"; $mesures_externes = file_get_contents($url_mesures_externes); $url_mesures_internes2 = "https://api.netatmo.net/api/getmeasure?access_token=" . $params['access_token'] . "&device_id=" . $module_interne . "&module_id=" . $module_externe . "&module_id=" . $module_interne2 . "&scale=max&type=Temperature,Humidity,CO2&date_end=last"; $mesures_internes2 = file_get_contents($url_mesures_internes2); if ($intext == "int") echo $mesures_internes ; if ($intext == "ext") echo $mesures_externes ; if ($intext == "mod") echo $mesures_internes2 ; ?> il faut rajouter dans la passerelle la partie de code ci-dessous et créer 3 variables : NetModInt NetModco2Int NetModHumInt -- Netatmo Module intérieur FHTE = Net.FHttp("xxx.xxx.xxx.xxx") local response, status, errorCode = FHTE:GET("/netatmo/netatmo.php?intext=mod") if tonumber(status) == 200 then jsonTable = json.decode(response) fibaro:setGlobal("NetModTempInt", jsonTable.body[1].value[1][1]); fibaro:setGlobal("NetModHumInt", jsonTable.body[1].value[1][2]); fibaro:setGlobal("NetModco2Int", jsonTable.body[1].value[1][3]); fibaro:debug("mis àjour Int"); else -- oups il y a un problème... fibaro:debug("Err: " .. status); end 1
Berale64 Posté(e) le 2 septembre 2015 Signaler Posté(e) le 2 septembre 2015 Quelqu'un a-t-il déjà testé le plugin Netatmo??? il faut mettre quoi ? C'est quoi client ID, client Secret ? Connection configuration Username: Password: Client ID: Client Secret:
Lazer Posté(e) le 2 septembre 2015 Signaler Posté(e) le 2 septembre 2015 Il faut que tu ailles làpour te créer un ID associé àta station : https://dev.netatmo.com/dev/createapp
mprinfo Posté(e) le 2 septembre 2015 Signaler Posté(e) le 2 septembre 2015 Que veux tu c'est un dieux Je vais demander àmoicPhil si on peux pas lui faire une statue ànotre gourou LAZER Envoyé de mon SM-G900F en utilisant Tapatalk
Fredric Posté(e) le 2 septembre 2015 Signaler Posté(e) le 2 septembre 2015 Vous avez été un petit peu vite àl'appeler Dieu, À l'allure ou il post, il y aura vite dépassé les 10 000 messages!! Et là, qu'est-ce qui est au-dessus de Dieu ? ;p
HANSOLO Posté(e) le 2 septembre 2015 Signaler Posté(e) le 2 septembre 2015 Une élévation vers un niveau de vie supérieure?
Nico Posté(e) le 2 septembre 2015 Signaler Posté(e) le 2 septembre 2015 De toute façon qu'est ce Dieu. Rien àcôté de l'Elephant...
Did Posté(e) le 2 septembre 2015 Signaler Posté(e) le 2 septembre 2015 Un coup de mars, et ça repart.
Berale64 Posté(e) le 3 septembre 2015 Signaler Posté(e) le 3 septembre 2015 J'ai profité de l'offre Amazon et je dois dire que je suis très content de mon achat. Installation sans problèmes, accès depuis Ipad, Tel Android, et intégration dans la HC2 grâce à Dieu !!! Contrairement à ce que j'ai pu lire de-ci de-là , les infos des deux modules sont cohérentes. J'ai aussi fait quelques recherches sur le net pour me faire des icônes sympas. Baromètre, CO2 et sonomètre. 1
Lazer Posté(e) le 4 septembre 2015 Signaler Posté(e) le 4 septembre 2015 Le voici enfin : Netatmo lance Wind Gauge, un anémomètre connecté pour 99 euros disponible courant octobre.
BenjyNet Posté(e) le 4 septembre 2015 Signaler Posté(e) le 4 septembre 2015 Donc les capteurs seraient àprésent précis/calibré ? Hummm une grande première alors ! Si c'est le cas je vais investir !
Lazer Posté(e) le 4 septembre 2015 Signaler Posté(e) le 4 septembre 2015 Qu'est ce qui te fait dire que ça sera précis/calibré ? D'après Captain Igloo, àce prix là, ça ne peut pas être de la grande précision.... je me souviens d'une discussion où il disait que le matériel équivalent (àbase de mesure par capteur ultra-son) tournait àau moins 200€. Donc àvoir, mais Netatmo reste pour moi du produit grand public connecté. De toutes façon, le positionnement d'un anémomètre doit respecter des règles assez précises pour bien capter le vent, donc c'est pas en ville sur un balcon qu'il va donner de bons résultats, calibré ou pas. 1
BenjyNet Posté(e) le 4 septembre 2015 Signaler Posté(e) le 4 septembre 2015 C'était suite àce que disait Berale24, si j'ai bien compris en mettant 2 capteurs côte/côte il a les même mesures. Effectivement Netatmo reste du grand public mais bon, c'est con de ne pas avoir une station potable connectée.
Messages recommandés