[Plugin] ENEDIS

Discussion et échanges de scripts pour la box eedomus

Re: [Plugin] ENEDIS

Messagepar surgeon84fr » 29 Jan 2021 11:13

merci pour vos retours
bonne journée
surgeon84fr
 
Messages : 56
Inscription : 15 Jan 2019

Re: [Plugin] ENEDIS

Messagepar merguez07 » 29 Jan 2021 11:37

j'ai modifié le code pour prendre en compte un problème serveur (par contre je ne peux le requalifier tant qu'il n'y a pas de problème serveur)

le code
Code : Tout sélectionner
<?php
// script créé par Connected Object pour eedomus

// les données sont mises à jour 1x par jour entre 7h et 8h
// Enedis nous demande d'être raisonnable et de ne réaliser qu'un appel par jour
// merci de ne pas modifier les valeurs de fréquences et de cache pour le maintien du service

$api_url = 'https://gw.prd.api.enedis.fr/';

$prev_code = loadVariable('code');

// on reprend le dernier refresh_token seulement s'il correspond au même code
$refresh_token  = loadVariable('refresh_token');
$expire_time    = loadVariable('expire_time');
// s'il n'a pas expiré, on peut reprendre l'access_token
if (time() < $expire_time)
{
   $access_token = loadVariable('access_token');
}

// on a déjà un token d'accés non expiré pour le code demandée
if ($access_token == '' || $_GET['oauth_code'] != '')
{
  if ($_GET['oauth_code'] != '')
  {
    $code = $_GET['oauth_code'];
  }
  else
  {
    $code = $prev_code;
  }

   if (strlen($refresh_token) > 1 && $_GET['oauth_code'] == '')
   {
      // on peut juste rafraichir le token
      $grant_type = 'refresh_token';
      $postdata   = 'grant_type='.$grant_type.'&refresh_token='.$refresh_token;
   }
   else
   {
      if ($code == '')
      {
         echo "## ERROR: Empty code for grant_type=".$grant_type;
         die();
      }
      
      // 1ère utilisation aprés obtention du code
      $grant_type     = 'authorization_code';
      $redirect_uri   = 'https://secure.eedomus.com/sdk/plugins/enedis_app/callback';
      $postdata       = 'grant_type='.$grant_type.'&code='.$code.'&redirect_uri='.($redirect_uri);
   }
 
   $url        = $api_url.'v1/oauth2/token';
   $response   = httpQuery($url, 'POST', $postdata, 'enedis_oauth');
   //var_dump($url, $postdata, $response);
   $params     = sdk_json_decode($response);

   if ($params['error'] != '')
   {
      die("Erreur lors de l'authentification:"." [".$params['error'].'] (grant_type='.$grant_type.'),<br>vous pouvez lier à nouveau votre compte en cliquant sur [Lier à nouveau] depuis la configuration de votre périphérique<br><br>'.$response);
   }

   // on sauvegarde l'access_token et le refresh_token pour les authentifications suivantes
   if (isset($params['refresh_token']))
   {
      $access_token = $params['access_token'];
      saveVariable('access_token', $access_token);
      saveVariable('refresh_token', $params['refresh_token']);
      saveVariable('expire_time', time()+$params['expires_in']);
      if ($code != '')
      {
         saveVariable('code', $code);
      }

   }
   else if ($access_token == '')
   {
      die("Erreur lors de l'authentification,<br>vous pouvez lier à nouveau votre compte en cliquant sur [Lier à nouveau] depuis la configuration de votre périphérique\n\n".$response);
   }
}

