Record received consumption from inverter

This commit is contained in:
2024-09-23 21:47:25 +02:00
parent 0e0da14fde
commit 228e1a7293
9 changed files with 183 additions and 12 deletions

View File

@ -7,6 +7,7 @@ use crate::devices::devices_list::DevicesList;
use crate::energy::consumption;
use crate::energy::consumption::EnergyConsumption;
use crate::energy::consumption_cache::ConsumptionCache;
use crate::energy::consumption_history_file::ConsumptionHistoryFile;
use crate::energy::engine::EnergyEngine;
use crate::utils::time_utils::time_secs;
use actix::prelude::*;
@ -42,17 +43,19 @@ impl EnergyActor {
async fn refresh(&mut self) -> anyhow::Result<()> {
// Refresh energy
self.consumption_cache
.add_value(
consumption::get_curr_consumption()
.await
.unwrap_or_else(|e| {
log::error!(
let latest_consumption = consumption::get_curr_consumption()
.await
.unwrap_or_else(|e| {
log::error!(
"Failed to fetch latest consumption value, will use fallback value! {e}"
);
constants::FALLBACK_PRODUCTION_VALUE
}),
);
constants::FALLBACK_PRODUCTION_VALUE
});
self.consumption_cache.add_value(latest_consumption);
let mut history = ConsumptionHistoryFile::open(time_secs())?;
history.set_consumption(time_secs(), latest_consumption)?;
history.save()?;
if self.last_engine_refresh + AppConfig::get().refresh_interval > time_secs() {
return Ok(());