Pb plugin delestage

Bonjour,

J’ai un soucis avec mon plugin délestage. J’ai voulu le tester en abaissant le seuil à 3000W et en mettant tous mes équipements de chauffage en marche. Avant l’hiver, c’est important de tester :slight_smile:

Le délestage ne se fait pas, tous les équipements restent sur « Confort » et je suis prévenu que le délestage ne fonctionne pas via une notification.

J’ai 2 thermostats, le délestage est en « intelligent ».


J’ai 2 boutons dans le dashboard concernant le delestage « AUTO » ou « OFF », il est sur « AUTO »
Jamais vu un équipement « délesté » dans le dashboard
image

La seule erreur que je vois est dans listener_execution, ces logs tournent en boucle

PHP Warning:  arsort() expects parameter 1 to be array, null given in /var/www/html/plugins/delestage/core/class/delestage.class.php on line 164
PHP Warning:  Invalid argument supplied for foreach() in /var/www/html/plugins/delestage/core/class/delestage.class.php on line 165
PHP Warning:  Illegal string offset 'mode' in /var/www/html/plugins/delestage/core/class/delestage.class.php on line 186
PHP Warning:  count(): Parameter must be an array or an object that implements Countable in /var/www/html/plugins/delestage/core/class/delestage.class.php on line 211
PHP Warning:  array_search() expects parameter 2 to be array, null given in /var/www/html/plugins/delestage/core/class/delestage.class.php on line 377
PHP Warning:  array_unique() expects parameter 1 to be array, null given in /var/www/html/plugins/delestage/core/class/delestage.class.php on line 381
PHP Warning:  implode(): Invalid arguments passed in /var/www/html/plugins/delestage/core/class/delestage.class.php on line 381

Bonsoir @yofa,

Nous sommes malheureusement nombreux a avoir signaler de nombreux disfonctionnements de ce plugin voir ce sujet par exemple. Certain ont même ouvert des tickets, et n’avons pas eu de réelles explications ou solutions d’apportées. @Denis s’était penché sur mon problème suite à une ouverture de ticket. Cela a semble t’il amélioré la situation. Il m’avait écrit à l’époque qu’il fallait attendre le retour du développeur de vacances (c’était pour les vacances de février 2020). Visiblement il doit encore être en vacances car nous n’avons eu aucun retour sur le poste cité plus haut.
Il y a eu une mise à jour du plugin en mai 2020, mais on ne sait pas ce qui a été modifié, le changelog est…vide. C’est vraiment problèmatique pour un plugin officiel, et si essentiel.

Bonjour @choupfamily63,
Merci pour ta réponse.
Il faut donc attendre que quelqu’un s’en occupe. Je comprend ta déception, je suis moi même dans l’informatique et on ne paie personne avec un plugin à 6€, sauf a ce que jeedom soit dans tous les foyers Français et européens, ce qui n’est pas le cas.
Il faut donc attendre, et espérer que quelqu’un se penche dessus. Pour ma part, je ne pense pas que mon pb soit lié au plugin, peut-être un pb de conf ou de dépendances à vérifier, mais peut-être que je me trompe
Bon courage,
Yofa

Ce plugin est pratiquement inutilisable depuis le début et aucune réaction de Jeedom.

Je trouve le travail de l’équipe Jeedom excellent dans l’ensemble mais le silence et l’inaction sur ce plugin est incomprehensible.

Bonjour @chtouffu ,
@choupfamily63, @chtouffu
J’ai pas trouvé le plugin dans github.
J’aurai bien regardé ce qui a été fait, mais je n’y connais pas grand chose en php.
Est-ce que vous avez essayé que le mode « intelligent » ou aussi les autre modes?
Le code en php dans le repertoire plugin semble pas compliqué à comprendre. Avez vous regardé?
Yofa

J’ai essayé beaucoup de choses, mais tant que je ne verrai pas de mise à jour je resterais avec ma gestion du délestage par scenario.
L’idée du délestage intelligent est super mais le jour ou j’ai retrouvé la chambre de ma fille à 15° la nuit à cause d’un délestage qui ne s’est jamais arrêté, ça m’a bien calmé…
Bug connu et remonté plusieurs fois mais sans aucune réponse.

