02/06/2017, 11:50
Buongiorno a tutti,
non sò se è la categoria giusta, ho un quesito, ho scritto questo programmino che deve vedere la presenza di energia elettrica, all'assenza di questa deve mandare una mail e avvisare anche al ritorno.
sembri funzionare bene, ma non mi da il ciclo infinito che while dovrebbe fornire, tanto che in compilazione al verificarsi di una delle due condizioni la esegue giustamente ma poi si chiude e non va avanti. chi mi può aiutare?
Grazie mille.
non sò se è la categoria giusta, ho un quesito, ho scritto questo programmino che deve vedere la presenza di energia elettrica, all'assenza di questa deve mandare una mail e avvisare anche al ritorno.
sembri funzionare bene, ma non mi da il ciclo infinito che while dovrebbe fornire, tanto che in compilazione al verificarsi di una delle due condizioni la esegue giustamente ma poi si chiude e non va avanti. chi mi può aiutare?
Grazie mille.
Codice:
#!/bin/usr/python
import smtplib
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(26, GPIO.IN)
fromaddr = 'mittente@gmail.com'
toaddrs = 'destinatario@gmail.com'
msg = "\r\n".join([
"From: mittente@gmail.com",
"To: destinatario@gmail.com",
"Subject: Assenza rete elettrica",
"",
"E' incorso un assenza di energia elettrica"
])
msg2 = "\r\n".join([
"From: mittente@gmail.com",
"To: destinatario@gmail.com",
"Subject: Ripristino rete elettrica",
"",
"energia elettrica si e' ripristinata"
])
username = 'mittente@gmail.com'
password = 'xxx'
server = smtplib.SMTP('smtp.gmail.com:587')
cont = 0
print("1",cont)
condi = True
while condi:
pippo = GPIO.input(26)
while (pippo == GPIO.LOW):
#NO CORRENTE
server.starttls()
server.login(username,password)
server.sendmail(fromaddr, toaddrs, msg)
#server.quit()
#time.sleep(30)
cont = cont + 1
print("4",cont)
if (cont > 0):
print("2")
server.starttls()
server.login(username,password)
server.sendmail(fromaddr, toaddrs, msg2)
#server.quit()
else:
print("3")
cont = cont + 1
Geco_Inf