This commit is contained in:
Mateusz Gruszczyński
2026-08-23 23:44:35 +02:00
parent f569b7db14
commit 6e3075fae5
13 changed files with 313 additions and 591 deletions
-16
View File
@@ -270,22 +270,6 @@ impl Db {
Ok(changed > 0)
}
pub fn list_zone_readings(&self, zone_id: Option<&str>, since: DateTime<Utc>, limit: u32) -> Result<Vec<ZoneReading>> {
let conn = self.lock()?;
let limit = limit.clamp(1, 20_000) as i64;
let mut rows_out = Vec::new();
if let Some(zone_id) = zone_id {
let mut stmt = conn.prepare(queries::LIST_ZONE_READINGS_BY_ZONE)?;
let rows = stmt.query_map(params![zone_id, since.to_rfc3339(), limit], Self::map_zone_reading)?;
for row in rows { rows_out.push(row?); }
} else {
let mut stmt = conn.prepare(queries::LIST_ZONE_READINGS_ALL)?;
let rows = stmt.query_map(params![since.to_rfc3339(), limit], Self::map_zone_reading)?;
for row in rows { rows_out.push(row?); }
}
Ok(rows_out)
}
pub fn list_zone_history(&self, zone_id: Option<&str>, since: DateTime<Utc>, bucket_seconds: i64, limit: u32) -> Result<Vec<ZoneReading>> {
let conn = self.lock()?;
let bucket_seconds = bucket_seconds.max(1);
-19
View File
@@ -212,25 +212,6 @@ WHERE NOT EXISTS (
)
"#;
pub const LIST_ZONE_READINGS_BY_ZONE: &str = r#"
SELECT id,zone_id,device_id,timestamp,gree_temperature,external_temperature,
control_temperature,target_temperature,device_setpoint,outdoor_temperature,
power,mode,fan_speed,demand,control_source,active_preset
FROM zone_readings
WHERE zone_id=?1 AND timestamp>=?2
ORDER BY timestamp ASC
LIMIT ?3
"#;
pub const LIST_ZONE_READINGS_ALL: &str = r#"
SELECT id,zone_id,device_id,timestamp,gree_temperature,external_temperature,
control_temperature,target_temperature,device_setpoint,outdoor_temperature,
power,mode,fan_speed,demand,control_source,active_preset
FROM zone_readings
WHERE timestamp>=?1
ORDER BY timestamp ASC
LIMIT ?2
"#;
pub const LIST_ZONE_HISTORY_BY_ZONE_BUCKETED: &str = r#"
SELECT MIN(id),zone_id,MAX(device_id),MIN(timestamp),