Salut @chtouffu,
Il fonctionne comment ton scénario , tu prioriser les thermostats a délestés ou c’est toujours le même en premier …

J’ai pas réussi à faire un délestage intelligent…
C’est un délestage par palier qui active des virtuels assigné comme « ouvertures » dans mes thermostats.

Pour le délestage intelligent, il faut se méfier de la puissance configurée pour le thermostat (optionnel certes mais utilisé pour la réactivation).
Si le seuil de puissance est à 5000, que le thermostat a réactive est à 3000 de puissance, alors pour qu’il se réactive, il faut donc que la puissance consommée soit inférieure à 2000.
Et que l’équipement ait été désactivé ou modifié depuis plus de 5mn… (configurable)

De plus les infos de thermostats sont passées par nom et pas par id, donc éviter les thermostats qui ont le même nom ou des caracteres spéciaux.

Enfin, le plugin gère une liste des thermostats stoppés et des thermostats actifs. Je sais pas en quoi le plugin est protégé contre le fait que les appels soient faits en // et s’écrasent entre eux.

Question subsidiaire: On a tous vu la commande « Off » du thermostat, mais c’est quoi la commande « On »

Moi mon soucis, j’ai jamais vu un thermostat qui était délesté, et c’est pour cela que je veux ce plugin. Faut que je creuse pourquoi.

Je me réponds à moi même, mais cela peut aider d’autres personnes

De ce que j’ai vu dans le code rapidement, la réactivation des équipements ne se fait pas par le plugin délestage, mais par le biais d’un autre mécanisme (comme le thermostat, ou une sonde de température avec un scenario)

Donc le délestage ne fait que stopper les équipements.

Qui confirme?

Dans la doc il est indiqué

Pour l’instant seul le plugin thermostat officiel est géré par le délestage intelligent. Il est cependant possible d’utiliser les 2 autres modes de délestage avec les autres thermostats.

Donc autant l’utilisation du mode intelligent est à prendre avec des pincettes autant dans les autres mode il serait plus que surprenant que ce plugin ne fasse pas de réactivation des équipements après avoir délesté.

Enfin c’est mon avis, je ne l’ai pas.

@Bison, en effet c’est pas le même fonctionnement pour les autre modes. Il y a bien une commande « On » et « Off » de prévu pour chaque équipement.

J’ai peut-être dit un truc incorrect sur le thermostat et le mode intelligent aussi. Je suis nul en php, et kje connais pas les API jeedom

Pour mon problême (pas de delestage), j’ai mis le plugin en debug ce matin et mis les thermostats au max

[2020-11-05 08:58:05][INFO] : [Energie][Delestage Chauffage] dépassement !
[2020-11-05 08:58:17][DEBUG] : value compteur : 5428
[2020-11-05 08:58:17][INFO] : [Energie][Delestage Chauffage] dépassement !
[2020-11-05 08:58:17][INFO] : [Energie][Delestage Chauffage]Aucun thermostat en marche !
[2020-11-05 08:58:29][DEBUG] : value compteur : 4876
[2020-11-05 08:58:29][INFO] : [Energie][Delestage Chauffage] dépassement !
[2020-11-05 08:58:29][INFO] : [Energie][Delestage Chauffage]Aucun thermostat en marche !
[2020-11-05 08:58:41][DEBUG] : value compteur : 2231
[2020-11-05 08:58:41][INFO] : [Energie][Delestage Chauffage] réactivation !
[2020-11-05 08:58:53][DEBUG] : value compteur : 5612
[2020-11-05 08:58:53][INFO] : [Energie][Delestage Chauffage] dépassement !

:rofl:
a suivre donc, mais le « Aucun thermostat en marche ! » me laisse songeur

J’ai rajouté des logs, et là ça marche :slight_smile:

J’ai déjà eu « réactivation ! » pendant des heures avec un seuil délestage à 9000W et le niveau avait baissé à moins de 1000W

Je n’ai plus les log mais j’avais posté dans d’autres topics.

Je n’ai aucune competence en programmation ou language informatique.

