def url_porte(): porte.read_config() img_etat = "ouverte" img_etat_title = "Porte ouverte" img_action = "fermer" img_action_title = "Fermer la porte" running = False if request.method == 'POST': # demande de modification de l'etat de la porte if porte.is_closed(): # la porte est fermee porte.open() else: # la porte est ouverte ou en etat instable porte.close() if porte.is_closed(): # la porte est fermee img_etat = "fermee" img_etat_title = "Porte fermee" img_action = "ouvrir" img_action_title = "Ouvrir la porte" Alerteur().remove_alert(porte.module_name) elif not porte.is_opened(): # la porte n'est pas ouverte = porte en deplacement img_etat = "en-cours" img_etat_title = "En cours de deplacement..." running = True else: # porte ouverte Alerteur().remove_alert(porte.module_name) template_data = { 'running': running, 'img_etat': url_for("static", filename="img/porte-" + img_etat + ".png"), 'img_etat_title': img_etat_title, 'img_action': url_for("static", filename="img/porte-" + img_action + ".png"), 'img_action_title': img_action_title, 'url_porte': url_for("url_porte"), 'open_last_date': porte.open_last_date, 'open_next_date': porte.open_next_date, 'close_last_date': porte.close_last_date, 'close_next_date': porte.close_next_date, } return render_template('porte.html', **template_data)
def close(self): """ferme la porte""" for i in range(self.max_rotation): self.stepper.moveOnePeriod(0) if self.is_closed(): break if i < self.max_rotation: # la porte n'est pas arrivee jusqu'en bas Alerteur().add_alert(self.module_name, "La porte n'est pas fermee entierement.") else: Alerteur().remove_alert(self.module_name) #self.stepper.stop_motor() self.write_state("close")
def open(self): """ouvre la porte""" for i in range(self.max_rotation): self.stepper.moveOnePeriod(1) if self.is_closed(): break if i < self.max_rotation: # la porte n'est pas arrivee jusqu'en haut Alerteur().add_alert(self.module_name, "La porte n'est pas ouverte entierement.") else: Alerteur().remove_alert(self.module_name) #self.stepper.stop_motor() self.write_state("open")
def close(self): """ferme la porte""" Alerteur().remove_alert(self.module_name) self.motor.backward() max = self.max_delai * 2 i = 0 while i < max: if self.is_closed(): break time.sleep(0.5) i += 1 self.motor.stop() if i == max: Alerteur().add_alert(self.module_name, "La porte n'est pas fermee entierement.") self.write_state("close")
def open(self): """ouvre la porte""" Alerteur().remove_alert(self.module_name) self.motor.forward() max = self.max_delai * 2 i = 0 while i < max: if self.is_opened(): break time.sleep(0.5) i += 1 self.motor.stop() if i == max: Alerteur().add_alert(self.module_name, "La porte n'est pas ouverte entierement.") self.write_state("open")
def callback_interrupt(self, bouton): """callback d'interruption""" if bouton == self.pin_bas: if self.last_level != 0: # le niveau d'eau n'était pas bas self.write_level(0) alerteur = Alerteur() alerteur.add_alert(self.module_name, "Niveau d'eau faible.") else: if self.last_level == 0: # le niveau n'est plus bas alerteur = Alerteur() alerteur.remove_alert(self.module_name) if bouton == self.pin_milieu: self.write_level(1) else: self.write_level(2)
def read_level(self): """lit le niveau de batterie""" addresse = 0x48 self.bus.write_byte(addresse,self.channel) value = self.bus.read_byte(addresse) time.sleep(1) volts = self.convert_volts(value,2) self.write_level(volts) alerteur = Alerteur() if volts < self.seuil_min: alerteur.add_alert(self.module_name, "Batterie faible.") else: alerteur.remove_alert(self.module_name) return volts
def url_alertes(): template_data = {'alertes': Alerteur().alertes} return render_template('alertes.html', **template_data)