if ($_GET['mode'] == 'verify')
{
   ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>eedomus</title>
  <style type="text/css">
 
  body,td,th {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 14px;
  }
  </style>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  </head><?
   
   $usage_point_id = $_GET['usage_point_id'];
   saveVariable('last_daily_consumption_'.$usage_point_id, '');
   saveVariable('last_consumption_load_curve_'.$usage_point_id, '');
   
  echo '<br>';
   echo "Voici votre identifiant de point d'usage Enedis, à copier/coller dans votre périphérique eedomus :";
  echo '<br>';
  echo '<br>';
   echo '<input type="text" name="usage_point_id" value="'.$usage_point_id.'" onclick="this.select();" readonly>';
   die();
}

   $headers = array("Accept: application/json", "Authorization: Bearer $access_token");
   $usage_point_id = getArg('usage_point_id');

   $last_xml_success = loadVariable('last_xml_success_'.$usage_point_id);

   if ((date('G') >= 8 && date('G') <= 23 && date('Ymd') != date('Ymd', $last_xml_success))||($_GET['mode'] == 'test'))
   {
      $is_cache = 0;
      // sinon à minuit : "The end date parameter must be earlier than the current date."
      $tms = mktime() - 60 * 60;
      $today = date('Y-m-d', $tms);

      $yesterday = $today;
      while ($yesterday == $today)
      {
         $tms -= 24*60*60;
         $yesterday = date('Y-m-d', $tms);
      }


      $url = $api_url.'v3/customers/usage_points/contracts?usage_point_id='.$usage_point_id;
      $response = httpQuery($url, 'GET', NULL, NULL, $headers);
      //var_dump($url, $response);
      $xml .= jsonToXML($response);
      saveVariable('contracts_'.$usage_point_id, $response);

      $url = $api_url.'v3/metering_data/daily_consumption?start='.$yesterday.'&end='.$today.'&usage_point_id='.$usage_point_id;
      $response = httpQuery($url, 'GET', NULL, NULL, $headers);
      saveVariable('response_daily_consumption_'.$usage_point_id, $response);
      //var_dump($url, $response);
      $xml .= jsonToXML($response);
   }
   else
   {
      $is_cache = 1;
      $response = loadVariable('contracts_'.$usage_point_id);
      $xml .= jsonToXML($response);

      $response = loadVariable('response_daily_consumption_'.$usage_point_id);
    $xml .= jsonToXML($response);
   }

   $json = sdk_json_decode($response);
   $consumption_date = $json['usage_point'][0]['meter_reading']['end'];
   $consumption_value = $json['usage_point'][0]['meter_reading']['interval_reading'][0]['value'];

   $last_daily_consumption = loadVariable('last_daily_consumption_'.$usage_point_id);
   $daily_consumption_count = 0;
   
   if ($consumption_date != '' && $last_daily_consumption != $consumption_date)
   {
      $list = getPeriphList($show_notes = false, $filter_device_id = $_GET['eedomus_controller_module_id']);
      foreach ($list as $device)
      {
         if ($device['unit'] == 'Wh')
         {
            $daily_consumption_controller_module_id = $device['device_id'];
         }
      }

      if ($daily_consumption_controller_module_id > 0)
      {
         $cur_consumption_time = strtotime($consumption_date);
         $cur_consumption_time_txt = date('Y-m-d H:i:s', $cur_consumption_time);
         
         if ($consumption_value !== '')
         {
            setValue($daily_consumption_controller_module_id, $consumption_value, $verify_value_list = false, $update_only = false, $cur_consumption_time_txt);
            saveVariable('last_daily_consumption_'.$usage_point_id, $consumption_date);
            $daily_consumption_count++;
         }
      }
   }
