1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
| import glob
import urllib.request
from lxml import etree
from urllib.error import URLError, HTTPError
import base64
import csv
import os
import time
from datetime import datetime
sonde_chambre = '/28-00000c86ab42'
sonde_ecs = '/28-04168632a0ff'
sonde_salon = '/28-00000c376062'
base_dir = '/sys/bus/w1/devices'
sonde_chambre = base_dir + '/28-00000c86ab42/w1_slave'
sonde_salon = base_dir + '/28-00000c376062/w1_slave'
sonde_ecs = base_dir + '/28-04168632a0ff/w1_slave'
#Définition de la date sous la forme "MoisAnnee" en français.
current_datetime = datetime.now()
current_date = current_datetime.strftime("%B%Y")
#print(current_date)
Mois=['Janvier','février','Mars','Avril','Mai','Juin','Juillet','Aout','Septembre','Octobre','Novembre','Decembre']
mois = current_datetime.date().month
#print(Mois[mois])
Q = Mois[mois-1]
#print(Q)
current_date = Q + current_datetime.strftime("%Y")
#print(current_date)
from pathlib import Path
#définition du répertoie de base qui change chaque mois et où les données sont enregistrées
Record_dir = '/home/pi/Donnees_Temperature/' + current_date
Record_file = Record_dir + f"/{current_date}.txt"
def Ouverture_Lecture_Fichiers_Temp(sonde):
# while not os.path.exists("sonde"):
# time.sleep(10)
f_sonde = open(sonde, 'r')
lines_sonde = f_sonde.readlines()
return lines_sonde
f_sonde.close()
def extraire_temperature (sonde) :
lines = Ouverture_Lecture_Fichiers_Temp(sonde)
while lines == []:
time.sleep(0.5)
# print('pas de donnees')
lines = Ouverture_Lecture_Fichiers_Temp(sonde)
donnees_temperature = lines[1].split(" ")[9]
Temp = float(donnees_temperature[2:]) / 1000
return Temp
def Sauvegarde (Temp1,Temp2,Temp3):
current_time = current_datetime.strftime("%H:%M:%S")
fichier_sauvegarde = open("Record_file","a",newline="", encoding="utf-8")
fichier_sauvegarde.write("%s,%s,%s,%s\n"%(current_datetime.strftime("%d-%m-%Y %H:%M:%S"), Temp1, Temp2, Temp3))
fichier_sauvegarde.close()
# Vérifier si le fichier existe pour écrire l'en-tête ou non
print(Record_dir)
print(Record_file)
file_exists = os.path.isfile(Record_file)
print(file_exists)
print(current_datetime.strftime("%d-%m-%Y %H:%M:%S"))
# ...
Path(Record_file).parent.mkdir(parents=True, exist_ok=True)
# et si on désire créer le fichier dans la foulée ? si il n'existe pas
Path(Record_file).touch(exist_ok=True)
with open("Record_file", 'a', newline="") as Record_file:
Header = {"Date", "Heure", "temp_Salon", "Temp_Chambre", "Temp_ECS"}
# Header.update({element.tag: element.text for element})
Temp_Salon = extraire_temperature (sonde_salon)
Temp_Chambre = extraire_temperature (sonde_chambre)
Temp_ECS = extraire_temperature (sonde_ecs)
print(Temp_Salon,Temp_Chambre,Temp_ECS)
Sauvegarde(Temp_Salon,Temp_Chambre,Temp_ECS) |
Partager