Home Assistant Unofficial Reference 2024.12.1
util.py
Go to the documentation of this file.
1 """Provide integration utilities."""
2 
3 from __future__ import annotations
4 
5 XY_COLOR_FACTOR = 65536
6 
7 
9  number: float, from_range: tuple[float, float], to_range: tuple[float, float]
10 ) -> float:
11  """Change value from from_range to to_range."""
12  delta1 = from_range[1] - from_range[0]
13  delta2 = to_range[1] - to_range[0]
14  return (delta2 * (number - from_range[0]) / delta1) + to_range[0]
15 
16 
17 def convert_to_matter_hs(hass_hs: tuple[float, float]) -> tuple[float, float]:
18  """Convert Home Assistant HS to Matter HS."""
19 
20  return (
21  hass_hs[0] / 360 * 254,
22  renormalize(hass_hs[1], (0, 100), (0, 254)),
23  )
24 
25 
26 def convert_to_hass_hs(matter_hs: tuple[float, float]) -> tuple[float, float]:
27  """Convert Matter HS to Home Assistant HS."""
28 
29  return (
30  matter_hs[0] * 360 / 254,
31  renormalize(matter_hs[1], (0, 254), (0, 100)),
32  )
33 
34 
35 def convert_to_matter_xy(hass_xy: tuple[float, float]) -> tuple[float, float]:
36  """Convert Home Assistant XY to Matter XY."""
37 
38  return (hass_xy[0] * XY_COLOR_FACTOR, hass_xy[1] * XY_COLOR_FACTOR)
39 
40 
41 def convert_to_hass_xy(matter_xy: tuple[float, float]) -> tuple[float, float]:
42  """Convert Matter XY to Home Assistant XY."""
43 
44  return (matter_xy[0] / XY_COLOR_FACTOR, matter_xy[1] / XY_COLOR_FACTOR)
tuple[float, float] convert_to_hass_xy(tuple[float, float] matter_xy)
Definition: util.py:41
tuple[float, float] convert_to_matter_hs(tuple[float, float] hass_hs)
Definition: util.py:17
float renormalize(float number, tuple[float, float] from_range, tuple[float, float] to_range)
Definition: util.py:10
tuple[float, float] convert_to_hass_hs(tuple[float, float] matter_hs)
Definition: util.py:26
tuple[float, float] convert_to_matter_xy(tuple[float, float] hass_xy)
Definition: util.py:35