diff --git a/Cargo.lock b/Cargo.lock
index e75ef65..da8ed39 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -184,7 +184,6 @@ dependencies = [
"serialport",
"strum",
"tokio",
- "uom",
]
[[package]]
@@ -425,15 +424,6 @@ dependencies = [
"libc",
]
-[[package]]
-name = "num-traits"
-version = "0.2.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
-dependencies = [
- "autocfg",
-]
-
[[package]]
name = "num_cpus"
version = "1.16.0"
@@ -835,28 +825,12 @@ version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
-[[package]]
-name = "typenum"
-version = "1.17.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
-
[[package]]
name = "unicode-ident"
version = "1.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
-[[package]]
-name = "uom"
-version = "0.35.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8362194c7a9845a7a7f3562173d6e1da3f24f7132018cb78fe77a5b4474187b2"
-dependencies = [
- "num-traits",
- "typenum",
-]
-
[[package]]
name = "want"
version = "0.3.1"
diff --git a/Cargo.toml b/Cargo.toml
index 0618f7f..0721848 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -14,4 +14,3 @@ log = "0.4.20"
serialport = "4.2.2"
strum = { version = "0.25.0", features = ["derive"] }
tokio = { version = "1.34.0", features = ["full"] }
-uom = "0.35.0"
diff --git a/src/index.html b/src/index.html
index 7aab2b2..7c6df58 100644
--- a/src/index.html
+++ b/src/index.html
@@ -11,25 +11,25 @@
Wasser
- Temperatur: {}
- Temperatur Min: {}
- Temperatur Max: {}
- Solltemperatur Solar: {}
- Solltemperatur Netz: {}
+ Temperatur: {} °C
+ Temperatur Min: {} °C
+ Temperatur Max: {} °C
+ Solltemperatur Solar: {} °C
+ Solltemperatur Netz: {} °C
Solar aktuell
- Spannung: {}
- Strom: {}
- Leistung: {} ({})
+ Spannung: {} V
+ Strom: {} A
+ Leistung: {} kW ({} W)
Historie
- Solarenergie Heute: {} ({})
- Solarenergie Gesamt: {} ({})
- Netzenergie Heute: {} ({})
+ Solarenergie Heute: {} kWh ({} Wh)
+ Solarenergie Gesamt: {} kWh ({} Wh)
+ Netzenergie Heute: {} kWh ({} Wh)
Zustand
Isolationsmessung: {}
- Gerätetemperatur: {}
+ Gerätetemperatur: {} °C
Status: {}
DC Trenner: {}
DC Relais: {}
diff --git a/src/main.rs b/src/main.rs
index 761dbc0..82d06d2 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -8,17 +8,6 @@ use axum::{
Router,
};
use strum::{EnumIter, IntoEnumIterator};
-use uom::{
- fmt::DisplayStyle::Abbreviation,
- si::{
- electric_current::ampere,
- electric_potential::volt,
- energy::{kilowatt_hour, watt_hour},
- f32::*,
- power::{kilowatt, watt},
- thermodynamic_temperature::degree_celsius,
- },
-};
#[derive(EnumIter, PartialEq, Eq, Hash, Debug)]
enum StatusTag {
@@ -57,25 +46,25 @@ enum StatusTag {
#[derive(Debug)]
struct Status<'a> {
// Wasser
- wassertemp: ThermodynamicTemperature,
- wassertemp_min: ThermodynamicTemperature,
- wassertemp_max: ThermodynamicTemperature,
- solltemp_solar: ThermodynamicTemperature,
- solltemp_netz: ThermodynamicTemperature,
+ wassertemp: f32,
+ wassertemp_min: f32,
+ wassertemp_max: f32,
+ solltemp_solar: f32,
+ solltemp_netz: f32,
// Solar aktuell
- solarspannung: ElectricPotential,
- solarstrom: ElectricCurrent,
- solarleistung: Power,
+ solarspannung: f32,
+ solarstrom: f32,
+ solarleistung: f32,
// Historie
- solarenergie_heute: Energy,
- solarenergie_gesamt: Energy,
- netzenergie_heute: Energy,
+ solarenergie_heute: f32,
+ solarenergie_gesamt: f32,
+ netzenergie_heute: f32,
// Zustand
iso_messung: u32,
- geraetetemp: ThermodynamicTemperature,
+ geraetetemp: f32,
status: u32,
dc_trenner: bool,
dc_relais: bool,
@@ -129,39 +118,19 @@ async fn handler() -> Result, AppError> {
.collect::>();
let status = Status {
- wassertemp: ThermodynamicTemperature::new::(
- status_map[&StatusTag::Wassertemp].parse::()? / 10.0,
- ),
- wassertemp_min: ThermodynamicTemperature::new::(
- status_map[&StatusTag::WassertempMin].parse::()? / 10.0,
- ),
- wassertemp_max: ThermodynamicTemperature::new::(
- status_map[&StatusTag::WassertempMax].parse::()? / 10.0,
- ),
- solltemp_solar: ThermodynamicTemperature::new::(
- status_map[&StatusTag::SolltempSolar].parse::()? / 10.0,
- ),
- solltemp_netz: ThermodynamicTemperature::new::(
- status_map[&StatusTag::SolltempNetz].parse::()? / 10.0,
- ),
- solarspannung: ElectricPotential::new::(
- status_map[&StatusTag::Solarspannung].parse()?,
- ),
- solarstrom: ElectricCurrent::new::(status_map[&StatusTag::Solarstrom].parse()?),
- solarleistung: Power::new::(status_map[&StatusTag::Solarleistung].parse()?),
- solarenergie_heute: Energy::new::(
- status_map[&StatusTag::SolarenergieHeute].parse()?,
- ),
- solarenergie_gesamt: Energy::new::(
- status_map[&StatusTag::SolarenergieGesamt].parse()?,
- ),
- netzenergie_heute: Energy::new::(
- status_map[&StatusTag::NetzenergieHeute].parse()?,
- ),
+ wassertemp: status_map[&StatusTag::Wassertemp].parse::()? / 10.0,
+ wassertemp_min: status_map[&StatusTag::WassertempMin].parse::()? / 10.0,
+ wassertemp_max: status_map[&StatusTag::WassertempMax].parse::()? / 10.0,
+ solltemp_solar: status_map[&StatusTag::SolltempSolar].parse::()? / 10.0,
+ solltemp_netz: status_map[&StatusTag::SolltempNetz].parse::()? / 10.0,
+ solarspannung: status_map[&StatusTag::Solarspannung].parse()?,
+ solarstrom: status_map[&StatusTag::Solarstrom].parse()?,
+ solarleistung: status_map[&StatusTag::Solarleistung].parse::()? / 1000.0,
+ solarenergie_heute: status_map[&StatusTag::SolarenergieHeute].parse::()? / 1000.0,
+ solarenergie_gesamt: status_map[&StatusTag::SolarenergieGesamt].parse::()? / 1000.0,
+ netzenergie_heute: status_map[&StatusTag::NetzenergieHeute].parse::()? / 1000.0,
iso_messung: status_map[&StatusTag::IsoMessung].parse()?,
- geraetetemp: ThermodynamicTemperature::new::(
- status_map[&StatusTag::GeraeteTemp].parse()?,
- ),
+ geraetetemp: status_map[&StatusTag::GeraeteTemp].parse()?,
status: status_map[&StatusTag::Status].parse()?,
dc_trenner: status_map[&StatusTag::DcTrenner].parse::()? != 0,
dc_relais: status_map[&StatusTag::DcRelais].parse::()? != 0,
@@ -171,33 +140,25 @@ async fn handler() -> Result, AppError> {
seriennummer: status_map[&StatusTag::Seriennummer],
};
- let w = Power::format_args(watt, Abbreviation);
- let kw = Power::format_args(kilowatt, Abbreviation);
- let wh = Energy::format_args(watt_hour, Abbreviation);
- let kwh = Energy::format_args(kilowatt_hour, Abbreviation);
- let v = ElectricPotential::format_args(volt, Abbreviation);
- let a = ElectricCurrent::format_args(ampere, Abbreviation);
- let c = ThermodynamicTemperature::format_args(degree_celsius, Abbreviation);
-
Ok(Html(format!(
include_str!("index.html"),
- c.with(status.wassertemp),
- c.with(status.wassertemp_min),
- c.with(status.wassertemp_max),
- c.with(status.solltemp_solar),
- c.with(status.solltemp_netz),
- v.with(status.solarspannung),
- a.with(status.solarstrom),
- kw.with(status.solarleistung),
- w.with(status.solarleistung),
- kwh.with(status.solarenergie_heute),
- wh.with(status.solarenergie_heute),
- kwh.with(status.solarenergie_gesamt),
- wh.with(status.solarenergie_gesamt),
- kwh.with(status.netzenergie_heute),
- wh.with(status.netzenergie_heute),
+ status.wassertemp,
+ status.wassertemp_min,
+ status.wassertemp_max,
+ status.solltemp_solar,
+ status.solltemp_netz,
+ status.solarspannung,
+ status.solarstrom,
+ status.solarleistung,
+ status.solarleistung * 1000.0,
+ status.solarenergie_heute,
+ status.solarenergie_heute * 1000.0,
+ status.solarenergie_gesamt,
+ status.solarenergie_gesamt * 1000.0,
+ status.netzenergie_heute,
+ status.netzenergie_heute * 1000.0,
status.iso_messung,
- c.with(status.geraetetemp),
+ status.geraetetemp,
status.status,
status.dc_trenner,
status.dc_relais,