Files
abonnel-www/8c68d55b-9a4d-498c-90ac-afb911046321/index.md
T

123 lines
5.0 KiB
Markdown

# Barry Energy — Archive (fournisseur d'électricité, 2021)
![Barry bouscule les codes de la distribution d'électricité avec un prix marché.](20210321-191657.png)
<note important>**Barry Energy n'existe plus.** Cet article est conservé à titre d'archive.</note>
## 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
<?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)
- 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