//$is_cache=0;
   if ($is_cache)
   {
      $response = loadVariable('consumption_load_curve_'.$usage_point_id);
   }
   else
   {
      $url = $api_url.'v4/metering_data/consumption_load_curve?start='.$yesterday.'&end='.$today.'&usage_point_id='.$usage_point_id;
      $response = httpQuery($url, 'GET', NULL, NULL, $headers);
      $json = sdk_json_decode($response);
       if ($json['error']!=NULL) {
           $xml .= jsonToXML($response);
           echo $xml;
           die;
       }
   
      saveVariable('consumption_load_curve_'.$usage_point_id, $response);
   }

   //var_dump($url, $response);
   $xml .= jsonToXML($response);
   $json = sdk_json_decode($response);
   if ($json['error']!=NULL) {
       echo $xml;
       die;
   }
   //var_dump($json);die;
   //$consumption_date = $json['usage_point'][0]['meter_reading']['start'];
   $consumption_date = $json['meter_reading']['start'];

   $last_consumption_load_curve = loadVariable('last_consumption_load_curve_'.$usage_point_id);
   $consumption_load_count = 0;

   if ($consumption_date != '' && $last_consumption_load_curve != $consumption_date)
   {
      $list = getPeriphList($show_notes = false, $filter_device_id = $_GET['eedomus_controller_module_id']);
      foreach ($list as $device)
      {
         if ($device['unit'] == 'W')
         {
            $consumption_load_curve_controller_module_id = $device['device_id'];
         }
      }

      if ($consumption_load_curve_controller_module_id > 0)
      {
         foreach($json['meter_reading']['interval_reading'] as $reading)
         {
            //$consumption_rank = $reading['rank'];

            //$cur_consumption_time = strtotime($consumption_date) + $consumption_rank * 30 * 60;
            //$cur_consumption_time_txt = date('Y-m-d H:i:s', $cur_consumption_time);
            $cur_consumption_time_txt = $reading['date'];
            
            if ($consumption_value !== '')
            {
               $consumption_value = $reading['value'];
               setValue($consumption_load_curve_controller_module_id, $consumption_value, $verify_value_list = false, $update_only = false, $cur_consumption_time_txt);
               $consumption_load_count++;
            }
         }
         if ($consumption_load_count > 0)
         {
            saveVariable('last_consumption_load_curve_'.$usage_point_id, $consumption_date);
         }
      }
      
      
   }

   $debug = "\ndaily_consumption_controller_module_id      = $daily_consumption_controller_module_id,
daily_consumption_count                     = $daily_consumption_count,
consumption_load_curve_controller_module_id = $consumption_load_curve_controller_module_id,
consumption_date                            = $consumption_date,
consumption_load_count                      = $consumption_load_count\n";

   sdk_header('text/xml');
   
   $xml = str_replace("</root><?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n<root>", '', $xml);
   $xml = str_replace('</root>', "<debug>".$debug."</debug>\n</root>", $xml);
   
   if ($is_cache)
   {
      $xml = str_replace('<root>', "<root><cached>1</cached>", $xml);
   }
   else
   {
      $xml = str_replace('<root>', "<root><cached>0</cached>", $xml);
        if ($xml != '' && strpos($xml, 'Invalid_request') === false) // non vide
        {
            saveVariable('cached_xml_'.$usage_point_id, $xml);
            saveVariable('last_xml_success_'.$usage_point_id, time());
        }
   }

   echo $xml;
?>


vous pouvez mettre à jour la journée d'hier en cliquant sur tester dans le périphérique de consommation linky. Il suffit alors de rajouter dans l'URL de test &mode=test

exemple
"http://localhost/script/?exec=enedis_oauth.php&usage_point_id=xxx&eedomus_controller_module_id=xxxx&mode=test"

et appuyer sur le bouton tester. ça rattrapera la requête ratée de ce matin
tuto 1 -->Programmation des scripts Eedomus
tuto 2 -->SmartDevice
tuto 3 -->Le déclenchement de règles
scripts -->Météo du jour | GH Thermostat | TotalWatt | Detecfire | smartbattery
Skype Eedomus -->lien vers le skype Eedomus
merguez07
 
Messages : 2346
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

Re: [Plugin] ENEDIS

Messagepar dommarion » 29 Jan 2021 12:27

Nickel Merguez07, Ca a bien marché.
merci beaucoup.
dommarion
OpenWeather|Phases soleil|HeatzyV2|Concaténateur|HP Yamaha|SomfyV3|Epson|Seuils n étages|Baie 2 vantaux|Deezer|Intégrale|Authorization Digest|TV Philips|SmartThings|fonction PHP|Tuya Smartlife|CozyTouch2|mySMS
dommarion
 
Messages : 587
Inscription : 28 Déc 2020

