Найти - Пользователи
Полная версия: вопрос по использованию IFTTТ
Начало » Python для новичков » вопрос по использованию IFTTТ
1 2
ivin
переписал пост
ivin
“Status 200” я так понимаю, что это подтверждение прохождения команды, а не статус устройства.
код 200 я получаю, а статус устройства не знаю как…
вся функция выглядит так:

 def ifttt_cmd(event):
    try:
        res = requests.get('https://maker.ifttt.com/trigger/' + event + '/with/key/' + ifttt_key,
              params={"value1":"none","value2":"none","value3":"none"})
        print (res.status_code) # код 200-команда прошла
    except requests.exceptions.ConnectionError:
        print("Command_home > Error: Could not connect to IFTTT")
    except requests.exceptions.HTTPError:
        print("Command_home > Error: Received invalid response")
    except requests.exceptions.Timeout:
        print("Command_home > Error: Request timed out")
    except requests.exceptions.TooManyRedirects:
        print("Command_home > Error: Too many redirects")
    except requests.exceptions.RequestException as reqe:
        print("Command_home > Error: {e}".format(e=reqe))
    if res.status_code != requests.codes.ok:
        try:
            j = res.json()
        except ValueError:
            print('Command_home > Error: Could not parse server response. Event not sent')
        for err in j['errors']:
            print('Command_home > Error: {}'.format(err['message']))
    else:
        print("Command_home > команда успешно отправлена на IFTTT")

впрочем с помощью внешнего костыля Adafruit
https://github.com/adafruit/Adafruit_IO_Python/blob/master/examples/mqtt/mqtt_client_class.py
я пока проблему закрыл, все работает.
но если есть возможность получить сообщение непосредственно в код, было бы лучше

зы. не сразу понял как сюда вставить код..
py.user.next
ivin
“Status 200” я так понимаю, что это подтверждение прохождения команды, а не статус устройства.
Да, слово “статус” ещё не говорит о том, что это именно тот статус, который нужен. Программные системы сложнее балалайки намного. И статусов этих может быть штук десять, и все они нужны.

ivin
а статус устройства не знаю как
Тебе нужно устройство настроить на ответы. Потом нужно изобразить из себя сервис IFTTT и поопрашивать устройство, чтобы убедиться, что оно всё правильно отвечает. Когда оно всё правильно отвечает, нужно подключить к нему сервис IFTTT. Так ты будешь знать, что общение у них идёт правильно и без ошибок. И потом уже ты можешь обращаться к сервису IFTTT на концевую точку с запросами, в телах которых будут команды для устройства. Если же это невозможно - сделать так, чтобы сервис IFTTT брал твои команды из тела запроса, - то надо сделать тогда несколько разных концевых точек - построить интерфейс из концевых точек - и тогда каждая концевая точка станет отдельной командой для устройства с возможностью параметризации этой команды. Поэтому я и говорю, что, возможно, тебе понадобится делать сторонний менеджер, если вдруг в итоге окажется, что в сервисе IFTTT есть такие ограничения. Потому что на стороне ты можешь любой функционал сделать и любые команды из любых мест читать, а в сервисе IFTTT ты ограничен только возможностями этого сервиса.
justicek
Ты должен настроить сначала IFTTT, чтобы там была команда status. Потом в IFTTT посылаешь запрос из своего скрипта, обращаясь к этой команде status, и она тебе отвечает ответ в виде JSON-данных.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB