Record relays state
This commit is contained in:
central_backend
@ -6,6 +6,7 @@ use prettytable::{row, Table};
|
||||
use crate::constants;
|
||||
use crate::devices::device::{Device, DeviceId, DeviceRelay, DeviceRelayID};
|
||||
use crate::energy::consumption::EnergyConsumption;
|
||||
use crate::energy::relay_state_history::RelayStateHistory;
|
||||
use crate::utils::time_utils::time_secs;
|
||||
|
||||
#[derive(Default)]
|
||||
@ -320,4 +321,18 @@ impl EnergyEngine {
|
||||
|
||||
self.print_summary(curr_consumption, devices);
|
||||
}
|
||||
|
||||
/// Save relays state to disk
|
||||
pub fn persist_relays_state(&mut self, devices: &[Device]) -> anyhow::Result<()> {
|
||||
// Save all relays state
|
||||
for d in devices {
|
||||
for r in &d.relays {
|
||||
let mut file = RelayStateHistory::open(r.id, time_secs())?;
|
||||
file.set_state(time_secs(), self.relay_state(r.id).is_on())?;
|
||||
file.save()?;
|
||||
}
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user