Я пытаюсь создать прослушиватель в python, который автоматически извлекает события из устройств в Watson-IoT по мере их возникновения. Когда происходит событие, я хочу вызвать определенную функцию.
Я прочитал документацию и спецификации API, но ничего не нашел.
Есть ли способ сделать это?
См. Клиентскую библиотеку Python: https://github.com/ibm-watson-iot/iot-python
Этот конкретный образец должен оказаться очень полезным, вы можете запустить его без изменений и увидеть функцию, вызываемую в ответ на события и команды: https://github.com/ibm-watson-iot/iot-python/tree/master/samples/simpleApp
Наиболее подходящими частями к образцу являются:
Создание обработчика обратного вызова - когда событие будет получено, эта функция будет вызываться, позволяя вам принять меры для этого события:
def myEventCallback(event):
print("%-33s%-30s%s" % (event.timestamp.isoformat(), event.device, event.event + ": " + json.dumps(event.data)))
Регистрация обработчика обратного вызова в клиенте, который побуждает клиента вызывать ваш метод для всех входящих событий:
client.deviceEventCallback = myEventCallback
При подписке на события вы можете охватить подписку, чтобы избежать обработки ненужных событий, или использовать настройки по умолчанию для подписки на все события со всех устройств:
eventsMid = client.subscribeToDeviceEvents(deviceType, deviceId, event)