voici mon script (issu du forum anglais)
Code : Tout sélectionner
#!/bin/bash
#
# dump all dzVents to separate files
#
# change to reflect your situation / requirements
#
# from: https://www.domoticz.com/forum/viewtopic.php?f=31&t=28627&p=218924&hilit=save+file+lua#p218924
domoticzDir='/home/pi/PROD_domoticz/'
scriptDir='/home/pi/mydomoticz/myscripts/dzVents/'
# no changes required below this line
#
#mkdir -p $scriptDir
sudo cp $domoticzDir/domoticz.db /tmp/tmp.db
sudo sqlite3 /tmp/tmp.db "select ID, name,status from eventMaster WHERE interpreter = 'dzVents'" | while read line;
do
#echo "line:" $line
ID=$(echo $line | awk -F'|' '{ print $1 }')
#echo "ID " $ID
NAME=$(echo $line | awk -F'|' '{ print $2 }')
#echo "NAME " $NAME
STATUS=$(echo $line | awk -F'|' '{ print $3 }')
#echo "STATUS" $STATUS
if [[ $STATUS == 0 ]] ; then # script inactive
scriptDirName=$scriptDir$NAME'.inactive.lua'
else
scriptDirName=$scriptDir$NAME'.lua'
fi
sudo sqlite3 /tmp/tmp.db "select XMLSTatement from eventMaster WHERE interpreter = 'dzVents' and ID = $ID" > $scriptDirName
echo "export " $NAME " to " $scriptDirName
done
sudo rm /tmp/tmp.db
il est pour dZvents, mais adaptable facilement (le pense) pour LUA en changeant
par ce qu'il faut...
La sortie, un fichier par script, avec les scripts inactifs avec une extension .inactive
Code : Tout sélectionner
-rw-r--r-- 1 pi pi 9163 Dec 18 2020 AlerteMoustiques.lua
-rw-r--r-- 1 pi pi 10014 Jul 15 00:05 AlerteMoustiques_V1R0.lua
-rw-r--r-- 1 pi pi 1893 Jul 15 00:05 Aqua_Icones.inactive.lua
-rw-r--r-- 1 pi pi 2393 Jul 15 00:05 AquaMeters.lua
-rw-r--r-- 1 pi pi 4093 Jul 11 00:05 aquaOnOff.lua
-rw-r--r-- 1 pi pi 4205 Jul 15 00:05 AquaOnOff.lua
-rw-r--r-- 1 pi pi 2577 Jul 15 00:05 AquaOnOffPump.lua
-rw-r--r-- 1 pi pi 4480 Jul 15 00:05 AquaVolume.lua
-rw-r--r-- 1 pi pi 1530 Jul 15 00:05 aTestDimTo0.inactive.lua
-rw-r--r-- 1 pi pi 11537 Sep 20 2020 Auto_off.inactive.lua
-rw-r--r-- 1 pi pi 50834 Dec 11 2020 AutoOff_Notif.inactive.lua
Je ne RAZ pas le répertoire de sortie avant l'export, comme cela je garde les anciennes versions pour peu que je mette la version dans le nom du script
le cron
Code : Tout sélectionner
# export dzvents scripts
5 0 * * * /home/pi/mydomoticz/myscripts/export_dzVent.sh 2>&1 | /usr/bin/logger -t DZBACKUP