cleanup+change label names
All checks were successful
Build and release .deb / Release (push) Successful in 51s

This commit is contained in:
Alex Janka 2024-12-28 21:09:19 +11:00
parent 29dcb5b9d8
commit bc0da6be11
6 changed files with 34 additions and 35 deletions

4
Cargo.lock generated
View file

@ -239,7 +239,7 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
[[package]]
name = "charge-controller-supervisor"
version = "1.9.9-pre-2"
version = "1.9.9-pre-3"
dependencies = [
"chrono",
"clap",
@ -2202,7 +2202,7 @@ dependencies = [
[[package]]
name = "tesla-charge-controller"
version = "1.9.9-pre-2"
version = "1.9.9-pre-3"
dependencies = [
"chrono",
"clap",

View file

@ -4,7 +4,7 @@ default-members = ["charge-controller-supervisor"]
resolver = "2"
[workspace.package]
version = "1.9.9-pre-2"
version = "1.9.9-pre-3"
[workspace.lints.clippy]
pedantic = "warn"

View file

@ -7,7 +7,6 @@ StartLimitIntervalSec=0
Type=simple
Restart=always
RestartSec=10s
User=tesla
Environment="RUST_LOG=error,warn"
Environment="LOG_TIMESTAMP=false"
ExecStart=/usr/bin/charge-controller-supervisor watch

View file

@ -16,12 +16,13 @@ impl Controller {
pub fn new(config: crate::config::ChargeControllerConfig) -> eyre::Result<Self> {
let inner = match config.variant {
crate::config::ChargeControllerVariant::Tristar => ControllerInner::Tristar(
crate::tristar::Tristar::new(config.serial_port, config.baud_rate)?,
crate::tristar::Tristar::new(&config.serial_port, &config.name, config.baud_rate)?,
),
crate::config::ChargeControllerVariant::Pl {
timeout_milliseconds,
} => ControllerInner::Pl(crate::pl::Pli::new(
config.serial_port,
&config.serial_port,
&config.name,
config.baud_rate,
timeout_milliseconds,
)?),

View file

@ -10,8 +10,7 @@ use crate::gauges::{
};
pub struct Pli {
// pub state: Arc<RwLock<PlState>>,
port_name: String,
friendly_name: String,
port: Box<dyn SerialPort>,
}
@ -108,17 +107,17 @@ pub enum PliRequest {
impl Pli {
pub fn new(
serial_port: String,
serial_port: &str,
friendly_name: &str,
baud_rate: u32,
timeout: u64,
) -> Result<Self, serialport::Error> {
let port = serialport::new(serial_port.clone(), baud_rate)
let port = serialport::new(serial_port, baud_rate)
.timeout(Duration::from_millis(timeout))
.open()?;
Ok(Self {
// state: Arc::new(RwLock::new(Default::default())),
port_name: serial_port,
friendly_name: friendly_name.to_owned(),
port,
})
}
@ -126,25 +125,25 @@ impl Pli {
pub fn refresh(&mut self) -> eyre::Result<crate::controller::CommonData> {
let new_state = self.read_state()?;
BATTERY_VOLTAGE
.with_label_values(&[&self.port_name])
.with_label_values(&[&self.friendly_name])
.set(new_state.battery_voltage);
TARGET_VOLTAGE
.with_label_values(&[&self.port_name])
.with_label_values(&[&self.friendly_name])
.set(new_state.target_voltage);
PL_DUTY_CYCLE
.with_label_values(&[&self.port_name])
.with_label_values(&[&self.friendly_name])
.set(new_state.duty_cycle);
INPUT_CURRENT
.with_label_values(&[&self.port_name])
.with_label_values(&[&self.friendly_name])
.set(new_state.internal_charge_current);
PL_LOAD_CURRENT
.with_label_values(&[&self.port_name])
.with_label_values(&[&self.friendly_name])
.set(new_state.internal_load_current);
BATTERY_TEMP
.with_label_values(&[&self.port_name])
.with_label_values(&[&self.friendly_name])
.set(new_state.battery_temp);
set_regulator_gauges(new_state.regulator_state, &self.port_name);
set_regulator_gauges(new_state.regulator_state, &self.friendly_name);
Ok(crate::controller::CommonData {
battery_voltage: new_state.battery_voltage,

View file

@ -42,7 +42,7 @@ impl Scaling {
}
pub struct Tristar {
port_name: String,
friendly_name: String,
modbus: tokio_modbus::client::Context,
charge_state_gauges: ChargeStateGauges,
consecutive_errors: usize,
@ -233,14 +233,14 @@ impl ChargeStateGauges {
}
impl Tristar {
pub fn new(serial_port: String, baud_rate: u32) -> eyre::Result<Self> {
pub fn new(serial_port: &str, friendly_name: &str, baud_rate: u32) -> eyre::Result<Self> {
let modbus_serial =
tokio_serial::SerialStream::open(&tokio_serial::new(&serial_port, baud_rate))?;
tokio_serial::SerialStream::open(&tokio_serial::new(serial_port, baud_rate))?;
let slave = tokio_modbus::Slave(DEVICE_ID);
let modbus = tokio_modbus::client::rtu::attach_slave(modbus_serial, slave);
let charge_state_gauges = ChargeStateGauges::new(&serial_port);
let charge_state_gauges = ChargeStateGauges::new(friendly_name);
Ok(Self {
port_name: serial_port,
friendly_name: friendly_name.to_owned(),
modbus,
charge_state_gauges,
consecutive_errors: 0,
@ -251,37 +251,37 @@ impl Tristar {
let new_state = self.get_data().await?;
self.consecutive_errors = 0;
BATTERY_VOLTAGE
.with_label_values(&[&self.port_name])
.with_label_values(&[&self.friendly_name])
.set(new_state.battery_voltage);
TARGET_VOLTAGE
.with_label_values(&[&self.port_name])
.with_label_values(&[&self.friendly_name])
.set(new_state.target_voltage);
INPUT_CURRENT
.with_label_values(&[&self.port_name])
.with_label_values(&[&self.friendly_name])
.set(new_state.input_current);
BATTERY_TEMP
.with_label_values(&[&self.port_name])
.with_label_values(&[&self.friendly_name])
.set(new_state.battery_temp.into());
TRISTAR_INPUT_VOLTAGE
.with_label_values(&[&self.port_name])
.with_label_values(&[&self.friendly_name])
.set(new_state.tristar_input_voltage);
TRISTAR_CHARGE_CURRENT
.with_label_values(&[&self.port_name])
.with_label_values(&[&self.friendly_name])
.set(new_state.tristar_charge_current);
TRISTAR_POWER_OUT
.with_label_values(&[&self.port_name])
.with_label_values(&[&self.friendly_name])
.set(new_state.tristar_power_out);
TRISTAR_POWER_IN
.with_label_values(&[&self.port_name])
.with_label_values(&[&self.friendly_name])
.set(new_state.tristar_power_in);
TRISTAR_MAX_ARRAY_POWER
.with_label_values(&[&self.port_name])
.with_label_values(&[&self.friendly_name])
.set(new_state.tristar_max_array_power);
TRISTAR_MAX_ARRAY_VOLTAGE
.with_label_values(&[&self.port_name])
.with_label_values(&[&self.friendly_name])
.set(new_state.tristar_max_array_voltage);
TRISTAR_OPEN_CIRCUIT_VOLTAGE
.with_label_values(&[&self.port_name])
.with_label_values(&[&self.friendly_name])
.set(new_state.tristar_open_circuit_voltage);
self.charge_state_gauges.set(new_state.charge_state);