From 1ef8630302849ab991fb67fde5f944ea4e66a09f Mon Sep 17 00:00:00 2001 From: Dusan Vojacek Date: Sun, 14 Jun 2026 17:42:30 +0200 Subject: [PATCH] =?UTF-8?q?fix:=20watts=5Fto=5Famps=20round()=20misto=20in?= =?UTF-8?q?t()=20=E2=80=94=2011=20kW=20=3D=2016=20A=20(ne=2015=20A=20/=20-?= =?UTF-8?q?6%)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 11000 W / (3x230) = 15.94 A; int() useklo na 15 A (~10.35 kW), round da spravnych 16 A (~11 kW). Strop 32 A drzi horni mez. 74 control testu zelenych. Co-Authored-By: Claude Opus 4.8 (1M context) --- backend/services/control/deye_helpers.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/backend/services/control/deye_helpers.py b/backend/services/control/deye_helpers.py index b14aae5..936f11a 100644 --- a/backend/services/control/deye_helpers.py +++ b/backend/services/control/deye_helpers.py @@ -146,9 +146,11 @@ def _deye_reg178_verify_with_double_read( def watts_to_amps(power_w: int | None, phases: int = 3, voltage: int = 230) -> int: + # round(), NE int(): 11 kW / (3×230) = 15.94 A → int useklo na 15 A (~10.35 kW, + # −6 % výkonu); round dá správných 16 A (~11 kW). Strop 32 A drží horní mez. if not power_w or power_w <= 0: return 0 - return min(32, max(0, int(power_w / (phases * voltage)))) + return min(32, max(0, round(power_w / (phases * voltage)))) def battery_watts_to_amps(power_w: int, max_amps: int) -> int: