merci
donc j'ai ajouter des nouvelles fonctions pour alleger les plus lourdes :
je vais mettre des commentaires ne vous inquieter pas Image may be NSFW.
Clik here to view.
donc j'ai ajouter des nouvelles fonctions pour alleger les plus lourdes :
je vais mettre des commentaires ne vous inquieter pas Image may be NSFW.
Clik here to view.

Code:
#/usr/bin/python3 # -*- coding:UTF-8 -*# Allows camelCase# pylint: disable=C0301# pylint: disable=C0103# pylint: disable=E1101import timeimport RPi.GPIO as GPIO # Ajouter la gestion des GPIO# mode GPIOGPIO.setmode(GPIO.BCM)GPIO.setwarnings(False)# les Configurations des Sorties RelaisrelaiAutoEteHiver = 26relaiComp = 5relaiV4V = 6relaiVentUnitExt = 13relaiVitesseVentExt = 16relaiVentUnitInt = 19relaiVitesseVentInt = 20GPIO.setup(relaiAutoEteHiver,GPIO.OUT, initial = GPIO.HIGH)GPIO.setup(relaiComp,GPIO.OUT, initial = GPIO.HIGH)GPIO.setup(relaiV4V,GPIO.OUT, initial = GPIO.HIGH)GPIO.setup(relaiVentUnitExt,GPIO.OUT, initial = GPIO.HIGH)GPIO.setup(relaiVitesseVentExt,GPIO.OUT, initial = GPIO.HIGH)GPIO.setup(relaiVentUnitInt,GPIO.OUT, initial = GPIO.HIGH)GPIO.setup(relaiVitesseVentInt,GPIO.OUT, initial = GPIO.HIGH)# les Configurations des Entrées ThermostatspinThermostats = 17GPIO.setup(pinThermostats,GPIO.IN)# les Consignes de TemperaturesconsigneExt = 14.0 # Consigne temperature de l'automatique 13,5°C // pour test 23.5consigneCa = 25.0consigneVentExtFr = 25.0consigneVentExtCh = 5.0consigneVentIntFr = 23.0consigneVentIntCh = 23.0consigneDemarageVentUnitIntCh = 35.0consigneDegCh = 5.0consigneFinDegCh = 12.5consigneDegFr = -3.0consigneFinDegFr = 15.0# les Temporisationsmillis = lambda: int(round(time.time()))tempoComp = 20departTempoComp = millis()tempoDegCh = 20departTempoDegCh = millis()tempoV4VDeg = 20departTempoV4VDeg = millis()tempoCompDeg = 10departTempoCompDeg = millis()tempoDegNatCh = 30departTempoDegNatCh = millis()tempoDegElec = 15departTempoDegElec = millis()tempoEgouttage = 15departTempoEgouttage = millis()tempoFinDegElec = 10departTempoFinDegElec = millis()tempoV4V = 20departTempoV4V = millis()# Lecture température DS18B20def lireFichier(emplacement): fichTemp = open(emplacement) contenu = fichTemp.read() fichTemp.close() return contenu# Recuperation temperature DS18B20def recupTemp(contenuFich): temperature = float(contenuFich) temperature = temperature / 1000 return temperature# les Variableschauffage = FalsedegivrageCh = FalsetempFinDegCh = Falsefroid = FalsedegivrageFr = Falsecanicule = False# Mise a jour Tempos au demarragedef majTempos(): print("---majTempos---") global departTempoComp, departTempoDegCh ,departTempoV4V ,departTempoV4VDeg global departTempoDegNatCh, departTempoDegElec, departTempoCompDeg global departTempoFinDegElec, departTempoEgouttage departTempoComp = millis() departTempoDegCh = millis() departTempoV4VDeg = millis() departTempoCompDeg = millis() departTempoDegNatCh = millis() departTempoDegElec = millis() departTempoFinDegElec = millis() departTempoV4V = millis() departTempoEgouttage = millis()# Fonction été hiver "Automatique"def autoMode(): print("---autoMode---") global froid, canicule ,chauffage if temperatureExt < consigneExt: chauffage = True elif temperatureExt < consigneCa: froid = True else: canicule = True# le Mode Chauffagedef modeChauffage(): print("---modeChauffage---") global degivrageCh, departTempoDegNatCh, departTempoDegCh, departTempoV4VDeg if etatThermostats == 0 and degivrageCh is False: GPIO.output(relaiVentUnitExt, GPIO.LOW) ventilChauffage() if millis() > (departTempoComp + tempoComp): GPIO.output(relaiComp, GPIO.LOW) print("!! COMPRESSEUR ON !!") if millis() > (departTempoDegCh + tempoDegCh): degivrageCh = True else: departTempoV4VDeg = millis() departTempoDegNatCh = millis() else: departTempoDegCh = millis() else: if degivrageCh is False: arret() else: GPIO.output(relaiComp, GPIO.HIGH) GPIO.output(relaiVentUnitExt, GPIO.HIGH) GPIO.output(relaiVitesseVentExt, GPIO.HIGH) GPIO.output(relaiVentUnitInt, GPIO.HIGH) GPIO.output(relaiVitesseVentInt, GPIO.HIGH) if temperatureUnitExt < consigneDegCh: degivrageElectric() else: degivrageNaturel()# la Ventilationdef ventilChauffage(): print("---ventilChauffage---") if temperatureUnitExt < consigneVentExtCh: GPIO.output(relaiVitesseVentExt, GPIO.LOW) print("!! VENTILATEUR EXTERIEUR GRANDE VITESSE !!") else: GPIO.output(relaiVitesseVentExt, GPIO.HIGH) print("!! VENTILATEUR EXTERIEUR PETITE VITESSE !!") if temperatureEchangeurInt > consigneDemarageVentUnitIntCh: GPIO.output(relaiVentUnitInt, GPIO.LOW) if temperatureUnitInt > consigneVentIntCh: GPIO.output(relaiVitesseVentInt, GPIO.HIGH) print("!! VENTILATEUR INTERIEUR PETITE VITESSE !!") else: GPIO.output(relaiVitesseVentInt, GPIO.LOW) print("!! VENTILATEUR INTERIEUR GRANDE VITESSE !!")# le Degivrage Natureldef degivrageNaturel(): print("---degivrageNaturel---") global departTempoEgouttage, degivrageCh if millis() > (departTempoDegNatCh + tempoDegNatCh): GPIO.output(relaiVentUnitExt, GPIO.LOW) GPIO.output(relaiVitesseVentExt, GPIO.LOW) print("!! EGOUTTAGE NATUREL !!") if millis() > (departTempoEgouttage + tempoEgouttage): GPIO.output(relaiVentUnitExt, GPIO.HIGH) GPIO.output(relaiVitesseVentExt, GPIO.HIGH) degivrageCh = False finDegivrage() else: departTempoEgouttage = millis() print("!! DEGIVRAGE NATUREL !!")# le Degivrage Electriquedef degivrageElectric(): print("---degivrageElectric---") global departTempoCompDeg, departTempoDegElec, departTempoEgouttage, departTempoFinDegElec, degivrageCh, chauffage if millis() > (departTempoV4VDeg + tempoV4VDeg): GPIO.output(relaiV4V, GPIO.LOW) print("!! V4V ON !!") if millis() > (departTempoCompDeg + tempoCompDeg): GPIO.output(relaiComp, GPIO.LOW) print("!! COMPRESSEUR ON !!") if temperatureEchangeurExt > consigneFinDegCh or millis() > (departTempoDegElec + tempoDegElec): GPIO.output(relaiComp, GPIO.HIGH) GPIO.output(relaiV4V, GPIO.HIGH) if millis() > (departTempoEgouttage + tempoEgouttage): GPIO.output(relaiVentUnitExt, GPIO.LOW) GPIO.output(relaiVitesseVentExt, GPIO.LOW) print("!! EGOUTTAGE ELECTRIC !!") if millis() > (departTempoFinDegElec + tempoFinDegElec): GPIO.output(relaiVentUnitExt, GPIO.HIGH) GPIO.output(relaiVitesseVentExt, GPIO.HIGH) degivrageCh = False finDegivrage() else: departTempoFinDegElec = millis() else: departTempoEgouttage = millis() print("!! DEGIVRAGE ELECTRIC !!") else: departTempoDegElec = millis() else: departTempoCompDeg = millis()# le Mode Froiddef modeFroid(): print("---modeFroid---") global departTempoComp, degivrageFr, froid if etatThermostats == 0 and degivrageFr is False: GPIO.output(relaiVentUnitExt, GPIO.LOW) GPIO.output(relaiVentUnitInt, GPIO.LOW) ventilFroid() if millis() > (departTempoV4V + tempoV4V): GPIO.output(relaiV4V, GPIO.LOW) print("!! V4V ON !!") if millis() > (departTempoComp + tempoComp): GPIO.output(relaiComp, GPIO.LOW) print("!! COMPRESSEUR ON !!") if temperatureEchangeurInt < consigneDegFr: GPIO.output(relaiComp, GPIO.HIGH) GPIO.output(relaiV4V, GPIO.HIGH) GPIO.output(relaiVentUnitExt, GPIO.HIGH) GPIO.output(relaiVitesseVentExt, GPIO.HIGH) GPIO.output(relaiVentUnitInt, GPIO.HIGH) GPIO.output(relaiVitesseVentInt, GPIO.HIGH) degivrageFr = True else: departTempoComp = millis() else: if degivrageFr is False: froid = False arret() else: degivrageFroid() print("!! DEGIVRAGE FROID !!")# ventilation Froiddef ventilFroid(): print("---ventilfroid---") if temperatureUnitExt > consigneVentExtFr: GPIO.output(relaiVitesseVentExt, GPIO.LOW) print("!! VENTILATEUR EXTERIEUR GRANDE VITESSE !!") else: GPIO.output(relaiVitesseVentExt, GPIO.HIGH) print("!! VENTILATEUR EXTERIEUR PETITE VITESSE !!") if temperatureUnitInt < consigneVentIntFr: GPIO.output(relaiVitesseVentInt, GPIO.HIGH) print("!! VENTILATEUR INTERIEUR PETITE VITESSE !!") else: GPIO.output(relaiVitesseVentInt, GPIO.LOW) print("!! VENTILATEUR INTERIEUR GRANDE VITESSE !!")# le Degivrage Froiddef degivrageFroid(): print("---degivrageFroid---") global departTempoEgouttage, degivrageFr, froid, canicule if temperatureEchangeurInt > consigneFinDegFr: GPIO.output(relaiVentUnitInt, GPIO.LOW) print("!! EGOUTTAGE FROID !!") if millis() > (departTempoEgouttage + tempoEgouttage): GPIO.output(relaiVentUnitInt, GPIO.HIGH) degivrageFr = False finDegivrage() print("!! FIN DEGIVRAGE FROID !!") else: departTempoEgouttage = millis()# les Fin de Degivragedef finDegivrage(): print("---finDegivrage---") global degivrageFr,degivrageCh, chauffage, froid, canicule if degivrageFr is False or degivrageCh is False: chauffage = False froid = False canicule = False arret()# le Mode Caniculedef modeCanicule(): print("---modeCanicule---") global departTempoComp, degivrageFr, canicule ventilIntCanicule() if temperatureUnitInt > consigneDelta and canicule and degivrageFr is False: GPIO.output(relaiVentUnitExt, GPIO.LOW) ventilExtCanicule() if millis() > (departTempoV4V + tempoV4V): GPIO.output(relaiV4V, GPIO.LOW) print("!! V4V ON !!") if millis() > (departTempoComp + tempoComp): GPIO.output(relaiComp, GPIO.LOW) print("!! COMPRESSEUR ON !!") if temperatureEchangeurInt < consigneDegFr: GPIO.output(relaiComp, GPIO.HIGH) GPIO.output(relaiV4V, GPIO.HIGH) GPIO.output(relaiVentUnitExt, GPIO.HIGH) GPIO.output(relaiVitesseVentExt, GPIO.HIGH) GPIO.output(relaiVentUnitInt, GPIO.HIGH) GPIO.output(relaiVitesseVentInt, GPIO.HIGH) degivrageFr = True else: departTempoComp = millis() else: if degivrageFr is False: canicule = False arret() else: degivrageFroid()# ventilation Interieur Caniculedef ventilIntCanicule(): print("---ventilIntCanicule---") if temperatureUnitInt < consigneVentIntFr: GPIO.output(relaiVitesseVentInt, GPIO.HIGH) print("!! VENTILATEUR INTERIEUR PETITE VITESSE !!") else: GPIO.output(relaiVitesseVentInt, GPIO.LOW) print("!! VENTILATEUR INTERIEUR GRANDE VITESSE !!")# ventilation Exterieur Caniculedef ventilExtCanicule(): print("---ventilExtCanicule---") if temperatureUnitExt > consigneVentExtFr: GPIO.output(relaiVitesseVentExt, GPIO.LOW) print("!! VENTILATEUR EXTERIEUR GRANDE VITESSE !!") else: GPIO.output(relaiVitesseVentExt, GPIO.HIGH) print("!! VENTILATEUR EXTERIEUR PETITE VITESSE !!")# Arret Modesdef arret(): print("---arret---") global departTempoComp, departTempoV4V GPIO.output(relaiComp, GPIO.HIGH) GPIO.output(relaiV4V, GPIO.HIGH) GPIO.output(relaiVentUnitExt, GPIO.HIGH) GPIO.output(relaiVitesseVentExt, GPIO.HIGH) GPIO.output(relaiVentUnitInt, GPIO.HIGH) GPIO.output(relaiVitesseVentInt, GPIO.HIGH) departTempoComp = millis() departTempoV4V = millis()# Mon codetry: while True: contenuFichExt = lireFichier("/sys/bus/w1/devices/28-3ce1e3801251/temperature") # contenuFich la temperature temperatureExt = recupTemp(contenuFichExt) contenuFichUnitExt = lireFichier("/sys/bus/w1/devices/28-3ce1e3805e9f/temperature") temperatureUnitExt = recupTemp(contenuFichUnitExt) contenuFichEchangeurExt = lireFichier("/sys/bus/w1/devices/28-3ce1e38060ec/temperature") temperatureEchangeurExt = recupTemp(contenuFichEchangeurExt) contenuFichUnitInt = lireFichier("/sys/bus/w1/devices/28-3ce1e3809744/temperature") temperatureUnitInt = recupTemp(contenuFichUnitInt) contenuFichEchangeurInt = lireFichier("/sys/bus/w1/devices/28-3ce1e3804835/temperature") temperatureEchangeurInt = recupTemp(contenuFichEchangeurInt) consigneDelta = temperatureExt - 6 print("%s" %time.strftime("%d/%m/%y %H:%M")) print("TempExt: " + str(temperatureExt)+"°C") print("TempUnitExt: " + str(temperatureUnitExt)+"°C") print("TempEchangeurExt: " + str(temperatureEchangeurExt)+"°C") print("TempUnitInt: " + str(temperatureUnitInt)+"°C") print("TempEchangeurInt: " + str(temperatureEchangeurInt)) print("TempDeltacanicule: " + str(consigneDelta)) print("chauffage: " + str(chauffage)) print("degivrageCH: " + str(degivrageCh)) print("froid: " + str(froid)) print("degivrageFr: " + str(degivrageFr)) print("canicule: " + str(canicule)) print("millis: " + str(millis())) print("departTempoComp: " + str(departTempoComp)) print("departTempoV4V: " + str(departTempoV4V)) etatThermostats = GPIO.input(pinThermostats) if chauffage is False and froid is False and canicule is False: majTempos() autoMode() elif chauffage: modeChauffage() GPIO.output(relaiAutoEteHiver, GPIO.LOW) elif froid: modeFroid() GPIO.output(relaiAutoEteHiver, GPIO.HIGH) elif canicule: modeCanicule() GPIO.output(relaiVentUnitInt, GPIO.LOW) else: arret()except KeyboardInterrupt: # Appui ctrl+c pour effacer et eteindre tous les relais print("Fin Programme !") GPIO.cleanup()
Statistics: Posted by ludoraspberry — Sun Jan 21, 2024 8:46 am