Forum eedomus
http://forum.eedomus.fr/

[Store] EJP
http://forum.eedomus.fr/viewtopic.php?f=14&t=10163
Page 1 sur 1
Auteur:  jba30943 [ 09 Nov 2020 14:38 ]
Sujet du message:  [Store] EJP

Bonjour,

Je suis déçu de constater qu'effectivement le script EJP est blacklisté toujours par EDF. Ca fonctionne quand on utilise l'url directement dans une fenêtre web mais pas du tout en passant par le script pourtant l'url est la même.
Pour ceux qui ont un abonnement EJP, vous avez tous sur votre tableau électrique l'appareil qui reçoit l'impulsion d'edf qui nous informe du passage en EJP. Jai même dans la maison une ampoule rouge qui s'allume durant les jours EJP.
l'idée est la suivante, comment récupérer cette information et la faire remonter dans Eedomus. est ce qu'il existe un capteur "état, 0, 1" ou une ampoule dont la fonction sera juste de dire a Eedomus je suis allumée alors c'est EJP.
Dans cette hypothèse, je n'aurai que l'information a l'instant T sans pouvoir anticiper au lendemain. C'est quand même mieux que rien surtout que je souhaite pouvoir gérer mes radiateurs COZYTOUCH et les mettre en hors gèle dès que l'info tombe.
Quelqu'un aurai un idée du type de matériel qui peut rendre ce service?
A vous lire.
Bien cordialement

jean marc
Auteur:  ARTNOW [ 09 Nov 2020 17:15 ]
Sujet du message:  Re: ALTERNATIVE A SCRIPT EJP

Salut jba30943, tu peux mettre un relais en parallèles sur la lampe et passer l'info par le contact d'un SMART MODULE FGS-214 ;)

Pièces jointes:
2020-11-09_17-15-46.png
2020-11-09_17-15-46.png (69.17 Kio) Consulté 29399 fois
Auteur:  merguez07 [ 09 Nov 2020 21:03 ]
Sujet du message:  Re: ALTERNATIVE A SCRIPT EJP

bonsoir,

en sniffant le site https://selectra.info/energie/fournisseurs/edf/ejp on peut obtenir l'état EJP

J'ai rapidement fait un petit script (a mettre en lieu et place de l'ancien script ejp)

Code : Tout sélectionner
<?php

  $url          ='https://selectra.info/energie/fournisseurs/edf/ejp';
  $response     = httpQuery($url,'GET');
  $exploded     = sdk_multiexplode(array('<div id="block-ejp">','<p class="text-box namely">'),$response);
  $block_ejp    = $exploded[1];
  $exploded     = sdk_multiexplode(array('<div ','</div>'),$block_ejp);
  $ejp_today    = sdk_multiexplode(array('<p class="card--ejp__state">','</p>'),$exploded[6]);
  $ejp_tomorrow = sdk_multiexplode(array('<p class="card--ejp__state">','</p>'),$exploded[14]);
 
 
 
  sdk_header('text/xml');
  $xml  = "<EJP>\n";
  $xml .= '     <aujourdhui>'   .sdk_format($ejp_today[1])      ."</aujourdhui>\n";
  $xml .= '     <demain>'       .sdk_format($ejp_tomorrow[1])   ."</demain>\n";
  $xml .= '</EJP>';
  echo $xml;

 

 
  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";
    if ($string==" Pas d'EJP ") $format="NON_EJP";
    if ($string==" EJP ") $format="EST_EJP";
    return  $format;
  }

 ?>
Auteur:  peji [ 11 Nov 2020 18:29 ]
Sujet du message:  Re: ALTERNATIVE A SCRIPT EJP

