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) |