From 8ab9db796c91a0783841c282b8011c97a97d8619 Mon Sep 17 00:00:00 2001 From: Wolfgang Hottgenroth Date: Fri, 12 Dec 2025 22:08:06 +0100 Subject: [PATCH] regallicht kueche 2 --- apps/abstraction/vendors/hottis_led_stripe.py | 36 +++++++++++-------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/apps/abstraction/vendors/hottis_led_stripe.py b/apps/abstraction/vendors/hottis_led_stripe.py index bdabd0a..ba53356 100644 --- a/apps/abstraction/vendors/hottis_led_stripe.py +++ b/apps/abstraction/vendors/hottis_led_stripe.py @@ -1,4 +1,4 @@ -"""Hottis WiFi Relay vendor transformations.""" +"""Hottis LED Stripe vendor transformations.""" import logging from typing import Any @@ -6,33 +6,41 @@ from typing import Any logger = logging.getLogger(__name__) -def transform_relay_to_vendor(payload: dict[str, Any]) -> str: - """Transform abstract relay payload to Hottis WiFi Relay format. +def transform_light_to_vendor(payload: dict[str, Any]) -> str: + """Transform abstract relay payload to Hottis LED Stripe format. - Hottis WiFi Relay expects plain text 'on' or 'off' (not JSON). + Hottis LED Stripe expects plain text 'on' or 'off' (not JSON). Example: - Abstract: {'power': 'on'} - - Hottis WiFi Relay: 'ON' + - Hottis LED Stripe: 'ON' """ - power = payload.get("power", "off").upper() - return power + + bri = 89.0 / 254.0 + r = int(255 * bri) + g = int(103 * bri) + b = int(25 * bri) + + cmd = f"{r} {g} {b}" if payload.get("power", "off").lower() == "on" else "0 0 0" + return cmd -def transform_relay_to_abstract(payload: str) -> dict[str, Any]: - """Transform Hottis WiFi Relay relay payload to abstract format. +def transform_light_to_abstract(payload: str) -> dict[str, Any]: + """Transform Hottis LED Stripe relay payload to abstract format. - Hottis WiFi Relay sends plain text 'on' or 'off'. + Hottis LED Stripe sends plain text 'on' or 'off'. Example: - - Hottis WiFi Relay: 'ON' + - Hottis LED Stripe: 'ON' - Abstract: {'power': 'on'} """ - return {"power": payload.strip().lower()} + + power = "on" if payload.strip() != "0 0 0" else "off" + return {"power": power} # Registry of handlers for this vendor HANDLERS = { - ("relay", "to_vendor"): transform_relay_to_vendor, - ("relay", "to_abstract"): transform_relay_to_abstract, + ("light", "to_vendor"): transform_light_to_vendor, + ("light", "to_abstract"): transform_light_to_abstract, }