def check_data_base(self): for data in md.devicedata().select().order_by( md.devicedata.datestamp.desc() and md.devicedata.timestamp.asc()).where( md.devicedata.synced == 0): self.records_list.append(data) return len(self.records_list)
def check_data_base(self): record_list = [] for data in md.devicedata().order_by( md.devicedata.timestamp.asc()).where( md.devicedata.synced == 0): record_list.append(data) return len(record_list)
def sync_data(self): try: #records = self.check_data_base() #print(records) # if records < 25: for data in md.devicedata().select().order_by( md.devicedata.timestamp.asc()).where( md.devicedata.synced == 0).limit(5): try: data_raw = model_to_dict(data) data_to_send = self.get_data_value(data_raw) print(data_to_send) ack = self.send_data_elastic(data_to_send) if ack == True: #print("PUBLISHING DATA TO CLOUD-:" + str(data_to_send)) msg_id = data.id self.update_synced(msg_id) except: e = sys.exc_info()[0] self.LOG.ERROR("FAILLED TO SEND DATA TO THE SERVER" + str(os.path.basename(__file__)) + str(e)) # error logs print("EXCEPTION IN SENDING DATA TO AWS SERVER - " + str(e)) continue except: e = sys.exc_info()[0] self.LOG.ERROR("FAILLED TO SEND DATA TO AWS IOT" + str(os.path.basename(__file__)) + str(e)) # error logs print("EXCEPTION IN SENDING DATA TO AWS - " + str(e)) pass
def __init__(self): try: self.LOG = log() self.config = confi() self.localdb = pw.SqliteDatabase(self.config.DATABASE_PATH) md.proxy.initialize(self.localdb) md.devicedata.create_table(True) self.data = md.devicedata() except: e = sys.exc_info()[0] self.LOG.ERROR("FAILLED TO INIT TABLE " + str(os.path.basename(__file__)) + str(e)) # error logs print("EXCEPTION IN INITINIT TABLE" + str(e)) pass
def __init__(self): try: self.records_list = [] self.LOG = log() self.config = confi() self.localdb = pw.SqliteDatabase(self.config.DATABASE_PATH) md.proxy.initialize(self.localdb) md.devicedata.create_table(True) self.data = md.devicedata() self.myMQTTClient = AWSIoTMQTTClient(self.config.DEVICE_ID) print("INITIALIZING DEVICE ON AWS SERVER") self.myMQTTClient.configureEndpoint(self.config.AWS_ARN, self.config.AWS_PORT) print("CONNECTED WITH AWS ENDPOINT WITH VALID PORT ") except: e = sys.exc_info()[0] self.LOG.ERROR("FAILLED TO INIT AWS IOT" + str(os.path.basename(__file__)) + str(e)) # error logs print("EXCEPTION IN INIT AWS IOT CHECK INTERNET CONNECTIVITY - " + str(e)) pass
def send_AWS(self, topic_path): try: records = self.check_data_base() if records < 25: for data in md.devicedata().select().order_by( md.devicedata.datestamp.desc() and md.devicedata.timestamp.asc()).where( md.devicedata.synced == 0).limit(5): try: self.myMQTTClient.publish( topic_path, json.dumps(model_to_dict(data)), self.config.QOS) print("PUBLISHING DATA TO AWS-:" + str(model_to_dict(data))) msg_id = data.id print(msg_id) self.update_synced(msg_id) except: e = sys.exc_info()[0] self.LOG.ERROR("FAILLED TO SEND DATA TO THE SERVER" + str(os.path.basename(__file__)) + str(e)) # error logs print("EXCEPTION IN SENDING DATA TO AWS SERVER - " + str(e)) continue if records > 25 and records < 50: for data in md.devicedata().select().order_by( md.devicedata.datestamp.desc() and md.devicedata.timestamp.asc()).where( md.devicedata.synced == 0).limit(15): try: self.myMQTTClient.publish( topic_path, json.dumps(model_to_dict(data)), self.config.QOS) print("PUBLISHING DATA TO AWS-:" + str(model_to_dict(data))) msg_id = data.id print(msg_id) self.update_synced(msg_id) except: e = sys.exc_info()[0] self.LOG.ERROR("FAILLED TO SEND DATA TO THE SERVER" + str(os.path.basename(__file__)) + str(e)) # error logs print("EXCEPTION IN SENDING DATA TO AWS SERVER - " + str(e)) continue if records > 50 and records < 75: for data in md.devicedata().select().order_by( md.devicedata.datestamp.desc() and md.devicedata.timestamp.asc()).where( md.devicedata.synced == 0).limit(25): try: self.myMQTTClient.publish( topic_path, json.dumps(model_to_dict(data)), self.config.QOS) print("PUBLISHING DATA TO AWS-:" + str(model_to_dict(data))) msg_id = data.id print(msg_id) self.update_synced(msg_id) except: e = sys.exc_info()[0] self.LOG.ERROR("FAILLED TO SEND DATA TO THE SERVER" + str(os.path.basename(__file__)) + str(e)) # error logs print("EXCEPTION IN SENDING DATA TO AWS SERVER - " + str(e)) continue if records > 75: for data in md.devicedata().select().order_by( md.devicedata.datestamp.desc() and md.devicedata.timestamp.asc()).where( md.devicedata.synced == 0).limit(50): try: self.myMQTTClient.publish( topic_path, json.dumps(model_to_dict(data)), self.config.QOS) print("PUBLISHING DATA TO AWS-:" + str(model_to_dict(data))) msg_id = data.id print(msg_id) self.update_synced(msg_id) except: e = sys.exc_info()[0] self.LOG.ERROR("FAILLED TO SEND DATA TO THE SERVER" + str(os.path.basename(__file__)) + str(e)) # error logs print("EXCEPTION IN SENDING DATA TO AWS SERVER - " + str(e)) continue except: e = sys.exc_info()[0] self.LOG.ERROR("FAILLED TO SEND DATA TO AWS IOT" + str(os.path.basename(__file__)) + str(e)) # error logs print("EXCEPTION IN SENDING DATA TO AWS - " + str(e)) pass