@yofa tu as « rajouté des logs » c’est à dire ?

Dans delestage.class.php

ligne 119:

log::add('delestage', 'debug', 'executeSmart ' . __LINE__ . ' ' . implode(',', array_unique($thermostatId)));

ligne 121:

log::add('delestage', 'debug', 'executeSmart ' . __LINE__ . ' ' . $thermostatId);

C’est pas trop compliqué, et c’est pris en compte à la volée par le système. J’utilise FileZilla pour éditer le fichier sur mon PC avec un editeur avec coloration syntaxique et transferer le fichier sur le serveur.
Faire un backup au préalable

Verifier que les logs ne génèrent pas d’erreur dans « listener_execution » du genre

PHP Warning:  trim() expects parameter 1 to be string, array given in /var/www/html/core/class/log.class.php on line 108

Pour comprendre, en quoi l’ajout d’un log supprime le problème ?

L’ajout de log était censé m’aider à comprendre pourquoi j’avais « Aucun thermostat en marche ! »
Je pensais que ma conf était incorrecte
Et en rajoutant le debug et le log, cela tombe en marche. Il n’y a évidemment pas d’explication rationnelle à cela, sauf a ce que le log change la donnée.

Maintenant @chtouffu, si tu as le courage d’outiller un peu le fichier avec des logs, tu trouveras peut-être des explications à tes pbs

Pour ma part, j’ai renommé mes thermostats « sans espace » avec des « _ » à la place. Je sais que c’est un peu tiré par les cheveux, mais le passage de paramètre par nom équipement me rassure pas avec des espaces.

De même, je sais que si je met une puissance trop haute dans la conf de mon thermostat, il ne se réactivera jamais

[2020-11-05 20:11:53][INFO] : [Energie][Delestage Chauffage]impossible de reactiver thermostat 119 car puissance encore trop élevée ! (5267 + 4500 > 6000)

Ensuite attendre 15mn, c’est long dans des logs qui écrivent toutes les 5s ou lorsque la sonde de puissance est modifiée

Pour info:

  • Il semble qu’un thermostat qui est en délestage reste toujours « en délestage » tant qu’il n’a pas besoin de chauffer.
	$calcul = $this->calculDiff($thermostatId);	
	if($calcul > 0){  // on essaye de reactiver le thermostat avec le plus fort différentiel positif
		$diff[$thermostatId] = $calcul;
	} // pas de else, donc jamais delesté

C’est dommage, je l’aurai pas vu ainsi. S’il n’a pas besoin de chauffer (consigne < température) alors il sort du délestage, non… (sauf pour la clim, mais là je pense que c’est pas géré de toute façon)

		arsort($diff);  // dommage le tableau peut être vide --> erreur dans les logs
		foreach ($diff as $id => $value) { // idem ligne du dessus

j’ai protégé cela par

		if(!is_array($diff)){
			log::add('delestage', 'info', $this->getHumanName() . 'Aucun thermostat a réactiver !');
			return;
		}

Merci pour ces précisions. Donc, si j’ai bien compris, c’est sur des détails type espace dans les noms que ça se joue ?
Je ne connais vraiment rien au langage informatique alors je ne sais pas si je vais pouvoir traduire.
J’ai pas vraiment envie de retrouver ma fille gelée dans sa chambre encore une fois :cold_face:

@chtouffu, rajouter des logs est je pense à la portée de « presque » tout le monde.

J’ai vu dans un autre post concernant ce plugin quelqu’un qui avait configuré un nouveau délestage avec pour entrée un virtuel et des thermostats pour tester que ta conf fonctionne (et pas jouer avec tes radiateurs comme je l’ai fait)

  • [entrée] la puissance utilisée par la maison (ou les thermostats)
  • [entrée] la température captée des thermostats (pour comprendre comment fonctionne l’intelligence)
  • [sortie optionnelle] les radiateurs (on/off) gérés par le thermostat

Il ne faut pas aussi négliger l’interaction humaine (changement de réglage des thermostats pendant le délestage)

La domotique nécessite de la confiance, et de bien maitriser tous le paramètres et les interactions.