Erreur récurrente (sur history::archive() : [MySQL])

Corrigé (mauvais copier coller)

Bizzar, j’ai modifié quelques id : « Arrondi », « Mode de lissage », « Purger l’historique si plus vieux que », etc et la en exécutant la tâche « history », plus d’erreurs !!

Faut voir sur plusieurs jours si les erreurs reviennent.
Dans le résultat sur la table history, vous avez des lignes avec en date début avril. Ce qui n’est pas normal sur la table history dont le contenu est transféré chaque nuit dans historyArch.

D’accord Merci en tout cas !! je vais voir ce que ça va donner dans les prochains jours.
Bien Cordialement

Il existe aussi sur la page Réglages/Système/Configuration onglet >_OS/DB
URL directe : http://jeedom/index.php?v=d&p=administration#ostab

image
qui permet entre autres de nettoyer dans les tables history/historyArch les enregistrements de commandes qui ne sont plus historisées.

@Yann55 et ceux qui ont un message d’erreur contenant division par zéro
Et peut-être tout ceux qui ont bricolés ces paramètres:

Il faut vérifier les valeurs sur l’onglet Commandes accessible par Réglages/Système/Configuration
image

Vous devez avoir 0 pour Archiver par paquet de h

1 « J'aime »

Merco @jpty, tu viens de résoudre mon problème d’archivage.

@jpty merci à toi.

Effectivement j’ai vérifié hier ce paramètre hier et j’avais 0,1 j’ai mis 1 à la place et ce matin , plus de message.
Par contre je ne suis jamais allé dans ces paramètres et encore moins modifier. Je ne sais pas comment ces valeurs ont pu changé , une mise à jour peut les modifier?

En tout cas le problème semble résolu! merci encore.

Vous aviez mis 0,1 ou 0.1 ?

Il y avait « 0.1 »
J’ai remplacé par " 1 "

Hello,

J’ai fait un nettoyage de la BDD qui m’a détecté des erreurs et corrigés.
Le lendemain, toujours 80 erreurs.

Erreur l'archivage des historiques : {"cmd_id":"3344","archivePackage":3600,"archiveTime":"2020-04-27 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`

Bonjour,
Vous avez quoi comme paramètre là:

Hello,

Je regarderais justement ton post à ce sujet.
Pour ma part, le paramètre Archiver par paquet de h est déjà à 1.

Vous pourriez SVP me fournir le résultat de cette requête SQL :

select * from cmd where id = 3344

Et voilà :

id	eqLogic_id	eqType	logicalId	generic_type	order	name	configuration	template	isHistorized	type	subType	unite	display	isVisible	value	alert
3344	365	virtual			7	dht3pin7h	{"timeline::enable":"0","interact::auto::disable":"0","jeedomCheckCmdOperator":"==","historizeMode":"avg","repeatEventManagement":"auto"}	{"dashboard":"core::default","mobile":"core::default"}	1	info	numeric	%	{"invertBinary":"0","showNameOndashboard":"1","showNameOnmobile":"1","showIconAndNamedashboard":"0","showIconAndNamemobile":"0","forceReturnLineBefore":"0","forceReturnLineAfter":"0"}	1		{"warningif":"","warningduring":"","dangerif":"","dangerduring":""}
1 « J'aime »

Merci je regarde.
Votre message d’erreur au-dessus est tronqué ?

Non, il faut scroller sur la droite.

Salut,

Je pense que @jpty parle de ce message d’erreur :

1 « J'aime »

Non pas le résultat de la requete SQL mais dans le message d’erreur au dessus la requête SQL est tronquée.

Excuse-moi… Je fais plusieurs trucs en même temps, mon cerveau ne devait pas être branché correctement :smiley:

Voici :

[2020-04-27 05:00:16][ERROR] : Erreur l'archivage des historiques : 
{"cmd_id":"3344","archivePackage":3600,"archiveTime":"2020-04-27 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