use same output for moisture on webpage as in mqtt
This commit is contained in:
@@ -4,7 +4,7 @@ use serde::{Deserialize, Serialize};
|
||||
|
||||
use crate::{config::PlantConfig, in_time_range, plant_hal};
|
||||
|
||||
const MOIST_SENSOR_MAX_FREQUENCY: f32 = 6500.; // 60kHz (500Hz margin)
|
||||
const MOIST_SENSOR_MAX_FREQUENCY: f32 = 7500.; // 60kHz (500Hz margin)
|
||||
const MOIST_SENSOR_MIN_FREQUENCY: f32 = 150.; // this is really, really dry, think like cactus levels
|
||||
|
||||
#[derive(Debug, PartialEq, Serialize)]
|
||||
|
@@ -21,6 +21,7 @@ use std::{
|
||||
use url::Url;
|
||||
|
||||
use crate::config::PlantControllerConfig;
|
||||
use crate::plant_state::MoistureSensorState;
|
||||
|
||||
#[derive(Serialize, Debug)]
|
||||
struct SSIDList<'a> {
|
||||
@@ -35,8 +36,8 @@ struct LoadData<'a> {
|
||||
|
||||
#[derive(Serialize, Debug)]
|
||||
struct Moistures {
|
||||
moisture_a: Vec<Option<f32>>,
|
||||
moisture_b: Vec<Option<f32>>,
|
||||
moisture_a: Vec<std::string::String>,
|
||||
moisture_b: Vec<std::string::String>,
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Debug)]
|
||||
@@ -122,12 +123,28 @@ fn get_live_moisture(
|
||||
let a = Vec::from_iter(
|
||||
plant_state
|
||||
.iter()
|
||||
.map(|s| s.sensor_a.moisture_percent().map(|f| f.to_precision(2))),
|
||||
.map(|s| {
|
||||
match &s.sensor_a {
|
||||
MoistureSensorState::Disabled => "disabled".to_string(),
|
||||
MoistureSensorState::MoistureValue {raw_hz, moisture_percent } => {
|
||||
format!("{moisture_percent:.2}% {raw_hz}hz",)
|
||||
}
|
||||
MoistureSensorState::SensorError(err) => format!("{err:?}"),
|
||||
}
|
||||
})
|
||||
);
|
||||
let b = Vec::from_iter(
|
||||
plant_state
|
||||
.iter()
|
||||
.map(|s| s.sensor_b.moisture_percent().map(|f| f.to_precision(2))),
|
||||
.map(|s| {
|
||||
match &s.sensor_b {
|
||||
MoistureSensorState::Disabled => "disabled".to_string(),
|
||||
MoistureSensorState::MoistureValue {raw_hz, moisture_percent } => {
|
||||
format!("{moisture_percent:.2}% {raw_hz}hz",)
|
||||
}
|
||||
MoistureSensorState::SensorError(err) => format!("{err:?}"),
|
||||
}
|
||||
})
|
||||
);
|
||||
|
||||
let data = Moistures {
|
||||
|
Reference in New Issue
Block a user