Example #1
0
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"
Example #2
0
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")
Example #3
0
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