UNPKG

home-assistant-js-websocket

Version:
136 lines (135 loc) 3.33 kB
export type Error = 1 | 2 | 3 | 4; export type UnsubscribeFunc = () => void; export type MessageBase = { id?: number; type: string; [key: string]: any; }; export type Context = { id: string; user_id: string | null; parent_id: string | null; }; export type HassEventBase = { origin: string; time_fired: string; context: Context; }; export type HassEvent = HassEventBase & { event_type: string; data: { [key: string]: any; }; }; export type StateChangedEvent = HassEventBase & { event_type: "state_changed"; data: { entity_id: string; new_state: HassEntity | null; old_state: HassEntity | null; }; }; export type HassConfig = { latitude: number; longitude: number; elevation: number; radius: number; unit_system: { length: string; mass: string; volume: string; temperature: string; pressure: string; wind_speed: string; accumulated_precipitation: string; }; location_name: string; time_zone: string; components: string[]; config_dir: string; allowlist_external_dirs: string[]; allowlist_external_urls: string[]; version: string; config_source: string; recovery_mode: boolean; safe_mode: boolean; state: "NOT_RUNNING" | "STARTING" | "RUNNING" | "STOPPING" | "FINAL_WRITE"; external_url: string | null; internal_url: string | null; currency: string; country: string | null; language: string; }; export type HassEntityBase = { entity_id: string; state: string; last_changed: string; last_updated: string; attributes: HassEntityAttributeBase; context: Context; }; export type HassEntityAttributeBase = { friendly_name?: string; unit_of_measurement?: string; icon?: string; entity_picture?: string; supported_features?: number; hidden?: boolean; assumed_state?: boolean; device_class?: string; state_class?: string; restored?: boolean; }; export type HassEntity = HassEntityBase & { attributes: { [key: string]: any; }; }; export type HassEntities = { [entity_id: string]: HassEntity; }; export type HassService = { name?: string; description?: string; description_placeholders?: { [placeholder: string]: string; }; target?: {} | null; fields: { [field_name: string]: { example?: string | boolean | number; default?: unknown; required?: boolean; advanced?: boolean; selector?: {}; filter?: { supported_features?: number[]; attribute?: Record<string, any[]>; }; name?: string; description?: string; }; }; response?: { optional: boolean; }; }; export type HassDomainServices = { [service_name: string]: HassService; }; export type HassServices = { [domain: string]: HassDomainServices; }; export type HassUser = { id: string; is_admin: boolean; is_owner: boolean; name: string; }; export type HassServiceTarget = { entity_id?: string | string[]; device_id?: string | string[]; area_id?: string | string[]; floor_id?: string | string[]; label_id?: string | string[]; };