Barry Energy — Archive (fournisseur d'électricité, 2021)
← Retour
technologie

Barry Energy — Archive (fournisseur d'électricité, 2021)

Cédrix · 15/05/2026

Barry bouscule les codes de la distribution d'électricité avec un prix marché.

**Barry Energy n'existe plus.** Cet article est conservé à titre d'archive.

Présentation

En janvier 2021 est arrivé un nouveau fournisseur d'électricité, Barry Energy. En plus de permettre d'économiser sur le prix moyen du kWh, il offrait la possibilité de payer sa consommation sur le prix du marché, sans marge.

Les factures électriques sont habituellement basées sur un prix d'abonnement et un prix fixe au kWh. Certains abonnements permettent des tranches horaires où le prix du kWh peut varier : tarifs heures creuses / heures pleines, heures Week-End, heure JP, heure TEMPO, heure bleue, heure rouge...

Les concurrents au distributeur historique EDF proposent également des tarifs plus ou moins avantageux. En 2017, j'avais fait le choix de souscrire à l'offre CDiscount Energie, avec des économies de l'ordre de 100 à 200 € par an.

Avec Barry, on payait au plus juste la vraie consommation d'énergie : un prix au kWh différent chaque heure, dépendant du prix du marché et de la consommation heure par heure.

API Barry Energy

Afin d'adapter les appareils à forte consommation (chauffe-eau, chauffage par accumulation, charge de voiture...) au meilleur tarif horaire, j'avais développé un commutateur intelligent s'appuyant sur l'API Barry.

L'API (documentation : https://developer.barry.energy/) permettait de se connecter sur les serveurs de Barry pour obtenir des informations tarifaires. Trois méthodes étaient disponibles : getMeteringPoints, getAggregatedConsumption et getPrice.

Code PHP (Api.php)

<?PHP

$priceArea = array(
  'dk' => 'DK_NORDPOOL_SPOT_DK1',
  'fr' => 'FR_EPEX_SPOT_FR'
);

function getMethod($postData) {
  // Le token suivant n'est pas valide. Il faut le modifier avec le vôtre, obtenu dans l'application Barry Energy
  $authToken = 'Bx6Da6v0h34MM7OhAjCaN9zak+IZLNe9tUlCebw7+LiP8+5SH6BcdNrOY85s9q7Sdfrmc/yyjWrJROlJ9vhlRCYY310TsHcGNodMzr3cGfZOwVYNPYWxGxcZHO94p6W98SJC/TdIYhsE+tRnvMMKHktTdkRjmMolHAtWpYyFzDw=';
  $url = "https://jsonrpc.barry.energy/json-rpc";

  $context = stream_context_create(array(
    'http' => array(
        'method' => 'POST',
        'header' => "Authorization: Bearer {$authToken}\r\n".
            "Content-Type: application/json\r\n",
        'content' => json_encode($postData)
    )
  ));

  $response = file_get_contents($url, FALSE, $context);

  if($response === FALSE){
      die('Error');
  }
  return $response;
}

function translateDate($strDate) {
  $nomJourSemaineEN = array("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday");
  $nomJourSemaineFR = array("Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche");
  $nomMoisEN = array("January","February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "Décember");
  $nomMoisFR = array("Janvier","Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre");
  $strDate = str_ireplace($nomMoisEN, $nomMoisFR, $strDate);
  $strDate = str_ireplace($nomJourSemaineEN, $nomJourSemaineFR, $strDate);
  return $strDate;
}

setlocale(LC_ALL,'fr');

$dateJour = date('d F Y');
$dateJourDemain = date('d F Y', strtotime('+1 day', strtotime($dateJour)));

echo "<h1>Métriques de Barry Energy</h1>";
echo "<p>Rapport établi le ".translateDate(date('l d F Y'))." à ".date('H:i:s')."</p>";

echo "<h2>Etat de l'abonnement</h2>";

// getMeteringPoints
$postData = array(
  'method' => 'co.getbarry.api.v1.OpenApiController.getMeteringPoints',
  'id' => 0,
  'jsonrpc' => '2.0',
  'params' => array()
);
$response = getMethod($postData);
$responseData = json_decode($response, TRUE);
print_r($responseData);

echo "<h2>Consommation du $dateJour</h2>";

// getAggregatedConsumption
$postData = array(
  'method' => 'co.getbarry.api.v1.OpenApiController.getAggregatedConsumption',
  'id' => 0,
  'jsonrpc' => '2.0',
  'params' => array(date(DATE_ATOM, strtotime($dateJour)), date(DATE_ATOM, strtotime($dateJourDemain)))
);
$response = getMethod($postData);
$responseData = json_decode($response, TRUE);
print_r($responseData);

echo "<h2>Prix du $dateJour</h2>";

// getPrice
$postData = array(
  'method' => 'co.getbarry.api.v1.OpenApiController.getPrice',
  'id' => 0,
  'jsonrpc' => '2.0',
  'params' => array($priceArea['fr'], date(DATE_ATOM, strtotime($dateJour)), date(DATE_ATOM, strtotime($dateJourDemain)))
);
$response = getMethod($postData);
$responseData = json_decode($response, TRUE);
print_r($responseData);

Liens (archivés)

Commentaires

Aucun commentaire pour l'instant. Soyez le premier !

Laisser un commentaire
Un code de vérification sera envoyé à votre adresse email.