par opa95 » 13 Sep 2026 17:56
Bonjour titou
titou32 a écrit:Bonjour le script EJP ne fonctionne plus. il n'y a rien a faire ou fonctionne t il chez quelqu'un ?
Il semble que tu n'aies pas eu beaucoup de réponses.
Je n'utilise pas EJP, mais j'ai adapté le script.
J'ai conservé le site Electra classique car le site "observatoires" refuse la connexion de l'eedomus.
Il fonctionne bien pour les jours non EJP et devrait être compatible.
Pour les jours EJP, j'ai supposé que le code de retour était "EJP", si ce n'est pas le cas il faudra modifier la ligne 35 (ou me le signaler), je ne peux pas le vérifier actuellement (il n'y a pas de jours EJP!)

Voici le code.
- Code : Tout sélectionner
<?php
/*************************************************************************************
**
** Script EJP pour eedomus
**
** Script qui permet de récupérer au format XML les données EJP :
** - Etat EJP du jour (//aujourdhui),
** - Etat EJP du lendemain (//demain),
** - Nombre de jours EJP restants (//decompte),
** - ajout V3.4 opa95
** - Date du jour (//dateaujourdhui),
** - Tarif EJP du jour (//tarifaujourdhui),
** - Date du lendemain (//datedemain), opaa95
** - Tarif EJP du lendemain (//tarifdemain),
** - Nombre de jours EJP totaux (//total),
** - Nombre de jours EJP ecoules (//ecoules),
** - Code renvoyé par Electra (//rawaujourdhui),
** - Code renvoyé par Electra (//rawdemain).
**
*********
**
** L'URL est de la forme : edf-ejp.php?
**
**
** Evolution des versions :
**
** 2017-07-21 (DjMomo) : V1.0 - Version initiale
** 2017-07-26 (DjMomo) : V1.1 - Nettoyage du code
** - Mise à jour champ author fichier json
** - Ajout du suivi des versions
** 2019-10-26 (Merguez07) : V2.0 - utilisation du proxy Eedomus
** 2020-11-11 (Merguez07) : V3.0 - Utiisation des données du site Selectra
** 2020-11-30 (Merguez07) : V3.1 - Correction détection jour EJP
** 2022-01-07 (Merguez07 et Yeckert) : V3.2 - Correction détection jour EJP
** 2022-03-30 (Merguez07 ) : V3.3 - Correction détection jour EJP
** 2026-09-13 (opa95 ) : V3.4 - adaptation au changements du site Electra
** - autres valeurs disponibles dans le XML
** - Jour EJP à vérifier (adapter la ligne 44, remplacer eventuellement ("EJP","EJP") par ("EJP","val") val : la valeur correcte)
** - Décompte à vérifier
**************************************************************************************/
define("NONEJP","Non-EJP");//Code envoyé par Electra, a modifier si nécessaire. controler avec la valeur affichee dans le XML (rawaujourdhui ou rawdemain)
define("EJP","EJP");//idem
function sdk_multiexplode ($delimiters,$string) { // Separer une chaine de caracteres suivant plusieurs separateurs
$ready = str_replace($delimiters, $delimiters[0], $string);
$launch = explode($delimiters[0], $ready);
return $launch;
}
function sdk_format ($string) { // met en forme selon la semantique du plugin du store
$format = "ND";
$string = strtoupper(str_replace(' ','',$string));
if ($string==strtoupper(NONEJP)) $format="NON_EJP";
if ($string==strtoupper(EJP)) $format="EST_EJP";
return $format;
}
function sdk_decodefield($string){
$block_ejp__ = sdk_multiexplode(array('>','</div>'),$string);
return $block_ejp__[1];
}
function sdk_decodeinfo($string){
$data['jour'] = sdk_decodefield($string[1]);//Aujourd'hui - Demain
$data['date'] = sdk_decodefield($string[2]);//Date
$data['etat'] = sdk_decodefield($string[3]);//Etat
$data['cout'] = sdk_decodefield($string[6]);//cout
$data['cout'] = str_replace(',','.',substr($data['cout'],0,6));//cout
return $data;
}
$url = 'https://selectra.info/energie/fournisseurs/edf/ejp/demain';
$response = httpQuery($url,'GET');
//echo $response."\n";
$exploded = sdk_multiexplode(array('<div class="px-6 pt-6 pb-5 text-center">'),$response);//count 4
//var_dump($exploded);
$block_ejp_ = sdk_multiexplode(array('<div '),$exploded[1]);
//var_dump($block_ejp_);
$jour = sdk_decodeinfo($block_ejp_);
//var_dump($jour);
$block_ejp_ = sdk_multiexplode(array('<div '),$exploded[2]);
//var_dump($block_ejp_);
$demain = sdk_decodeinfo($block_ejp_);
//var_dump($demain);
$block_ejp__ = sdk_multiexplode(array('span class="zt-badge zt-badge--danger zt-badge--md zt-badge--subtle zt-badge--pill">','jour'),$block_ejp_[7]);
//var_dump($block_ejp__);
$countdown = trim($block_ejp__[1]);
$total_ = sdk_multiexplode(array('sur les ','jour'),$block_ejp__[2]);
//var_dump($total_);
$total = trim($total_[1]);
$nb_day_ejp = $total-$countdown;
//echo $jour['jour']." : ".$jour['date']." : ".$jour['state']." : ".$jour['cout']."\n";
//echo $demain['jour']." : ".$demain['date']." : ".$demain['state']." : ".$demain['cout']."\n";
@sdk_header('text/xml');
$xml = '<?xml version="1.0" encoding="UTF-8"?>'."\n";
$xml .= "<ejp>\n";
$xml .= ' <aujourdhui>' .sdk_format($jour['etat']) ."</aujourdhui>\n";
$xml .= ' <dateaujourdhui>' .$jour['date'] ."</dateaujourdhui>\n";
$xml .= ' <tarifaujourdhui>' .$jour['cout'] ."</tarifaujourdhui>\n";
$xml .= ' <demain>' .sdk_format($demain['etat']) ."</demain>\n";
$xml .= ' <datedemain>' .$demain['date'] ."</datedemain>\n";
$xml .= ' <tarifdemain>' .$demain['cout'] ."</tarifdemain>\n";
$xml .= ' <decompte>' .$countdown ."</decompte>\n";
$xml .= ' <total>' .$total ."</total>\n";
$xml .= ' <ecoules>' .$nb_day_ejp ."</ecoules>\n";
$xml .= ' <rawaujourdhui>' .$jour['etat'] ."</rawaujourdhui>\n";
$xml .= ' <rawdemain>' .$demain['etat'] ."</rawdemain>\n";
$xml .= '</ejp>';
echo $xml;
?>
eedomus+, Zibase V1, RFP1000, RFXcom, RadioDriver CPL 630 X2D, capteurs puissance OWL, thermometres Oregon, téléinfo (USB Linky), detecteurs ouverture X2D, pilotage chauffage X2D, Ecoflow River PRO, PAC Shogun (Atlantic-Cozytouch)