mirror of
https://github.com/home-assistant/frontend.git
synced 2025-11-10 11:30:01 +00:00
121 lines
2.7 KiB
TypeScript
121 lines
2.7 KiB
TypeScript
const hassAttributeUtil = {
|
|
DOMAIN_DEVICE_CLASS: {
|
|
binary_sensor: [
|
|
"battery",
|
|
"cold",
|
|
"connectivity",
|
|
"door",
|
|
"garage_door",
|
|
"gas",
|
|
"heat",
|
|
"light",
|
|
"lock",
|
|
"moisture",
|
|
"motion",
|
|
"moving",
|
|
"occupancy",
|
|
"opening",
|
|
"plug",
|
|
"power",
|
|
"presence",
|
|
"problem",
|
|
"safety",
|
|
"smoke",
|
|
"sound",
|
|
"vibration",
|
|
"window",
|
|
],
|
|
cover: [
|
|
"awning",
|
|
"blind",
|
|
"curtain",
|
|
"damper",
|
|
"door",
|
|
"garage",
|
|
"shade",
|
|
"shutter",
|
|
"window",
|
|
],
|
|
humidifier: ["dehumidifier", "humidifier"],
|
|
sensor: [
|
|
"battery",
|
|
"humidity",
|
|
"illuminance",
|
|
"temperature",
|
|
"pressure",
|
|
"power",
|
|
"signal_strength",
|
|
"timestamp",
|
|
],
|
|
switch: ["switch", "outlet"],
|
|
},
|
|
UNKNOWN_TYPE: "json",
|
|
ADD_TYPE: "key-value",
|
|
TYPE_TO_TAG: {
|
|
string: "ha-customize-string",
|
|
json: "ha-customize-string",
|
|
icon: "ha-customize-icon",
|
|
boolean: "ha-customize-boolean",
|
|
array: "ha-customize-array",
|
|
"key-value": "ha-customize-key-value",
|
|
},
|
|
LOGIC_STATE_ATTRIBUTES: {},
|
|
};
|
|
|
|
// Attributes here serve dual purpose:
|
|
// 1) Any key of this object won't be shown in more-info window.
|
|
// 2) Any key which has value other than undefined will appear in customization
|
|
// config according to its value.
|
|
hassAttributeUtil.LOGIC_STATE_ATTRIBUTES = {
|
|
entity_picture: undefined,
|
|
friendly_name: { type: "string", description: "Name" },
|
|
icon: { type: "icon" },
|
|
emulated_hue: {
|
|
type: "boolean",
|
|
domains: ["emulated_hue"],
|
|
},
|
|
emulated_hue_name: {
|
|
type: "string",
|
|
domains: ["emulated_hue"],
|
|
},
|
|
haaska_hidden: undefined,
|
|
haaska_name: undefined,
|
|
supported_features: undefined,
|
|
attribution: undefined,
|
|
restored: undefined,
|
|
custom_ui_more_info: { type: "string" },
|
|
custom_ui_state_card: { type: "string" },
|
|
device_class: {
|
|
type: "array",
|
|
options: hassAttributeUtil.DOMAIN_DEVICE_CLASS,
|
|
description: "Device class",
|
|
domains: ["binary_sensor", "cover", "humidifier", "sensor", "switch"],
|
|
},
|
|
assumed_state: {
|
|
type: "boolean",
|
|
domains: [
|
|
"switch",
|
|
"light",
|
|
"cover",
|
|
"climate",
|
|
"fan",
|
|
"humidifier",
|
|
"group",
|
|
"water_heater",
|
|
],
|
|
},
|
|
initial_state: {
|
|
type: "string",
|
|
domains: ["automation"],
|
|
},
|
|
unit_of_measurement: { type: "string" },
|
|
};
|
|
|
|
export default hassAttributeUtil;
|
|
|
|
// Convert from internal snake_case format to user-friendly format
|
|
export function formatAttributeName(value: string): string {
|
|
value = value.replace(/_/g, " ").replace(/\bid\b/g, "ID");
|
|
return value.charAt(0).toUpperCase() + value.slice(1);
|
|
}
|