Re: [Plugin] ENEDIS

Messagepar ThierryStrad » 29 Jan 2021 15:20

ThierryStrad a écrit:J'ai installé hier soir la modif du script (merci à Dommarion et Merguez07)

Je récupère les 3 infos souhaitées :
    L'historique horaire sur 24h (consommation Linky)
    La conso veille Linky
    Puissance souscrite

Bref ça fonctionne !

Merci !

Je corrige : je récupère bien des données, pas en totalité. Je retrouve le bug que j'avais en 2020 : je ne récupère que les données ENEDIS de la seconde partie de la journée : de 14jh à 24h.

Une idée ? Je n'ai jamais compris.
Thierry
ThierryStrad
 
Messages : 281
Inscription : 22 Déc 2018

Re: [Plugin] ENEDIS

Messagepar Fab_Rice » 29 Jan 2021 15:48

Bon, pour moi ça reste "ERREUR: Valeur lue vide", on verra plus tard hein :D
Dire que l'on ne sait pas est une preuve d'intelligence
Eedomus+, Zigate V2, volets Somfy & Bubbendorf, radiateurs en Tado° & fil pilote, gestion chaudière bois/fioul, gestion borne IRVE, gestion piscine ...
Fab_Rice
 
Messages : 817
Inscription : 27 Déc 2020

Re: [Plugin] ENEDIS

Messagepar merguez07 » 29 Jan 2021 17:10

ThierryStrad a écrit:Je corrige : je récupère bien des données, pas en totalité. Je retrouve le bug que j'avais en 2020 : je ne récupère que les données ENEDIS de la seconde partie de la journée : de 14jh à 24h.


tu as quoi comme xml quand tu lances un test ?
tuto 1 -->Programmation des scripts Eedomus
tuto 2 -->SmartDevice
tuto 3 -->Le déclenchement de règles
scripts -->Météo du jour | GH Thermostat | TotalWatt | Detecfire | smartbattery
Skype Eedomus -->lien vers le skype Eedomus
merguez07
 
Messages : 2346
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

Re: [Plugin] ENEDIS

Messagepar merguez07 » 29 Jan 2021 18:48

Fab_Rice a écrit:Bon, pour moi ça reste "ERREUR: Valeur lue vide", on verra plus tard hein


Pourquoi remettre à demain :D .
Quand tu fais un test tu as quoi dans le xml ?
tuto 1 -->Programmation des scripts Eedomus
tuto 2 -->SmartDevice
tuto 3 -->Le déclenchement de règles
scripts -->Météo du jour | GH Thermostat | TotalWatt | Detecfire | smartbattery
Skype Eedomus -->lien vers le skype Eedomus
merguez07
 
Messages : 2346
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

Re: [Plugin] ENEDIS

Messagepar Fab_Rice » 29 Jan 2021 19:15

J'obtiens ceci :

<?xml version="1.0" encoding="ISO-8859-1"?>
<root><cached>1</cached><customer><customer_id>-xxxxxxxxxxxxxx</customer_id>
<usage_points><usage_points><usage_point><usage_point_id>xxxxxxxxxxxxxxxx</usage_point_id>
<usage_point_status>com</usage_point_status>
<meter_type>AMM</meter_type>
</usage_point>
<contracts><segment>C5</segment>
<subscribed_power>9 kVA</subscribed_power>
<distribution_tariff>BTINFCUST</distribution_tariff>
<last_activation_date>2020-07-28+02:00</last_activation_date>
<offpeak_hours>HC (22H54-6H54)</offpeak_hours>
<contract_type>Contrat GRD-F</contract_type>
<contract_status>SERVC</contract_status>
<last_distribution_tariff_change_date>2020-07-28+02:00</last_distribution_tariff_change_date>
</contracts>
</usage_points>
</usage_points>
</customer>
<usage_point><usage_points><meter_reading><usage_point_id>xxxxxxxxxxxxx</usage_point_id>
<start>2021-01-28</start>
<end>2021-01-29</end>
<reading_type><measurement_kind>energy</measurement_kind>
<interval_length>86400</interval_length>
<unit>Wh</unit>
<aggregate>sum</aggregate>
</reading_type>
<interval_reading><usage_points><rank>1</rank>
<value>23897</value>
</usage_points>
</interval_reading>
</meter_reading>
</usage_points>
</usage_point>
<error>ERR_STM.consulterCdc</error>
<error_description>Grandeur physique non autorisée</error_description>
<debug></debug>
</root>

