unify some ticking
All checks were successful
Build .deb on release / Build-Deb (push) Successful in 1m49s

This commit is contained in:
Alex Janka 2024-01-22 16:19:42 +11:00
parent 0f6091a615
commit 647583ec5b
4 changed files with 4 additions and 14 deletions

2
Cargo.lock generated
View file

@ -2573,7 +2573,7 @@ dependencies = [
[[package]] [[package]]
name = "tesla-charge-controller" name = "tesla-charge-controller"
version = "1.0.20" version = "1.0.21"
dependencies = [ dependencies = [
"async-channel", "async-channel",
"chrono", "chrono",

View file

@ -1,6 +1,6 @@
[package] [package]
name = "tesla-charge-controller" name = "tesla-charge-controller"
version = "1.0.20" version = "1.0.21"
edition = "2021" edition = "2021"
license = "MITNFA" license = "MITNFA"
description = "Controls Tesla charge rate based on solar charge data" description = "Controls Tesla charge rate based on solar charge data"

View file

@ -59,7 +59,6 @@ pub fn write_to_config<'a>() -> ConfigHandle<'a> {
#[serde(default)] #[serde(default)]
pub struct Config { pub struct Config {
pub tesla_update_interval_seconds: u64, pub tesla_update_interval_seconds: u64,
pub tesla_update_interval_while_charging_seconds: u64,
pub pl_watch_interval_seconds: u64, pub pl_watch_interval_seconds: u64,
pub pl_timeout_milliseconds: u64, pub pl_timeout_milliseconds: u64,
pub coords: Coords, pub coords: Coords,
@ -87,7 +86,7 @@ impl Default for PidControls {
Self { Self {
proportional_gain: 1., proportional_gain: 1.,
derivative_gain: 1., derivative_gain: 1.,
loop_time_seconds: 30, loop_time_seconds: 5,
} }
} }
} }
@ -111,7 +110,6 @@ impl Default for Config {
fn default() -> Self { fn default() -> Self {
Self { Self {
tesla_update_interval_seconds: 120, tesla_update_interval_seconds: 120,
tesla_update_interval_while_charging_seconds: 5,
pl_watch_interval_seconds: 5, pl_watch_interval_seconds: 5,
pl_timeout_milliseconds: 400, pl_timeout_milliseconds: 400,
coords: Coords { coords: Coords {

View file

@ -171,10 +171,6 @@ async fn main() {
tokio::time::interval(std::time::Duration::from_secs( tokio::time::interval(std::time::Duration::from_secs(
access_config().tesla_update_interval_seconds, access_config().tesla_update_interval_seconds,
)); ));
let mut charge_data_update_interval =
tokio::time::interval(std::time::Duration::from_secs(
access_config().tesla_update_interval_while_charging_seconds,
));
let mut charge_rate_update_interval = let mut charge_rate_update_interval =
tokio::time::interval(std::time::Duration::from_secs( tokio::time::interval(std::time::Duration::from_secs(
access_config().pid_controls.loop_time_seconds, access_config().pid_controls.loop_time_seconds,
@ -189,17 +185,13 @@ async fn main() {
interface.refresh().await interface.refresh().await
} }
}, },
_ = charge_data_update_interval.tick() => {
if interface.state.read().unwrap().is_charging_at_home() {
interface.refresh().await
}
},
_ = charge_rate_update_interval.tick() => { _ = charge_rate_update_interval.tick() => {
if interface.state.read().unwrap().is_charging_at_home() { if interface.state.read().unwrap().is_charging_at_home() {
was_connected = true; was_connected = true;
if let Some(request) = tesla_charge_rate_controller.control_charge_rate() { if let Some(request) = tesla_charge_rate_controller.control_charge_rate() {
interface.process_request(request).await; interface.process_request(request).await;
} }
interface.refresh().await
} else if was_connected } else if was_connected
&& interface && interface
.state .state