Scénario pour les alertes horaires Ecowatt

Bonjour,
Ci-dessous, un scénario pour afficher des messages suivant le niveau d’alerte Ecowatt et modifier la consigne de chauffage.

Le contenu du bloc code
$err = 0; $valueNow = 0; $valueNext = 0; $valueNextTS = 0; $txtValueNextTS = '';
$cmd_id = '#[Maison][rteEcowatt demo][Valeur maintenant]#'; // A personnaliser
$cmd = cmd::byString($cmd_id);
if(is_object($cmd)) {
  $valueNow = $cmd->execCmd();
    // Test si cette valeur est historisée si non err 32
  if(!$cmd->getIsHistorized()) $err += 32;
}
else $err += 1;

$cmd_id = '#[Maison][rteEcowatt demo][Valeur prochaine alerte]#'; // A personnaliser
$cmd = cmd::byString($cmd_id);
if(is_object($cmd)) $valueNext = $cmd->execCmd();
else $err += 2;

$cmd_id = '#[Maison][rteEcowatt demo][Timestamp de la prochaine alerte]#'; // A personnaliser
$cmd = cmd::byString($cmd_id);
if(is_object($cmd)) {
  $valueNextTS = $cmd->execCmd();
  $txtValueNextTS = rteEcowatt::myStrftime('%A %e %B à %Hh',$valueNextTS);
}
else $err += 4;

$cmd_id = '#[Maison][rteEcowatt demo][Maintenant timestamp]#'; // A personnaliser
$cmd = cmd::byString($cmd_id);
if(is_object($cmd)) $nowTS = $cmd->execCmd();
else $err += 8;
if($err) message::add('scenario',"Erreur de configuration ou de recherche des commandes. Valeur: $err");

$tags = $scenario->getTags();
$tags['#valueNow#'] = $valueNow;
$tags['#valueNext#'] = $valueNext;
$tags['#valueNextTS#'] = $valueNextTS;
$tags['#txtValueNextTS#'] = $txtValueNextTS;
$tags['#nowTS#'] = date('d/m/Y H:i',$nowTS);
$scenario->setTags($tags);

Les cmd_id du bloc code sont à modifier pour correspondre à votre configuration.

  • Pour tester, en l’absence d’alerte Ecowatt, il faut créer un équipement et cocher la case Mode démo pour utiliser les données du bac à sable RTE fournies avec le plugin.
  • Selon la valeur de Répéter Oui ou Non, le scénario sera déclenché chaque heure ou uniquement lors d’un changement du niveau d’alerte.
  • Cette commande sera utilisée comme déclencheur du scénario.

A vous de transformer les messages en action pour réduire/augmenter votre consommation suivant le niveau d’alerte de l’heure actuelle.

Bonne utilisation.
JP

EDIT: Je vous conseille d’utiliser le Scénario phpvarious car plus facilement installable et configurable. De plus il permet d’avoir les alertes Ecowatt au fur et à mesure de leur diffusion par RTE sans cocher répèter Oui dans les paramètres de la commande Valeur maintenant

9 « J'aime »

:bulb::chart_with_upwards_trend:

En fait @jpty c’est un membre du gouvernement et ni vu ni connu on va se plier à leurs volontées :grin:

Allez hop on éteint les lumières

:candle::chart_with_downwards_trend:

Mode blague au cas où ce soit mal perçu !

Merci :wink:

3 « J'aime »

Tu m’as démasqué. :male_detective:
J’ai modifié le scénario:
image
Suivi dans quelques mois par
image

2 « J'aime »

Bonsoir,
Ma petite contribution.
Pas besoin d’historiser, il suffit seulement de mettre la commande Info Maintenant timestamp en déclencheur :

Scénario :

