diff --git a/server/config-dummy.yaml b/server/config-dummy.yaml index 64ca4cc..49d6c91 100644 --- a/server/config-dummy.yaml +++ b/server/config-dummy.yaml @@ -4,13 +4,13 @@ actors: url: http://192.168.178.94 disable_threshold: 100 enable_threshold: -100 - duration_minutes: 60 + duration_seconds: 360 actor_mode: !Discharge - actor: !HS100 address: 192.168.178.12:9999 disable_threshold: 100 enable_threshold: -100 - duration_minutes: 60 + duration_seconds: 360 actor_mode: !Charge # Start loop via socat -d -d pty,raw,echo=0 pty,raw,echo=0 diff --git a/server/config-sample.yaml b/server/config-sample.yaml index 4f10172..4cafd68 100644 --- a/server/config-sample.yaml +++ b/server/config-sample.yaml @@ -3,13 +3,13 @@ actors: url: http://192.168.178.94 disable_threshold: 100 enable_threshold: -100 - duration_minutes: 60 + duration_seconds: 360 actor_mode: !Discharge - actor: !HS100 address: 192.168.178.12:9999 disable_threshold: 100 enable_threshold: -100 - duration_minutes: 60 + duration_seconds: 360 actor_mode: !Charge ttys_location: /dev/ttyS0 gpio_location: /dev/gpiochip0 diff --git a/server/src/actors/mod.rs b/server/src/actors/mod.rs index 3f444fb..238c116 100644 --- a/server/src/actors/mod.rs +++ b/server/src/actors/mod.rs @@ -14,7 +14,7 @@ mod tasmota; struct ActorState { disable_threshold: isize, enable_threshold: isize, - duration_minutes: usize, + duration_seconds: usize, last_set: Option>, switch: Box, on: bool, @@ -56,7 +56,7 @@ impl ActorState { Self { disable_threshold: config.disable_threshold, enable_threshold: config.enable_threshold, - duration_minutes: config.duration_minutes, + duration_seconds: config.duration_seconds, last_set: None, last_updated: None, switch, @@ -87,7 +87,7 @@ pub(crate) async fn control_actors(rx: &mut Receiver, config: &Configuratio let ActorState { disable_threshold, enable_threshold, - duration_minutes, + duration_seconds, last_set, switch, actor_mode, @@ -107,7 +107,7 @@ pub(crate) async fn control_actors(rx: &mut Receiver, config: &Configuratio if should_be_on != *on { if let Some(last_set_inner) = last_set { let diff = now - *last_set_inner; - if diff > Duration::minutes(*duration_minutes as i64) { + if diff > Duration::seconds(*duration_seconds as i64) { *on = should_be_on; *last_set = Some(now.clone()); if *on { @@ -129,7 +129,7 @@ pub(crate) async fn control_actors(rx: &mut Receiver, config: &Configuratio if let Some(last_updated_inner) = last_updated { let diff = now - *last_updated_inner; - if diff > Duration::minutes(*duration_minutes as i64) { + if diff > Duration::seconds(*duration_seconds as i64) { *last_updated = Some(now); let _ = switch.set_power(received as isize).await; } else { @@ -310,7 +310,7 @@ mod test { ActorState { disable_threshold: 100, enable_threshold: -100, - duration_minutes: 60, + duration_seconds: 360, last_set: None, switch: Box::new(DummyActor), on, diff --git a/server/src/main.rs b/server/src/main.rs index b0f1909..125cc52 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -28,7 +28,7 @@ struct ActorConfiguration { actor: ActorType, disable_threshold: isize, enable_threshold: isize, - duration_minutes: usize, + duration_seconds: usize, actor_mode: ActorMode, }