import time import ttn import sys import logging logging.basicConfig(level=logging.DEBUG) config = { 'apps': { 'ami_rama': "ttn-account-v2.6UEpQT1kb58BCouvltr5HLOP7CGOwZsLTWYpTo2nK3I", 'baraka': "ttn-account-v2.eo-VseYHokva5d5h7J0b9b1fMQqWPU1dzOeBGXdqwrw" }, 'timeout': 10 } def uplink_callback(msg, client): logging.debug("Values Received from appId: {}, devId: {}, wLevel: {}, wPressure: {}, temp: {}".format(msg.dev_id, msg.app_id, msg.payload_fields.wLevel, msg.payload_fields.wPressure, msg.payload_fields.tempC)) handlers = {} mqtt_clients = {} for app_id, access_key in config['apps'].items(): try: handlers[app_id] = ttn.HandlerClient(app_id, access_key) except Exception as err: logging.debug(str(err)) logging.warning(err._state.details) else: # using mqtt client logging.info('Connected to {}'.format(app_id)) mqtt_clients[app_id] = handlers[app_id].data() mqtt_clients[app_id].set_uplink_callback(uplink_callback) mqtt_clients[app_id].connect() if len(handlers) == 0: sys.exit(0) else: time.sleep(600) for name, mqtt_client in mqtt_clients.items(): logging.info('Closing connection to {}'.format(name)) mqtt_client.close() # using application manager client # app_client = handler.application() # my_app = app_client.get() # print(my_app) # my_devices = app_client.devices() # print(my_devices)