Exemple #1
0
 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
Exemple #5
0
 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
Exemple #6
0
    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