When I started out with Domoticz I was very pleased. Smooth running, fast and very responsive. After some time though, I noticed that the webinterface was slow, some of the scripts slow etcetera. After some frustrating investigation I found it helps to restart Domoticz daily. I know, Linux, it should not be needed but it does the trick for me. What helps is that during this restart, between the shutdown and the restart, I clean the database and reload the daemons. I also move the backup files to my NAS and the same for the log file. That way I can keep the logs and backups for longer since the card for the Pi is not that large. I have been so happy with the result that I’ve decided to share it.
In the cron I have put a daily task to restart Domoticz. I have decided to do this at exactly midnight because of some counter scripts that I have running on Domoticz.
sudo crontab -e
and enter this line:
0 0 * * * /home/pi/restart.sh
The script restart.sh does the following
- stop Domoticz
- clean the database
- reload the daemons
- save the log file
- move the log files to the NAS
- start a new log
- move the backup files to the NAS
- restart Domoticz
#!/bin/bash # # Show date and time of restart (convenient when manually restarting) # echo $(date +%F_%H-%M-%S) echo . # # Stop Domoticz # echo Stopping Domoticz sudo service domoticz.sh stop # # Clean up the database # echo Cleaning database sudo php /home/pi/domoticz/scripts/my_own/cleanup_db.php # # Reload the daemons # echo Reloading daemons sudo systemctl daemon-reload # # Save the log file # cp /home/pi/log/domoticz.log /home/pi/log/$(date +%F_%H-%M-%S).domoticz.log chown pi:pi /home/pi/log/* # # Move log to the NAS and start a new one # mv /home/pi/log/2* /mnt/synology/log/ echo . > /home/pi/log/domoticz.log # # Move all backup files except that of today to the NAS # DAY=$(date +%d) echo $DAY FILES=/home/pi/domoticz/backups/daily/* for f in $FILES do if [ $f != "/home/pi/domoticz/backups/daily/backup-day-$DAY-Domoticz.db" ] then sudo mv $f /mnt/synology/backups/ fi done # # Restart Domoticz # echo Starting Domoticz sudo service domoticz.sh start