Réduire base de données

Posez ici vos questions d'utilisation, de configuration de DomoticZ, de bugs, de conseils sur le logiciel lui même dans son utilisation et son paramétrage.
Des forums spécifiques sont ouverts ci-dessous pour regrouper les différents sujets.
banditos
Messages : 126
Inscription : 30 nov. 2016, 09:55

Réduire base de données

Message par banditos »

Bonjour,
j'ai Domoticz sur Raspberry Pi 3B qui tourne depuis 2017 (je ne fais pas de MAJ).
Aussi, le fichier de sauvegarde Domoticz.db est à 79Mb.
Est-il possible d'éliminer des données inutiles?
Je souhaite garder que l'historique de certains capteurs, températures, énergie, compteur...

Merci
Raspberry pi 3/Rasbian-Jessie/Domoticz/RFXtrx433 USB 433.92MHz/SSD 32gb
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: Réduire base de données

Message par Keros »

Je ne connais pas de fonctions dans DomoticZ pour cela. Il faudrait faire ce nettoyage dans la base de données (en le faisant sur une copie au cas où cela se passerait mal).
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
Flying Domotic
Messages : 772
Inscription : 10 mars 2020, 15:26

Re: Réduire base de données

Message par Flying Domotic »

Une mauvaise réponse serait de supprimer et recréer à l'identique des dispositifs ayant un passé lourd, l'historique étant détruit en même temps que le dispositif.

Il y a également une possibilité en utilisant la primitive qui détruit un élément dans l'historique (celui caché derrière le <MAJ>-click sur un point). Ça pourrait être appelé par un script (python par exemple) en boucle sur un intervalle de date, et en boucle sur les dispositifs à supprimer.

Sinon, j'ai peur qu'il ne faille passer par un ménage par SQL dans les tables "_Calendar".
lost
Messages : 1511
Inscription : 12 nov. 2016, 11:01

Re: Réduire base de données

Message par lost »

79MB pour 8 ans c'est pas délirant. A mon sens mieux vaut laisser ainsi et Domoticz gère plutôt bien de ce côté.
banditos
Messages : 126
Inscription : 30 nov. 2016, 09:55

Re: Réduire base de données

Message par banditos »

Oui, je pense que tu as raison, mais faire une sauvegarde de la db directement par le navigateur devient trop long.
Il faut que j'automatise cette tâche avec un scrip, je vais bien trouver ça sur le fofo.

Merci pour les réponses
Dernière modification par Keros le 18 févr. 2025, 12:25, modifié 1 fois.
Raison : Citation supprimée. Merci de ne pas citer le message précédent lors d'une réponse directe.
Raspberry pi 3/Rasbian-Jessie/Domoticz/RFXtrx433 USB 433.92MHz/SSD 32gb
jackslayter
Messages : 1040
Inscription : 30 sept. 2014, 14:40
Localisation : Isère (38)

Re: Réduire base de données

Message par jackslayter »

moi j'ai ce petit script qui ce lance la nuit

Code : Tout sélectionner

#!/bin/bash
TIMESTAMP=`/bin/date +%Y-%m-%d_%H-%M`
IPDZ=192.168.1.2
BACKUPFILEDOMO="domoticz_$TIMESTAMP.db"
BACKUPFILEDOMOGZ="domoticz_db_$TIMESTAMP".tar.gz
/usr/bin/curl -s 'http://'$IPDZ'/backupdatabase.php' > /var/tmp/$BACKUPFILEDOMO
tar czf "/media/backup/domoticz/$BACKUPFILEDOMOGZ" /var/tmp/$BACKUPFILEDOMO
rm /var/tmp/"$BACKUPFILEDOMO"
Raspberry Pi + RFLink + Domoticz Beta
Oregon - 3x Thgr122Nx / Chacon - micromodule 200w, télécommande 3b et 16b, 2x module 1000w, détecteur de fumée, contact de porte, 2x prise 3500w / OWL - CM180 / TRC02 v2 RGB 3M / Cheap - PIR, contact de porte
Guigui
Messages : 86
Inscription : 12 sept. 2015, 16:19

Re: Réduire base de données

Message par Guigui »

Moi j'utilise

Code : Tout sélectionner

#!/bin/bash
SERVICE=/usr/sbin/service
SQLITE3=/usr/bin/sqlite3
cd /home/pi/domoticz
#$SERVICE monit stop
#if [ $? == 0 ]; then
  $SERVICE domoticz.sh stop
  if [ $? == 0 ]; then
    if [ -f "/home/pi/domoticz/domoticz.new.db" ]; then
      rm /home/pi/domoticz/domoticz.new.db
    fi
    cp /home/pi/domoticz/domoticz.db /home/pi/domoticz/domoticz_OLD_OK_avant_CLEAN.db
    cat /home/pi/domoticz/compressdb.sql | $SQLITE3
    cp /home/pi/domoticz/domoticz.new.db /home/pi/domoticz/domoticz.db
    chown pi:pi /home/pi/domoticz/domoticz.db
    $SERVICE domoticz.sh start
#   $SERVICE monit start
  fi
#fi


avec

Code : Tout sélectionner

cat /home/pi/domoticz/compressdb.sql
.open /home/pi/domoticz/domoticz.db
delete from LightingLog where date <= date('now','start of month','-1 month','-1 day');
.clone domoticz.new.db
.quit
pi@Principal:~/domoticz $
AVANT
1833653 -rw-r--r-- 1 pi pi 80M 2 mars 18:25 domoticz.db

apres
1833653 -rw-r--r-- 1 pi pi 73M 2 mars 18:27 domoticz.db
f-d-m
Messages : 156
Inscription : 25 juin 2019, 21:36

Re: Réduire base de données

Message par f-d-m »

Bonjour,
Perso je prends un backup quotidien conservé 1 semaine, et un backup hebdomadaire conservé 1 an .
Ceci sans arrêter Domoticz.

Il faut avoir installé le package sqlite3.

Code : Tout sélectionner

root@rpi3b:/usr/local/bin# cat dump.domoticz.daily
#!/bin/bash
cd /home/pi
sqlite3 domoticz/domoticz.db .dump | gzip > domoticz.dump.`date +%A`.sql.gz

root@rpi3b:/usr/local/bin# cat dump.domoticz.weekly
#!/bin/bash
cd /home/pi
sqlite3 domoticz/domoticz.db .dump | gzip > domoticz.dump.week.`date +%W`.sql.gz

Les deux sont lancés respectivement par un cron.daily et un cron.weekly

Le répertoire /home/pi fait lui-même l'objet d'un backup quotidien avec rsync vers une destination externe.


gzip fait gagner environ 90% de place.
---
Bruxelles

RPi 3B, Domoticz 2024.7, SSD, dongle Zigbee Sonoff
IPX-800 V3
multiples Sonoff et similaires (Tasmota, ESPeasy), multiples appareils Zigbee
SMA Sunny Boy 3.6
Ksenia Lares 4.0
Compteur digital à la norme DSMR5 - interface ESP32
klarf
Messages : 136
Inscription : 17 mars 2018, 09:00

Re: Réduire base de données

Message par klarf »

Je trouves qu'avec le protocole 433MHz (rfxcom) on récolte pas mal de dispositif dès qu'on accepte des nouveaux appareils. Je supprime chaque fois les dispositifs qui ne m'appartient pas quand j'appareil un dispositif. Ça permet de gagner un petit peu.
Répondre