Par contre si je rajoute le "&mode=test" j'obtiens bien des valeurs dans le XML

string(4542) "{"meter_reading":{"usage_point_id":"xxxxxxxxxxxxx","start":"2021-01-28","end":"2021-01-29","quality":"BRUT","interval_reading":[{"value":"242","date":"2021-01-28 00:30:00","interval_length":"PT30M","measure_type":"B"},{"value":"112","date":"2021-01-28 01:00:00","interval_length":"PT30M","measure_type":"B"},{"value":"250","date":"2021-01-28 01:30:00","interval_length":"PT30M","measure_type":"B"},{"value":"180","date":"2021-01-28 02:00:00","interval_length":"PT30M","measure_type":"B"},{"value":"174","date":"2021-01-28 02:30:00","interval_length":"PT30M","measure_type":"B"},{"value":"186","date":"2021-01-28 03:00:00","interval_length":"PT30M","measure_type":"B"},{"value":"234","date":"2021-01-28 03:30:00","interval_length":"PT30M","measure_type":"B"},{"value":"132","date":"2021-01-28 04:00:00","interval_length":"PT30M","measure_type":"B"},{"value":"204","date":"2021-01-28 04:30:00","interval_length":"PT30M","measure_type":"B"},{"value":"220","date":"2021-01-28 05:00:00","interval_length":"PT30M","measure_type":"B"},{"value":"192","date":"2021-01-28 05:30:00","interval_length":"PT30M","measure_type":"B"},{"value":"1222","date":"2021-01-28 06:00:00","interval_length":"PT30M","measure_type":"B"},{"value":"730","date":"2021-01-28 06:30:00","interval_length":"PT30M","measure_type":"B"},{"value":"834","date":"2021-01-28 07:00:00","interval_length":"PT30M","measure_type":"B"},{"value":"722","date":"2021-01-28 07:30:00","interval_length":"PT30M","measure_type":"B"},{"value":"2716","date":"2021-01-28 08:00:00","interval_length":"PT30M","measure_type":"B"},{"value":"4402","date":"2021-01-28 08:30:00","interval_length":"PT30M","measure_type":"B"},{"value":"1962","date":"2021-01-28 09:00:00","interval_length":"PT30M","measure_type":"B"},{"value":"3522","date":"2021-01-28 09:30:00","interval_length":"PT30M","measure_type":"B"},{"value":"2986","date":"2021-01-28 10:00:00","interval_length":"PT30M","measure_type":"B"},{"value":"1124","date":"2021-01-28 10:30:00","interval_length":"PT30M","measure_type":"B"},{"value":"774","date":"2021-01-28 11:00:00","interval_length":"PT30M","measure_type":"B"},{"value":"878","date":"2021-01-28 11:30:00","interval_length":"PT30M","measure_type":"B"},{"value":"2332","date":"2021-01-28 12:00:00","interval_length":"PT30M","measure_type":"B"},{"value":"3696","date":"2021-01-28 12:30:00","interval_length":"PT30M","measure_type":"B"},{"value":"2014","date":"2021-01-28 13:00:00","interval_length":"PT30M","measure_type":"B"},{"value":"1530","date":"2021-01-28 13:30:00","interval_length":"PT30M","measure_type":"B"},{"value":"1402","date":"2021-01-28 14:00:00","interval_length":"PT30M","measure_type":"B"},{"value":"834","date":"2021-01-28 14:30:00","interval_length":"PT30M","measure_type":"B"},{"value":"668","date":"2021-01-28 15:00:00","interval_length":"PT30M","measure_type":"B"},{"value":"444","date":"2021-01-28 15:30:00","interval_length":"PT30M","measure_type":"B"},{"value":"692","date":"2021-01-28 16:00:00","interval_length":"PT30M","measure_type":"B"},{"value":"612","date":"2021-01-28 16:30:00","interval_length":"PT30M","measure_type":"B"},{"value":"630","date":"2021-01-28 17:00:00","interval_length":"PT30M","measure_type":"B"},{"value":"682","date":"2021-01-28 17:30:00","interval_length":"PT30M","measure_type":"B"},{"value":"566","date":"2021-01-28 18:00:00","interval_length":"PT30M","measure_type":"B"},{"value":"722","date":"2021-01-28 18:30:00","interval_length":"PT30M","measure_type":"B"},{"value":"542","date":"2021-01-28 19:00:00","interval_length":"PT30M","measure_type":"B"},{"value":"756","date":"2021-01-28 19:30:00","interval_length":"PT30M","measure_type":"B"},{"value":"1442","date":"2021-01-28 20:00:00","interval_length":"PT30M","measure_type":"B"},{"value":"1090","date":"2021-01-28 20:30:00","interval_length":"PT30M","measure_type":"B"},{"value":"346","date":"2021-01-28 21:00:00","interval_length":"PT30M","measure_type":"B"},{"value":"628","date":"2021-01-28 21:30:00","interval_length":"PT30M","measure_type":"B"},{"value":"672","date":"2021-01-28 22:00:00","interval_length":"PT30M","measure_type":"B"},{"value":"592","date":"2021-01-28 22:30:00","interval_length":"PT30M","measure_type":"B"},{"value":"360","date":"2021-01-28 23:00:00","interval_length":"PT30M","measure_type":"B"},{"value":"230","date":"2021-01-28 23:30:00","interval_length":"PT30M","measure_type":"B"},{"value":"314","date":"2021-01-29 00:00:00","interval_length":"PT30M","measure_type":"B"}],"reading_type":{"unit":"W","measurement_kind":"power","aggregate":"average"}}}"
Dire que l'on ne sait pas est une preuve d'intelligence
Eedomus+, Zigate V2, volets Somfy & Bubbendorf, radiateurs en Tado° & fil pilote, gestion chaudière bois/fioul, gestion borne IRVE, gestion piscine ...
Fab_Rice
 
