Home Assistant Unofficial Reference 2024.12.1
const.py
Go to the documentation of this file.
1 """Support the UPB PIM."""
2 
3 import voluptuous as vol
4 
6 from homeassistant.helpers.typing import VolDictType
7 
8 DOMAIN = "upb"
9 
10 ATTR_ADDRESS = "address"
11 ATTR_BLINK_RATE = "blink_rate"
12 ATTR_BRIGHTNESS = "brightness"
13 ATTR_BRIGHTNESS_PCT = "brightness_pct"
14 ATTR_RATE = "rate"
15 CONF_NETWORK = "network"
16 EVENT_UPB_SCENE_CHANGED = "upb.scene_changed"
17 
18 VALID_BRIGHTNESS = vol.All(vol.Coerce(int), vol.Clamp(min=0, max=255))
19 VALID_BRIGHTNESS_PCT = vol.All(vol.Coerce(float), vol.Range(min=0, max=100))
20 VALID_RATE = vol.All(vol.Coerce(float), vol.Clamp(min=-1, max=3600))
21 
22 UPB_BRIGHTNESS_RATE_SCHEMA = vol.All(
23  cv.has_at_least_one_key(ATTR_BRIGHTNESS, ATTR_BRIGHTNESS_PCT),
24  cv.make_entity_service_schema(
25  {
26  vol.Exclusive(ATTR_BRIGHTNESS, ATTR_BRIGHTNESS): VALID_BRIGHTNESS,
27  vol.Exclusive(ATTR_BRIGHTNESS_PCT, ATTR_BRIGHTNESS): VALID_BRIGHTNESS_PCT,
28  vol.Optional(ATTR_RATE, default=-1): VALID_RATE,
29  }
30  ),
31 )
32 
33 UPB_BLINK_RATE_SCHEMA: VolDictType = {
34  vol.Required(ATTR_BLINK_RATE, default=0.5): vol.All(
35  vol.Coerce(float), vol.Range(min=0, max=4.25)
36  )
37 }