This commit is contained in:
Mateusz Gruszczyński committed 2026-09-01 13:05:44 +02:00
1 parent e496f911da
commit 7e0160834d
32 files changed
+486 -67

No files matched your search

+1
View File
@@ -9,6 +9,7 @@ fn default_external_sensor_weight() -> f64 { 0.4 }
fn default_max_sensor_difference() -> f64 { 3.0 }
fn default_control_temperature_source() -> String { "device".into() }
fn default_min_cycle() -> u64 { 180 }
fn default_compressor_protection_seconds() -> u64 { 180 }
fn default_sensor_stale_after() -> u64 { 300 }
fn default_cooldown() -> u64 { 300 }
fn default_house_mode() -> String { "cool".into() }
+7
View File
@@ -28,6 +28,13 @@ pub struct RuntimeSettings {
/// Add protocol-specific buzzer suppression fields to command frames.
#[serde(default)]
pub suppress_device_beep: bool,
/// Global thermostat compressor protection. When enabled, automatic starts and
/// Heat/Cool reversals are delayed instead of being sent during the protection window.
#[serde(default = "default_true")]
pub compressor_protection_enabled: bool,
/// Global compressor protection window in seconds. The UI exposes this as minutes.
#[serde(default = "default_compressor_protection_seconds")]
pub compressor_protection_seconds: u64,
#[serde(default)]
pub influxdb: InfluxDbSettings,
#[serde(default)]
+12
View File
@@ -142,6 +142,18 @@ pub struct Zone {
pub lockout_until: Option<DateTime<Utc>>,
#[serde(default)]
pub lockout_reason: Option<String>,
/// Human/API-visible compressor-protection task waiting for its safe execution window.
/// Values are stable identifiers such as `power_on:cool:23.0` or `mode_change:heat:21.0`.
#[serde(default)]
pub compressor_pending_action: Option<String>,
#[serde(default)]
pub compressor_pending_since: Option<DateTime<Utc>>,
#[serde(default)]
pub compressor_pending_until: Option<DateTime<Utc>>,
/// The last explicitly cancelled pending action. The same thermostat intent is suppressed
/// until a new control request changes/re-arms it; this prevents an immediate re-queue.
#[serde(default)]
pub compressor_cancelled_action: Option<String>,
#[serde(default)]
pub effective_mode: String,
#[serde(default)]