<p>这似乎可以做到。你知道吗</p>
<pre><code>def loop():
global emailsent1
global emailsent2
# retrieve current datetime
now = datetime.time(datetime.datetime.now().hour, datetime.datetime.now().minute)
# Open door on all days at the correct time
if ((now.hour == HOUR_ON.hour) and (now.minute == HOUR_ON.minute)):
if (gpio.digitalRead(17) == 0):
openplay()
# Close door on all days at the correct time
if ((now.hour == HOUR_OFF.hour) and (now.minute == HOUR_OFF.minute)):
if (gpio.digitalRead(22) == 1):
closeplay()
# check if door is open, 10 minutes after set time and send email if not already sent
if ((now.hour == HOUR_ON.hour) and (now.minute == HOUR_ON.minute + 10) and (now.second == 0) and (gpio.digitalRead(25) == 1) and not emailsent1):
# send email
a = 'opened'
sendemail(a)
emailsent1 = True
if ((now.hour == HOUR_ON.hour) and (now.minute == HOUR_ON.minute + 11) and emailsent1): # reset if email has been sent
emailsent1 = False
# check if door is closed, 10 minutes after set time and send email if not already sent
if ((now.hour == HOUR_OFF.hour) and (now.minute == HOUR_OFF.minute + 10) and (now.second == 0) and (gpio.digitalRead(25) == 0) and not emailsent2):
# send email
a = 'closed'
sendemail(a)
emailsent2 = True
if ((now.hour == HOUR_OFF.hour) and (now.minute == HOUR_OFF.minute + 11) and emailsent2): # resset if email has been sent
emailsent2 = False
# gives CPU some time before looping again
webiopi.sleep(1)
</code></pre>
<p>关门10分钟后,它检查门是否关上,是否调用sendmail(a),emailsent1是否设置为True—一分钟后,它再次设置为false。你知道吗</p>
<p>我是否需要emailsent1和emailsent2作为全局?你知道吗</p>