Messages : 817
Inscription : 27 Déc 2020

Re: [Plugin] ENEDIS

Messagepar merguez07 » 29 Jan 2021 20:19

ok Fab_Rice

le résultat de ton xml n'est pas conforme à l'attendu : je pense que tu n'as pas mis le dernier script (celui que j'ai mis dans ce topic à 11:37)

mets le en lieu et place de l'ancien et refais un test en rajoutant dans l'URL l'argument "&mode=test" et renvois moi le xml

Fab_Rice a écrit:Bon, pour moi ça reste "ERREUR: Valeur lue vide", on verra plus tard hein

Alors attention il ne faut pas regarder le résult du xpath car il n'y a pas de xpath pour les consommations. La valeur du périphérique est directement mis à jour par le script (mais vu ton xml ça n'a pas dû marcher)
tuto 1 -->Programmation des scripts Eedomus
tuto 2 -->SmartDevice
tuto 3 -->Le déclenchement de règles
scripts -->Météo du jour | GH Thermostat | TotalWatt | Detecfire | smartbattery
Skype Eedomus -->lien vers le skype Eedomus
merguez07
 
Messages : 2346
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

Re: [Plugin] ENEDIS

Messagepar Fab_Rice » 29 Jan 2021 20:44

J'avais chargé la MAJ de cet aprem, ok j'essaye avec ton script
Dire que l'on ne sait pas est une preuve d'intelligence
Eedomus+, Zigate V2, volets Somfy & Bubbendorf, radiateurs en Tado° & fil pilote, gestion chaudière bois/fioul, gestion borne IRVE, gestion piscine ...
Fab_Rice
 