Le contenu du bloc code
/////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////// NE PAS MODIFIER /////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////
$tags['#valueNow#'] = -1; // initialisation tag valueNow.
$tags['#txtValueNextTS#'] = -1; // initialisation tag txtValueNextTS.
$tags['#nextAlertValue#'] = -1; // initialisation tag nextAlertValue.
$versionScenario = '2022-11-04 21:05:00';
$trigger = str_replace('#','',$scenario->getRealTrigger()); // récupération du trigger.
$cmd = cmd::byId($trigger);
$scenario->setLog('┌──────────── Lancement du bloc code (version scénario : ' . $versionScenario . ')'); //log
if (is_object($cmd)) { // si trigger est une commande.
  $eqlogicId = $cmd->getEqLogic(); // on récupère Eqlogic.
  $cmd_valueNow = $eqlogicId->getCmd('info', 'valueNow'); // recherche de la cmd ayant logicalId = valueNow.
  $cmd_nextAlertTS = $eqlogicId->getCmd('info', 'nextAlertTS'); // recherche de la cmd ayant logicalId = nextAlertTS.
  $cmd_nextAlertValue = $eqlogicId->getCmd('info', 'nextAlertValue'); // recherche de la cmd ayant logicalId = nextAlertValue.
  if (is_object($cmd_valueNow)) $tags['#valueNow#'] = $cmd_valueNow->execCmd(); // si logicalId valueNow existe, modification du tag.
  if (is_object($cmd_nextAlertTS) && is_object($cmd_nextAlertValue)) { // si logicalId nextAlertTS & $cmd_nextAlertValue existent, modification des tags.
    $tags['#nextAlertValue#'] = $cmd_nextAlertValue->execCmd(); // Récupération de la valeur de la prochaine alerte.
    if ($cmd_nextAlertTS->execCmd() > 0) $tags['#txtValueNextTS#'] = rteEcowatt::myStrftime('%A %e %B à %Hh',$cmd_nextAlertTS->execCmd()); // Récupération & transformation de la valeur du timestamp de la prochaine alerte.    
  }
  //////// Log scénario /////////////  
  $scenario->setLog('| Valeur Actuelle : ' . $tags['#valueNow#']);
  $scenario->setLog('| Valeur Prochaine alerte : ' . $tags['#nextAlertValue#']);
  $scenario->setLog('| Date Prochaine alerte : ' . $tags['#txtValueNextTS#']);  
  //////////////////////////////////
}
else $scenario->setLog('| ERREUR : Déclencheur inconnu !!!'); //log
$scenario->setLog('└───────────────────────────'); //log
$scenario->setTags($tags); // envoi des tags

Template scénario a télécharger et remplacer l’extension en .json :
Alerte Ecowatt.txt (23,7 Ko)

Bonne soirée.

7 « J'aime »

Scénario ci-dessus modifié, car il générait une erreur si l’user n’a pas mis de « Quote automatique » dans la configuration Jeedom.

Merci pour le scenario et le plugin JPTY.
Je possède une « horloge » LAMETRIC. Et il existe un plugin RTE qu’on peut installer dessus pour avoir l’état ECOWATT en temps réel.
C’est un complément intéressant à mon sens au plugin jeedom pour savoir si on peut lancer une machine électroménager ou pas…
J’allais interfacer LAMETRIC avec le plugin jeedom… mais un plugin sur LAMETRIC existait déjà…

Bonjour,

à l’import après avoir selectionner l’equipement en parametre,j’ai l’erreur suivante (mais les données semblent quand meme importées

https://XXX.YYYY.ZZ/index.php?v=d&p=scenario&id=134	68	Uncaught ReferenceError: printScenario is not defined

(Jeedom 4.3.5)

Norbert

Hello, je reproduit en 4.3.5
je pense que c’est plutôt un problème coté Core.

1 « J'aime »

Bonjour,

Sur leur market en cherchant Ecowatt, il ne m’a donné que ça:

Il n’y a que la conso actuelle France et le niveau d’alerte Ecowatt actuel.
Y a t-il un autre plugin LAMETRIC ?
Avez-vous accès aux heures suivantes? Pour une machine de linge, il faut avoir plus que l’heure actuelle.

Merci pour le template, je l’ai ajouté sans problème ( 4.3.5)

3 « J'aime »

Hello, de rien :wink:,
tu as du rencontrer le soucis soulevé par @ngrataloup dans son post

Pour info j’ai ciblé le problème, je vais PR la modification sur le core.

2 « J'aime »

Effectivement j’avais pas vu j’ai eu aussi

http://xxxx/index.php?v=d&p=scenario&id=29 68 Uncaught ReferenceError: printScenario is not defined

mais sinon ca marche

Correction faite en alpha si je ne m’abuse :

Bonsoir,
petite modification de mon scénario, le post a été mis à jour, il ne signalait pas les alertes futures qui arrivent au fur et à mesure des MàJ chez RTE puisqu’il n’y a pas de changement du niveau d’alerte actuel.
Merci @jpty d’avoir constaté cette petite erreur :wink:

Pour ceux qui utilise mon scénario, pas nécessaire de tout refaire, il suffit simplement de modifier (inverser) la gestion des répétitions :

Bonne soirée.

6 « J'aime »

Bonjour,
ou dois je mettre le fichier « Alerte Ecowatt.json » ?

tu crées un scenario (vierge), puis template puis charger le template

Et tu selectionnes le fichier json

Norbert

Bonsoir,
merci beaucoup, je me coucherai moins bête

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.