smappee analyseur de consommation EDF

Discutez ici de vos souhaits d'évolutions et de vos idées pour eedomus

Re: smappee analyseur de consommation EDF

Messagepar Patskins » 09 Déc 2015 12:29

Floman321 a écrit:.....
Ca interresse quelqu'un la liste des appareils avec leurs couts intégrés dans un ou plusieurs peripheriques eedomus ? via leur smappee api


Ca nécessite un développement avec l'API de Smappee, non ? Si c'est possible, suis très beaucoup intéressé car l'API permet de récupérer les comptages :D
Eedomus+
DI-O / Zwave / Zwave + / Thermostat et station Netamo / Smappee / Sondes Oregon
Tablette dédiée avec Impérihome pro pour la gestion, un dashboard à l'aide d'un Raspberry
Patskins
 
Messages : 260
Inscription : 26 Oct 2015
Localisation : Bretagne (35), France

Re: smappee analyseur de consommation EDF

Messagepar Floman321 » 09 Déc 2015 12:48

Merci d'écrire a support@smappee.com
pour obtenir obtenir un code client id et un client secret

"To obtain a client id and client secret, please send an email to Smappee Support: "

https://smappee.atlassian.net/wiki/disp ... redentials
Floman321
 
Messages : 174
Inscription : 30 Avr 2014

Re: smappee analyseur de consommation EDF

Messagepar Egainmoney » 09 Déc 2015 18:24

:D

Floman321 a écrit:Madoma73, tu devra le prendre chez apple store, car il y 14 jours de reflexion après achat, tu peux le renvoyer sans motif, ca a marché pour moi.



Ca interresse quelqu'un la liste des appareils avec leurs couts intégrés dans un ou plusieurs peripheriques eedomus ? via leur smappee api


heu oui
EEDOMUS Plus,
Station Netatmo ( 2 sonde plus pluviomètre et anémomètre),
1 FGS-221 et 1 ZMNHJD1 pour le chauffage,
1 FGK-101,
1 RfxTrx433 Usb,
1 Prise chacon dio,
2 Power Plug neo coolcam
1 Door sensor neo coolcam
3 Sonde THN132N,
Egainmoney
 
Messages : 100
Inscription : 26 Sep 2015

Re: smappee analyseur de consommation EDF

Messagepar Egainmoney » 09 Déc 2015 18:25

Floman321 a écrit:Merci d'écrire a support@smappee.com
pour obtenir obtenir un code client id et un client secret

"To obtain a client id and client secret, please send an email to Smappee Support: "

https://smappee.atlassian.net/wiki/disp ... redentials


j'ai déja le miens si tu veux
EEDOMUS Plus,
Station Netatmo ( 2 sonde plus pluviomètre et anémomètre),
1 FGS-221 et 1 ZMNHJD1 pour le chauffage,
1 FGK-101,
1 RfxTrx433 Usb,
1 Prise chacon dio,
2 Power Plug neo coolcam
1 Door sensor neo coolcam
3 Sonde THN132N,
Egainmoney
 
Messages : 100
Inscription : 26 Sep 2015

Re: smappee analyseur de consommation EDF

Messagepar Floman321 » 10 Déc 2015 12:13

Pour info,

on a reussi a récuperer le comptage global du compte, par heure, par jour, mois, par quarter.

exemple par mois :
20151201 00:00 => Conso : 415069.8 Wh, En veille : 30613.8Wh

Et importer la liste des appareils sans pouvoir récuperer la conso pour chacun. :roll:

On peut aussi récupêrer les evenements.

doc api smappee
https://smappee.atlassian.net/wiki/disp ... onsumption

:D
Floman321
 
Messages : 174
Inscription : 30 Avr 2014

Re: smappee analyseur de consommation EDF

Messagepar Patskins » 10 Déc 2015 14:23

Bonjour,

C'est bien mais qu'elle est le procédure détaillée pou utiliser l'API avec la box ?
Eedomus+
DI-O / Zwave / Zwave + / Thermostat et station Netamo / Smappee / Sondes Oregon
Tablette dédiée avec Impérihome pro pour la gestion, un dashboard à l'aide d'un Raspberry
Patskins
 
Messages : 260
Inscription : 26 Oct 2015
Localisation : Bretagne (35), France

Re: smappee analyseur de consommation EDF

Messagepar Floman321 » 10 Déc 2015 14:29

Impatient ! :D

Avez vous pu récupérer les identifiants nécessaire auprès du service client ? C'est nécessaire

Ce soir.
Floman321
 
Messages : 174
Inscription : 30 Avr 2014

Re: smappee analyseur de consommation EDF

Messagepar Floman321 » 10 Déc 2015 15:05

http://monip/script/?exec=smappee2.php& ... 01-11-2015

