From 1d2a5d422afdad10d320773ea142e1318afccc24 Mon Sep 17 00:00:00 2001 From: atbore-phx Date: Wed, 6 Mar 2024 00:49:39 +0100 Subject: [PATCH] fix(schedule): fixing ratio of charge when reserve is not full --- pkg/fronius/fronius_test.go | 2 +- pkg/fronius/schedule.go | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/pkg/fronius/fronius_test.go b/pkg/fronius/fronius_test.go index 626dce4..aa54627 100644 --- a/pkg/fronius/fronius_test.go +++ b/pkg/fronius/fronius_test.go @@ -297,7 +297,7 @@ func TestBatteryChargeError3(t *testing.T) { setup() result, err := fronius.SetFroniusChargeBatteryMode(1000, 11000, -11000, 9000, 3500, 0, "00:00", "23:59", modbus_ip, modbus_port) - assert.Equal(int16(-31), result, "SetFroniusChargeBatteryMode returned wrong value") + assert.Equal(int16(-200), result, "SetFroniusChargeBatteryMode returned wrong value") assert.Error(err) teardown() diff --git a/pkg/fronius/schedule.go b/pkg/fronius/schedule.go index 68dc990..647449d 100644 --- a/pkg/fronius/schedule.go +++ b/pkg/fronius/schedule.go @@ -25,7 +25,8 @@ func SetFroniusChargeBatteryMode(pw_forecast float64, pw_batt2charge float64, pw case pw_batt2charge == 0: // battery 100% => do not charge u.Log.Info("Battery is full charged") case pw_batt < pw_batt_reserve: // battery is less than reserve => charge - ch_pc = SetChargePower(pw_batt_max, pw_batt_reserve, max_charge) + u.Log.Infof("battery %f W < reserve %f W", pw_batt, pw_batt_reserve) + ch_pc = SetChargePower(pw_batt_max, pw_batt_reserve-pw_batt, max_charge) default: pw_grid, charge_enabled := ChargeBattery(pw_pv_net, pw_batt) if charge_enabled {