1 """Constants used be the HomeKit component."""
3 from __future__
import annotations
10 DEVICE_PRECISION_LEEWAY = 6
12 PERSIST_LOCK_DATA = f
"{DOMAIN}_persist_lock"
13 HOMEKIT_FILE =
".homekit.state"
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_{}"
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"
31 ATTR_DISPLAY_NAME =
"display_name"
33 ATTR_INTEGRATION =
"platform"
34 ATTR_KEY_NAME =
"key_name"
36 ATTR_OBSTRUCTION_DETECTED =
"obstruction-detected"
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"
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
78 DEFAULT_MAX_HEIGHT = 1080
79 DEFAULT_MAX_WIDTH = 1920
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
89 FEATURE_ON_OFF =
"on_off"
90 FEATURE_PLAY_PAUSE =
"play_pause"
91 FEATURE_PLAY_STOP =
"play_stop"
92 FEATURE_TOGGLE_MUTE =
"toggle_mute"
95 EVENT_HOMEKIT_CHANGED =
"homekit_state_change"
96 EVENT_HOMEKIT_TV_REMOTE_KEY_PRESSED =
"homekit_tv_remote_key_pressed"
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]
105 SERVICE_HOMEKIT_RESET_ACCESSORY =
"reset_accessory"
106 SERVICE_HOMEKIT_UNPAIR =
"unpair"
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"
117 TYPE_FAUCET =
"faucet"
118 TYPE_OUTLET =
"outlet"
119 TYPE_SHOWER =
"shower"
120 TYPE_SPRINKLER =
"sprinkler"
121 TYPE_SWITCH =
"switch"
125 CATEGORY_RECEIVER = 34
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"
136 SERV_DOORBELL =
"Doorbell"
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"
160 SERV_WINDOW =
"Window"
161 SERV_WINDOW_COVERING =
"WindowCovering"
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"
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"
210 CHAR_MOTION_DETECTED =
"MotionDetected"
213 CHAR_NITROGEN_DIOXIDE_DENSITY =
"NitrogenDioxideDensity"
214 CHAR_OBSTRUCTION_DETECTED =
"ObstructionDetected"
215 CHAR_OCCUPANCY_DETECTED =
"OccupancyDetected"
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"
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"
261 DEFAULT_MIN_TEMP_WATER_HEATER = 40
262 DEFAULT_MAX_TEMP_WATER_HEATER = 60
265 KEY_ARROW_DOWN =
"arrow_down"
266 KEY_ARROW_LEFT =
"arrow_left"
267 KEY_ARROW_RIGHT =
"arrow_right"
268 KEY_ARROW_UP =
"arrow_up"
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"
287 HK_POSITION_GOING_TO_MIN = 0
288 HK_POSITION_GOING_TO_MAX = 1
289 HK_POSITION_STOPPED = 2
306 MAX_SERIAL_LENGTH = 64
307 MAX_MODEL_LENGTH = 64
308 MAX_VERSION_LENGTH = 64
309 MAX_MANUFACTURER_LENGTH = 64