[LUA] Sauvegarde des températures journalieres
Publié : 14 mai 2015, 09:38
Bonjour,
Suite à un précédent post, j'ai écrit un script permettant de sauvegarder les températures de mes capteurs
C'est un premier script, il n'est surement pas optimisé. Je n'ai peut-être pas pris les fonctions les plus rapides.
le fichier a cette forme :
Suite à un précédent post, j'ai écrit un script permettant de sauvegarder les températures de mes capteurs
C'est un premier script, il n'est surement pas optimisé. Je n'ai peut-être pas pris les fonctions les plus rapides.
Code : Tout sélectionner
-- Guillaume Anquetil - 13/05/2015
-- ce script copie toutes les 5 minutes les données des idx choisis par des ; et ajoute une ligne au début avec le nom si le fichier n'existe pas
-- le nom du fichier est de la forme YYYYMMDD_bdd.csv
commandArray = {}
-- récupérer la date et l'heure et le mettre dans aujourdhui dans le format yyyymmdd
aujourdhui=os.date("%Y%m%d")
-- repertoire et nom de fichier de sauvegarde de la bdd
rep='/var/tmp/'..aujourdhui..'_bdd.csv'
-- debog au cas ou (des print et un délai d'une minute entre 2 enregistrement)
debog=0
if (debog~=0) then
delai=0
else
delai=290
end
-- récupération de l'heure actuelle
heure_actuelle=os.time()
-- décalage entre deux mesures (une variable dans domoticz heure_precedente2 enregistre l'heure d'enregistrement en secondes)
heure_precedente2=uservariables['heure_precedente2'] +delai
if (heure_actuelle > heure_precedente2) then
-- enregistrement de l'heure de changement dans la variable domoticz
commandArray['Variable:heure_precedente2']=tostring(heure_actuelle)
-- mise à zéro des températures
T1=''
T2=''
T3=''
-- mettre les données en 1ere ligne si le fichier n'existe pas
if (io.open(rep,"r")==nil) then
-- dans l'ordre, température, humidité, état des piles
ch='echo \'heure;T1;H1;E1;T2;H2;E2;T3;H3;E3\' >'..rep
os.execute (ch)
if (debog~=0) then
print(ch)
end
end
-- lecture des données, si c'est une des températures que l'on veut garder, on la sauvegarde.
for i, v in pairs(otherdevices_svalues) do
if (i=='Temp Chambre') then
T1 = v
end
if (i=='Temp Salle') then
T2= v
end
if (i=='Temp Cuisine') then
T3 = v
end
end
-- écriture de la chaine de caractère de sauvegarde"
ch='echo \''..os.date("%H:%M:%S")..' ; '
ch=ch..T1..' ; '..T2..' ; '..T3..'\' >>'..rep
if (debog~=0) then
print ('températures : '..T1..' '..T2..' '..T3)
print(ch)
print ('températures : '..T1..' '..T2..' '..T3)
end
os.execute (ch)
end
return commandArray
pi@raspberrypi /var/tmp $ sudo cat 20150514_bdd.csv
heure;T1;H1;E1;T2;H2;E2;T3;H3;E3
00:04:00 ; 20.2;59;1 ; 19.5;58;0 ; 20.3;55;1
00:09:00 ; 20.2;59;1 ; 19.5;58;0 ; 20.2;55;1
00:14:00 ; 20.2;59;1 ; 19.5;58;0 ; 20.2;55;1
00:19:00 ; 20.2;59;1 ; 19.5;58;0 ; 20.2;55;1
00:24:00 ; 20.2;59;1 ; 19.5;58;0 ; 20.2;55;1
00:29:00 ; 20.1;59;1 ; 19.5;58;0 ; 20.2;55;1
