Centre de messages - Mise à jour d'un message

Tags: #<Tag:0x00007f385dfb7100>

Page : index.php?v=d&p=plugin
Jeedom_version : 4.0.38
Uname : Linux VM-Debian9-Jeedom 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64 GNU/Linux


Message :
Bonjour
J’ai peut être décelé un problème au niveau du centre de messages. Voici mon explication/exemple :
Lors de l’apparition d’une mise à jour, un message apparaît dans le centre de messages Jeedom ainsi :
image
Puis, Jeedom doit (je pense) réanalyser la situation de temps en temps et le compteur d’occurrences augmente alors.
image
Jusque là, on est bon sur le fonctionnement.
Admettons que je n’ai pas été dans le centre de messages pour le purger et qu’une seconde application propose une mise à jour :
image
Dans ce cas, le nombre d’occurrence va continuer à augmenter, le message ne sera pas mis à jour et il n’y a pas de nouveau message signifiant la nouvelle mise à jour

J’ai détecté ce point car je reçoit un message sur Telegram à chaque message publié dans le centre des messages et là, on peut voir que le centre de message n’affiche que la mise à jour Jeedom et pas la mise à jour Heliotrope.

Je peux vous apporter plus d’informations si besoin
Caelion

Salut,
Moi je crois que ça dépend des plugins, j’ai aussi la notif via telegram du centre de messages.
Sans parler des occurrences, sur certains plugins j’ai la notif et pas pour d’autres.
J’ai pourtant bien TOUS les messages du centre de messages qui ne concernent pas des plugins.

Ps: pour les plugins, tu peux suivre aussi le flux rss du market avec notif telegram via le plugin jeerss, c’est sympa :wink:

Et as tu reçu la notif de mise à jour sur telegram pour helio ?
De mémoire pas car cela a été vu comme répétition (d’où le compteur)

Cela ne dépend pas des plugins, c’est le core qui gère cela

Bonjour
Je n’ai pas reçu le message pour Heliotrope justement. Il n’apparaît pas dans le centre de messages donc cela ne déclenche pas la notification.
C’est ça selon moi le bug car il ne s’agit pas réellement du même message en principe

Bonjour,
c’est un bug « v4 » alors car on n’a pas cette colonne « occurence » dans la v3.
il faudrait ajouter le tag v4 sur ce message… il faudrait ajouter les tags v3 et v4 en fait sur le forum :slight_smile:

Bonjour
Ce bug est toujours présent dans la V4.0.56
A savoir le message update des plugins / jeedom n’est pas regénéré dans le centre de messages quand bien même il est différent :
exemple : J1 : message :
2020-06-05 09:15:02 update De nouvelles mises à jour sont disponibles : vigilancemeteo,gcast
Je fais la mise à de vigilancemeteo
Le J2 je n’ai pas de message tant que je n’ai pas supprimé le message de mise à jour.
Une fois supprimé, il m’indique bien le nouveau avec uniquement gcast :
exemple : J2 : message :
2020-06-06 17:15:02 update De nouvelles mises à jour sont disponibles : gcast
Même bug en cas de nouveaux plugins à mettre à jour. Par exemple, s’il y avait en plus le plugin virtuel, il n’y a aucun message généré tant qu’il y a déjà un message d’update (même s’il ne concerne pas virtuel) dans le centre de message.

Je n’arrive pas à trouver le code qui gère cette notion de doublon pour chercher un correctif.
Si quelqu’un a une idée ou la @Jeedom-Team un correctif, je suis preneur.
Merci à vous
Caelion

En l’état ce n’est pas un « bug », c’est bien le comportement « voulu »:

  • si un message est posté avec un identifiant $_logicalId, c’est cette clé qui détermine s’il faut ajouter le nouveau message ou incrémenter le nombre d’occurrence du message existant (fonction message::save())
  • le check de mise à jour poste un message avec l’identifiant newUpdate; voir core\class\jeedom.class.php dans le cronHourly():
$updates = update::byStatus('update');
if (count($updates) > 0) {
	message::add('update', __('De nouvelles mises à jour sont disponibles : ', __FILE__) . trim($toUpdate, ','), '', 'newUpdate');
}

Mais effectivement on pourrait remplacer par ceci pour avoir la dernière liste dans les messages:

$updates = update::byStatus('update');
if (count($updates) > 0) {
        message::removeAll('update', 'newUpdate');
	message::add('update', __('De nouvelles mises à jour sont disponibles : ', __FILE__) . trim($toUpdate, ','), '', 'newUpdate');
}

j’ai fait le PR ici:

@Loic, qu’en penses-tu?

Bonjour,

J’ai changé le message il ne contient plus la liste des plugins qui ont une update comme ca le message est toujours juste

1 J'aime

Dommage alors que la solution était là.

Du coup voici un autre PR pour retirer le code qui construit cette liste, pas la peine de boucler et de faire 2 query DB pour construire une liste que l’on n’utilise pas:

2 J'aimes

Bonjour,

Sans me prononcer sur la pertinence de cette modif, il y a des utilisateurs (dont je fais partie) qui récupèrent cette liste pour un envoi par Telegram.


Il faudrait donc veiller à ce que ça apparaissent bien dans le changelog car sinon il risque d’avoir ici des topics sur ce sujet :wink:

1 J'aime

@Madcow oui moi aussi je récupère cette liste que j’envoie sur Telegram

Bonjour
Merci pour vos réponses
Je récupère également la liste pour la recevoir via Telegram et c’est en voyant que je ne la recevais pas lors de nouvelles mises à jour à faire que j’ai identifié ce point.