Bonjour, j’ouvre se sujet car depuis mon installation de Jeedom sur Docker sur NAS Synology, j’ai une erreur récurrente sur le centre de message tout les jours à 5h00min05sec :
Erreur sur history::archive() : [MySQL] Error code : 42000 (1055). Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‹ jeedom.history.datetime › which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by : REPLACE INTO historyArch(cmd_id,datetime,value) SELECT cmd_id,datetime,avg(CAST(value AS DECIMAL(12,2))) as value FROM history WHERE datetime
Bonjour,
Après une maj de jeedom hier, j’ai 39 Erreurs, style :
Erreur l’archivage des historiques : {« cmd_id »:« 5104 »,« archivePackage »:3600,« archiveTime »:« 2020-04-21 03:00:04 »} => [MySQL] Error code : 42000 (1055). Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‹ jeedom.history.datetime › which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by : REPLACE INTO historyArch(cmd_id,datetime,value) SELECT cmd_id,datetime,avg(CAST(value AS DECIMAL(12,2))) as value FROM history WHERE datetime
J’ai le même phénomène :
Une erreur journalière depuis février, et depuis la mise à jour en 4.0.51 plusieurs d’erreurs du même type par jour (à 5h du matin)
Je pense que le problème est le même que celui discuté ici :
Donc c’est une nouvelle erreur MySQL apparue en 4.0.51 ?
Voici un extrait du log de ce matin.
50 erreurs en tout, j’imagine que la quantité est reliée au nombre de commandes de mon installation.
[2020-04-23 05:00:09][ERROR] : Erreur l’archivage des historiques : {« cmd_id »:« 665 »,« archivePackage »:3600,« archiveTime »:« 2020-04-23 03:00:06 »} => [MySQL] Error code : 42000 (1055). Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‹ jeedom.history.datetime › which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by : REPLACE INTO historyArch(cmd_id,datetime,value) SELECT cmd_id,datetime,avg(CAST(value AS DECIMAL(12,2))) as value FROM history WHERE datetime <= :archiveTime AND cmd_id=:cmd_id AND value IS NOT NULL GROUP BY UNIX_TIMESTAMP(datetime) DIV :archivePackage
Y a t il d’autres personnes à avoir cette erreur ?
Oui depuis plusieurs semaines (si ce n’est mois) j’ai une erreur qui apparaît de temps en temps, et jamais pris le temps de m’en occuper :
[2020-03-24 05:00:12][ERROR] : Erreur sur history::archive() : [MySQL] Error code : 22003 (1264). Out of range value for column ‹ (null) › at row 1 : REPLACE INTO historyArch(cmd_id,datetime,value) SELECT cmd_id,datetime,avg(CAST(value AS DECIMAL(12,2))) as value FROM history WHERE datetime <= :archiveTime AND cmd_id=:cmd_id AND value IS NOT NULL GROUP BY UNIX_TIMESTAMP(datetime) DIV :archivePackage
Et depuis le 22/04, je viens de me manger 14 alertes :
[2020-04-23 05:00:11][ERROR] : Erreur l’archivage des historiques : {« cmd_id »:« 2589 »,« archivePackage »:3600,« archiveTime »:« 2020-04-23 03:00:11 »} => [MySQL] Error code : 22003 (1264). Out of range value for column ‹ (null) › at row 1 : REPLACE INTO historyArch(cmd_id,datetime,value) SELECT cmd_id,datetime,avg(CAST(value AS DECIMAL(12,2))) as value FROM history WHERE datetime <= :archiveTime AND cmd_id=:cmd_id AND value IS NOT NULL GROUP BY UNIX_TIMESTAMP(datetime) DIV :archivePackage
Comme sur les dernières j’ai un ID de commande j’ai vérifié, et ils sont tous liés à mon plugin « Téléinformation » (remontée des données du compteur électrique).
Ceux qui ont ces messages vous l’utilisez aussi ? Ça pourrait être une piste ?
Moi j’ai fait la mise à jour V4.0.52 hier dés qu’elle est sortie.
Ce matin une trentaine de messages…
Erreur l’archivage des historiques : {« cmd_id »:« 1699 »,« archivePackage »:0,« archiveTime »:« 2020-04-25 03:00:11 »} => [MySQL] Error code : 22012 (1365). Division by 0 : REPLACE INTO historyArch(cmd_id,datetime,value) SELECT cmd_id,datetime,avg(CAST(value AS DECIMAL(12,2))) as value FROM history WHERE datetime
Et mon plugin SIGRY LINKY qui renvoit encore des erreurs , il ne récupère plus les données… ca avait remarché quelques jours…ca recommence , je sais pas si c’est lié.
Bon toujours les mêmes messages ce matin, une trentaine!
2020-04-26 05:00:14 history Erreur l’archivage des historiques : {« cmd_id »:« 1338 »,« archivePackage »:0,« archiveTime »:« 2020-04-26 03:00:12 »} => [MySQL] Error code : 22012 (1365). Division by 0 : REPLACE INTO historyArch(cmd_id,datetime,value) SELECT cmd_id,datetime,avg(CAST(value AS DECIMAL(12,2))) as value FROM history WHERE datetime
Probablement que les données de la table history qui vont être transférées dans la table historyArch ne sont pas clean.
Pour savoir qui a créé ces données, il faudrait exécuter cette requête SQL dans Réglages/Système/Configuration onglet >_OS/DB bouton Ouvrir à coté de Administration Base de données:
Pour Yann55 la commande est:
select * from cmd where id = 1699 or id = 1338
Pour les autres, adaptez la requête à la cmd_id présente dans le message d’erreur.
Dans la colonne eqType, vous aurez le plugin et dans la colonne name vous aurez le nom de la commande archivée.
Comme la plupart des erreurs dans cette discussion sont sur des cmds horodatées à 3h00, il faudrait regarder dans le moteur des taches, ce qui est lancé à 3h sur vos Jeedom. ( backup ? )
Il suffirait peut être alors de déplacer de déplacer l’heure de la tache lancée à 3h00 pour résoudre les erreurs.
Toujours les mêmes erreurs (39 erreurs par jour), par contre chez moi c’est à 5h00 !
[2020-04-25 05:00:14][ERROR] : Erreur l’archivage des historiques : {« cmd_id »:« 936 »,« archivePackage »:3600,« archiveTime »:« 2020-04-25 03:00:04 »} => [MySQL] Error code : 42000 (1055). Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‹ jeedom.history.datetime › which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by : REPLACE INTO historyArch(cmd_id,datetime,value) SELECT cmd_id,datetime,avg(CAST(value AS DECIMAL(12,2))) as value FROM history WHERE datetime <= :archiveTime AND cmd_id=:cmd_id AND value IS NOT NULL GROUP BY UNIX_TIMESTAMP(datetime) DIV :archivePackage
Merci, j’ai regardé dans la colonne programmation rien à 3h00, par contre à 5h00 j’ai sur « history » « archive », et dans mes log l’erreur vient bien de « history »
J’ai démarré la tâche , et effectivement les erreurs sont apparues.