From 18481d9970bb04125badd7ff52a6338116b40422 Mon Sep 17 00:00:00 2001 From: Wolfgang Hottgenroth Date: Thu, 27 Nov 2025 16:48:19 +0100 Subject: [PATCH] hottis modbus relay --- apps/abstraction/transformation.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/apps/abstraction/transformation.py b/apps/abstraction/transformation.py index b20bad9..0b49d2f 100644 --- a/apps/abstraction/transformation.py +++ b/apps/abstraction/transformation.py @@ -374,6 +374,35 @@ def _transform_relay_shelly_to_abstract(payload: str) -> dict[str, Any]: """ return {"power": payload.strip()} +# ============================================================================ +# HANDLER FUNCTIONS: relay - hottis_modbus technology +# ============================================================================ + +def _transform_relay_hottis_modbus_to_vendor(payload: dict[str, Any]) -> str: + """Transform abstract relay payload to Hottis Modbus format. + + Hottis Modbus expects plain text 'on' or 'off' (not JSON). + - power: 'on'/'off' -> 'on'/'off' (plain string) + + Example: + - Abstract: {'power': 'on'} + - Hottis Modbus: 'on' + """ + power = payload.get("power", "off") + return power + + +def _transform_relay_hottis_modbus_to_abstract(payload: str) -> dict[str, Any]: + """Transform Hottis Modbus relay payload to abstract format. + + Hottis Modbus sends plain text 'on' or 'off' (not JSON). + - 'on'/'off' -> power: 'on'/'off' + + Example: + - Hottis Modbus: 'on' + - Abstract: {'power': 'on'} + """ + return {"power": payload.strip()} # ============================================================================ # HANDLER FUNCTIONS: max technology (Homegear MAX!)