Revert changes to unit crate
This commit is contained in:
26
Cargo.lock
generated
26
Cargo.lock
generated
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -11,25 +11,25 @@
|
||||
|
||||
<body>
|
||||
<h2>Wasser</h2>
|
||||
<p>Temperatur: {}</p>
|
||||
<p>Temperatur Min: {}</p>
|
||||
<p>Temperatur Max: {}</p>
|
||||
<p>Solltemperatur Solar: {}</p>
|
||||
<p>Solltemperatur Netz: {}</p>
|
||||
<p>Temperatur: {} °C</p>
|
||||
<p>Temperatur Min: {} °C</p>
|
||||
<p>Temperatur Max: {} °C</p>
|
||||
<p>Solltemperatur Solar: {} °C</p>
|
||||
<p>Solltemperatur Netz: {} °C</p>
|
||||
|
||||
<h2>Solar aktuell</h2>
|
||||
<p>Spannung: {}</p>
|
||||
<p>Strom: {}</p>
|
||||
<p>Leistung: {} ({})</p>
|
||||
<p>Spannung: {} V</p>
|
||||
<p>Strom: {} A</p>
|
||||
<p>Leistung: {} kW ({} W)</p>
|
||||
|
||||
<h2>Historie</h2>
|
||||
<p>Solarenergie Heute: {} ({})</p>
|
||||
<p>Solarenergie Gesamt: {} ({})</p>
|
||||
<p>Netzenergie Heute: {} ({})</p>
|
||||
<p>Solarenergie Heute: {} kWh ({} Wh)</p>
|
||||
<p>Solarenergie Gesamt: {} kWh ({} Wh)</p>
|
||||
<p>Netzenergie Heute: {} kWh ({} Wh)</p>
|
||||
|
||||
<h2>Zustand</h2>
|
||||
<p>Isolationsmessung: {}</p>
|
||||
<p>Gerätetemperatur: {}</p>
|
||||
<p>Gerätetemperatur: {} °C</p>
|
||||
<p>Status: {}</p>
|
||||
<p>DC Trenner: {}</p>
|
||||
<p>DC Relais: {}</p>
|
||||
|
||||
119
src/main.rs
119
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<Html<String>, AppError> {
|
||||
.collect::<HashMap<StatusTag, &str>>();
|
||||
|
||||
let status = Status {
|
||||
wassertemp: ThermodynamicTemperature::new::<degree_celsius>(
|
||||
status_map[&StatusTag::Wassertemp].parse::<f32>()? / 10.0,
|
||||
),
|
||||
wassertemp_min: ThermodynamicTemperature::new::<degree_celsius>(
|
||||
status_map[&StatusTag::WassertempMin].parse::<f32>()? / 10.0,
|
||||
),
|
||||
wassertemp_max: ThermodynamicTemperature::new::<degree_celsius>(
|
||||
status_map[&StatusTag::WassertempMax].parse::<f32>()? / 10.0,
|
||||
),
|
||||
solltemp_solar: ThermodynamicTemperature::new::<degree_celsius>(
|
||||
status_map[&StatusTag::SolltempSolar].parse::<f32>()? / 10.0,
|
||||
),
|
||||
solltemp_netz: ThermodynamicTemperature::new::<degree_celsius>(
|
||||
status_map[&StatusTag::SolltempNetz].parse::<f32>()? / 10.0,
|
||||
),
|
||||
solarspannung: ElectricPotential::new::<volt>(
|
||||
status_map[&StatusTag::Solarspannung].parse()?,
|
||||
),
|
||||
solarstrom: ElectricCurrent::new::<ampere>(status_map[&StatusTag::Solarstrom].parse()?),
|
||||
solarleistung: Power::new::<watt>(status_map[&StatusTag::Solarleistung].parse()?),
|
||||
solarenergie_heute: Energy::new::<watt_hour>(
|
||||
status_map[&StatusTag::SolarenergieHeute].parse()?,
|
||||
),
|
||||
solarenergie_gesamt: Energy::new::<watt_hour>(
|
||||
status_map[&StatusTag::SolarenergieGesamt].parse()?,
|
||||
),
|
||||
netzenergie_heute: Energy::new::<watt_hour>(
|
||||
status_map[&StatusTag::NetzenergieHeute].parse()?,
|
||||
),
|
||||
wassertemp: status_map[&StatusTag::Wassertemp].parse::<f32>()? / 10.0,
|
||||
wassertemp_min: status_map[&StatusTag::WassertempMin].parse::<f32>()? / 10.0,
|
||||
wassertemp_max: status_map[&StatusTag::WassertempMax].parse::<f32>()? / 10.0,
|
||||
solltemp_solar: status_map[&StatusTag::SolltempSolar].parse::<f32>()? / 10.0,
|
||||
solltemp_netz: status_map[&StatusTag::SolltempNetz].parse::<f32>()? / 10.0,
|
||||
solarspannung: status_map[&StatusTag::Solarspannung].parse()?,
|
||||
solarstrom: status_map[&StatusTag::Solarstrom].parse()?,
|
||||
solarleistung: status_map[&StatusTag::Solarleistung].parse::<f32>()? / 1000.0,
|
||||
solarenergie_heute: status_map[&StatusTag::SolarenergieHeute].parse::<f32>()? / 1000.0,
|
||||
solarenergie_gesamt: status_map[&StatusTag::SolarenergieGesamt].parse::<f32>()? / 1000.0,
|
||||
netzenergie_heute: status_map[&StatusTag::NetzenergieHeute].parse::<f32>()? / 1000.0,
|
||||
iso_messung: status_map[&StatusTag::IsoMessung].parse()?,
|
||||
geraetetemp: ThermodynamicTemperature::new::<degree_celsius>(
|
||||
status_map[&StatusTag::GeraeteTemp].parse()?,
|
||||
),
|
||||
geraetetemp: status_map[&StatusTag::GeraeteTemp].parse()?,
|
||||
status: status_map[&StatusTag::Status].parse()?,
|
||||
dc_trenner: status_map[&StatusTag::DcTrenner].parse::<u8>()? != 0,
|
||||
dc_relais: status_map[&StatusTag::DcRelais].parse::<u8>()? != 0,
|
||||
@@ -171,33 +140,25 @@ async fn handler() -> Result<Html<String>, 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,
|
||||
|
||||
Reference in New Issue
Block a user