import type { HomeAssistantEntity } from "@dpu/shared"; import { printNetworkError } from "@dpu/shared/dist/logger.js"; import type { AxiosInstance } from "axios"; export class HomeAssistantClient { private axiosInstance: AxiosInstance; constructor(axiosInstance: AxiosInstance) { this.axiosInstance = axiosInstance; } async getEntityStates(entityIds: string[]): Promise { try { const promises = entityIds.map((id) => this.getEntityState(id)); return await Promise.all(promises); } catch (error) { printNetworkError(error); throw error; } } async getEntityState(entityId: string): Promise { try { const response = await this.axiosInstance.get( `states/${entityId}`, ); return response.data; } catch (error) { printNetworkError(error); throw error; } } async triggerWebhook(webhookId: string): Promise { try { const response = await this.axiosInstance.post( `webhook/${webhookId}`, ); return response.data; } catch (error) { printNetworkError(error); throw error; } } }