Plugin delestage - bug identifé à corriger

Bonjour @Loic

J’ai acheté aujourd’hui le plugin DELESTAGE

il y a un bug PHP dedans, une tableau n’est pas initialisé en mode ‹ cascadocyclique ›.
Du coup ca fait rien… ca plante et ca deleste jamais !
Je veux bien faire un PR mais j’ai pas trouvé le GIT

environ ligne 300 , juste après ce passage la

if($etat != 0 && $etat != '0' && $etat != 'off' && $etat != 'Off') {
                        log::add('delestage', 'info', $this->getHumanName() . ' Arret commande !' . $name);
                        if( $type == 'hierarchique' || $type == 'cascadocyclique'){

il faut absolument rajouter ceci

 if(is_array($stoppedEquipements) == false){
    $stoppedEquipements=[];
}

cdt

5 « J'aime »

Et sinon globalement ce plugin marche très mal
J’ai pas eu suffisamment de temps pour bien m’approprier le code mais il fait clairement pas le taf correctement
Quand je pense que je l’ai payé 6e …

J’ai actuellement un script assez costaud en temps réel qui fait le taf, j’etais très intéressé par cette fonction cyclique.

Faut comprendre que me concernant si le délestage marche pas et bien mon putain de linky saute et je dois aller dans la rue pour le réactiver !

Je vais essayer de regarder plus en détail car il y a quand même beaucoup de potentiel dans ce plugin !

Salut je vais sûrement dire beaucoup de bêtises mais pas grave.

Si tu fouilles un peu le forum, tu verras qu’il y a beaucoup de sujet sur ce plugin, et souvent sur du dysfonctionnement et sans réel réponse à la fin. (bug mal identifié, non reproductible, sujet qui dérape, etc) Ce plugin est super mais effectivement je pense qu’il y a beaucoup de coquilles dedans, et comme il est assez complexe (dans son fonctionnement, pas son code) personne ne veux et/ou ne peux y toucher, à tel point qu’il n’a même pas de git (en tout cas je ne l’ai pas trouvé non plus) En passant je viens de voir que même son design n’est pas actualisé pour Jeedom v4…

Je vois que tu as quelques connaissances en php et l’envie de mettre les mains dedans, un git aurait été bien au moins pour proposer quelques PR comme le tiens… Si la team pouvait mettre en place ce git :slight_smile:

Par contre je ne vais pas me plaindre sur les 6€, je me sers de ce plugin depuis 2 ans (dont 1 an sans soucis) c’est largement sous payé et ce n’est pas en abordant ce sujet que le reste va avancer.

#MyTwoCents

Hello.

Petite information le plugin n’a pas de git public…
Il y en a forcément un privé sinon le plugin ne pourrait pas être proposé sur le market
Quant à mettre du code payant sur un git public, chacun y vois bien les risques

1 « J'aime »

Ah oui j’avais pas vu ça comme ça :stuck_out_tongue:

Bonjour

« Quant à mettre du code payant sur un git public, chacun y vois bien les risques » => vu que le code est librement consultable une fois qu’on a payé les 6€… non je vois pas l’intérêt !

Alors j’ai bien fouillé le code et bien il y a un paquet d’erreur, j’ai fait fonctionné le mode
2 et 3 (cascade et hiérarchique)

pour cela j’ai modifié plusieurs truc, je vais en lister quelques un.

Pour tester, je me suis créé un virtuel avec 5 équipements ( de puissance diff), et une puissance consommé virtuel qui s’actualise lorsque mes équipements virtuels sont actif ou off

bug global

  • impossible de declarer 0 en delais de réactivation => corrigé
  • un equipment pouvait être délesté plusieurs fois, ce qui pose des soucis par la suite, je m’explique, on est à la limite du seuil, et on tente d’allumer l’équipement 5, vu qu’on franchit le seuil, et si les condtions font que le 5 est prio pour etre delester, il va etre eteint , bon on retente de l’allumer, logique, il est de nouveau rééteint. sauf que , si par la suite la conso baisse, le plugin va decider d’allumer le 5. le 5 fait son taf puis s’éteint , et non, le plugin va le réallumer encore . => corrigé
  • dans mon cas , j’utilisait 1 virtuel pour simuler plusieurs équipements (mais en fait dans la vrai vie, je vais aussi passer certain truc via un virtuel), hors le plugin fonctionne via nom d’équipement, donc ca bug, j’ai basculé en numéro de commande, du coup plus de soucis => corrigé

le mode cascade

  • il y avait une erreur de frappe pour la libération du delestage en cascade ($type au lieu de $this) , du coup ca arrêtait jamais la boucle , même lorsqu’on était largement en deça du seuil, donc on contineu de delester pour rien ! => corrigé
  • il faut d’abod éteindre l’équipement suivant puis réallumer l’ancien (lors de la boucle de la cascade) et pas l’inverse, sinon on peut pendant quelque seconde provoquer un pic de sur conso => corrigé

le mode hierarchique

  • oublie de mise a jour de la puissance lors du delestage d’un equipement , du coup le plugin pouvait s’enmeler les pinceaux lors de cas complexe => corrigé

j’ai pas tester le mode smart

Je sais pas trop comment je partage le code mis a jour…

cdt

2 « J'aime »

@Alexandre, si tu passes par ici, cela vaut p-e la peine de voir :grin:

Bonjour

j’ai continué ma mise a jour de code

mode cyclique

  • lors du délestage en mode cycle, si un des élements du cycle est déja en position OFF, on passe au suivant et on l’ignore. (actuellement, on le ‹ remet › à OFF, puis lors du prochain cycle , on l’allume !! (délirant)
  • lorsqu’on dépasse le seuil en mode cycle, on lance donc le delestage par cycle, si on constate que malgrès cela ce n’est pas suffisant, on lance immediatement le delestage hierarchique prévu ! (actuellement, cela ne se fait pas, cela se fait au nouvel event (variation de la puissance) !
  • mise a jour de log

mode cascade

  • bug identifié dans le traitement du code retour du delestage , la fonction de delestage retourne soit un String soit un tableau, ca ne peut pas marcher ! => tout basculé en tableau

Mise a jour des logs en DEBUG

cdt

1 « J'aime »

Bonjour,

Merci pour toutes ces modifications.

Je veux bien le code en zip en MP et je mettrai a jour en beta si il faut avant passage en prod.

Merci beaucoup pour ce travail communautaire.

1 « J'aime »

Bonjour @Alexandre, ok je t’envoi ca

je ne connais pas l’impact de mes modifs sur la partie Smart.

Je termine de bien tout tester.

4 « J'aime »

Bonjour,
Je vois que ça bouge au sein de la communauté sur ce plugin.
Et cela confirme, une fois de plus, que ce plugin OFFICIEL est inutilisable en l’état et pourtant toujours vendu.
MESSAGE A JEEDOM: merci de prendre en compte les corrections évoquées dans ce « sujet » que tout le monde puisse en profiter.
(oui j’ai fait un ticket: sans réponse à ce jour)

Bonjour @frixo,
est-ce que tu as partagé tes fix? Peut tu faire un diff du code fixé ?
@Alexandre, Je me suis permis aussi quelques fix en mode smart. Je laisse un dev les regarder et se les approprier.

Jérôme

Bonjour

J’ai envoyé hier mon fixe

Je l’utilise depuis 3j sans soucis en mode cascade
J’ai je pense tout corrigé , j’ai testé une tone de ko limite
J’ai 3 chambre en cycle , et si le seuil est toujours dépassé, je fini par en délester d’autre pièce et si c’est toujours pas bon je deleste complètement une des pièce du cycle , bref maintenant on peut faire des trucs carrément stylé ! Ça marche du tonnerre. Surtout avec un temps de réponse fixé à 0 (qui bugguait avant ) du coup c’est instantané !

Hâte d’avoir vos retours une fois publié

Ya que le mode smart que j’ai pas touché

3 « J'aime »

Merci pour le boulot

1 « J'aime »

Salut,

Je crois que vues les réponses ci-dessus, Jeedom n’aura pas attendu ton message pour les prendre en compte :wink:

Allez, positivie attitude :slight_smile:

Si je suis un peu pénible sur le sujet, c’est que ça fait longtemps que des membres de la communauté remonte le problème :inutilisable et ça n’a pas bougé sur le market toujours ce plugin officiel vendu en l’état et je ne le fais pas égoïstement mais pour avoir une réaction de Jeedom et que les prochains sachent à quoi s’attendre. :wink:

1 « J'aime »

J’en en mp mon code a qui le demande :slight_smile:

J’espère que jeedom va vite prendre en compte ces modifications car c’est vrai sue le fonctionnement de ce plug in etait bizarrre. Chez moi il n’a pas vraiment fonctionné.

Salut,

Attention il s’agit d’un plugin payant donc à ne pas forcément fournir à toute personne qui en ferait la demande.

Tu as transmis tes corrections à l’équipe ? Dans l’affirmative elles vont être appliquées juste un peu de patience…

1 « J'aime »

je suis d’accord avec toi