Home Assistant API Client

Hierarchy

  • Client

Constructors

Properties

calendar: {
    list: (() => Promise<{
        data: {
            calendar?: string;
            entity_id?: string;
        }[];
        status: number;
    }>);
    retrieve: ((entityId: string) => Promise<{
        data: {
            description?: string;
            end?: Without<{
                dateTime?: string;
            }, {
                date?: string;
            }> & {
                date?: string;
            } | Without<{
                date?: string;
            }, {
                dateTime?: string;
            }> & {
                dateTime?: string;
            };
            location?: string;
            start?: Without<{
                dateTime?: string;
            }, {
                date?: string;
            }> & {
                date?: string;
            } | Without<{
                date?: string;
            }, {
                dateTime?: string;
            }> & {
                dateTime?: string;
            };
            summary?: string;
        }[];
        status: number;
    }>);
} = ...

Type declaration

  • list: (() => Promise<{
        data: {
            calendar?: string;
            entity_id?: string;
        }[];
        status: number;
    }>)
      • (): Promise<{
            data: {
                calendar?: string;
                entity_id?: string;
            }[];
            status: number;
        }>
      • List all home assistant calendars

        Returns Promise<{
            data: {
                calendar?: string;
                entity_id?: string;
            }[];
            status: number;
        }>

  • retrieve: ((entityId: string) => Promise<{
        data: {
            description?: string;
            end?: Without<{
                dateTime?: string;
            }, {
                date?: string;
            }> & {
                date?: string;
            } | Without<{
                date?: string;
            }, {
                dateTime?: string;
            }> & {
                dateTime?: string;
            };
            location?: string;
            start?: Without<{
                dateTime?: string;
            }, {
                date?: string;
            }> & {
                date?: string;
            } | Without<{
                date?: string;
            }, {
                dateTime?: string;
            }> & {
                dateTime?: string;
            };
            summary?: string;
        }[];
        status: number;
    }>)
      • (entityId: string): Promise<{
            data: {
                description?: string;
                end?: Without<{
                    dateTime?: string;
                }, {
                    date?: string;
                }> & {
                    date?: string;
                } | Without<{
                    date?: string;
                }, {
                    dateTime?: string;
                }> & {
                    dateTime?: string;
                };
                location?: string;
                start?: Without<{
                    dateTime?: string;
                }, {
                    date?: string;
                }> & {
                    date?: string;
                } | Without<{
                    date?: string;
                }, {
                    dateTime?: string;
                }> & {
                    dateTime?: string;
                };
                summary?: string;
            }[];
            status: number;
        }>
      • List all the events for a given calendar

        Returns

        List of calendar events

        Parameters

        • entityId: string

          The entity ID of the calendar

        Returns Promise<{
            data: {
                description?: string;
                end?: Without<{
                    dateTime?: string;
                }, {
                    date?: string;
                }> & {
                    date?: string;
                } | Without<{
                    date?: string;
                }, {
                    dateTime?: string;
                }> & {
                    dateTime?: string;
                };
                location?: string;
                start?: Without<{
                    dateTime?: string;
                }, {
                    date?: string;
                }> & {
                    date?: string;
                } | Without<{
                    date?: string;
                }, {
                    dateTime?: string;
                }> & {
                    dateTime?: string;
                };
                summary?: string;
            }[];
            status: number;
        }>

client: {
    configure: ((config: FetchConfig) => void);
    path: (<P>(path: P) => {
        method: (<M>(method: M) => {
            create: CreateFetch<M, paths[P][M]>;
        });
    });
    use: ((mw: Middleware) => number);
} = ...

Type declaration

  • configure: ((config: FetchConfig) => void)
      • (config: FetchConfig): void
      • Parameters

        • config: FetchConfig

        Returns void

  • path: (<P>(path: P) => {
        method: (<M>(method: M) => {
            create: CreateFetch<M, paths[P][M]>;
        });
    })
      • <P>(path: P): {
            method: (<M>(method: M) => {
                create: CreateFetch<M, paths[P][M]>;
            });
        }
      • Type Parameters

        Parameters

        • path: P

        Returns {
            method: (<M>(method: M) => {
                create: CreateFetch<M, paths[P][M]>;
            });
        }

        • method: (<M>(method: M) => {
              create: CreateFetch<M, paths[P][M]>;
          })
            • <M>(method: M): {
                  create: CreateFetch<M, paths[P][M]>;
              }
            • Type Parameters

              • M extends string | number | symbol

              Parameters

              • method: M

              Returns {
                  create: CreateFetch<M, paths[P][M]>;
              }

              • create: CreateFetch<M, paths[P][M]>
  • use: ((mw: Middleware) => number)
      • (mw: Middleware): number
      • Parameters

        • mw: Middleware

        Returns number

