import Database from 'better-sqlite3'; import path from 'path'; const DB_PATH = path.join(process.cwd(), 'data', 'bodenfeuchte.db'); let db: Database.Database; export function getDb(): Database.Database { if (!db) { db = new Database(DB_PATH); db.exec(` CREATE TABLE IF NOT EXISTS measurements ( id INTEGER PRIMARY KEY AUTOINCREMENT, timestamp INTEGER NOT NULL, soil_moisture REAL NOT NULL ); CREATE INDEX IF NOT EXISTS idx_timestamp ON measurements(timestamp); `); } return db; } export function insertMeasurement(soilMoisture: number): void { const stmt = getDb().prepare( 'INSERT INTO measurements (timestamp, soil_moisture) VALUES (?, ?)' ); stmt.run(Date.now(), soilMoisture); } export function getLast6Hours(): { timestamp: number; soil_moisture: number }[] { const since = Date.now() - 6 * 60 * 60 * 1000; return getDb() .prepare( 'SELECT timestamp, soil_moisture FROM measurements WHERE timestamp >= ? ORDER BY timestamp ASC' ) .all(since) as { timestamp: number; soil_moisture: number }[]; }