Messages : 817
Inscription : 27 Déc 2020

Re: [Plugin] ENEDIS

Messagepar Fab_Rice » 29 Jan 2021 20:52

C'est bon ça marche, faut dire aussi que je n'avais pas pigé qu'il fallait ajouter le "&mode=test" dans l'URL de la requête et non dans le test comme je le faisais en mode "bourrin".
Merci à toi :thumbup:
Dire que l'on ne sait pas est une preuve d'intelligence
Eedomus+, Zigate V2, volets Somfy & Bubbendorf, radiateurs en Tado° & fil pilote, gestion chaudière bois/fioul, gestion borne IRVE, gestion piscine ...
Fab_Rice
 
Messages : 817
Inscription : 27 Déc 2020

Re: [Plugin] ENEDIS

Messagepar merguez07 » 29 Jan 2021 23:15

Fab_Rice a écrit:C'est bon ça marche, faut dire aussi que je n'avais pas pigé qu'il fallait ajouter le "&mode=test" dans l'URL de la requête et non dans le test comme je le faisais en mode "bourrin".


non, non il ne faut pas mettre "&mode=test" dans l'URL de la requête (sinon tu vas avoir une requête chaque heure et tu vas te faire blacklister)
c'est juste quand tu fais un test dans l'URL du test que tu peux le faire si la mise à jour n'a pas marché
tuto 1 -->Programmation des scripts Eedomus
tuto 2 -->SmartDevice
tuto 3 -->Le déclenchement de règles
scripts -->Météo du jour | GH Thermostat | TotalWatt | Detecfire | smartbattery
Skype Eedomus -->lien vers le skype Eedomus
merguez07
 
Messages : 2346
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

Re: [Plugin] ENEDIS

Messagepar surgeon84fr » 30 Jan 2021 07:17

Bonjour à tous.

il est 7h15 et j'ai copier/coller le script.

Je vais surveiller

bonne journee
surgeon84fr
 
Messages : 56
Inscription : 15 Jan 2019

Re: [Plugin] ENEDIS

Messagepar Fab_Rice » 30 Jan 2021 07:38

merguez07 a écrit:
Fab_Rice a écrit:C'est bon ça marche, faut dire aussi que je n'avais pas pigé qu'il fallait ajouter le "&mode=test" dans l'URL de la requête et non dans le test comme je le faisais en mode "bourrin".


non, non il ne faut pas mettre "&mode=test" dans l'URL de la requête (sinon tu vas avoir une requête chaque heure et tu vas te faire blacklister)
c'est juste quand tu fais un test dans l'URL du test que tu peux le faire si la mise à jour n'a pas marché


Soyez clair les gars, je suis déjà pas très fûté :D
(je déconne)
Dire que l'on ne sait pas est une preuve d'intelligence
Eedomus+, Zigate V2, volets Somfy & Bubbendorf, radiateurs en Tado° & fil pilote, gestion chaudière bois/fioul, gestion borne IRVE, gestion piscine ...
Fab_Rice
 
Messages : 817
Inscription : 27 Déc 2020

Re: [Plugin] ENEDIS

Messagepar dommarion » 30 Jan 2021 08:13

Bonjour,
Aujourd'hui mise à jour nickel! ;)
Un grand merci à Merguez07, et à tous pour ce partage et la remise à jour du script.
bonne journée
dommarion :P
OpenWeather|Phases soleil|HeatzyV2|Concaténateur|HP Yamaha|SomfyV3|Epson|Seuils n étages|Baie 2 vantaux|Deezer|Intégrale|Authorization Digest|TV Philips|SmartThings|fonction PHP|Tuya Smartlife|CozyTouch2|mySMS
dommarion
 
Messages : 587
Inscription : 28 Déc 2020

Re: [Plugin] ENEDIS

Messagepar Fab_Rice » 30 Jan 2021 08:27

