From c46b33df9f39ea0f33f998b24665a9fb207bb343 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20=C3=96ster?= Date: Fri, 11 Jul 2025 21:21:09 +0300 Subject: [PATCH] Add lifetime energy --- Software/src/inverter/SMA-BYD-H-CAN.cpp | 11 +++++++++++ Software/src/inverter/SMA-BYD-HVS-CAN.cpp | 11 +++++++++++ 2 files changed, 22 insertions(+) diff --git a/Software/src/inverter/SMA-BYD-H-CAN.cpp b/Software/src/inverter/SMA-BYD-H-CAN.cpp index 04a74b52..3a8caccc 100644 --- a/Software/src/inverter/SMA-BYD-H-CAN.cpp +++ b/Software/src/inverter/SMA-BYD-H-CAN.cpp @@ -62,6 +62,17 @@ void SmaBydHInverter:: SMA_4D8.data.u8[6] = STOP_STATE; } + //Lifetime charged energy amount + SMA_458.data.u8[0] = (datalayer.battery.status.total_charged_battery_Wh & 0xFF000000) >> 24; + SMA_458.data.u8[1] = (datalayer.battery.status.total_charged_battery_Wh & 0x00FF0000) >> 16; + SMA_458.data.u8[2] = (datalayer.battery.status.total_charged_battery_Wh & 0x0000FF00) >> 8; + SMA_458.data.u8[3] = (datalayer.battery.status.total_charged_battery_Wh & 0x000000FF); + //Lifetime discharged energy amount + SMA_458.data.u8[4] = (datalayer.battery.status.total_discharged_battery_Wh & 0xFF000000) >> 24; + SMA_458.data.u8[5] = (datalayer.battery.status.total_discharged_battery_Wh & 0x00FF0000) >> 16; + SMA_458.data.u8[6] = (datalayer.battery.status.total_discharged_battery_Wh & 0x0000FF00) >> 8; + SMA_458.data.u8[7] = (datalayer.battery.status.total_discharged_battery_Wh & 0x000000FF); + //Error bits if (datalayer.system.status.battery_allows_contactor_closing) { SMA_158.data.u8[2] = 0xAA; diff --git a/Software/src/inverter/SMA-BYD-HVS-CAN.cpp b/Software/src/inverter/SMA-BYD-HVS-CAN.cpp index 95d2ea1f..10df0615 100644 --- a/Software/src/inverter/SMA-BYD-HVS-CAN.cpp +++ b/Software/src/inverter/SMA-BYD-HVS-CAN.cpp @@ -68,6 +68,17 @@ void SmaBydHvsInverter:: SMA_518.data.u8[6] = (datalayer.battery.status.cell_min_voltage_mV / 25); SMA_518.data.u8[7] = (datalayer.battery.status.cell_max_voltage_mV / 25); + //Lifetime charged energy amount + SMA_458.data.u8[0] = (datalayer.battery.status.total_charged_battery_Wh & 0xFF000000) >> 24; + SMA_458.data.u8[1] = (datalayer.battery.status.total_charged_battery_Wh & 0x00FF0000) >> 16; + SMA_458.data.u8[2] = (datalayer.battery.status.total_charged_battery_Wh & 0x0000FF00) >> 8; + SMA_458.data.u8[3] = (datalayer.battery.status.total_charged_battery_Wh & 0x000000FF); + //Lifetime discharged energy amount + SMA_458.data.u8[4] = (datalayer.battery.status.total_discharged_battery_Wh & 0xFF000000) >> 24; + SMA_458.data.u8[5] = (datalayer.battery.status.total_discharged_battery_Wh & 0x00FF0000) >> 16; + SMA_458.data.u8[6] = (datalayer.battery.status.total_discharged_battery_Wh & 0x0000FF00) >> 8; + SMA_458.data.u8[7] = (datalayer.battery.status.total_discharged_battery_Wh & 0x000000FF); + //Error bits if (datalayer.system.status.battery_allows_contactor_closing) { SMA_158.data.u8[2] = 0xAA;