config: {
    retrieve: (() => Promise<{
        data: {
            components?: string[];
            config_dir?: string;
            elevation?: number;
            latitude?: number;
            location_name?: string;
            longitude?: number;
            time_zone?: string;
            unit_system?: {
                length?: string;
                mass?: string;
                pressure?: string;
                temperature?: string;
                volume?: string;
            };
            version?: string;
            whitelist_external_dirs?: string[];
        };
        status: number;
    }>);
} = ...

Home Assistant configuration

Type declaration

  • retrieve: (() => Promise<{
        data: {
            components?: string[];
            config_dir?: string;
            elevation?: number;
            latitude?: number;
            location_name?: string;
            longitude?: number;
            time_zone?: string;
            unit_system?: {
                length?: string;
                mass?: string;
                pressure?: string;
                temperature?: string;
                volume?: string;
            };
            version?: string;
            whitelist_external_dirs?: string[];
        };
        status: number;
    }>)
      • (): Promise<{
            data: {
                components?: string[];
                config_dir?: string;
                elevation?: number;
                latitude?: number;
                location_name?: string;
                longitude?: number;
                time_zone?: string;
                unit_system?: {
                    length?: string;
                    mass?: string;
                    pressure?: string;
                    temperature?: string;
                    volume?: string;
                };
                version?: string;
                whitelist_external_dirs?: string[];
            };
            status: number;
        }>
      • Retrieve the configuration of the Home Assistant instance

        Returns

        Home Assistant configuration

        Returns Promise<{
            data: {
                components?: string[];
                config_dir?: string;
                elevation?: number;
                latitude?: number;
                location_name?: string;
                longitude?: number;
                time_zone?: string;
                unit_system?: {
                    length?: string;
                    mass?: string;
                    pressure?: string;
                    temperature?: string;
                    volume?: string;
                };
                version?: string;
                whitelist_external_dirs?: string[];
            };
            status: number;
        }>

errorlogs: {
    list: (() => Promise<{
        data: unknown;
        status: number;
    }>);
} = ...

Home Assistant error logs endpoint

Type declaration

  • list: (() => Promise<{
        data: unknown;
        status: number;
    }>)
      • (): Promise<{
            data: unknown;
            status: number;
        }>
      • List all home assistant error logs. Output is in the format text/plain.

        Returns

        List of error logs

        Returns Promise<{
            data: unknown;
            status: number;
        }>

events: {
    list: (() => Promise<{
        data: {
            event?: string;
            listener_count?: Record<string, never>;
        }[];
        status: number;
    }>);
} = ...

Home Assistant events endpoint

Type declaration

  • list: (() => Promise<{
        data: {
            event?: string;
            listener_count?: Record<string, never>;
        }[];
        status: number;
    }>)
      • (): Promise<{
            data: {
                event?: string;
                listener_count?: Record<string, never>;
            }[];
            status: number;
        }>
      • List all home assistant events

        Returns

        List of events

        Returns Promise<{
            data: {
                event?: string;
                listener_count?: Record<string, never>;
            }[];
            status: number;
        }>

health: {
    retrieve: (() => Promise<{
        data: {
            message?: string;
        };
        status: number;
    }>);
} = ...

API health endpoints

Type declaration

  • retrieve: (() => Promise<{
        data: {
            message?: string;
        };
        status: number;
    }>)
      • (): Promise<{
            data: {
                message?: string;
            };
            status: number;
        }>
      • Retrieve the health of the Home Assistant instance

        Returns

        Health status of Home Assistant

        Returns Promise<{
            data: {
                message?: string;
            };
            status: number;
        }>

logbook: {
    list: ((timestamp?: string) => Promise<{
        data: {
            context_user_id?: string;
            domain?: string;
            entity_id?: string;
            message?: string;
            name?: string;
            when?: string;
        }[];
        status: number;
    }>);
} = ...

Home Assistant logbook endpoint

