[Store] EJP

Discussion sur la box eedomus

[Store] EJP

Messagepar jba30943 » 09 Nov 2020 14:38

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
jba30943
 
Messages : 8
Inscription : 13 Oct 2019

Re: ALTERNATIVE A SCRIPT EJP

Messagepar ARTNOW » 09 Nov 2020 17:15

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é 28147 fois
HOMEY PRO 2023-IPX 800 V5 -GOOGLE(Home-Nest & mini)
ARDUINO-RASPBERRY PRUSA MK3S
Domotisation de :1xPiscine/9xClimatisations réversibles/2xVolets somfy/1xAlarme/1xChauffe-Eau thermodynamique/3xPortes Garage et 1xportail
ARTNOW
 
Messages : 1367
Inscription : 22 Avr 2018

Re: ALTERNATIVE A SCRIPT EJP

Messagepar merguez07 » 09 Nov 2020 21:03

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;
  }

 ?>
tuto 1 -->Programmation des scripts Eedomus
tuto 2 -->SmartDevice
tuto 3 -->Le déclenchement de règles
scripts -->Météo du jour | GH Thermostat | TotalWatt | Detecfire | smartbattery
Skype Eedomus -->lien vers le skype Eedomus
merguez07
 
Messages : 2352
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

Re: ALTERNATIVE A SCRIPT EJP

Messagepar peji » 11 Nov 2020 18:29

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:
peji
 
Messages : 229
Inscription : 10 Déc 2016
Localisation : Landes

Re: ALTERNATIVE A SCRIPT EJP

Messagepar merguez07 » 11 Nov 2020 20:52

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;


 
 

?>
tuto 1 -->Programmation des scripts Eedomus
tuto 2 -->SmartDevice
tuto 3 -->Le déclenchement de règles
scripts -->Météo du jour | GH Thermostat | TotalWatt | Detecfire | smartbattery
Skype Eedomus -->lien vers le skype Eedomus
merguez07
 
Messages : 2352
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

Re: ALTERNATIVE A SCRIPT EJP

Messagepar peji » 12 Nov 2020 13:05

Un grand merci merguez07 :D
Toujours a l'écoute de nos problèmes !!
Nous allons pouvoir affronter l'hiver sereinement maintenant :lol:
peji
 
Messages : 229
Inscription : 10 Déc 2016
Localisation : Landes

Re: ALTERNATIVE A SCRIPT EJP

Messagepar merguez07 » 12 Nov 2020 13:24

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
tuto 1 -->Programmation des scripts Eedomus
tuto 2 -->SmartDevice
tuto 3 -->Le déclenchement de règles
scripts -->Météo du jour | GH Thermostat | TotalWatt | Detecfire | smartbattery
Skype Eedomus -->lien vers le skype Eedomus
merguez07
 
Messages : 2352
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

Re: [Store] EJP

Messagepar merguez07 » 12 Nov 2020 20:23

Le plugin a été mis à jour :D
tuto 1 -->Programmation des scripts Eedomus
tuto 2 -->SmartDevice
tuto 3 -->Le déclenchement de règles
scripts -->Météo du jour | GH Thermostat | TotalWatt | Detecfire | smartbattery
Skype Eedomus -->lien vers le skype Eedomus
merguez07
 
Messages : 2352
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

Re: [Store] EJP

Messagepar jba30943 » 13 Nov 2020 17:01

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
jba30943
 
Messages : 8
Inscription : 13 Oct 2019

Re: [Store] EJP

Messagepar PLCOMPUTER » 01 Déc 2020 23:40

Bonjour

Merci ! Merci ! Merci !
PLCOMPUTER
 
Messages : 30
Inscription : 25 Mars 2015
Localisation : USA

Re: [Store] EJP

Messagepar yeckert » 07 Jan 2022 15:02

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
yeckert
 
Messages : 7
Inscription : 27 Déc 2021

Re: [Store] EJP

Messagepar yeckert » 29 Mars 2022 19:17

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;
yeckert
 
Messages : 7
Inscription : 27 Déc 2021

Re: [Store] EJP

Messagepar merguez07 » 30 Mars 2022 08:18

Je viens de corriger dans le store :D
tuto 1 -->Programmation des scripts Eedomus
tuto 2 -->SmartDevice
tuto 3 -->Le déclenchement de règles
scripts -->Météo du jour | GH Thermostat | TotalWatt | Detecfire | smartbattery
Skype Eedomus -->lien vers le skype Eedomus
merguez07
 
Messages : 2352
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

Re: [Store] EJP

Messagepar titou32 » 12 Sep 2026 07:50

Bonjour le script EJP ne fonctionne plus. il n'y a rien a faire ou fonctionne t il chez quelqu'un ?
titou32
 
Messages : 4
Inscription : 05 Mars 2016

Re: [Store] EJP

Messagepar 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)
opa95
 
Messages : 989
Inscription : 04 Fév 2019
Localisation : Val d'Oise

Re: [Store] EJP

Messagepar titou32 » 13 Sep 2026 20:03

Bonjour Opa95 et merci pour ta réponse.je vais tester ça dans la semaine et ferait un retour.
titou32
 
Messages : 4
Inscription : 05 Mars 2016

Re: [Store] EJP

Messagepar titou32 » 13 Sep 2026 20:18

ça a l'air de fonctionner ! on verra au 1er jour d'EJP ! encore merci !
titou32
 
Messages : 4
Inscription : 05 Mars 2016


Retour vers Box eedomus

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 36 invité(s)