Bonjour
Ayant un contrat Tempo et concerné également par le problème du script ( a cause d’EDF) , pensez vous que l’on puisse récupérer les infos du boîtier tempo RT100 qui indique la couleur du jour et du lendemain par 6 diodes ( 2 pour heures pleines heures creuses) pour gérer des règles ??? :crazy:
Auteur:  merguez07 [ 11 Nov 2020 20:52 ]
Sujet du message:  Re: ALTERNATIVE A SCRIPT EJP

pour le plugin tempo J'ai aussi rapidement fait un petit script (a mettre en lieu et place de l'ancien script tempo). Seuls les comptages nb de jours restant blanc et bleus ne fonctionnent pas

Code : Tout sélectionner
<?php
/*************************************************************************************
**
** Script Tempo pour eedomus
**
** Script qui permet de récupérer au format XML les données Tempo :
**   - Couleur Tempo du jour (//aujourdhui),
**  - Couleur Tempo du lendemain (//demain),
**  - Nombre de jours Bleu restants (//decompte_bleu),
**  - Nombre de jours Blanc restants (//decompte_blanc),
**  - Nombre de jours Rouge restants (//decompte_rouge),
**
*********
**
** L'URL est de la forme : edf-tempo.php
**
*********
**
** Evolution des versions :
**
** 2017-07-26 (DjMomo)    :V1.0 - Version initiale
** 2019-10-24 (Merguez07) :V2.0 - utilisation du proxy Eedomus
** 2019-10-26 (Merguez07) :V2.1 - Passage du cahce de 24h à 1h
* *2020-11-11 (Merguez07) :V3.0 - utilisation des données du site de selectra
**************************************************************************************/

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 =   strtoupper(str_replace(' ','',$string));
    $format =   str_replace('TEMPO','',$format);
    $color  =   array("BLEU","BLANC","ROUGE");
    if (in_array($format,$color)!=true) $format="ND";
    return  $format;
 }

$url            ='https://selectra.info/energie/fournisseurs/edf/tempo';
$response       = httpQuery($url,'GET');
$exploded       = sdk_multiexplode(array('<div id="block-tempo">','<p class="text-box laptop">'),$response);
$block_tempo    = $exploded[1];
$exploded       = sdk_multiexplode(array('<div ','</div>'),$block_tempo);
$tempo_today    = sdk_multiexplode(array('<p class="card--ejp__state">','</p>'),$exploded[6]);
$tempo_tomorrow = sdk_multiexplode(array('<p class="card--ejp__state">','</p>'),$exploded[14]);
$nb_red_days    = sdk_multiexplode(array('<p class="card__title h4 col-xs-12 col-md-6">','</p>'),$exploded[22]);
$nb_red_days    = str_replace(' ','',$nb_red_days[1]);

// Génération du XML
  sdk_header('text/xml');
$xml = '<?xml version="1.0" encoding="UTF-8"?>';
$xml .= "<tempo>\n";
$xml .= '   <aujourdhui>'   .sdk_format($tempo_today[1])    ."</aujourdhui>\n";
$xml .= '   <demain>'       .sdk_format($tempo_tomorrow[1]) ."</demain>\n";
$xml .= "   <decompte_bleu>ND</decompte_bleu>\n";
$xml .= "   <decompte_blanc>ND</decompte_blanc>\n";
$xml .= '   <decompte_rouge>'.$nb_red_days."</decompte_rouge>\n";
$xml .= '</tempo>';
echo $xml;


 
 

?>
Auteur:  peji [ 12 Nov 2020 13:05 ]
Sujet du message:  Re: ALTERNATIVE A SCRIPT EJP

Un grand merci merguez07 :D
Toujours a l'écoute de nos problèmes !!
Nous allons pouvoir affronter l'hiver sereinement maintenant :lol:
Auteur:  merguez07 [ 12 Nov 2020 13:24 ]
Sujet du message:  Re: ALTERNATIVE A SCRIPT EJP

peji a écrit:Un grand merci merguez07


je vais mettre à jour les plugins tempo et EJP afin de faciliter l'intégration du script :D
Auteur:  merguez07 [ 12 Nov 2020 20:23 ]
Sujet du message:  Re: [Store] EJP

