def seed_nodetypes(): try: SensorType.create(name = 'battery voltage', unit = 'mV') SensorType.create(name = 'solar voltage', unit = 'mV') SensorType.create(name = 'DHT11 temperature', unit = 'C') SensorType.create(name = 'DHT11 humidity', unit = '%') SensorType.create(name = 'HC SR-04', unit = 'cm') except IntegrityError: db.session.rollback() return 'Seems like the sensortypes have already been created. Session has been rolled back'
def post(self): parser = reqparse.RequestParser(bundle_errors = True) parser.add_argument('name', type=str, location='form', required=True, help='<str> name required') parser.add_argument('unit', type=str, location='form', required=True, help='<str> unit required') args = parser.parse_args() sensortype = SensorType.create(name = args['name'], unit = args['unit']) return jsonify(ApiObjects(sensortype.json()))
def seed_site(sensors = 1, days = 7, interval_seconds = 3600): site = Site.create(name = 'seeded_site') node = Node.create(name = 'seeded_node', site = site, latitude = 35.146623 + random() / 100.0, longitude = 139.9835682 + random() / 100.0) sensortype = SensorType.create(name = 'HC SR-04', unit = 'cm') for i in range(sensors): sensor = Sensor.create(sensortype = sensortype, node = node, name = 'water distance %s'%i) timestamp = datetime.utcnow() - timedelta(days = 7) data = loggeobrowngen() n_readings = 0 while timestamp < datetime.utcnow(): Reading.create(sensor = sensor, value = data.next(), timestamp = timestamp) timestamp += timedelta(seconds = interval_seconds) n_readings += 1 data.close() return {'site': site, 'node': node}