// Regroupement de la conso par :
//5 = quarter (4 mois ?)
//4 = mois
//3 = jours
//2 = heure déconseillé
//1 = 5 minutes déconseillé

Resultat pour regroupement mois :
20151201 00:00 => Conso : 495769.8Wh, En veille : 30613.8Wh

Maintenant, reste a nous mettre d'accord, comment l'importer dans un capteur


Code : Tout sélectionner
<?

$regroupement = getArg('regroupement',true,'3'); // par defaut jour
// Regroupement de la conso par :
//5 = quarter (4 mois ?)
//4 = mois
//3 = jours
//2 = heure déconseillé
//1 = 5 minutes déconseillé


$commence = getArg('commence',true,'01-01-2015'); // par defaut jour
$timeto = strtotime("now"); // Current time
$timefrom = strtotime($commence);

$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=[CLIENTID]&client_secret=[client_secret]&username=[USERNAME]&password=[MDP]";
   $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 ) {
   
   $timestamp   = $consumptions[$i]['timestamp'];
   $consumption = $consumptions[$i]['consumption'];
   $veille      = round($consumptions[$i]['alwaysOn']/12,1);
   
   if ($veille == 0){
      $i++;
      continue;
   }

   $epoch = $timestamp/1000;
   $cleandate = date('Y-m-d H:i:s ', $epoch);
   $date = date('Ymd', $epoch);
   $time = date('H:i', $epoch);

   echo $date.' '.$time.' => Conso : '.$consumption.'Wh, En veille : '.$veille.'Wh<br>';

$i++;
}















// Laboratoire a garder
// Liste Objet dans la maison
/*$
response2 = httpQuery("https://app1pub.smappee.net/dev/v1/servicelocation/".$id."/info", 'GET', NULL, NULL , $headers, true);
$json_devices = sdk_json_decode($response2);
for ($i = 0; $i < sizeof($json_devices['appliances']); $i++)
   echo $json_devices['appliances'][$i]['name']." "$json_devices['appliances'][$i]['type']."</br>";
*/


?>
Floman321
 
Messages : 174
Inscription : 30 Avr 2014

Re: smappee analyseur de consommation EDF

Messagepar Patskins » 10 Déc 2015 16:55

Floman321 a écrit:Impatient ! :D

Avez vous pu récupérer les identifiants nécessaire auprès du service client ? C'est nécessaire

Ce soir.



Bien évidemment pour les identifiants, reste à savoir quoi en faire :D
Eedomus+
DI-O / Zwave / Zwave + / Thermostat et station Netamo / Smappee / Sondes Oregon
Tablette dédiée avec Impérihome pro pour la gestion, un dashboard à l'aide d'un Raspberry
Patskins
 
Messages : 260
Inscription : 26 Oct 2015
Localisation : Bretagne (35), France

Re: smappee analyseur de consommation EDF

Messagepar Egainmoney » 10 Déc 2015 20:39

Patskins a écrit:
Floman321 a écrit:Impatient ! :D

Avez vous pu récupérer les identifiants nécessaire auprès du service client ? C'est nécessaire

Ce soir.



Bien évidemment pour les identifiants, reste à savoir quoi en faire :D


$post = "grant_type=password&client_id=[CLIENTID]&client_secret=[client_secret]&username=[USERNAME]&password=[MDP]";

ligne 22

mise a jour du scripte de mon cotés reste plus cas voir ce qu'ont peut en faire
EEDOMUS Plus,
Station Netatmo ( 2 sonde plus pluviomètre et anémomètre),
1 FGS-221 et 1 ZMNHJD1 pour le chauffage,
1 FGK-101,
1 RfxTrx433 Usb,
1 Prise chacon dio,
2 Power Plug neo coolcam
1 Door sensor neo coolcam
3 Sonde THN132N,
Egainmoney
 
Messages : 100
Inscription : 26 Sep 2015

Re: smappee analyseur de consommation EDF

Messagepar Floman321 » 10 Déc 2015 20:44

Dois-je précisé qu'il faut enlever les crochets ?
Floman321
 
Messages : 174
Inscription : 30 Avr 2014

Re: smappee analyseur de consommation EDF

Messagepar Patskins » 10 Déc 2015 23:36

Bon, j'ai configuré et essayé le fichier php, ça fonctionne, reste juste à définir le fonctionnement.
- "groupement=", là, ça va, valeurs 3 ou 4
- "commence=" est plus compliqué, j'aimerais bien lui transmettre la date du jour (date du jour que je calcul dans un périphérique http avec un script) et je ne vois pas comment faire. Ce serait pratique pour le regroupement jour et permettrait de n'avoir à traiter que la valeur du jour dans le fichier xml.
Eedomus+
DI-O / Zwave / Zwave + / Thermostat et station Netamo / Smappee / Sondes Oregon
Tablette dédiée avec Impérihome pro pour la gestion, un dashboard à l'aide d'un Raspberry
Patskins
 
