# Barry Energy — Archive (fournisseur d'électricité, 2021) ![Barry bouscule les codes de la distribution d'électricité avec un prix marché.](20210321-191657.png) **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. ![](20210302-085200.png) ![](20210302-132826.png) ## 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 '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 "

Métriques de Barry Energy

"; echo "

Rapport établi le ".translateDate(date('l d F Y'))." à ".date('H:i:s')."

"; echo "

Etat de l'abonnement

"; // 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 "

Consommation du $dateJour

"; // 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 "

Prix du $dateJour

"; // 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) - API documentation : https://developer.barry.energy/ - Inscription : https://barry.energy/fr/signup - État des services : https://barry.energy/fr/faq/360005006394 - Consommation électrique mondiale : https://www.electricitymap.org/zone/FR - Roadmap développement : https://barry.energy/fr/roadmap