Démon eJewee s'arrete au bout de quelques secondes

Bonjour,
depuis hier mon plugin ewejee ne fonctionne plus. Le démon s’arrete rapidement après son démarrage. J’ai relancé l’installation des dépendances, redémarré jeedom, vérifié+nettoyé les BdD mais rien y fait. Voici l’erreur dans les logs:

[2026-02-17 08:42:40] ERROR  Erreur sur ewejee::deamon_pow() : [MySQL] Error code : 70100 (1927). Connection was killed  : SELECT `el`.`id`, `el`.`name`, `el`.`logicalId`, `el`.`generic_type`, `el`.`object_id`, `el`.`eqType_name`, `el`.`isVisible`, `el`.`isEnable`, `el`.`configuration`, `el`.`timeout`, `el`.`category`, `el`.`display`, `el`.`order`, `el`.`comment`, `el`.`tags`
FROM eqLogic el
LEFT JOIN object ob ON el.object_id=ob.id
WHERE eqType_name=:eqType_name  ORDER BY ob.name,el.name


Bonjour

Il faudrait optimiser votre système, base de données de 6Gb :scream:

Par exemple

Bonjour,

Oui comme l’a dit @Tonio16 ta BDD est énorme donc le système doit avoir du mal à suivre avec certaines manipulations dessus.

Pour voir ce qui prend le plus de place dans la BDD (le plus souvent c’est les historiques mais bon à vérifier)

Réglages > Systeme > Configuration > Onglet OS_DB > Administration base de données

Cliquer sur taille sur le menu de gauche et montrer le résultat ici.

1 « J'aime »

Merci à vous 2 pour les infos.
Voici le responsable: historyArch. Que dois je faire pour limiter sa taille ?
.

https://community.jeedom.com/search?q=Historyarch%20order%3Alatest

Antoine

Je n’ai pas trouvé d’option pour purger la table historyArch ni définir la date limite donc
j’ai fait un scénario avec un bloc code pour nettoyer historyArch… Ma base de données fait maintenant 230 Mo. voici le script utilisé:

// CONFIGURATION
$max_rows = 100000;
// ------------------------------------------------

$scenario->setLog("Début nettoyage historyArch (garder $max_rows dernières valeurs)");

// 1. Récupérer les ID surchargés
$sql = "SELECT cmd_id, COUNT(*) as total 
        FROM historyArch 
        GROUP BY cmd_id 
        HAVING total > :max_rows";
$results = DB::Prepare($sql, array(':max_rows' => $max_rows), DB::FETCH_TYPE_ALL);

if (count($results) == 0) {
    $scenario->setLog("Aucune commande ne dépasse $max_rows lignes.");
} else {
    foreach ($results as $row) {
        $cmd_id = $row['cmd_id'];
        $total = $row['total'];
        $scenario->setLog("Traitement ID: $cmd_id ($total lignes)");

        // 2. Date de coupure - OFFSET en littéral sécurisé
        $offset_safe = (int)$max_rows;
        $sql_date = "SELECT datetime FROM historyArch 
                     WHERE cmd_id = :cmd_id 
                     ORDER BY datetime DESC 
                     LIMIT 1 OFFSET $offset_safe";
        $cutoff = DB::Prepare($sql_date, array(':cmd_id' => $cmd_id), DB::FETCH_TYPE_ROW);

        if ($cutoff && isset($cutoff['datetime'])) {
            $limit_date = $cutoff['datetime'];
            $scenario->setLog("  -> Date limite: $limit_date");

            // 3. Suppression
            $sql_delete = "DELETE FROM historyArch 
                          WHERE cmd_id = :cmd_id 
                          AND datetime < :limit_date";
            DB::Prepare($sql_delete, array(
                ':cmd_id' => $cmd_id,
                ':limit_date' => $limit_date
            ));
            
            $scenario->setLog("  -> Suppression OK");
        } else {
            $scenario->setLog("  -> ERREUR: date limite introuvable");
        }
        
        usleep(500000); // 0.5s de pause
    }
}

$scenario->setLog("Fin du nettoyage.");

j’ai fait ensuite un

OPTIMIZE TABLE historyArch;

J’ai redémarré mais le plugin est toujours KO

T’a pas un peu l’impression d’utiliser un bazooka pour tuer une mouche ? :expressionless:

Fallait bien que je nettoie ma BdD. T’aurais fait comment toi ?

Bonjour,

Il y a ce post pour réduire et configurer les historiques de commande et éviter qu’ils enflent de nouveau.

Un grand merci pour l’info. j’ai pu faire un grand nettoyage dans mes commandes historisées inutilement.

Ben disons qu’avec ton script tu vire ce qu’il y a de plus lourd …
Certes ça nettoie mais bon c’est un peu violent et pas super productif.

C’est comme si à l’aéroport tu te rends compte que tu as dépassé le quota maxi de poids de tes bagages et que tu balance la valise la plus lourde.

Est ce que c’était celle qui contenait le plus de trucs utiles ou pas, on sait pas …

Et de plus, si tu ne modifie pas la configuration, tes problèmes réapparaitront avec le temps.

Au final il faut donc :

  • Voir si toutes les commandes historisées méritent bien de l’être. (il y a peut être des trucs dont tu te fous)
  • Voir si la purge automatique est bien configurée (tu n’a pas peut être pas envie de savoir quelle était la température dans la salle de bains il y a 8 mois, peut être que jusqu’à la semaine précédente c’était suffisant).
  • Voir si tu ne peux pas lisser certaines valeurs (genre si t’a un capteur qui te remonte une info par minute, est ce que la moyenne de l’heure est pas suffisante pour ton besoin).

Bref, voila il faut prendre un peu de recul sinon tes problèmes reviendront :wink:

Merci de tes conseils. Ce script est effectivement au Karcher mais je n’avais que cette solution dans l’urgence. @jpty m’a orienté sur un post qui m’a permis de faire les réglages adéquates notamment revoir toutes les commandes historisées inutilement.