Home Assistant Unofficial Reference 2024.12.1
const.py
Go to the documentation of this file.
1 """Constants used be the HomeKit component."""
2 
3 from __future__ import annotations
4 
5 from homeassistant.const import CONF_DEVICES
6 from homeassistant.util.signal_type import SignalTypeFormat
7 
8 # #### Misc ####
9 DEBOUNCE_TIMEOUT = 0.5
10 DEVICE_PRECISION_LEEWAY = 6
11 DOMAIN = "homekit"
12 PERSIST_LOCK_DATA = f"{DOMAIN}_persist_lock"
13 HOMEKIT_FILE = ".homekit.state"
14 SHUTDOWN_TIMEOUT = 30
15 CONF_ENTRY_INDEX = "index"
16 EMPTY_MAC = "00:00:00:00:00:00"
17 SIGNAL_RELOAD_ENTITIES: SignalTypeFormat[tuple[str, ...]] = SignalTypeFormat(
18  "homekit_reload_entities_{}"
19 )
20 
21 # ### Codecs ####
22 VIDEO_CODEC_COPY = "copy"
23 VIDEO_CODEC_LIBX264 = "libx264"
24 AUDIO_CODEC_OPUS = "libopus"
25 VIDEO_CODEC_H264_OMX = "h264_omx"
26 VIDEO_CODEC_H264_V4L2M2M = "h264_v4l2m2m"
27 VIDEO_PROFILE_NAMES = ["baseline", "main", "high"]
28 AUDIO_CODEC_COPY = "copy"
29 
30 # #### Attributes ####
31 ATTR_DISPLAY_NAME = "display_name"
32 ATTR_VALUE = "value"
33 ATTR_INTEGRATION = "platform"
34 ATTR_KEY_NAME = "key_name"
35 # Current attribute used by homekit_controller
36 ATTR_OBSTRUCTION_DETECTED = "obstruction-detected"
37 
38 # #### Config ####
39 CONF_HOMEKIT_MODE = "mode"
40 CONF_ADVERTISE_IP = "advertise_ip"
41 CONF_AUDIO_CODEC = "audio_codec"
42 CONF_AUDIO_MAP = "audio_map"
43 CONF_AUDIO_PACKET_SIZE = "audio_packet_size"
44 CONF_ENTITY_CONFIG = "entity_config"
45 CONF_FEATURE = "feature"
46 CONF_FEATURE_LIST = "feature_list"
47 CONF_FILTER = "filter"
48 CONF_EXCLUDE_ACCESSORY_MODE = "exclude_accessory_mode"
49 CONF_LINKED_BATTERY_SENSOR = "linked_battery_sensor"
50 CONF_LINKED_BATTERY_CHARGING_SENSOR = "linked_battery_charging_sensor"
51 CONF_LINKED_DOORBELL_SENSOR = "linked_doorbell_sensor"
52 CONF_LINKED_MOTION_SENSOR = "linked_motion_sensor"
53 CONF_LINKED_HUMIDITY_SENSOR = "linked_humidity_sensor"
54 CONF_LINKED_OBSTRUCTION_SENSOR = "linked_obstruction_sensor"
55 CONF_LOW_BATTERY_THRESHOLD = "low_battery_threshold"
56 CONF_MAX_FPS = "max_fps"
57 CONF_MAX_HEIGHT = "max_height"
58 CONF_MAX_WIDTH = "max_width"
59 CONF_STREAM_ADDRESS = "stream_address"
60 CONF_STREAM_SOURCE = "stream_source"
61 CONF_SUPPORT_AUDIO = "support_audio"
62 CONF_THRESHOLD_CO = "co_threshold"
63 CONF_THRESHOLD_CO2 = "co2_threshold"
64 CONF_VIDEO_CODEC = "video_codec"
65 CONF_VIDEO_PROFILE_NAMES = "video_profile_names"
66 CONF_VIDEO_MAP = "video_map"
67 CONF_VIDEO_PACKET_SIZE = "video_packet_size"
68 CONF_STREAM_COUNT = "stream_count"
69 
70 # #### Config Defaults ####
71 DEFAULT_SUPPORT_AUDIO = False
72 DEFAULT_AUDIO_CODEC = AUDIO_CODEC_OPUS
73 DEFAULT_AUDIO_MAP = "0:a:0"
74 DEFAULT_AUDIO_PACKET_SIZE = 188
75 DEFAULT_EXCLUDE_ACCESSORY_MODE = False
76 DEFAULT_LOW_BATTERY_THRESHOLD = 20
77 DEFAULT_MAX_FPS = 30
78 DEFAULT_MAX_HEIGHT = 1080
79 DEFAULT_MAX_WIDTH = 1920
80 DEFAULT_PORT = 21063
81 DEFAULT_CONFIG_FLOW_PORT = 21064
82 DEFAULT_VIDEO_CODEC = VIDEO_CODEC_LIBX264
83 DEFAULT_VIDEO_PROFILE_NAMES = VIDEO_PROFILE_NAMES
84 DEFAULT_VIDEO_MAP = "0:v:0"
85 DEFAULT_VIDEO_PACKET_SIZE = 1316
86 DEFAULT_STREAM_COUNT = 3
87 
88 # #### Features ####
89 FEATURE_ON_OFF = "on_off"
90 FEATURE_PLAY_PAUSE = "play_pause"
91 FEATURE_PLAY_STOP = "play_stop"
92 FEATURE_TOGGLE_MUTE = "toggle_mute"
93 
94 # #### HomeKit Component Event ####
95 EVENT_HOMEKIT_CHANGED = "homekit_state_change"
96 EVENT_HOMEKIT_TV_REMOTE_KEY_PRESSED = "homekit_tv_remote_key_pressed"
97 
98 # #### HomeKit Modes ####
99 HOMEKIT_MODE_ACCESSORY = "accessory"
100 HOMEKIT_MODE_BRIDGE = "bridge"
101 DEFAULT_HOMEKIT_MODE = HOMEKIT_MODE_BRIDGE
102 HOMEKIT_MODES = [HOMEKIT_MODE_BRIDGE, HOMEKIT_MODE_ACCESSORY]
103 
104 # #### HomeKit Component Services ####
105 SERVICE_HOMEKIT_RESET_ACCESSORY = "reset_accessory"
106 SERVICE_HOMEKIT_UNPAIR = "unpair"
107 
108 # #### String Constants ####
109 BRIDGE_MODEL = "Bridge"
110 BRIDGE_NAME = "Home Assistant Bridge"
111 SHORT_BRIDGE_NAME = "HASS Bridge"
112 SHORT_ACCESSORY_NAME = "HASS Accessory"
113 BRIDGE_SERIAL_NUMBER = "homekit.bridge"
114 MANUFACTURER = "Home Assistant"
115 
116 # #### Switch Types ####
117 TYPE_FAUCET = "faucet"
118 TYPE_OUTLET = "outlet"
119 TYPE_SHOWER = "shower"
120 TYPE_SPRINKLER = "sprinkler"
121 TYPE_SWITCH = "switch"
122 TYPE_VALVE = "valve"
123 
124 # #### Categories ####
125 CATEGORY_RECEIVER = 34
126 
127 # #### Services ####
128 SERV_ACCESSORY_INFO = "AccessoryInformation"
129 SERV_AIR_QUALITY_SENSOR = "AirQualitySensor"
130 SERV_BATTERY_SERVICE = "BatteryService"
131 SERV_CAMERA_RTP_STREAM_MANAGEMENT = "CameraRTPStreamManagement"
132 SERV_CARBON_DIOXIDE_SENSOR = "CarbonDioxideSensor"
133 SERV_CARBON_MONOXIDE_SENSOR = "CarbonMonoxideSensor"
134 SERV_CONTACT_SENSOR = "ContactSensor"
135 SERV_DOOR = "Door"
136 SERV_DOORBELL = "Doorbell"
137 SERV_FANV2 = "Fanv2"
138 SERV_GARAGE_DOOR_OPENER = "GarageDoorOpener"
139 SERV_HUMIDIFIER_DEHUMIDIFIER = "HumidifierDehumidifier"
140 SERV_HUMIDITY_SENSOR = "HumiditySensor"
141 SERV_INPUT_SOURCE = "InputSource"
142 SERV_LEAK_SENSOR = "LeakSensor"
143 SERV_LIGHT_SENSOR = "LightSensor"
144 SERV_LIGHTBULB = "Lightbulb"
145 SERV_LOCK = "LockMechanism"
146 SERV_MOTION_SENSOR = "MotionSensor"
147 SERV_OCCUPANCY_SENSOR = "OccupancySensor"
148 SERV_OUTLET = "Outlet"
149 SERV_SECURITY_SYSTEM = "SecuritySystem"
150 SERV_SERVICE_LABEL = "ServiceLabel"
151 SERV_SMOKE_SENSOR = "SmokeSensor"
152 SERV_SPEAKER = "Speaker"
153 SERV_STATELESS_PROGRAMMABLE_SWITCH = "StatelessProgrammableSwitch"
154 SERV_SWITCH = "Switch"
155 SERV_TELEVISION = "Television"
156 SERV_TELEVISION_SPEAKER = "TelevisionSpeaker"
157 SERV_TEMPERATURE_SENSOR = "TemperatureSensor"
158 SERV_THERMOSTAT = "Thermostat"
159 SERV_VALVE = "Valve"
160 SERV_WINDOW = "Window"
161 SERV_WINDOW_COVERING = "WindowCovering"
162 
163 # #### Characteristics ####
164 CHAR_ACTIVE = "Active"
165 CHAR_ACTIVE_IDENTIFIER = "ActiveIdentifier"
166 CHAR_AIR_PARTICULATE_DENSITY = "AirParticulateDensity"
167 CHAR_PM25_DENSITY = "PM2.5Density"
168 CHAR_PM10_DENSITY = "PM10Density"
169 CHAR_AIR_QUALITY = "AirQuality"
170 CHAR_BATTERY_LEVEL = "BatteryLevel"
171 CHAR_BRIGHTNESS = "Brightness"
172 CHAR_CARBON_DIOXIDE_DETECTED = "CarbonDioxideDetected"
173 CHAR_CARBON_DIOXIDE_LEVEL = "CarbonDioxideLevel"
174 CHAR_CARBON_DIOXIDE_PEAK_LEVEL = "CarbonDioxidePeakLevel"
175 CHAR_CARBON_MONOXIDE_DETECTED = "CarbonMonoxideDetected"
176 CHAR_CARBON_MONOXIDE_LEVEL = "CarbonMonoxideLevel"
177 CHAR_CARBON_MONOXIDE_PEAK_LEVEL = "CarbonMonoxidePeakLevel"
178 CHAR_CHARGING_STATE = "ChargingState"
179 CHAR_COLOR_TEMPERATURE = "ColorTemperature"
180 CHAR_CONFIGURED_NAME = "ConfiguredName"
181 CHAR_CONTACT_SENSOR_STATE = "ContactSensorState"
182 CHAR_COOLING_THRESHOLD_TEMPERATURE = "CoolingThresholdTemperature"
183 CHAR_CURRENT_AMBIENT_LIGHT_LEVEL = "CurrentAmbientLightLevel"
184 CHAR_CURRENT_DOOR_STATE = "CurrentDoorState"
185 CHAR_CURRENT_FAN_STATE = "CurrentFanState"
186 CHAR_CURRENT_HEATING_COOLING = "CurrentHeatingCoolingState"
187 CHAR_CURRENT_HUMIDIFIER_DEHUMIDIFIER = "CurrentHumidifierDehumidifierState"
188 CHAR_CURRENT_POSITION = "CurrentPosition"
189 CHAR_CURRENT_HUMIDITY = "CurrentRelativeHumidity"
190 CHAR_CURRENT_SECURITY_STATE = "SecuritySystemCurrentState"
191 CHAR_CURRENT_TEMPERATURE = "CurrentTemperature"
192 CHAR_CURRENT_TILT_ANGLE = "CurrentHorizontalTiltAngle"
193 CHAR_CURRENT_VISIBILITY_STATE = "CurrentVisibilityState"
194 CHAR_DEHUMIDIFIER_THRESHOLD_HUMIDITY = "RelativeHumidityDehumidifierThreshold"
195 CHAR_FIRMWARE_REVISION = "FirmwareRevision"
196 CHAR_HARDWARE_REVISION = "HardwareRevision"
197 CHAR_HEATING_THRESHOLD_TEMPERATURE = "HeatingThresholdTemperature"
198 CHAR_HUE = "Hue"
199 CHAR_HUMIDIFIER_THRESHOLD_HUMIDITY = "RelativeHumidityHumidifierThreshold"
200 CHAR_IDENTIFIER = "Identifier"
201 CHAR_IN_USE = "InUse"
202 CHAR_INPUT_SOURCE_TYPE = "InputSourceType"
203 CHAR_IS_CONFIGURED = "IsConfigured"
204 CHAR_LEAK_DETECTED = "LeakDetected"
205 CHAR_LOCK_CURRENT_STATE = "LockCurrentState"
206 CHAR_LOCK_TARGET_STATE = "LockTargetState"
207 CHAR_LINK_QUALITY = "LinkQuality"
208 CHAR_MANUFACTURER = "Manufacturer"
209 CHAR_MODEL = "Model"
210 CHAR_MOTION_DETECTED = "MotionDetected"
211 CHAR_MUTE = "Mute"
212 CHAR_NAME = "Name"
213 CHAR_NITROGEN_DIOXIDE_DENSITY = "NitrogenDioxideDensity"
214 CHAR_OBSTRUCTION_DETECTED = "ObstructionDetected"
215 CHAR_OCCUPANCY_DETECTED = "OccupancyDetected"
216 CHAR_ON = "On"
217 CHAR_OUTLET_IN_USE = "OutletInUse"
218 CHAR_POSITION_STATE = "PositionState"
219 CHAR_PROGRAMMABLE_SWITCH_EVENT = "ProgrammableSwitchEvent"
220 CHAR_REMOTE_KEY = "RemoteKey"
221 CHAR_ROTATION_DIRECTION = "RotationDirection"
222 CHAR_ROTATION_SPEED = "RotationSpeed"
223 CHAR_SATURATION = "Saturation"
224 CHAR_SERIAL_NUMBER = "SerialNumber"
225 CHAR_SERVICE_LABEL_INDEX = "ServiceLabelIndex"
226 CHAR_SERVICE_LABEL_NAMESPACE = "ServiceLabelNamespace"
227 CHAR_SLEEP_DISCOVER_MODE = "SleepDiscoveryMode"
228 CHAR_SMOKE_DETECTED = "SmokeDetected"
229 CHAR_STATUS_LOW_BATTERY = "StatusLowBattery"
230 CHAR_STREAMING_STRATUS = "StreamingStatus"
231 CHAR_SWING_MODE = "SwingMode"
232 CHAR_TARGET_DOOR_STATE = "TargetDoorState"
233 CHAR_TARGET_HEATING_COOLING = "TargetHeatingCoolingState"
234 CHAR_TARGET_POSITION = "TargetPosition"
235 CHAR_TARGET_FAN_STATE = "TargetFanState"
236 CHAR_TARGET_HUMIDIFIER_DEHUMIDIFIER = "TargetHumidifierDehumidifierState"
237 CHAR_TARGET_HUMIDITY = "TargetRelativeHumidity"
238 CHAR_TARGET_SECURITY_STATE = "SecuritySystemTargetState"
239 CHAR_TARGET_TEMPERATURE = "TargetTemperature"
240 CHAR_TARGET_TILT_ANGLE = "TargetHorizontalTiltAngle"
241 CHAR_HOLD_POSITION = "HoldPosition"
242 CHAR_TEMP_DISPLAY_UNITS = "TemperatureDisplayUnits"
243 CHAR_VALVE_TYPE = "ValveType"
244 CHAR_VOC_DENSITY = "VOCDensity"
245 CHAR_VOLUME = "Volume"
246 CHAR_VOLUME_SELECTOR = "VolumeSelector"
247 CHAR_VOLUME_CONTROL_TYPE = "VolumeControlType"
248 
249 
250 # #### Properties ####
251 PROP_MAX_VALUE = "maxValue"
252 PROP_MIN_VALUE = "minValue"
253 PROP_MIN_STEP = "minStep"
254 PROP_CELSIUS = {"minValue": -273, "maxValue": 999}
255 PROP_VALID_VALUES = "ValidValues"
256 # #### Thresholds ####
257 THRESHOLD_CO = 25
258 THRESHOLD_CO2 = 1000
259 
260 # #### Default values ####
261 DEFAULT_MIN_TEMP_WATER_HEATER = 40 # °C
262 DEFAULT_MAX_TEMP_WATER_HEATER = 60 # °C
263 
264 # #### Media Player Key Names ####
265 KEY_ARROW_DOWN = "arrow_down"
266 KEY_ARROW_LEFT = "arrow_left"
267 KEY_ARROW_RIGHT = "arrow_right"
268 KEY_ARROW_UP = "arrow_up"
269 KEY_BACK = "back"
270 KEY_EXIT = "exit"
271 KEY_FAST_FORWARD = "fast_forward"
272 KEY_INFORMATION = "information"
273 KEY_NEXT_TRACK = "next_track"
274 KEY_PREVIOUS_TRACK = "previous_track"
275 KEY_REWIND = "rewind"
276 KEY_SELECT = "select"
277 KEY_PLAY_PAUSE = "play_pause"
278 
279 # #### Door states ####
280 HK_DOOR_OPEN = 0
281 HK_DOOR_CLOSED = 1
282 HK_DOOR_OPENING = 2
283 HK_DOOR_CLOSING = 3
284 HK_DOOR_STOPPED = 4
285 
286 # ### Position State ####
287 HK_POSITION_GOING_TO_MIN = 0
288 HK_POSITION_GOING_TO_MAX = 1
289 HK_POSITION_STOPPED = 2
290 
291 # ### Charging State ###
292 HK_NOT_CHARGING = 0
293 HK_CHARGING = 1
294 HK_NOT_CHARGABLE = 2
295 
296 # ### Config Options ###
297 CONFIG_OPTIONS = [
298  CONF_FILTER,
299  CONF_ENTITY_CONFIG,
300  CONF_HOMEKIT_MODE,
301  CONF_DEVICES,
302 ]
303 
304 # ### Maximum Lengths ###
305 MAX_NAME_LENGTH = 64
306 MAX_SERIAL_LENGTH = 64
307 MAX_MODEL_LENGTH = 64
308 MAX_VERSION_LENGTH = 64
309 MAX_MANUFACTURER_LENGTH = 64