Add (dis)charged_energy_Wh to datalayer and mqtt. (#1003)

- Add (dis)charged_energy_Wh to datalayer and mqtt.
- MEB: report (dis)charged_energy_Wh
- MEB: Fix SOH calculation.
- TESLA: also use the total_(dis)charged_battery_Wh in generic datalayer.
This commit is contained in:
Marijn van Galen 2025-03-25 19:18:20 +01:00 committed by GitHub
parent 02d2e518ba
commit 07a4ad7abc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 47 additions and 11 deletions

View file

@ -81,6 +81,10 @@ SensorConfig sensorConfigTemplate[] = {
{"remaining_capacity_real", "Battery Remaining Capacity (real)", "", "Wh", "energy"},
{"max_discharge_power", "Battery Max Discharge Power", "", "W", "power"},
{"max_charge_power", "Battery Max Charge Power", "", "W", "power"},
#if defined(MEB_BATTERY) || defined(TESLA_BATTERY)
{"charged_energy", "Battery Charged Energy", "", "Wh", "energy"},
{"discharged_energy", "Battery Discharged Energy", "", "Wh", "energy"},
#endif
{"bms_status", "BMS Status", "", "", ""},
{"pause_status", "Pause Status", "", "", ""}};
@ -179,6 +183,13 @@ void set_battery_attributes(JsonDocument& doc, const DATALAYER_BATTERY_TYPE& bat
doc["remaining_capacity" + suffix] = ((float)battery.status.reported_remaining_capacity_Wh);
doc["max_discharge_power" + suffix] = ((float)battery.status.max_discharge_power_W);
doc["max_charge_power" + suffix] = ((float)battery.status.max_charge_power_W);
#if defined(MEB_BATTERY) || defined(TESLA_BATTERY)
if (datalayer.battery.status.total_charged_battery_Wh != 0 &&
datalayer.battery.status.total_discharged_battery_Wh != 0) {
doc["charged_energy" + suffix] = ((float)datalayer.battery.status.total_charged_battery_Wh);
doc["discharged_energy" + suffix] = ((float)datalayer.battery.status.total_discharged_battery_Wh);
}
#endif
}
static std::vector<EventData> order_events;