• Benvenuti su RaspberryItaly!
Benvenuto ospite! Login Login con Facebook Registrati Login with Facebook


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5

[-]
Tags
telegram crash

Telegram crash
#1
Ciao,
ho implementato il codice che segue ricopiandolo dalla rete per creare dei pulsanti in telegram ed alla pressione eseguire un determinato comando. Il codice viene eseguito per N tempo così come i comandi, ad un certo punto senza un motivo apparente il tutto si blocca e cioè il dispositivo funziona ed è raggiungibile dalla rete, il processo risulta attivo ma il programma non funziona.
Questo succede su 3 RB diversi di cui 2 W0 ed un Pi3 e con programmi diversi che hanno in comune solo la creazione e la gestione dei pulsanti, qualche idea ?
Grazie 

[ code ] 
import subprocess

from telepot.loop import MessageLoop

from telepot.namedtuple import InlineKeyboardMarkup, InlineKeyboardButton

from signal import pause



bot = telepot.Bot('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')

chat_id = 'xxxxxxxxxx'



def on_chat_message(msg):
    content_type, chat_type, chat_id = telepot.glance(msg)
    keyboard = InlineKeyboardMarkup(inline_keyboard=[
                   [InlineKeyboardButton(text='STATO', callback_data='stato'),
                   InlineKeyboardButton(text='FOTO', callback_data='foto')],
                   [InlineKeyboardButton(text='SONORO', callback_data='sonoro'),
                   InlineKeyboardButton(text='SILENZIOSO', callback_data='silenzioso')],
                   [InlineKeyboardButton(text='ALLARME', callback_data='allarme')],
                   [InlineKeyboardButton(text='ATTIVO', callback_data='attivo'),
                   InlineKeyboardButton(text='STANDBY', callback_data='standby')],
                   [InlineKeyboardButton(text='RIAVVIA', callback_data='riavvia'),
                   ])
    bot.sendMessage(chat_id, 'Comandi disponibili', reply_markup=keyboard)

def on_callback_query(msg):
   query_id, chat_id, query_data = telepot.glance(msg, flavor='callback_query')
   global flag
   global prog

   if query_data == 'stato':
       if flag == 1 and prog == 1:
          bot.sendMessage(chat_id,"Attivo con Sirena")
       elif flag == 0 and prog == 1:
          bot.sendMessage(chat_id,"Attivo senza Sirena")
       else:
          bot.sendMessage(chat_id,"Standby")
   elif query_data == 'foto':
       telefoto()
   elif query_data == 'allarme':
        rele13.on()                              # attiva la sirena per 5 minuti
        time.sleep(300)
        rele13.off()
   elif query_data == 'attivo':
       prog = 1
       bot.sendMessage(chat_id,"Rivelatore attivo!")
   elif query_data == 'standby':
       prog = 0
       bot.sendMessage(chat_id,"Rivelatore in standby")
   elif query_data == 'riavvia':
       bot.sendMessage(chat_id,"Riavvio...")
       bashCommand = 'sudo reboot'
       subprocess.check_output(bashCommand, shell=True)
   elif query_data == 'sonoro':
       flag = 1
       bot.sendMessage(chat_id,"Sirena attiva")



MessageLoop(bot, {'chat': on_chat_message, 'callback_query': on_callback_query}).run_as_thread();



while 1:
    time.sleep(1)

[ /code] 

PS: sono state eliminate alcune righe di codice per comodità, lo script non ha errori e va avanti tranquillamente anche per giorni, poi si blocca
Risposta
#2
ciao.
guarda, che io sappia, telepot è instabile per questi usi.
ci ho giocato un po' anche io e random rimaneva "impallato" senza segni di vita nonostante fosse attivo il processo.

alla fine ho mollato.
magari esiste qualche altra soluzione per parlare raspy-telegram, sinceramente non ho mai cercato.



Coltiva linux, che windows si pianta da solo! (cit.)
Risposta
#3
(26/01/2018, 21:23)Painbrain Ha scritto: ciao.
guarda, che io sappia, telepot è instabile per questi usi.
ci ho giocato un po' anche io e random rimaneva "impallato" senza segni di vita nonostante fosse attivo il processo.

alla fine ho mollato.
magari esiste qualche altra soluzione per parlare raspy-telegram, sinceramente non ho mai cercato.

Bene, mi fa piacere che qualcun'altro ha avuto i miei stessi problemi così me ne faccio subito una ragione  Big Grin

A questo punto mi conviene approfondire il protocollo MQTT con il quale sto già trasferendo informazioni tra i dispositivi e tra loro ed il cellulare, sembra funzioni bene.
Comunque il telepot senza tastiera ma con comandi in formato testo non da mai nessun problema.

Grazie
M.
Risposta
  


Vai al forum:


Navigazione: 1 Ospite(i)
Forum con nuovi Post
Forum senza nuovi post
Forum bloccato
Forum Redirect