Утилиты¶
Конвертер цветов¶
Преобразование цветовых моделей между HA (HSV 0-360/0-100/0-100) и Sber (H 0-360, S/V 0-1000).
Color conversion utilities between Home Assistant and Sber HSV color spaces.
ColorConverter
¶
Bidirectional HSV color converter between HA and Sber color spaces.
HA uses: - Hue: 0-360 degrees - Saturation: 0-100% - Brightness (Value): 0-255
Sber uses: - Hue: 0-360 degrees - Saturation: 0-1000 - Value: 100-1000
ha_to_sber_hsv
staticmethod
¶
Convert HA HSV color values to Sber HSV format.
Conversion rules: - H: 0-360 -> 0-360 (no change) - S: 0-100% -> 0-1000 (multiply by 10) - V: 0-255 -> 100-1000 (linear mapping)
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
ha_hue
|
float | None
|
Hue in degrees (0-360), or None for default 0. |
required |
ha_saturation
|
float | None
|
Saturation percentage (0-100), or None for default 0. |
required |
ha_brightness
|
float | None
|
Brightness value (0-255), or None for default 0. |
required |
Returns:
| Type | Description |
|---|---|
tuple[int, int, int]
|
Tuple of (sber_hue, sber_saturation, sber_value) as integers. |
Source code in custom_components/sber_mqtt_bridge/devices/utils/color_converter.py
sber_to_ha_hsv
staticmethod
¶
Convert Sber HSV color values to HA HSV format.
Conversion rules: - H: 0-360 -> 0-360 (no change) - S: 0-1000 -> 0-100% (divide by 10) - V: 100-1000 -> 0-255 (linear mapping)
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
sber_hue
|
float | None
|
Hue in degrees (0-360), or None for default 0. |
required |
sber_saturation
|
float | None
|
Saturation (0-1000), or None for default 0. |
required |
sber_value
|
float | None
|
Value/brightness (100-1000), or None for default 0. |
required |
Returns:
| Type | Description |
|---|---|
tuple[int, int, int]
|
Tuple of (ha_hue, ha_saturation, ha_brightness) as integers. |
Source code in custom_components/sber_mqtt_bridge/devices/utils/color_converter.py
Линейный конвертер¶
Линейное масштабирование значений между диапазонами HA и Sber.
Linear value converter between Home Assistant and Sber numeric ranges.
LinearConverter
¶
Bidirectional linear interpolation converter between HA and Sber value ranges.
Converts numeric values between two configurable ranges using linear interpolation. Supports optional range inversion (reversed mapping).
Default ranges: - Sber side: 0-1000 - HA side: 0-255
Attributes:
| Name | Type | Description |
|---|---|---|
sber_side_min |
int
|
Minimum value on the Sber side. |
sber_side_max |
int
|
Maximum value on the Sber side. |
ha_side_min |
int
|
Minimum value on the HA side. |
ha_side_max |
int
|
Maximum value on the HA side. |
is_reversed |
bool
|
Whether the Sber range is inverted relative to the HA range. |
Initialize with default ranges: Sber 0-1000, HA 0-255.
Source code in custom_components/sber_mqtt_bridge/devices/utils/linear_converter.py
set_reversed
¶
Set whether the conversion should reverse the direction.
When reversed, the maximum Sber value maps to the minimum HA value and vice versa.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
is_reversed
|
bool
|
True to enable reversed mapping. |
required |
Source code in custom_components/sber_mqtt_bridge/devices/utils/linear_converter.py
set_sber_limits
¶
Set the Sber-side value range.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
sber_side_min
|
int
|
Minimum Sber value (must be less than max). |
required |
sber_side_max
|
int
|
Maximum Sber value. |
required |
Raises:
| Type | Description |
|---|---|
ValueError
|
If sber_side_min >= sber_side_max. |
Source code in custom_components/sber_mqtt_bridge/devices/utils/linear_converter.py
set_ha_limits
¶
Set the HA-side value range.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
ha_side_min
|
int
|
Minimum HA value (must be less than max). |
required |
ha_side_max
|
int
|
Maximum HA value. |
required |
Raises:
| Type | Description |
|---|---|
ValueError
|
If ha_side_min >= ha_side_max. |
Source code in custom_components/sber_mqtt_bridge/devices/utils/linear_converter.py
sber_to_ha
¶
Convert a Sber-side value to the corresponding HA-side value.
Values outside the Sber range are clamped to HA min/max.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
sber_value
|
int | float
|
Numeric value in Sber range. |
required |
Returns:
| Type | Description |
|---|---|
int
|
Rounded integer value in HA range. |
Source code in custom_components/sber_mqtt_bridge/devices/utils/linear_converter.py
ha_to_sber
¶
Convert an HA-side value to the corresponding Sber-side value.
Values outside the HA range are clamped to Sber min/max.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
ha_value
|
int | float
|
Numeric value in HA range. |
required |
Returns:
| Type | Description |
|---|---|
int
|
Rounded integer value in Sber range. |