Mouaip, ça marchait hier, puis pas de MAJ aujourd'hui, dernière valeur 29/01 00h00.
Par contre le script du "2021-01-29 10:19" contient la dernière MAJ ou pas ? :shock:
Dire que l'on ne sait pas est une preuve d'intelligence
Eedomus+, Zigate V2, volets Somfy & Bubbendorf, radiateurs en Tado° & fil pilote, gestion chaudière bois/fioul, gestion borne IRVE, gestion piscine ...
Fab_Rice
 
Messages : 817
Inscription : 27 Déc 2020

Re: [Plugin] ENEDIS

Messagepar merguez07 » 30 Jan 2021 09:45

Fab_Rice a écrit:Mouaip, ça marchait hier, puis pas de MAJ aujourd'hui, dernière valeur 29/01 00h00.


si le serveur est indisponible au moment de la requête de 8h, le script retente une nouvelle requête à chaque heure qui suit. Donc à suivre.

Fab_Rice a écrit:Par contre le script du "2021-01-29 10:19" contient la dernière MAJ ou pas ?


non le dernier script est celui dans ce topic. La team est au courant et devrait mettre à jour le script officiel
tuto 1 -->Programmation des scripts Eedomus
tuto 2 -->SmartDevice
tuto 3 -->Le déclenchement de règles
scripts -->Météo du jour | GH Thermostat | TotalWatt | Detecfire | smartbattery
Skype Eedomus -->lien vers le skype Eedomus
merguez07
 
Messages : 2346
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

Re: [Plugin] ENEDIS

Messagepar Fab_Rice » 30 Jan 2021 10:49

"Technical error. Please try later" :shock:
Sont au top chez Enedis :lol:

Puis après relance de la requête ça redevient normal, le tout, c'est de s'y faire :mrgreen:
Dire que l'on ne sait pas est une preuve d'intelligence
Eedomus+, Zigate V2, volets Somfy & Bubbendorf, radiateurs en Tado° & fil pilote, gestion chaudière bois/fioul, gestion borne IRVE, gestion piscine ...
Fab_Rice
 
Messages : 817
Inscription : 27 Déc 2020

Re: [Plugin] ENEDIS

Messagepar ThierryStrad » 30 Jan 2021 18:44

merguez07 a écrit:
ThierryStrad a écrit:Je corrige : je récupère bien des données, pas en totalité. Je retrouve le bug que j'avais en 2020 : je ne récupère que les données ENEDIS de la seconde partie de la journée : de 14jh à 24h.


tu as quoi comme xml quand tu lances un test ?

Voici ce que j'obtiens :
CONTENU ANALYSE PAR MERGUEZ07, j'efface pour alléger la lecture de ce forum>
Dernière édition par ThierryStrad le 30 Jan 2021 19:21, édité 1 fois.
Thierry
ThierryStrad
 
Messages : 281
Inscription : 22 Déc 2018

Re: [Plugin] ENEDIS

Messagepar merguez07 » 30 Jan 2021 19:11

Salut ThierryStrad,

En fait il y a une particularité avec tes données enedis. L'ancien script (de la team) fonctionnait correctement lorsque la requete envoyait des données relevées toutes les 30mn (<interval_length>PT30M</interval_length>)

Dans ton cas, pour un raison que j'ignore, le requête te renvoie les données relevées toutes les 10mn (<interval_length>PT10M</interval_length>). L'ancien script ne devait pas fonctionner correctement.

Tu dois avoir un réglage particulier sur le site d'Enedis. Peut être est lié au fait que tu as un abonnement heure creuse/heure pleine. est ce le cas ?

En tout état de cause le nouveau script aurait du corriger cela.

peux tu me donner l'historique de ta consommation Wh du 29/01
tuto 1 -->Programmation des scripts Eedomus
tuto 2 -->SmartDevice
tuto 3 -->Le déclenchement de règles
scripts -->Météo du jour | GH Thermostat | TotalWatt | Detecfire | smartbattery
Skype Eedomus -->lien vers le skype Eedomus
merguez07
 
Messages : 2346
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

PrécédentSuivant

Retour vers Scripts & Périphériques du store

Qui est en ligne ?

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