From 3634db798f1a8bf187847f89224856d4c63fefc2 Mon Sep 17 00:00:00 2001
From: David Rapan <david@rapan.cz>
Date: Thu, 30 Jan 2025 10:18:49 +0100
Subject: [PATCH] feat: Add signed option to direct multiplication for custom
 sensors

---
 custom_components/solarman/parser.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/custom_components/solarman/parser.py b/custom_components/solarman/parser.py
index 4a511935..61cd5571 100644
--- a/custom_components/solarman/parser.py
+++ b/custom_components/solarman/parser.py
@@ -238,7 +238,7 @@ def _read_registers_custom(self, data, definition):
                     continue
                 n = validation["default"]
 
-            if (m := s.get("multiply")) and (c := self._read_registers(data, m)) is not None:
+            if (m := s.get("multiply")) and (c := self._read_registers(data, m) if not "signed" in m else self._read_registers_signed(data, m)) is not None:
                 n *= c
 
             if (o := s.get("operator")) is None: