Fix fertilizer calculation and logging
This commit is contained in:
@@ -368,6 +368,11 @@ impl Esp<'_> {
|
||||
for (i, item) in CONSECUTIVE_WATERING_PLANT.iter().enumerate() {
|
||||
info!("CONSECUTIVE_WATERING_PLANT[{i}] = {item}");
|
||||
}
|
||||
// is executed before main, no other code will alter these values during printing
|
||||
#[allow(static_mut_refs)]
|
||||
for (i, item) in LAST_FERTILIZER_TIMESTAMP.iter().enumerate() {
|
||||
info!("LAST_FERTILIZER_TIMESTAMP[{i}] = {item}");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -703,8 +703,9 @@ pub async fn do_secure_pump(
|
||||
if plant_config.fertilizer_s > 0 {
|
||||
let current_time = board.board_hal.get_time().await;
|
||||
let last_fertilizer = board.board_hal.get_esp().last_fertilizer_time(plant_id);
|
||||
let elapsed_minutes = (current_time.timestamp() - last_fertilizer) / 60;
|
||||
|
||||
// Convert last_fertilizer from milliseconds to seconds for correct subtraction
|
||||
let elapsed_minutes = ((current_time.timestamp_millis() - last_fertilizer) / 1000) / 60;
|
||||
info!("Fertilizer pump cooldown check - Current time: {}, Last fertilizer: {}, Elapsed minutes: {}", current_time, last_fertilizer, elapsed_minutes);
|
||||
if elapsed_minutes >= plant_config.fertilizer_cooldown_min as i64 {
|
||||
info!(
|
||||
"Starting fertilizer pump for {} seconds (last fertilizer was {} minutes ago)",
|
||||
@@ -717,6 +718,7 @@ pub async fn do_secure_pump(
|
||||
&elapsed_minutes.to_string(),
|
||||
"",
|
||||
);
|
||||
info!("Fertilizer pump applied - Current time: {}, Last fertilizer: {}, Elapsed minutes: {}", current_time, last_fertilizer, elapsed_minutes);
|
||||
board.board_hal.fertilizer_pump(true).await?;
|
||||
Timer::after_millis(plant_config.fertilizer_s as u64 * 1000).await;
|
||||
board.board_hal.fertilizer_pump(false).await?;
|
||||
|
||||
Reference in New Issue
Block a user