Nombreuses Erreurs MySQL (22001Data too long for column 'value' at row 1 : REPLACE INTO history SET cmd_id=:cmd_id, `datetime`=:datetime, value=:value )

Bonjour,

depuis quelques temps, j’ai de multiples erreurs BDD MySQL sur plusieurs plugins :

  • plugin Mode :
    Erreur exécution de la commande [Maison][Mode Present][Absent] : [MySQL] Error code : 22001 (1406). Data too long for column ‹ value › at row 1 : REPLACE INTO history SET cmd_id=:cmd_id, datetime=:datetime, value=:value
  • plugin MQTTDiscovery :
    Fatal exception in handleMessage:[MySQL] Error code : 22001 (1406). Data too long for column ‹ value › at row 1 : REPLACE INTO history SET cmd_id=:cmd_id, datetime=:datetime, value=:value

Ces deux erreurs concernant un champ datetime (coïncidence ?) je viens quérir votre aide ici. J’ai pu lire qu’il était limité à 127 caractères (pas de soucis perso).

J’ai essayé de supprimer des historisations, mais sans succès jusqu’à lors.
Dès que mon mode de présence change (Absent ↔ Présent), même sans historisation de l’heure de changement, j’ai une erreur. Ce qui pose problème, c’est lors du passage Absent → Présent, l’erreur empêche le passage au nouveau mode, et ensuite je reçois plein de message sur mes détecteurs de présence, bref, un effet de bord…

J’ai vu un sujet passer sur l’utilisation du plugin « log manager » mais j’avoue ne pas trop savoir comment catcher l’erreur pour identifier de manière précise mon soucis.
Ce qui me perturbe, c’est que ça fonctionnait bien auparavant (mais je ne peux pas dire depuis combien de temps j’ai cette erreur).
Une idée ?

Bonjour
Tu historises une commandes qui a une valeur trop grande pour être historisé. Il suffit de désactiver l’historisation de la commande en question pour ne plus avoir de soucis.

Merci @Loic , j’ai cherché à dé-historiser, mais j’ai toujours le problème.
@Loic sais tu comment je peux savoir c’est quel(s) paramètre(s) ?

Parametre de quoi ? Ya pas de parametre la je comprends pas la question

Paramètre = valeur historisée :slightly_smiling_face:

Bonjour,

Menu Analyse, historique bouton configuration vous trié sur la colonne historisé et vous verrez toutes les commandes historisées.
Il sera alors assez facile de trouver la commande coupable. Qui doit être une info string

Merci, je vais y jeter un coup d’oeil.
Rassure moi, on peut historiser des info string, mais la longeur ne doit pas dépasser 127 char, c’est ça ?

Bon, j’ai viré certaines commandes historisées par le menu analyse, notamment les commandes que j’ai vue du plugin MqttDiscovery :

Mais j’ai quand même plein d’erreurs, qui arrivent toutes les 3/10 secondes :cry:

0037|[2024-08-28 14:56:10] ERROR : Fatal exception in handleMessage:[MySQL] Error code : 22001 (1406). Data too long for column ‹ value › at row 1 : REPLACE INTO history SET cmd_id=:cmd_id, datetime=:datetime, value=:value
0038|[2024-08-28 14:56:40] ERROR : Fatal exception in handleMessage:[MySQL] Error code : 22001 (1406). Data too long for column ‹ value › at row 1 : REPLACE INTO history SET cmd_id=:cmd_id, datetime=:datetime, value=:value
0039|[2024-08-28 14:57:02] ERROR : Fatal exception in handleMessage:[MySQL] Error code : 22001 (1406). Data too long for column ‹ value › at row 1 : REPLACE INTO history SET cmd_id=:cmd_id, datetime=:datetime, value=:value
0040|[2024-08-28 14:57:10] ERROR : Fatal exception in handleMessage:[MySQL] Error code : 22001 (1406). Data too long for column ‹ value › at row 1 : REPLACE INTO history SET cmd_id=:cmd_id, datetime=:datetime, value=:value
0041|[2024-08-28 14:57:21] ERROR : Fatal exception in handleMessage:[MySQL] Error code : 22001 (1406). Data too long for column ‹ value › at row 1 : REPLACE INTO history SET cmd_id=:cmd_id, datetime=:datetime, value=:value
0042|[2024-08-28 14:57:51] ERROR : Fatal exception in handleMessage:[MySQL] Error code : 22001 (1406). Data too long for column ‹ value › at row 1 : REPLACE INTO history SET cmd_id=:cmd_id, datetime=:datetime, value=:value

Bonjour,
C’est qu’il y en a toujours des trop longue, il ne peut pas avoir d’erreur la dessus ou de bug.

J’ai vérifié les paramètres de tous mes équipements sur le plugin en question : plus aucun n’est historisé…
Je suis interrogatif du coup :frowning:

Pourquoi uniquement sur un plugin ?
C’est vérifier tout ce qui est historisé qu’il faut faire

Oui, j’ai vérifié sur le plugin MQTTDiscovery car j’ai cette erreur :

2024-08-28 16:45:29 MQTTDiscovery Fatal exception in handleMessage:[MySQL] Error code : 22001 (1406). Data too long for column ‹ value › at row 1 : REPLACE INTO history SET cmd_id=:cmd_id, datetime=:datetime, value=:value [Log MQTTDiscovery]

Je vais regarder sur l’autre plugin Mode…

J’ai désactivé tous les paramètres pouvant être historisés sur les plugins (par le biais du menu Analyse / Historique) :
Mode
MQTTDiscovery
et j’ai toujours des erreurs :

Date et heure	Source	Description	Action	Occurrences
||2024-08-28 18:27:24|MQTTDiscovery|Fatal exception in handleMessage:[MySQL] Error code : 22001 (1406). Data too long for column 'value' at row 1 : REPLACE INTO history SET cmd_id=:cmd_id, `datetime`=:datetime, value=:value|Log MQTTDiscovery|55954|
|---|---|---|---|---|---|
||2024-08-28 18:03:04|mode|Erreur exécution de la commande [Maison][Mode Present][Absent] : [MySQL] Error code : 22001 (1406). Data too long for column 'value' at row 1 : REPLACE INTO history SET cmd_id=:cmd_id, `datetime`=:datetime, value=:value|Log mode|11|