1 Commits

Author SHA1 Message Date
8b5a462fc4 Update Rust crate serde_json to v1.0.131
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2024-10-19 00:29:14 +00:00
5 changed files with 11 additions and 37 deletions

View File

@@ -492,9 +492,9 @@ dependencies = [
[[package]]
name = "anyhow"
version = "1.0.90"
version = "1.0.89"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "37bf3594c4c988a53154954629820791dde498571819ae4ca50ca811e060cc95"
checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6"
[[package]]
name = "asn1"
@@ -670,7 +670,6 @@ dependencies = [
"bincode",
"chrono",
"clap",
"dotenvy",
"env_logger",
"foreign-types-shared",
"fs4",
@@ -998,12 +997,6 @@ dependencies = [
"winapi",
]
[[package]]
name = "dotenvy"
version = "0.15.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b"
[[package]]
name = "encode_unicode"
version = "1.0.0"
@@ -2305,9 +2298,9 @@ dependencies = [
[[package]]
name = "serde_json"
version = "1.0.129"
version = "1.0.131"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6dbcf9b78a125ee667ae19388837dd12294b858d101fdd393cb9d5501ef09eb2"
checksum = "67d42a0bd4ac281beff598909bb56a86acaf979b84483e1c79c10dcaf98f8cf3"
dependencies = [
"itoa",
"memchr",

View File

@@ -7,7 +7,6 @@ edition = "2021"
log = "0.4.22"
env_logger = "0.11.5"
lazy_static = "1.5.0"
dotenvy = "0.15.7"
clap = { version = "4.5.20", features = ["derive", "env"] }
anyhow = "1.0.89"
thiserror = "1.0.64"

View File

@@ -39,12 +39,8 @@ pub enum ConsumptionBackend {
/// Fronius inverter consumption
Fronius {
/// The origin of the domain where the webserver of the Fronius Symo can be reached
#[clap(short, long, env)]
fronius_orig: String,
/// Use cURL instead of reqwest to perform request
#[clap(short, long)]
curl: bool,
#[clap(short, long, env = "FRONIUS_ORIG")]
origin: String,
},
}

View File

@@ -9,8 +9,6 @@ pub enum ConsumptionError {
NonExistentFile,
#[error("The file that should contain the consumption has an invalid content!")]
FileInvalidContent(#[source] ParseIntError),
#[error("Failed to execute cURL request!")]
CurlReqFailed,
}
pub type EnergyConsumption = i32;
@@ -65,21 +63,9 @@ pub async fn get_curr_consumption() -> anyhow::Result<EnergyConsumption> {
.map_err(ConsumptionError::FileInvalidContent)?)
}
ConsumptionBackend::Fronius { fronius_orig, curl } => {
let url = format!("{fronius_orig}/solar_api/v1/GetPowerFlowRealtimeData.fcgi");
let response = match curl {
false => reqwest::get(url).await?.json::<FroniusResponse>().await?,
true => {
let res = std::process::Command::new("curl").arg(url).output()?;
if !res.status.success() {
return Err(ConsumptionError::CurlReqFailed.into());
}
serde_json::from_slice::<FroniusResponse>(&res.stdout)?
}
};
ConsumptionBackend::Fronius { origin } => {
let url = format!("{origin}/solar_api/v1/GetPowerFlowRealtimeData.fcgi");
let response = reqwest::get(url).await?.json::<FroniusResponse>().await?;
Ok(response.body.data.site.grid_production as i32)
}

View File

@@ -91,7 +91,7 @@ FRONIUS_ORIG=http://10.0.0.10
Run the following command to check if the configuration is working:
```bash
sudo -u central central_backend -c /home/central/config.yaml fronius -c
sudo -u central central_backend -c /home/central/config.yaml
```
### Create systemd unit file
@@ -109,7 +109,7 @@ Type=simple
User=central
Group=central
WorkingDirectory=/home/central
ExecStart=/usr/local/bin/central_backend -c /home/central/config.yaml fronius -c
ExecStart=/usr/local/bin/central_backend -c /home/central/config.yaml
Restart=always
Environment=USER=central
HOME=/home/central