From 1d2a1615a4971ba070f85a2e32d725a143cab7a7 Mon Sep 17 00:00:00 2001 From: slipx06 Date: Fri, 26 May 2023 16:03:27 +0200 Subject: [PATCH] Update sunsynk-power-flow-card.js Display Time until battery is fully charged based. Add BATTERY FLOATING state --- dist/sunsynk-power-flow-card.js | 38 +++++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/dist/sunsynk-power-flow-card.js b/dist/sunsynk-power-flow-card.js index 6cb1df23..789907f6 100644 --- a/dist/sunsynk-power-flow-card.js +++ b/dist/sunsynk-power-flow-card.js @@ -223,7 +223,7 @@ class SunsynkPowerFlowCard extends LitElement { } let duration = ""; - if (battery_power > 0 && config.battery.energy !== "hidden") { + if (battery_power >= 0 && config.battery.energy !== "hidden") { let totalSeconds = ((((parseInt(stateObj12.state) - config.battery.shutdown_soc) / 100) * (config.battery.energy || 15960) ) / (battery_power || 1)) * 60 * 60; const days = Math.floor(totalSeconds / (60 * 60 * 24)); const hours = Math.floor((totalSeconds % (60 * 60 * 24)) / (60 * 60)); @@ -236,9 +236,27 @@ class SunsynkPowerFlowCard extends LitElement { } duration += `${minutes} min`; } + else if (battery_power < 0 && config.battery.energy !== "hidden") { + let remainingEnergy = (config.battery.energy - (config.battery.energy * (parseInt(stateObj12.state)/100) || 1)); + let totalSeconds = ((remainingEnergy / battery_power || 1) * 60 * 60 *-1); + const days = Math.floor(totalSeconds / (60 * 60 * 24)); + const hours = Math.floor((totalSeconds % (60 * 60 * 24)) / (60 * 60)); + const minutes = Math.floor((totalSeconds % (60 * 60)) / 60); + if (days > 0) { + duration += `${days} days, `; + } + if (hours > 0 || days > 0) { + duration += `${hours} hrs, `; + } + duration += `${minutes} min`; + } - if (battery_power <= 0) { - duration = "BATTERY CHARGING"; + let float = ""; + if ((-2 <= parseInt(stateObj35.state)) && (parseInt(stateObj35.state) <= 2) && (parseInt(stateObj12.state) >= 99)) { + float = "True"; + } + else { + float = "False"; } let inverterStateColour = ""; @@ -371,9 +389,10 @@ class SunsynkPowerFlowCard extends LitElement { - ${duration} - BATTERY RUNTIME - ${duration} + ${duration} + BATTERY RUNTIME + TO FULL CHARGE + BATTERY FLOATING ${totalsolar ? totalsolar : '0'} W PV1 PV2 @@ -642,10 +661,11 @@ class SunsynkPowerFlowCard extends LitElement { + ${duration} + BATTERY RUNTIME + TO FULL CHARGE + BATTERY FLOATING DAILY CHARGE - ${duration} - BATTERY RUNTIME - ${duration} DAILY DISCHARGE DAILY LOAD DAILY GRID BUY