Home Assistant Unofficial Reference 2024.12.1
const.py
Go to the documentation of this file.
1 """Constants for mobile_app."""
2 
3 import voluptuous as vol
4 
5 from homeassistant.helpers import config_validation as cv
6 
7 DOMAIN = "mobile_app"
8 
9 STORAGE_KEY = DOMAIN
10 STORAGE_VERSION = 1
11 
12 CONF_CLOUDHOOK_URL = "cloudhook_url"
13 CONF_REMOTE_UI_URL = "remote_ui_url"
14 CONF_SECRET = "secret"
15 CONF_USER_ID = "user_id"
16 
17 DATA_CONFIG_ENTRIES = "config_entries"
18 DATA_DELETED_IDS = "deleted_ids"
19 DATA_DEVICES = "devices"
20 DATA_STORE = "store"
21 DATA_NOTIFY = "notify"
22 DATA_PUSH_CHANNEL = "push_channel"
23 
24 ATTR_APP_DATA = "app_data"
25 ATTR_APP_ID = "app_id"
26 ATTR_APP_NAME = "app_name"
27 ATTR_APP_VERSION = "app_version"
28 ATTR_CONFIG_ENTRY_ID = "entry_id"
29 ATTR_DEVICE_NAME = "device_name"
30 ATTR_MANUFACTURER = "manufacturer"
31 ATTR_MODEL = "model"
32 ATTR_NO_LEGACY_ENCRYPTION = "no_legacy_encryption"
33 ATTR_OS_NAME = "os_name"
34 ATTR_OS_VERSION = "os_version"
35 ATTR_PUSH_WEBSOCKET_CHANNEL = "push_websocket_channel"
36 ATTR_PUSH_TOKEN = "push_token"
37 ATTR_PUSH_URL = "push_url"
38 ATTR_PUSH_RATE_LIMITS = "rateLimits"
39 ATTR_PUSH_RATE_LIMITS_ERRORS = "errors"
40 ATTR_PUSH_RATE_LIMITS_MAXIMUM = "maximum"
41 ATTR_PUSH_RATE_LIMITS_RESETS_AT = "resetsAt"
42 ATTR_PUSH_RATE_LIMITS_SUCCESSFUL = "successful"
43 ATTR_SUPPORTS_ENCRYPTION = "supports_encryption"
44 
45 ATTR_EVENT_DATA = "event_data"
46 ATTR_EVENT_TYPE = "event_type"
47 
48 ATTR_TEMPLATE = "template"
49 ATTR_TEMPLATE_VARIABLES = "variables"
50 
51 ATTR_SPEED = "speed"
52 ATTR_ALTITUDE = "altitude"
53 ATTR_COURSE = "course"
54 ATTR_VERTICAL_ACCURACY = "vertical_accuracy"
55 
56 ATTR_WEBHOOK_DATA = "data"
57 ATTR_WEBHOOK_ENCRYPTED = "encrypted"
58 ATTR_WEBHOOK_ENCRYPTED_DATA = "encrypted_data"
59 ATTR_WEBHOOK_ID = "webhook_id"
60 ATTR_WEBHOOK_TYPE = "type"
61 
62 ERR_ENCRYPTION_ALREADY_ENABLED = "encryption_already_enabled"
63 ERR_ENCRYPTION_NOT_AVAILABLE = "encryption_not_available"
64 ERR_ENCRYPTION_REQUIRED = "encryption_required"
65 ERR_SENSOR_NOT_REGISTERED = "not_registered"
66 ERR_INVALID_FORMAT = "invalid_format"
67 
68 
69 ATTR_SENSOR_ATTRIBUTES = "attributes"
70 ATTR_SENSOR_DEVICE_CLASS = "device_class"
71 ATTR_SENSOR_DISABLED = "disabled"
72 ATTR_SENSOR_ENTITY_CATEGORY = "entity_category"
73 ATTR_SENSOR_ICON = "icon"
74 ATTR_SENSOR_NAME = "name"
75 ATTR_SENSOR_STATE = "state"
76 ATTR_SENSOR_STATE_CLASS = "state_class"
77 ATTR_SENSOR_TYPE = "type"
78 ATTR_SENSOR_TYPE_BINARY_SENSOR = "binary_sensor"
79 ATTR_SENSOR_TYPE_SENSOR = "sensor"
80 ATTR_SENSOR_UNIQUE_ID = "unique_id"
81 ATTR_SENSOR_UOM = "unit_of_measurement"
82 
83 SIGNAL_SENSOR_UPDATE = f"{DOMAIN}_sensor_update"
84 SIGNAL_LOCATION_UPDATE = DOMAIN + "_location_update_{}"
85 
86 ATTR_CAMERA_ENTITY_ID = "camera_entity_id"
87 
88 SCHEMA_APP_DATA = vol.Schema(
89  {
90  vol.Inclusive(ATTR_PUSH_TOKEN, "push_cloud"): cv.string,
91  vol.Inclusive(ATTR_PUSH_URL, "push_cloud"): cv.url,
92  # Set to True to indicate that this registration will connect via websocket channel
93  # to receive push notifications.
94  vol.Optional(ATTR_PUSH_WEBSOCKET_CHANNEL): cv.boolean,
95  },
96  extra=vol.ALLOW_EXTRA,
97 )