Messages : 260
Inscription : 26 Oct 2015
Localisation : Bretagne (35), France

Re: smappee analyseur de consommation EDF

Messagepar Patskins » 11 Déc 2015 08:54

Saslut,

Je me répond pour la date :D
Ai forcé la valeur regroupement à 3 ($regroupement = 3)
Ai remplacé la ligne
"$commence = getArg('commence',true,'01-01-2015'); // par defaut jour"
par
"$commence = date('Y-m-d', strtotime('-1 day'));"
Ce qui permet d'avoir une seule ligne en réponse pour la consommation jour actuel et donc de traiter simplement les informations consommation totale et consommation en veille pour la journée en cours.

Maintenant comment traiter ces informations ? :roll: Ce qui serait bien serait de transmettre les valeurs conso jour et conso veille à 2 capteurs

Edit : ai réussi à modifier le script (je débute :P) et j'ai maintenant 2 capteurs "Consommation jour" et "Consommation en veille" en kWh que je rafraîchi toutes les 10 minutes (ce qui est suffisant), ce qui donne la présentation suivante

eedomus_smappee_3.png
eedomus_smappee_3.png (88.23 Kio) Consulté 13845 fois

Les histogrammes sont sur un mois avec finesse histogramme sur un jour et mode de calcul max, ce qui permet de consulter la consommation au jour le jour en faisant passer la souris sur l'histogramme.

Code que j'utilise et qui serait certainement à optimiser par un "spécialiste", suppression de la boucle "foreach ( $consumptions as $item ) " par exemple car inutile

Code : Tout sélectionner
<?

$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');
$val_veille_id = getArg('valveille','-1');

$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=[CLIENTID]&client_secret=[client_secret]&username=[USERNAME]&password=[MDP]";
   $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 ) {
   
   $timestamp   = $consumptions[$i]['timestamp'];
   $consumption = round($consumptions[$i]['consumption']/1000,2);
   $veille      = round($consumptions[$i]['alwaysOn']/12000,2);
   
   if ($veille == 0){
      $i++;
      continue;
   }

   $epoch = $timestamp/1000;
   $cleandate = date('Y-m-d H:i:s ', $epoch);
   $date = date('Ymd', $epoch);
   $time = date('H:i', $epoch);

   setValue($val_jour_id, $consumption, false);
   setValue($val_veille_id, $veille, false);

$i++;
}















// Laboratoire a garder
// Liste Objet dans la maison
/*$
response2 = httpQuery("https://app1pub.smappee.net/dev/v1/servicelocation/".$id."/info", 'GET', NULL, NULL , $headers, true);
$json_devices = sdk_json_decode($response2);
for ($i = 0; $i < sizeof($json_devices['appliances']); $i++)
   echo $json_devices['appliances'][$i]['name']." "$json_devices['appliances'][$i]['type']."</br>";
*/


?>
Eedomus+
DI-O / Zwave / Zwave + / Thermostat et station Netamo / Smappee / Sondes Oregon
Tablette dédiée avec Impérihome pro pour la gestion, un dashboard à l'aide d'un Raspberry
Patskins
 
Messages : 260
Inscription : 26 Oct 2015
Localisation : Bretagne (35), France

Re: smappee analyseur de consommation EDF

Messagepar Floman321 » 11 Déc 2015 13:11

Pas mal !
Merci de nous avoir expliqué ce que tu as fait avec !
Floman321
 
Messages : 174
Inscription : 30 Avr 2014

Re: smappee analyseur de consommation EDF

Messagepar Patskins » 11 Déc 2015 14:04

De rien, mais maintenant, j'aurais besoin de quelqu'un qui s'y connait en php pour simplifier le script, je pense que, vu le fonctionnement que j'utilise, toutes les lignes ne sont pas obligatoires ...
Eedomus+
DI-O / Zwave / Zwave + / Thermostat et station Netamo / Smappee / Sondes Oregon
Tablette dédiée avec Impérihome pro pour la gestion, un dashboard à l'aide d'un Raspberry
Patskins
 
Messages : 260
Inscription : 26 Oct 2015
Localisation : Bretagne (35), France

Re: smappee analyseur de consommation EDF

Messagepar Floman321 » 11 Déc 2015 14:29

Code : Tout sélectionner
foreach ( $consumptions as $item ) {
   
   $consumption = round($consumptions[$i]['consumption']/1000,2);
   $veille      = round($consumptions[$i]['alwaysOn']/12000,2);
   
   if ($veille == 0){
      $i++;
      continue;
   }

   setValue($val_jour_id, $consumption, false);
   setValue($val_veille_id, $veille, false);

$i++;
}
Floman321
 