Type declaration

  • list: ((timestamp?: string) => Promise<{
        data: {
            context_user_id?: string;
            domain?: string;
            entity_id?: string;
            message?: string;
            name?: string;
            when?: string;
        }[];
        status: number;
    }>)
      • (timestamp?: string): Promise<{
            data: {
                context_user_id?: string;
                domain?: string;
                entity_id?: string;
                message?: string;
                name?: string;
                when?: string;
            }[];
            status: number;
        }>
      • List the logbook entries for a given window of time.

        Example

        // List all logbook entries
        await homeassistant.logbook.list();

        // List all logbook entries from 2021-01-01
        await homeassistant.logbook.list("2021-01-01T00:00:00.000Z");

        Returns

        List of logbook entries

        Parameters

        • Optional timestamp: string

          The timestamp of the logbook entry

        Returns Promise<{
            data: {
                context_user_id?: string;
                domain?: string;
                entity_id?: string;
                message?: string;
                name?: string;
                when?: string;
            }[];
            status: number;
        }>

services: {
    list: (() => Promise<{
        data: {
            domain?: string;
            services?: {
                description?: string;
                fields?: Record<string, never>;
                name?: string;
                target?: Record<string, never>;
            }[];
        }[];
        status: number;
    }>);
} = ...

Home Assistant services endpoint

Type declaration

  • list: (() => Promise<{
        data: {
            domain?: string;
            services?: {
                description?: string;
                fields?: Record<string, never>;
                name?: string;
                target?: Record<string, never>;
            }[];
        }[];
        status: number;
    }>)
      • (): Promise<{
            data: {
                domain?: string;
                services?: {
                    description?: string;
                    fields?: Record<string, never>;
                    name?: string;
                    target?: Record<string, never>;
                }[];
            }[];
            status: number;
        }>
      • List all services

        Example

        await homeassistant.services.list();
        

        Returns

        List of available services

        Returns Promise<{
            data: {
                domain?: string;
                services?: {
                    description?: string;
                    fields?: Record<string, never>;
                    name?: string;
                    target?: Record<string, never>;
                }[];
            }[];
            status: number;
        }>

states: {
    list: (() => Promise<{
        data: {
            attributes?: Record<string, never>;
            entity_id?: string;
            last_changed?: string;
            last_updated?: string;
            state?: string;
        }[];
        status: number;
    }>);
    retrieve: ((entityId: string) => Promise<{
        data: {
            attributes?: Record<string, never>;
            entity_id?: string;
            last_changed?: string;
            last_updated?: string;
            state?: string;
        };
        status: number;
    }>);
} = ...

Home Assistant states endpoint

Type declaration

  • list: (() => Promise<{
        data: {
            attributes?: Record<string, never>;
            entity_id?: string;
            last_changed?: string;
            last_updated?: string;
            state?: string;
        }[];
        status: number;
    }>)
      • (): Promise<{
            data: {
                attributes?: Record<string, never>;
                entity_id?: string;
                last_changed?: string;
                last_updated?: string;
                state?: string;
            }[];
            status: number;
        }>
      • List all home assistant entity states

        Returns

        List of states

        Example

        await homeassistant.errorlogs.list();
        

        Returns Promise<{
            data: {
                attributes?: Record<string, never>;
                entity_id?: string;
                last_changed?: string;
                last_updated?: string;
                state?: string;
            }[];
            status: number;
        }>

  • retrieve: ((entityId: string) => Promise<{
        data: {
            attributes?: Record<string, never>;
            entity_id?: string;
            last_changed?: string;
            last_updated?: string;
            state?: string;
        };
        status: number;
    }>)
      • (entityId: string): Promise<{
            data: {
                attributes?: Record<string, never>;
                entity_id?: string;
                last_changed?: string;
                last_updated?: string;
                state?: string;
            };
            status: number;
        }>
      • Retrieve the state of a given entity

        Returns

        The state of the entity

        Example

        // List all states
        await homeassistant.states.list();
        // List states filtered by entity ID
        await homeassistant.states.list('fan.air_purifier');

        Parameters

        • entityId: string

          The entity ID of the state

        Returns Promise<{
            data: {
                attributes?: Record<string, never>;
                entity_id?: string;
                last_changed?: string;
                last_updated?: string;
                state?: string;
            };
            status: number;
        }>

template: {
    render: ((template: string) => Promise<{
        data: unknown;
        status: number;
    }>);
} = ...

Home Assistant template rendering endpoint

Type declaration

  • render: ((template: string) => Promise<{
        data: unknown;
        status: number;
    }>)
      • (template: string): Promise<{
            data: unknown;
            status: number;
        }>
      • Render a template

        Returns

        The rendered template in a text/plain response

        Parameters

        • template: string

          The template to render

        Returns Promise<{
            data: unknown;
            status: number;
        }>

Generated using TypeDoc