Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 12, 2016 13:18:56

mindwrk
Зарегистрирован: 2016-10-11
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с реализацией кнопки (raspberry + telepot)

ZerG
Моя твоя не понимать! Давайте по сути! Вы код скопировали последний? Запустили? Нажали кнопку от пустилипри етом сообщения в консоли появились Button ON и Message was sent ?

1.
скопировал код, запустил
pi@raspberrypi:~/linzer $
python button.py
I am listening .
на нажатие кнопки не реагирует.
2.
отправил боту в чат hello
pi@raspberrypi:~/linzer $
python button.py
I am listening …
(-155539430, u'hello')
Got command: hello

3.
зажал кнопку, держа кнопку зажатой отправил боту в чат hi
(-155539430, u'hi')
Got command: hi
Button ON

видимо когда в чат приходит сообщение, то бот только тогда запускает цикл

Отредактировано mindwrk (Окт. 12, 2016 13:24:40)

Офлайн

#2 Окт. 12, 2016 13:25:28

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Помогите с реализацией кнопки (raspberry + telepot)

все понятно!
А ну ка - немного модифицируйте код а именно

 def handle():
    chat_id = '1'
    command = '2'
    ...
И проверьте тока работу кнопки!



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#3 Окт. 12, 2016 13:29:44

mindwrk
Зарегистрирован: 2016-10-11
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с реализацией кнопки (raspberry + telepot)

ZerG
все понятно! А ну ка - немного модифицируйте код а именно
на кнопку не реагирует

отсылаю hello
python button.py
I am listening …
('1', ‘2’)
Got command: 2

c зажатой кнопкой

('1', ‘2’)
Got command: 2
Button ON
Traceback (most recent call last):
File “/usr/local/lib/python2.7/dist-packages/telepot/__init__.py”, line 738, in collector
callback(item)
File “button.py”, line 15, in handle
bot.sendMessage(chat_id, str('/ring)'))
File “/usr/local/lib/python2.7/dist-packages/telepot/__init__.py”, line 409, in sendMessage
return self._api_request('sendMessage', _rectify(p))
File “/usr/local/lib/python2.7/dist-packages/telepot/__init__.py”, line 398, in _api_request
return api.request((self._token, method, params, files), **kwargs)
File “/usr/local/lib/python2.7/dist-packages/telepot/api.py”, line 131, in request
return _parse(r)
File “/usr/local/lib/python2.7/dist-packages/telepot/api.py”, line 126, in _parse
raise exception.TelegramError(description, error_code, data)
TelegramError: (u'Bad Request: chat not found', 400, {u'error_code': 400, u'ok': False, u'description': u'Bad Request: chat not found'})

update

ошибку исправил принудительно указав id группы
 -155539430

итого с зажатой кнопкой

I am listening …
('1', ‘2’)
Got command: 2
Button ON
Message was sent

Отредактировано mindwrk (Окт. 12, 2016 13:34:03)

Офлайн

#4 Окт. 13, 2016 06:11:55

mindwrk
Зарегистрирован: 2016-10-11
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с реализацией кнопки (raspberry + telepot)

Вопрос решил.

  import time
import datetime
import telepot
import RPi.GPIO as GPIO
 
GPIO.setmode(GPIO.BOARD)
GPIO.setup(16,GPIO.IN)
 
def handle(msg):
    chat_id = msg['chat']['id']
    command = msg['text']
 
    print('Got command: %s' % command)
 
    if command == '/status':
        bot.sendMessage(chat_id, str('online'))
    elif command == '/open':
        bot.sendMessage(chat_id, str('moving'))
    elif command == '/time':
        bot.sendMessage(chat_id, str(datetime.datetime.now()))
 
bot = telepot.Bot('*********')
bot.message_loop(handle)
print('I am listening ...')
 
while 1:
    if GPIO.input(16)==0:
            pass
        else:
            bot.sendMessage(-155539430, str('/ring)'))
            time.sleep(3)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version