23/11/2017, 15:10
(Questo messaggio è stato modificato l'ultima volta il: 24/11/2017, 15:58 da magurberry.)
Ciao,
avrei bisogno di "settare" una "flag" da Telegram per poi usarla in un if per spegnere o accendere una parte dello script,
in questo caso voglio che funzioni il PIR ma voglio poter decidere se far scattare o meno una sirena che nell' esempio è un LED:
la "flag" non funziona, la sirena risulta sempre attivata, da ulteriori test ho scoperto che quando mando il comando 'Sirena OFF', entro correttamente nel command corrispondente ma la flag non va a '1'. Ho provato anche con True e False, dove sbaglio ?
Grazie
Maurizio
avrei bisogno di "settare" una "flag" da Telegram per poi usarla in un if per spegnere o accendere una parte dello script,
in questo caso voglio che funzioni il PIR ma voglio poter decidere se far scattare o meno una sirena che nell' esempio è un LED:
Codice:
#!/usr/bin/python
import requests
import time
import telepot
import subprocess
from signal import pause
from gpiozero import MotionSensor,LED
sensore = MotionSensor(4)
led5 = LED(5)
bot = telepot.Bot('xxxxxxxxxxxxxxxxxxxxx') # token creato dal bot
chat_id = 'xxxxxxxxxxx' # chat_id creato dal bot
flag = 0
print"Pronto!"
def allarme():
print"Motion detected!"
bot.sendMessage(chat_id,"Allarme PIR")
if flag == 0: # Sirena ON
led5.on()
time.sleep(2)
led5.off()
print"Sirena accesa"
else:
print"Sirena spenta" # Sirena OFF
def no_allarme():
print"Riposo"
led5.off()
def handle(msg):
chat_id = msg['chat']['id']
command = msg['text']
print ('Got command: %s' % command)
if command == '/Ciao':
bot.sendMessage(chat_id,"Sono attivo!")
elif command == 'Sirena ON':
flag = '0' # Sirena abilitata
elif command == 'Sirena OFF':
flag = '1' # Sirena disabilitata
bot.message_loop(handle)
print ('Sto ascoltando ...')
bot.sendMessage(chat_id,"Sorveglianza attivata")
sensore.when_motion = allarme
sensore.when_no_motion = no_allarme
while 1:
la "flag" non funziona, la sirena risulta sempre attivata, da ulteriori test ho scoperto che quando mando il comando 'Sirena OFF', entro correttamente nel command corrispondente ma la flag non va a '1'. Ho provato anche con True e False, dove sbaglio ?
Grazie
Maurizio