Messages : 174
Inscription : 30 Avr 2014

Re: smappee analyseur de consommation EDF

Messagepar Patskins » 11 Déc 2015 15:35

Merci pour le "nettoyage".

J'ai finalisé le script, j'utilise 4 capteurs (conso jour, conso veille, cout jour, cout veille) et je transmets une variable dans le script qui est le cout du kWh (ce qui facilite la mise à jour en cas de changement de tarif).

Script php
Code : Tout sélectionner
<?

$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_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=[CLIENTID]&client_secret=[client_secret]&username=[USERNAME]&password=[MDP]";
   $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);
   $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_veille_id, $veille, false);
   setValue($cout_veille_id, $coutalways, false);

$i++;
}


Vue du capteur Smappee
Capteur_Smappee.png
Capteur_Smappee.png (49.09 Kio) Consulté 13836 fois

Les valeurs [API] sont à remplacer par les codes API des différents capteurs
Dans VAR1 mettre le prix du kWh

Ce qui donne en final
eedomus_smappee_4.png
eedomus_smappee_4.png (94.54 Kio) Consulté 13836 fois

Les 4 histogrammes sont sur un mois avec finesse histogramme sur "un jour" et mode de calcul "max", ce qui permet de consulter la consommation ou le coût au jour le jour en faisant passer la souris sur l'histogramme.

En résumé, 2 scripts réalisés à partir des judicieux conseils de Floman321 (sans qui, je serais encore entrain de "pleurer" devant mon Smappee :D)
Le 1er script (actualisation toutes les minutes) permet l'affichage des 1ere et 3eme rangée de valeurs (valeurs instantanées)
Le 2eme script (actualisation toutes les 10 minutes) permet l'affichage de la 2eme rangée de valeurs (valeurs de comptages)
Dernière édition par Patskins le 14 Déc 2015 06:43, édité 1 fois.
Eedomus+
DI-O / Zwave / Zwave + / Thermostat et station Netamo / Smappee / Sondes Oregon
Tablette dédiée avec Impérihome pro pour la gestion, un dashboard à l'aide d'un Raspberry
Patskins
 
Messages : 260
Inscription : 26 Oct 2015
Localisation : Bretagne (35), France

Re: smappee analyseur de consommation EDF

Messagepar Egainmoney » 11 Déc 2015 17:07

Patskins a écrit:Merci pour le "nettoyage".

J'ai finalisé le script, j'utilise 4 capteurs (conso jour, conso veille, cout jour, cout veille) et je transmets une variable dans le script qui est le cout du kWh (ce qui facilite la mise à jour en cas de changement de tarif).




salut sympas ce que vous avez réussis a en faire sur ces première ébauche
pour le tarif en cas d'un double tarif HP et HC ca se passe comment?
EEDOMUS Plus,
Station Netatmo ( 2 sonde plus pluviomètre et anémomètre),
1 FGS-221 et 1 ZMNHJD1 pour le chauffage,
1 FGK-101,
1 RfxTrx433 Usb,
1 Prise chacon dio,
2 Power Plug neo coolcam
1 Door sensor neo coolcam
3 Sonde THN132N,
Egainmoney
 
Messages : 100
Inscription : 26 Sep 2015

Re: smappee analyseur de consommation EDF

Messagepar Patskins » 11 Déc 2015 17:23

Je ne sais pas, il faut voir ce que l'API retourne en cas de définition de tarifs différents dans le Smappee (paramètres/lieux/éditer les tarifs) et moi, je n'ai qu'un tarif ;)
Eedomus+
DI-O / Zwave / Zwave + / Thermostat et station Netamo / Smappee / Sondes Oregon
Tablette dédiée avec Impérihome pro pour la gestion, un dashboard à l'aide d'un Raspberry
Patskins
 
Messages : 260
Inscription : 26 Oct 2015
Localisation : Bretagne (35), France

Re: smappee analyseur de consommation EDF

Messagepar Egainmoney » 12 Déc 2015 09:54

bonjour a tous

je viens de voir que le script en état actuel nous oblige a sortir certaine valeurs sinon il ne parse pas

y'a t'il moyen de voir la liste xml des données récupéré sur nos smappee en le testant en local :?

comme je disais hier je suis en double tarif et dans ce cas le script ne correspond plus a mes besoins
EEDOMUS Plus,
Station Netatmo ( 2 sonde plus pluviomètre et anémomètre),
1 FGS-221 et 1 ZMNHJD1 pour le chauffage,
1 FGK-101,
1 RfxTrx433 Usb,
1 Prise chacon dio,
2 Power Plug neo coolcam
1 Door sensor neo coolcam
3 Sonde THN132N,
Egainmoney
 
Messages : 100
Inscription : 26 Sep 2015

PrécédentSuivant

Retour vers Suggestions

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 3 invité(s)