Files
yggdrasil/server/seed.py
T

64 lines
1.9 KiB
Python

"""Seed the database with sample sensor data."""
import random
from datetime import datetime, timedelta, timezone
from app import create_app
from models import Sensor, SensorReadout, db
def seed():
app = create_app()
with app.app_context():
sensors = [
Sensor(name="outdoor-station"),
Sensor(name="indoor-unit"),
Sensor(name="greenhouse-probe"),
]
db.session.add_all(sensors)
db.session.flush()
types = ["temperature", "pressure", "humidity"]
base_time = datetime.now(timezone.utc) - timedelta(seconds=30 * 300)
readouts = []
for sensor in sensors:
t = base_time
for i in range(300):
readouts.append(
SensorReadout(
sensor_id=sensor.id,
type="temperature",
value=round(random.uniform(18.0, 28.0), 2),
timestamp=t,
)
)
readouts.append(
SensorReadout(
sensor_id=sensor.id,
type="pressure",
value=round(random.uniform(1008.0, 1018.0), 2),
timestamp=t,
)
)
readouts.append(
SensorReadout(
sensor_id=sensor.id,
type="humidity",
value=round(random.uniform(35.0, 65.0), 2),
timestamp=t,
)
)
t += timedelta(seconds=30)
db.session.add_all(readouts)
db.session.commit()
sensor_count = Sensor.query.count()
readout_count = SensorReadout.query.count()
print(f"Seeded {sensor_count} sensors and {readout_count} readouts.")
if __name__ == "__main__":
seed()