Amélioration de la gestion de l’historique des données des appareils : Intégration d’une granularité configurable pour l’enregistrement des états
Bonjour à tous,
Je souhaite proposer une amélioration visant à optimiser la façon dont Gladys Assistant gère et stocke l’historique des données reçues des appareils connectés. Actuellement, chaque état transmis par un appareil pour une fonctionnalité donnée est enregistré en base de données, indépendamment de son changement ou non par rapport à l’état précédent. Cette méthode, bien que fiable pour la conservation des données, peut conduire à une accumulation rapide de données redondantes, surtout pour des appareils communiquant à des intervalles courts.
Problématique Actuelle : Dans le contexte actuel, un appareil envoyant ses données toutes les 30 secondes entraîne l’enregistrement de chaque donnée reçue, même si celle-ci n’a pas évolué. Cela peut rapidement saturer la base de données avec des informations peu utiles, surtout pour des données qui nécessitent une granularité moins fine (par exemple, l’humidité ou le niveau de batterie qui varie peu).
Proposition : Je propose de permettre une configuration plus flexible de la granularité d’enregistrement des états pour chaque fonctionnalité d’un appareil. Cela pourrait se faire de deux manières :
- Ajout d’un paramètre global dans les réglages système permettant de définir une période durant laquelle, si les données n’ont pas varié, elles ne seraient pas enregistrées en base de données. Cette période pourrait être ajustée selon les besoins de l’utilisateur ou laissée vide pour maintenir le comportement actuel (enregistrement systématique). Assez simple à mettre en place.
- Ajout d’une colonne spécifique dans la table
t_device_feature
pour définir la granularité d’enregistrement par fonctionnalité. Cela offrirait une flexibilité maximale, permettant d’ajuster la fréquence d’enregistrement en fonction de la nature et de l’utilité de chaque donnée.
Avantages :
- Réduction significative du volume de données stockées, en ne conservant que les informations essentielles.
- Optimisation des performances de la base de données, en limitant le nombre d’écritures.
- Personnalisation accrue pour l’utilisateur, qui peut adapter le comportement de l’enregistrement selon les spécificités de son installation domotique.
Exemple :
J’ai installé un thermostat il y a seulement 1 semaine. Je souhaite le supprimer :
Il a déjà 280.000 valeurs alors qu’il ne poll que toutes les 2 minutes. Et la plupart des valeurs sont identiques. Cela réduirait de 4 fois au moins le nombre de données (soit 70.000 environ).