Le plugin a été mis à jour :D
Auteur:  jba30943 [ 13 Nov 2020 17:01 ]
Sujet du message:  Re: [Store] EJP

bonjour

Merci a MERGUEZ07
J'ai mis un moment a comprendre ce qu'il fallait faire mais j'y suis arrivé.

CA MARCHE
Merci encore
Auteur:  PLCOMPUTER [ 01 Déc 2020 23:40 ]
Sujet du message:  Re: [Store] EJP

Bonjour

Merci ! Merci ! Merci !
Auteur:  yeckert [ 07 Jan 2022 15:02 ]
Sujet du message:  Re: [Store] EJP

Bonjour
j'ai du modifier le script pour récupérer les jours EJP.
j'ai remplacé
$ejp_today = sdk_multiexplode(array('<p class="card--ejp__state">','</p>'),$exploded[6]);
par
$ejp_today = sdk_multiexplode(array('<p class="card-ejp__state">','</p>'),$exploded[6]);

et
$ejp_tomorrow = sdk_multiexplode(array('<p class="card--ejp__state">','</p>'),$exploded[14]);
par
$ejp_tomorrow = sdk_multiexplode(array('<p class="card-ejp__state">','</p>'),$exploded[14]);

Dans la source de la page internet intérrogée car-ejp ne prend qu'un seul tiret
Auteur:  yeckert [ 29 Mars 2022 19:17 ]
Sujet du message:  Re: [Store] EJP

Pour Ejp pareil
$url ='https://selectra.info/energie/fournisseurs/edf/ejp';
$response = httpQuery($url,'GET');
$exploded = sdk_multiexplode(array('<div id="block-ejp">','<p class="text-box namely">'),$response);
$block_ejp = $exploded[1];
$exploded = sdk_multiexplode(array('<div ','</div>'),$block_ejp);

$ejp_today = sdk_multiexplode(array('div class="card-ejp__icon">','<span>','</span>'),$exploded[4]);

$ejp_today = sdk_format($ejp_today[1]);

$ejp_tomorrow = sdk_multiexplode(array('div class="card-ejp__icon">','<span>','</span>'),$exploded[10]);
$ejp_tomorrow = sdk_format($ejp_tomorrow[1]);

$countdown = sdk_multiexplode(array('<p class="card__title h4 col-xs-12 col-md-6">','</p>'),$exploded[18]);
$countdown = str_replace(' ','',$countdown[1]); // " 0/22 " => "0/22"
$nb_day_ejp = substr($countdown,0,strpos($countdown,"/")); // "0/22" => "0"
$nb_total_day_ejp = substr($countdown,strpos($countdown,"/")+1); // "0/22" => "22"
$countdown = $nb_total_day_ejp-$nb_day_ejp;
Auteur:  merguez07 [ 30 Mars 2022 08:18 ]
Sujet du message:  Re: [Store] EJP

Je viens de corriger dans le store :D
Auteur:  titou32 [ 12 Sep 2026 07:50 ]
Sujet du message:  Re: [Store] EJP

Bonjour le script EJP ne fonctionne plus. il n'y a rien a faire ou fonctionne t il chez quelqu'un ?
Auteur:  opa95 [ 13 Sep 2026 17:56 ]
Sujet du message:  Re: [Store] EJP

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;

 ?>

Auteur:  titou32 [ 13 Sep 2026 20:03 ]
Sujet du message:  Re: [Store] EJP

Bonjour Opa95 et merci pour ta réponse.je vais tester ça dans la semaine et ferait un retour.
Auteur:  titou32 [ 13 Sep 2026 20:18 ]
Sujet du message:  Re: [Store] EJP

ça a l'air de fonctionner ! on verra au 1er jour d'EJP ! encore merci !
Page 1 sur 1 Le fuseau horaire est UTC+1 heure