def lambda_handler(event, context): add_device_readings() """ This function inserts content into mysql RDS instance """ # class MySQLModel(pw.Model): # ''' # base model that will use our MySQL database # ''' # class Meta: # database = myDB # class User(MySQLModel): # username = pw.CharField() # # etc, etc # # when you're ready to start querying, remember to connect # try: # myDB.connect() # logger.info("Connected to db") # except Exception as e: # logger.error("Unable to connect to the DB") # data_source = [ # {'field1': 'val1-1', 'field2': 'val1-2'}, # {'field1': 'val2-1', 'field2': 'val2-2'}, # # ... # ] # SensorName LastCommunicationDate X_mms Y_mms Z_mms X_hz Y_hz Z_hz # Sensor-300578 08-08-2017 08:14 20 20.4 16.7 14 12 17 # Sensor-300578 08-08-2017 08:14 20 20.4 16.7 14 12 17 # Sensor-300578 08-08-2017 08:14 20 20.4 16.7 14 12 17 # Sensor-300577 08-08-2017 08:17 25 24.3 10.8 15 11 19 # Sensor-300578 08-08-2017 08:14 20 20.4 16.7 14 12 17 dt = '08-08-2017 08:14' import datetime datetime_object = datetime.datetime.strptime(dt, '%d-%m-%Y %H:%M') data_source = [ {'device': Device.get_or_create(name='Sensor-300578')[0], 'device_display_time' : datetime_object}, {'device': Device.get_or_create(name='Sensor-300577')[0], 'device_display_time' : datetime_object} ] # data_source = [ # {'device': Device.get_or_create(name='Sensor-300578') }, # {'device': Device.get_or_create(name='Sensor-300577')} # ] Utils().bulk_insert_device_readings(data_source) # person, created = Device.get_or_create(name='Sensor-300578') # print(person, created) # print(Device.get_or_create(name='Sensor-300578')[0]) # foo = DeviceReadings.create(device = Device.get(name='Sensor-300578')) # print("device created") # print(foo) # user = User.create(username='******', password='******') return "Added %d items to RDS MySQL table"
def add_push_device(user, apns_token): # create the device if it doesn't already exist _, created = Device.get_or_create(apns_token=apns_token, user=user) if created: return success("added device {}".format(apns_token)) else: return plain("device already registered")
def construct_device_reading_data(line): ''' Form DeviceReading object ''' logger.info("Construct object for %s", line) try: tmp = dict() tmp['current_amp'] = 10 tmp['humidity'] = 80 tmp['power_watt'] = 100 tmp['temperature'] = 28 tmp['voltage_volt'] = 440 tmp['device_packet_time'] = datetime.datetime.now() # SensorName LastCommunicationDate X_mms Y_mms Z_mms X_hz Y_hz Z_hz # Sensor-300578 08-08-2017 08:14 20 20.4 16.7 14 12 17 line = line.split(',') tmp['device'] = Device.get_or_create(name=line[0])[0] logger.info("after Device get or create") dt = line[1] datetime_object = datetime.datetime.strptime(dt, '%d-%m-%Y %H:%M') #TODO calaulate g value # tmp['g_value'] = columns[3] tmp['device_display_time'] = datetime_object tmp['x_mms'] = line[2] tmp['y_mms'] = line[3] tmp['z_mms'] = line[4] tmp['x_hz'] = line[5] tmp['y_hz'] = line[6] tmp['z_hz'] = line[7] return tmp except Exception as exp: logger.exception("Not able to construct object for line %s", line) logger.exception(exp) return None