Forum eedomus https://forum.eedomus.com/ |
|
smappee analyseur de consommation EDF https://forum.eedomus.com/viewtopic.php?f=13&t=1998 |
« Précédent Page 6 sur 6 |
Auteur: | ericpey [ 29 Juil 2017 20:29 ] |
Sujet du message: | Re: smappee analyseur de consommation EDF |
Et comment obtient-on les codes API des capteurs ? Merci Eric |
Auteur: | Patskins [ 30 Juil 2017 08:01 ] |
Sujet du message: | Re: smappee analyseur de consommation EDF |
Bonjour, Je n'avais pas vu le message précédent.En ce qui concerne les codes API des capteurs, le code est accessible dans les paramètres "expert" du capteur. |
Auteur: | ericpey [ 30 Juil 2017 11:07 ] | ||
Sujet du message: | Re: smappee analyseur de consommation EDF | ||
Merci pour votre réponse rapide. Alors, j'essaye de résumer où j'en suis (comme nouveau venu dans ce monde passionnant d'eedomus ) Pour installer Smappee sur eedomus: - Je customise le script PHP de votre post du 11 Déc 2015 15:35 avec les identifiants secrets que j'ai reçu de Smappee - Je charge sur eedomus le script PHP mis à jour - J'ajoute un nouveau périphérique dans eedomus, un 'HTTP capteur'. - Je l'appelle 'Smappee', usage 'Compteur d'électricité' - Je passe le type de données en Texte - Et c'est là où je ne le sens pas. Je rentre dans l'url de la requète le texte suivant avec l'API qui est identifiée dans la partie Expert. http://localhost/script/?exec=smappee_o ... 1589&cout=[VAR1] - Dans le Xpath, je mets '\' - Quand je teste, il me dis qu'il n'arrive pas à lire de valeur. Que dois-je faire? J'ai l'impression que vous créez un périphérique et après des capteurs par donnée mesurée mais je ne vois pas comment faire. Merci pour votre aide. Eric
|
Auteur: | Patskins [ 30 Juil 2017 21:13 ] | ||
Sujet du message: | Re: smappee analyseur de consommation EDF | ||
Il faut créer des capteurs, un par valeur, et c'est le code API de ces différents capteurs qui doit être mis dans le script. Exemple dans l'image suivante avec un capteur (consommation totale jour) et vue de l'ensemble des capteurs créés (dans canaux liés)
|
Auteur: | ericpey [ 31 Juil 2017 07:41 ] |
Sujet du message: | Re: smappee analyseur de consommation EDF |
Un très grand merci !! Ca marche Eric |
Auteur: | ericpey [ 01 Août 2017 22:11 ] |
Sujet du message: | Re: smappee analyseur de consommation EDF |
Comme j'ai des panneaux solaires, j'essaye de récupérer la production. J'ai créé deux capteurs (un pour la production, l'autre pour le prix) J'ai modifié le php (voir ci joint) J'ai modifié le lien de Smappe: http://localhost/script/?exec=smappee_o ... 1800&cout=[VAR1] Mais rien ne s'affiche dans mes capteurs alors que Smapee calcule bien ces valeurs. Où est-ce que j'ai un bug ? <? $regroupement = 3 ; // Regroupement de la conso par : //5 = quarter (4 mois ?) //4 = mois //3 = jours //2 = heure déconseillé //1 = 5 minutes déconseillé $commence = date('Y-m-d', strtotime('-1 day')); $timeto = strtotime("now"); // Current time $timefrom = strtotime($commence); $val_jour_id = getArg('valjour','-1'); $cout_jour_id = getArg('coutjour','-1'); $val_solar_id = getArg('valsolar','-1'); $cout_solar_id = getArg('coutsolar','-1'); $val_veille_id = getArg('valveille','-1'); $cout_veille_id = getArg('coutveille','-1'); $cout =$_GET['cout']; $CACHE_DURATION = 60 * 24; // 24h $last_xml_success = loadVariable('last_xml_success'); $cle = loadVariable('access_token'); if ((time() - $last_xml_success) / 60 > $CACHE_DURATION) { $post = "grant_type=password&client_id=xxxxx&client_secret=xxxxx&username=xxxxx&password=xxxxx"; $response = httpQuery("https://app1pub.smappee.net/dev/v1/oauth2/token", 'POST', $post); $json = sdk_json_decode($response); $cle = $json['access_token']; if ( isset($cle) ){ saveVariable('access_token', $cle); saveVariable('last_xml_success', time() ); echo 'nouvelle clé '.$cle.'<br>'; } } $headers = array("Authorization: Bearer ".$cle); // Liste des Smappees (normalement 1) $response = httpQuery("http://app1pub.smappee.net/dev/v1/servicelocation", 'GET', NULL, NULL , $headers, true); $json = sdk_json_decode($response); $serviceLocationId = $json['serviceLocations'][0]['serviceLocationId']; //$serviceLocationId = "8831"; // REcuperation de la conso $resconsumption = httpQuery('https://app1pub.smappee.net/dev/v1/servicelocation/'.$serviceLocationId.'/consumption?aggregation='.$regroupement.'&from='.$timefrom.'000&to='.$timeto.'000', 'GET', NULL, NULL , $headers, true); $objconsumption = sdk_json_decode($resconsumption); $consumptions = $objconsumption['consumptions']; foreach ( $consumptions as $item ) { $consumption = round($consumptions[$i]['consumption']/1000,2); $coutconso = round(($consumption)*$cout,2); $solar = round($consumptions[$i]['solar']/1000,2); $coutsolar = round(($solar)*$cout,2); $veille = round($consumptions[$i]['alwaysOn']/12000,2); $coutalways = round(($veille)*$cout,2); if ($veille == 0){ $i++; continue; } setValue($val_jour_id, $consumption, false); setValue($cout_jour_id, $coutconso, false); setValue($val_solar_id, $solar, false); setValue($cout_solar_id, $coutsolar, false); setValue($val_veille_id, $veille, false); setValue($cout_veille_id, $coutalways, false); $i++; } |
Auteur: | Patskins [ 02 Août 2017 07:02 ] |
Sujet du message: | Re: smappee analyseur de consommation EDF |
Bonjour, A première vue, dans le lien est transmis la valeur "solar" (&solar=682373) alors que dans le script est attendue la valeur "valsolar" ($val_solar_id = getArg('valsolar','-1')), ça ne peut pas fonctioner |
Auteur: | rover820i [ 02 Août 2017 09:15 ] |
Sujet du message: | Re: smappee analyseur de consommation EDF |
Salut, Je ne connais pas l'API de smappee alors il me sera difficile de t'aiguiller mais on va corriger quelques erreurs de ton script :
sur eedomus doit devenir :
Cette ligne n'est pas bonne car il manque les secondes. Il faut :
Erreur de variable aussi soulevée par Patskins. En outre tu as possibilité de tester le script lorsque tu l'implémentes dans un capteur HTTP afin de récupérer les erreurs. L'as-tu fait ? |
Auteur: | ericpey [ 02 Août 2017 21:10 ] |
Sujet du message: | Re: smappee analyseur de consommation EDF |
Merci à tous. C'est bon, j'ai maintenant les Energies journalière, solaire, et en veille avec leur coût associé. J'ai maintenant essayé d'intégrer dans mon script la récupération de l'ActivePower en m'inspirant du script de Floman321, mais ca ne marche pas (voir la fin du script. Un idée ? Merci <? $regroupement = 3 ; // Regroupement de la conso par : //5 = quarter (4 mois ?) //4 = mois //3 = jours //2 = heure déconseillé //1 = 5 minutes déconseillé $commence = date('Y-m-d', strtotime('-1 day')); $timeto = strtotime("now"); // Current time $timefrom = strtotime($commence); $val_jour_id = getArg('valjour','-1'); $cout_jour_id = getArg('coutjour','-1'); $val_solar_id = getArg('valsolar','-1'); $cout_solar_id = getArg('coutsolar','-1'); $val_veille_id = getArg('valveille','-1'); $cout_veille_id = getArg('coutveille','-1'); $val_activepower_id = getArg('activepower','-1'); $cout = getArg('cout'); $CACHE_DURATION = 60 * 60 * 24; // 24h $last_xml_success = loadVariable('last_xml_success'); $cle = loadVariable('access_token'); if ((time() - $last_xml_success) / 60 > $CACHE_DURATION) { $post = "grant_type=password&client_id=xxxxx&client_secret=xxxxxx&username=xxxxx&password=xxxx"; $response = httpQuery("https://app1pub.smappee.net/dev/v1/oauth2/token", 'POST', $post); $json = sdk_json_decode($response); $cle = $json['access_token']; if ( isset($cle) ){ saveVariable('access_token', $cle); saveVariable('last_xml_success', time() ); echo 'nouvelle clé '.$cle.'<br>'; } } $headers = array("Authorization: Bearer ".$cle); // Liste des Smappees (normalement 1) $response = httpQuery("http://app1pub.smappee.net/dev/v1/servicelocation", 'GET', NULL, NULL , $headers, true); $json = sdk_json_decode($response); $serviceLocationId = $json['serviceLocations'][0]['serviceLocationId']; //$serviceLocationId = "8831"; // REcuperation de la conso $resconsumption = httpQuery('https://app1pub.smappee.net/dev/v1/servicelocation/'.$serviceLocationId.'/consumption?aggregation='.$regroupement.'&from='.$timefrom.'000&to='.$timeto.'000', 'GET', NULL, NULL , $headers, true); $objconsumption = sdk_json_decode($resconsumption); $consumptions = $objconsumption['consumptions']; foreach ( $consumptions as $item ) { $consumption = round($consumptions[$i]['consumption']/1000,2); $coutconso = round(($consumption)*$cout,2); $valsolar = round($consumptions[$i]['solar']/1000,2); $coutsolar = round(($valsolar)*$cout,2); $veille = round($consumptions[$i]['alwaysOn']/12000,2); $coutalways = round(($veille)*$cout,2); if ($veille == 0){ $i++; continue; } setValue($val_jour_id, $consumption, false); setValue($cout_jour_id, $coutconso, false); setValue($val_solar_id, $valsolar, false); setValue($cout_solar_id, $coutsolar, false); setValue($val_veille_id, $veille, false); setValue($cout_veille_id, $coutalways, false); $i++; } // REcuperation de la puissance instantannée $respower = httpQuery('https://app1pub.smappee.net/dev/v1/servicelocation/'.$serviceLocationId.'/events?applianceID=1&from='.$timefrom.'000&to='.$timeto.'000', 'GET'); $myXML = jsonToXML($respower); if ($val_activepower_id != '-1'){ $activepower = xpath($myXML, "substring-before(substring-after(//root/report , 'activePower='),' ')" ); setValue($val_activepower_id, $activepower, false); } ?> |
Auteur: | Patskins [ 03 Août 2017 08:34 ] |
Sujet du message: | Re: smappee analyseur de consommation EDF |
Bonjour, Les valeurs tension, intensité, cos phi et puissance active ne se récupèrent pas à la même adresse que les consommations et il faut donc mieux créer un script différent ou modifier le script existant en allant chercher ces valeurs à la bonne adresse (cf. les messages précédents) |
Auteur: | ericpey [ 03 Août 2017 22:18 ] |
Sujet du message: | Re: smappee analyseur de consommation EDF |
Effectivement, j'avais bien vu cette requète à une adresse différente: $data = httpQuery("http://192.168.1.30/gateway/apipublic/reportInstantaneousValues", 'GET'); Mais quand j'essaye avec l'IP de mon Smappe, il me dit qu'il faut m'identifier d'abord. Et en plus, je ne reconnais pas la structure de la requète de l'API publiée par eedomus. Vous pourriez repartager votre script car je n'arrive pas à faire fonctionner le script d'activepower. Merci d'avance Eric |
Auteur: | Patskins [ 04 Août 2017 07:06 ] |
Sujet du message: | Re: smappee analyseur de consommation EDF |
Bonjour, Pour ces valeurs, ce n'est pas une requête utilisant une API mais une lecture directe dans le Smappee. Pour que cela fonctionne, il faut d'abord s'identifier sur le "Smappee monitor" accessible depuis l'adresse "http://adresse_IP_Smappee/smappee.html", identification à refaire régulièrement (lorsque les valeurs ne sont plus accessibles). Les identifiants sont ceux de l'application. Le script créé par Floman321 que j'ai adapté à mes besoins en créant sur la box les différents capteurs
Le capteur html utilisé pour les valeurs lues dans le Smappee Avec comme requête "http://localhost/script/?exec=smappee.php&activepower=codeAPI&tension=codeAPI&intensite=codeAPI&cosphi=codeAPI&couthor=codeAPI&coutjour=codeAPI&coutmens=codeAPI&cout=[VAR1] La fréquence des relevés est de 1 minute pour les valeurs dans le Smappee et de 3 minutes pour les valeurs de l'API. Et voilà ce que cela donne sur ma box depuis plusieurs mois Les valeurs "Pointe puissance active journalière", "Consommation totale journalière" et "Consommation en veille journalière" sont les valeurs max de la journée précédente (stockées et réinitialisées toutes les nuits à 0h00 à l'aide de simples règles dans la box). La valeur "Pointe puissance active jour" est la valeur max du jour en cours (mémorisée et remise à 0 toutes les nuits à 0h00 à l'aide de simples règles dans la box). Les valeurs "Coût total jour" et "Coût veille jour" sont les valeurs max de la journée en utilisant simplement les propriétés de l'affichage du widget (histogramme avec finesse de 1 jour et mode de calcul max". Les autres valeurs sont les valeurs instantanées. |
Auteur: | ericpey [ 05 Août 2017 22:00 ] |
Sujet du message: | Re: smappee analyseur de consommation EDF |
YES !!!! Ca marche. Un grand merci pour ta patience ! J'avais loupé le login sur Smapeee Encore merci Eric |
Auteur: | sigmund173 [ 26 Sep 2018 13:24 ] |
Sujet du message: | Re: smappee analyseur de consommation EDF |
Bonjour, très intéressant ce post et puis l'interface graphique c'est chouette, comme je suis a la recherche d'un module pour faire la mesure energétique je me dis que celui ci est pas mal du tout. Je vais me pencher là dessus |
Auteur: | Eric Massenet [ 27 Fév 2020 03:37 ] |
Sujet du message: | Re: smappee analyseur de consommation EDF |
Bonjour à tous, Je suis débutant dans l'utilisation Eedomus. Je voudrais intégrer mon smappee Energy à ma centrale EEdomus. J'ai lu tous les échanges mais je vous avoue que ça part un peu dans tous les sens et je ne sais pas par ou commencer. Est-ce que quelqu'un aurait la gentillesse de nous faire un post décrivant simplement pour un néofite comme moi, toutes les étapes unes par unes pour configurer son smappee et ramener toutes les info dans ma centrale EEdomus ? Un grand merci pour votre aide |
Page 6 sur 6 | Le fuseau horaire est UTC+1 heure |
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/ |