mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-28 11:46:42 +00:00
parent
af6ebea4a3
commit
21fe68add0
BIN
demo/public/stub_config/bedroom.png
Normal file
BIN
demo/public/stub_config/bedroom.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 111 KiB |
BIN
demo/public/stub_config/floorplan.png
Normal file
BIN
demo/public/stub_config/floorplan.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 20 KiB |
BIN
demo/public/stub_config/kitchen.png
Normal file
BIN
demo/public/stub_config/kitchen.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 115 KiB |
BIN
demo/public/stub_config/t-shirt-promo.png
Normal file
BIN
demo/public/stub_config/t-shirt-promo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 185 KiB |
@ -56,7 +56,8 @@ export class HuiButtonCard extends LitElement implements LovelaceCard {
|
|||||||
lovelaceConfig,
|
lovelaceConfig,
|
||||||
maxEntities,
|
maxEntities,
|
||||||
entities,
|
entities,
|
||||||
entitiesFill
|
entitiesFill,
|
||||||
|
["light", "switch"]
|
||||||
);
|
);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
@ -51,10 +51,11 @@ class HuiEntitiesCard extends LitElement implements LovelaceCard {
|
|||||||
lovelaceConfig,
|
lovelaceConfig,
|
||||||
maxEntities,
|
maxEntities,
|
||||||
entities,
|
entities,
|
||||||
entitiesFill
|
entitiesFill,
|
||||||
|
["light", "switch", "sensor"]
|
||||||
);
|
);
|
||||||
|
|
||||||
return { entities: foundEntities };
|
return { title: "My Title", entities: foundEntities };
|
||||||
}
|
}
|
||||||
|
|
||||||
@property() private _config?: EntitiesCardConfig;
|
@property() private _config?: EntitiesCardConfig;
|
||||||
|
@ -47,7 +47,7 @@ export class HuiGlanceCard extends LitElement implements LovelaceCard {
|
|||||||
lovelaceConfig: LovelaceConfig,
|
lovelaceConfig: LovelaceConfig,
|
||||||
entities?: string[],
|
entities?: string[],
|
||||||
entitiesFill?: string[]
|
entitiesFill?: string[]
|
||||||
): object {
|
): GlanceCardConfig {
|
||||||
const includeDomains = ["sensor"];
|
const includeDomains = ["sensor"];
|
||||||
const maxEntities = 3;
|
const maxEntities = 3;
|
||||||
const foundEntities = findEntities(
|
const foundEntities = findEntities(
|
||||||
@ -59,7 +59,7 @@ export class HuiGlanceCard extends LitElement implements LovelaceCard {
|
|||||||
includeDomains
|
includeDomains
|
||||||
);
|
);
|
||||||
|
|
||||||
return { entities: foundEntities };
|
return { type: "glance", entities: foundEntities };
|
||||||
}
|
}
|
||||||
|
|
||||||
@property() public hass?: HomeAssistant;
|
@property() public hass?: HomeAssistant;
|
||||||
|
@ -32,8 +32,7 @@ export class HuiPictureCard extends LitElement implements LovelaceCard {
|
|||||||
}
|
}
|
||||||
public static getStubConfig(): object {
|
public static getStubConfig(): object {
|
||||||
return {
|
return {
|
||||||
image:
|
image: "https://demo.home-assistant.io/stub_config/t-shirt-promo.png",
|
||||||
"https://www.home-assistant.io/images/merchandise/shirt-frontpage.png",
|
|
||||||
tap_action: { action: "none" },
|
tap_action: { action: "none" },
|
||||||
hold_action: { action: "none" },
|
hold_action: { action: "none" },
|
||||||
};
|
};
|
||||||
|
@ -25,26 +25,30 @@ class HuiPictureElementsCard extends LitElement implements LovelaceCard {
|
|||||||
lovelaceConfig: LovelaceConfig,
|
lovelaceConfig: LovelaceConfig,
|
||||||
entities?: string[],
|
entities?: string[],
|
||||||
entitiesFill?: string[]
|
entitiesFill?: string[]
|
||||||
): object {
|
): PictureElementsCardConfig {
|
||||||
const maxEntities = 1;
|
const maxEntities = 1;
|
||||||
const foundEntities = findEntities(
|
const foundEntities = findEntities(
|
||||||
hass,
|
hass,
|
||||||
lovelaceConfig,
|
lovelaceConfig,
|
||||||
maxEntities,
|
maxEntities,
|
||||||
entities,
|
entities,
|
||||||
entitiesFill
|
entitiesFill,
|
||||||
|
["sensor", "binary_sensor"]
|
||||||
);
|
);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
type: "picture-elements",
|
||||||
elements: [
|
elements: [
|
||||||
{
|
{
|
||||||
type: "state-badge",
|
type: "state-badge",
|
||||||
entity: foundEntities[0] || "",
|
entity: foundEntities[0] || "",
|
||||||
style: "position: absolute, transform: translate(-50%, -50%)",
|
style: {
|
||||||
|
top: "32%",
|
||||||
|
left: "40%",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
image:
|
image: "https://demo.home-assistant.io/stub_config/floorplan.png",
|
||||||
"https://www.home-assistant.io/images/merchandise/shirt-frontpage.png",
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -52,13 +52,13 @@ class HuiPictureEntityCard extends LitElement implements LovelaceCard {
|
|||||||
lovelaceConfig,
|
lovelaceConfig,
|
||||||
maxEntities,
|
maxEntities,
|
||||||
entities,
|
entities,
|
||||||
entitiesFill
|
entitiesFill,
|
||||||
|
["light", "switch"]
|
||||||
);
|
);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
entity: foundEntities[0] || "",
|
entity: foundEntities[0] || "",
|
||||||
image:
|
image: "https://demo.home-assistant.io/stub_config/bedroom.png",
|
||||||
"https://www.home-assistant.io/images/merchandise/shirt-frontpage.png",
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,19 +49,21 @@ class HuiPictureGlanceCard extends LitElement implements LovelaceCard {
|
|||||||
lovelaceConfig: LovelaceConfig,
|
lovelaceConfig: LovelaceConfig,
|
||||||
entities?: string[],
|
entities?: string[],
|
||||||
entitiesFill?: string[]
|
entitiesFill?: string[]
|
||||||
): object {
|
): PictureGlanceCardConfig {
|
||||||
const maxEntities = 2;
|
const maxEntities = 2;
|
||||||
const foundEntities = findEntities(
|
const foundEntities = findEntities(
|
||||||
hass,
|
hass,
|
||||||
lovelaceConfig,
|
lovelaceConfig,
|
||||||
maxEntities,
|
maxEntities,
|
||||||
entities,
|
entities,
|
||||||
entitiesFill
|
entitiesFill,
|
||||||
|
["sensor", "binary_sensor"]
|
||||||
);
|
);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
image:
|
type: "picture-glance",
|
||||||
"https://www.home-assistant.io/images/merchandise/shirt-frontpage.png",
|
title: "Kitchen",
|
||||||
|
image: "https://demo.home-assistant.io/stub_config/kitchen.png",
|
||||||
entities: foundEntities,
|
entities: foundEntities,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -115,7 +115,7 @@ export interface GlanceCardConfig extends LovelaceCardConfig {
|
|||||||
show_icon?: boolean;
|
show_icon?: boolean;
|
||||||
title?: string;
|
title?: string;
|
||||||
theme?: string;
|
theme?: string;
|
||||||
entities: ConfigEntity[];
|
entities: Array<string | ConfigEntity>;
|
||||||
columns?: number;
|
columns?: number;
|
||||||
state_color?: boolean;
|
state_color?: boolean;
|
||||||
}
|
}
|
||||||
@ -177,7 +177,7 @@ export interface PictureElementsCardConfig extends LovelaceCardConfig {
|
|||||||
camera_image?: string;
|
camera_image?: string;
|
||||||
camera_view?: HuiImage["cameraView"];
|
camera_view?: HuiImage["cameraView"];
|
||||||
state_image?: {};
|
state_image?: {};
|
||||||
state_filter: string[];
|
state_filter?: string[];
|
||||||
aspect_ratio?: string;
|
aspect_ratio?: string;
|
||||||
entity?: string;
|
entity?: string;
|
||||||
elements: LovelaceElementConfig[];
|
elements: LovelaceElementConfig[];
|
||||||
@ -202,13 +202,13 @@ export interface PictureEntityCardConfig extends LovelaceCardConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export interface PictureGlanceCardConfig extends LovelaceCardConfig {
|
export interface PictureGlanceCardConfig extends LovelaceCardConfig {
|
||||||
entities: PictureGlanceEntityConfig[];
|
entities: Array<string | PictureGlanceEntityConfig>;
|
||||||
title?: string;
|
title?: string;
|
||||||
image?: string;
|
image?: string;
|
||||||
camera_image?: string;
|
camera_image?: string;
|
||||||
camera_view?: HuiImage["cameraView"];
|
camera_view?: HuiImage["cameraView"];
|
||||||
state_image?: {};
|
state_image?: {};
|
||||||
state_filter: string[];
|
state_filter?: string[];
|
||||||
aspect_ratio?: string;
|
aspect_ratio?: string;
|
||||||
entity?: string;
|
entity?: string;
|
||||||
tap_action?: ActionConfig;
|
tap_action?: ActionConfig;
|
||||||
|
@ -2,22 +2,31 @@ import { HomeAssistant } from "../../../types";
|
|||||||
import { Condition } from "../common/validate-condition";
|
import { Condition } from "../common/validate-condition";
|
||||||
import { ActionConfig } from "../../../data/lovelace";
|
import { ActionConfig } from "../../../data/lovelace";
|
||||||
|
|
||||||
export interface LovelaceElementConfig {
|
interface LovelaceElementConfigBase {
|
||||||
type: string;
|
type: string;
|
||||||
style: object;
|
style: object;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export type LovelaceElementConfig =
|
||||||
|
| ConditionalElementConfig
|
||||||
|
| IconElementConfig
|
||||||
|
| ImageElementConfig
|
||||||
|
| ServiceButtonElementConfig
|
||||||
|
| StateBadgeElementConfig
|
||||||
|
| StateIconElementConfig
|
||||||
|
| StateLabelElementConfig;
|
||||||
|
|
||||||
export interface LovelaceElement extends HTMLElement {
|
export interface LovelaceElement extends HTMLElement {
|
||||||
hass?: HomeAssistant;
|
hass?: HomeAssistant;
|
||||||
setConfig(config: LovelaceElementConfig): void;
|
setConfig(config: LovelaceElementConfig): void;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ConditionalElementConfig extends LovelaceElementConfig {
|
export interface ConditionalElementConfig extends LovelaceElementConfigBase {
|
||||||
conditions: Condition[];
|
conditions: Condition[];
|
||||||
elements: LovelaceElementConfig[];
|
elements: LovelaceElementConfigBase[];
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IconElementConfig extends LovelaceElementConfig {
|
export interface IconElementConfig extends LovelaceElementConfigBase {
|
||||||
entity?: string;
|
entity?: string;
|
||||||
name?: string;
|
name?: string;
|
||||||
tap_action?: ActionConfig;
|
tap_action?: ActionConfig;
|
||||||
@ -26,7 +35,7 @@ export interface IconElementConfig extends LovelaceElementConfig {
|
|||||||
icon: string;
|
icon: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ImageElementConfig extends LovelaceElementConfig {
|
export interface ImageElementConfig extends LovelaceElementConfigBase {
|
||||||
entity?: string;
|
entity?: string;
|
||||||
tap_action?: ActionConfig;
|
tap_action?: ActionConfig;
|
||||||
hold_action?: ActionConfig;
|
hold_action?: ActionConfig;
|
||||||
@ -39,13 +48,13 @@ export interface ImageElementConfig extends LovelaceElementConfig {
|
|||||||
aspect_ratio?: string;
|
aspect_ratio?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ServiceButtonElementConfig extends LovelaceElementConfig {
|
export interface ServiceButtonElementConfig extends LovelaceElementConfigBase {
|
||||||
title?: string;
|
title?: string;
|
||||||
service?: string;
|
service?: string;
|
||||||
service_data?: object;
|
service_data?: object;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface StateBadgeElementConfig extends LovelaceElementConfig {
|
export interface StateBadgeElementConfig extends LovelaceElementConfigBase {
|
||||||
entity: string;
|
entity: string;
|
||||||
title?: string;
|
title?: string;
|
||||||
tap_action?: ActionConfig;
|
tap_action?: ActionConfig;
|
||||||
@ -53,7 +62,7 @@ export interface StateBadgeElementConfig extends LovelaceElementConfig {
|
|||||||
double_tap_action?: ActionConfig;
|
double_tap_action?: ActionConfig;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface StateIconElementConfig extends LovelaceElementConfig {
|
export interface StateIconElementConfig extends LovelaceElementConfigBase {
|
||||||
entity: string;
|
entity: string;
|
||||||
tap_action?: ActionConfig;
|
tap_action?: ActionConfig;
|
||||||
hold_action?: ActionConfig;
|
hold_action?: ActionConfig;
|
||||||
@ -62,7 +71,7 @@ export interface StateIconElementConfig extends LovelaceElementConfig {
|
|||||||
state_color?: boolean;
|
state_color?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface StateLabelElementConfig extends LovelaceElementConfig {
|
export interface StateLabelElementConfig extends LovelaceElementConfigBase {
|
||||||
entity: string;
|
entity: string;
|
||||||
attribute?: string;
|
attribute?: string;
|
||||||
prefix?: string;
|
prefix?: string;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user