From d3300f3dfa665d0d92389d67ed7172babec39a03 Mon Sep 17 00:00:00 2001 From: Brett Christensen Date: Sat, 10 Feb 2024 17:19:05 +1100 Subject: [PATCH] fix battery voltage and current --- Software/src/devboard/mqtt/mqtt.cpp | 7 ++++--- Software/src/devboard/mqtt/mqtt.h | 2 ++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Software/src/devboard/mqtt/mqtt.cpp b/Software/src/devboard/mqtt/mqtt.cpp index 0be8940f..2e7cb9c3 100644 --- a/Software/src/devboard/mqtt/mqtt.cpp +++ b/Software/src/devboard/mqtt/mqtt.cpp @@ -83,7 +83,7 @@ static void publish_cell_voltages(void) { // is the string content // If cell voltages haven't been populated... - if (cellvoltages[0] == 0u) { + if (cellvoltages[0] == 0u / 1000) { //cell voltage is in mV and homeassistant expects V return; } @@ -181,8 +181,9 @@ static void publish_common_info(void) { " \"battery_voltage\": %d\n" "}\n", ((float)SOC) / 100.0, ((float)StateOfHealth) / 100.0, ((float)((int16_t)temperature_min)) / 10.0, - ((float)((int16_t)temperature_max)) / 10.0, ((float)((int16_t)stat_batt_power)) / 10.0, - ((float)((int16_t)battery_current)) / 10.0, cell_max_voltage, cell_min_voltage, battery_voltage / 10.0); + ((float)((int16_t)temperature_max)) / 10.0, ((float)((int16_t)stat_batt_power)), + ((float)((int16_t)battery_current)) / 10.0, cell_max_voltage / 1000, cell_min_voltage / 1000, + battery_voltage / 10.0); bool result = client.publish(state_topic, mqtt_msg, true); } diff --git a/Software/src/devboard/mqtt/mqtt.h b/Software/src/devboard/mqtt/mqtt.h index 396f1a53..b7b58c8f 100644 --- a/Software/src/devboard/mqtt/mqtt.h +++ b/Software/src/devboard/mqtt/mqtt.h @@ -49,6 +49,8 @@ extern uint16_t cell_max_voltage; //mV, 0-4350 extern uint16_t cell_min_voltage; //mV, 0-4350 extern uint16_t cellvoltages[120]; //mV 0-4350 per cell extern uint8_t nof_cellvoltages; // Total number of cell voltages, set by each battery. +extern uint16_t battery_voltage; //V+1, 0-500.0 (0-5000) +extern uint16_t battery_current; //A+1, Goes thru convert2unsignedint16 function (5.0A = 50, -5.0A = 65485) extern const char* mqtt_user; extern const char* mqtt_password;