use same output for moisture on webpage as in mqtt
This commit is contained in:
parent
171b130a29
commit
9f48b46738
@ -4,7 +4,7 @@ use serde::{Deserialize, Serialize};
|
|||||||
|
|
||||||
use crate::{config::PlantConfig, in_time_range, plant_hal};
|
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
|
const MOIST_SENSOR_MIN_FREQUENCY: f32 = 150.; // this is really, really dry, think like cactus levels
|
||||||
|
|
||||||
#[derive(Debug, PartialEq, Serialize)]
|
#[derive(Debug, PartialEq, Serialize)]
|
||||||
|
@ -21,6 +21,7 @@ use std::{
|
|||||||
use url::Url;
|
use url::Url;
|
||||||
|
|
||||||
use crate::config::PlantControllerConfig;
|
use crate::config::PlantControllerConfig;
|
||||||
|
use crate::plant_state::MoistureSensorState;
|
||||||
|
|
||||||
#[derive(Serialize, Debug)]
|
#[derive(Serialize, Debug)]
|
||||||
struct SSIDList<'a> {
|
struct SSIDList<'a> {
|
||||||
@ -35,8 +36,8 @@ struct LoadData<'a> {
|
|||||||
|
|
||||||
#[derive(Serialize, Debug)]
|
#[derive(Serialize, Debug)]
|
||||||
struct Moistures {
|
struct Moistures {
|
||||||
moisture_a: Vec<Option<f32>>,
|
moisture_a: Vec<std::string::String>,
|
||||||
moisture_b: Vec<Option<f32>>,
|
moisture_b: Vec<std::string::String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Deserialize, Debug)]
|
#[derive(Deserialize, Debug)]
|
||||||
@ -122,12 +123,28 @@ fn get_live_moisture(
|
|||||||
let a = Vec::from_iter(
|
let a = Vec::from_iter(
|
||||||
plant_state
|
plant_state
|
||||||
.iter()
|
.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(
|
let b = Vec::from_iter(
|
||||||
plant_state
|
plant_state
|
||||||
.iter()
|
.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 {
|
let data = Moistures {
|
||||||
|
@ -106,8 +106,8 @@ interface GetTime {
|
|||||||
}
|
}
|
||||||
|
|
||||||
interface Moistures {
|
interface Moistures {
|
||||||
moisture_a: [number],
|
moisture_a: [string],
|
||||||
moisture_b: [number],
|
moisture_b: [string],
|
||||||
}
|
}
|
||||||
|
|
||||||
interface VersionInfo {
|
interface VersionInfo {
|
||||||
|
@ -24,7 +24,7 @@ export class PlantViews {
|
|||||||
}
|
}
|
||||||
return rv
|
return rv
|
||||||
}
|
}
|
||||||
update(moisture_a: [number], moisture_b: [number]) {
|
update(moisture_a: [string], moisture_b: [string]) {
|
||||||
for (let plantId = 0; plantId < PLANT_COUNT; plantId++) {
|
for (let plantId = 0; plantId < PLANT_COUNT; plantId++) {
|
||||||
const a = moisture_a[plantId]
|
const a = moisture_a[plantId]
|
||||||
const b = moisture_b[plantId]
|
const b = moisture_b[plantId]
|
||||||
@ -150,18 +150,9 @@ export class PlantView {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
update(a: number, b: number) {
|
update(a: string, b: string) {
|
||||||
if (a == 200){
|
this.moistureA.innerText = a
|
||||||
this.moistureA.innerText = "error"
|
this.moistureB.innerText = b
|
||||||
} else {
|
|
||||||
this.moistureA.innerText = String(a)
|
|
||||||
}
|
|
||||||
|
|
||||||
if (b == 200){
|
|
||||||
this.moistureB.innerText = "error"
|
|
||||||
} else {
|
|
||||||
this.moistureB.innerText = String(b)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
setConfig(plantConfig: PlantConfig) {
|
setConfig(plantConfig: PlantConfig) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user