15/02/2018, 16:31
(Questo messaggio è stato modificato l'ultima volta il: 01/03/2018, 17:36 da Luca Charruaz.)
Ciao a tutti, sto scrivendo uno script in python (praticamente è l'unione di 2 script)per l'invio di un valore contenuto in una variabile tramite bot telegram.
Questa variabile è definita in una funzione e l'invio del messaggio in un'altra funzione. Visto che le variabili sono locali, come faccio a recuperare il valore da un'altra funzione?
Il primo script interroga lo stato di un GPIO e lo salva in una variabile (ten)
Il secondo risponde ad un messaggio di telegram in base a cosa gli viene chiesto (se digito /hello mi risponde Ciao!)
Vorrei che al posto di "ciao!" mi restituisse il valore della variabile ten.
Vorrei anche avere la possibilità che inviando diversi messaggi mi legga altrettante variabili...
Questa variabile è definita in una funzione e l'invio del messaggio in un'altra funzione. Visto che le variabili sono locali, come faccio a recuperare il valore da un'altra funzione?
Il primo script interroga lo stato di un GPIO e lo salva in una variabile (ten)
Il secondo risponde ad un messaggio di telegram in base a cosa gli viene chiesto (se digito /hello mi risponde Ciao!)
Vorrei che al posto di "ciao!" mi restituisse il valore della variabile ten.
Vorrei anche avere la possibilità che inviando diversi messaggi mi legga altrettante variabili...
Codice:
#28/10/2017
#V10.0
import RPi.GPIO as GPIO
import time
import subprocess
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
PIN_PROVA27 = 27
GPIO.setup(PIN_PROVA27, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)
stato27 = GPIO.input(PIN_PROVA27)
parziale27 = 0
count27 = 2
def cambio27():
if stato27 == 1:
ten = "UP"
else:
ten = "DOWN"
print time.strftime("%a %d %B %Y %H:%M:%S")
print "La tensione di rete e' " + ten
while True: #loop infinito. inserire i casi all'interno del loop
stato27 = GPIO.input(PIN_PROVA27)
if stato27 != parziale27:
count27 = 1
else:
count27 = count27 + 1
parziale27 = stato27
if count27 > 1000:
count27 = 2
if count27 == 1:
cambio27()
time.sleep(0.01)
Codice:
import telepot
import telepot.api
import time
bot = telepot.Bot('CHIAVE TOKEN')
def handle(msg):
chat_id = msg['chat']['id']
text = msg['text']
if text == '/hello':
bot.sendMessage(chat_id, 'Ciao!')
bot.message_loop(handle)
while 1:
time.sleep(500)