@coffeerunhobby/mcp-ha-connect 0.5.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (335) hide show
  1. package/README.md +438 -154
  2. package/dist/config.d.ts +0 -1
  3. package/dist/haClient/automations.d.ts +1 -2
  4. package/dist/haClient/automations.js +17 -7
  5. package/dist/haClient/automations.js.map +1 -1
  6. package/dist/haClient/calendars.d.ts +33 -0
  7. package/dist/haClient/calendars.js +68 -0
  8. package/dist/haClient/calendars.js.map +1 -0
  9. package/dist/haClient/config.d.ts +0 -1
  10. package/dist/haClient/devices.d.ts +0 -1
  11. package/dist/haClient/entities.d.ts +0 -1
  12. package/dist/haClient/events.d.ts +0 -1
  13. package/dist/haClient/history.d.ts +0 -1
  14. package/dist/haClient/index.d.ts +18 -2
  15. package/dist/haClient/index.js +23 -0
  16. package/dist/haClient/index.js.map +1 -1
  17. package/dist/haClient/labels.d.ts +64 -0
  18. package/dist/haClient/labels.js +177 -0
  19. package/dist/haClient/labels.js.map +1 -0
  20. package/dist/haClient/request.d.ts +0 -1
  21. package/dist/haClient/services.d.ts +0 -1
  22. package/dist/haClient/states.d.ts +0 -1
  23. package/dist/haClient/updates.d.ts +0 -1
  24. package/dist/index.d.ts +0 -1
  25. package/dist/localAI/index.d.ts +0 -1
  26. package/dist/localAI/prompts.d.ts +0 -1
  27. package/dist/localAI/providers/base.d.ts +0 -1
  28. package/dist/localAI/providers/ollama.d.ts +0 -1
  29. package/dist/localAI/providers/openai.d.ts +0 -1
  30. package/dist/localAI/types.d.ts +0 -1
  31. package/dist/resources/index.d.ts +2 -3
  32. package/dist/resources/index.js +132 -200
  33. package/dist/resources/index.js.map +1 -1
  34. package/dist/server/common.d.ts +2 -3
  35. package/dist/server/common.js +5 -10
  36. package/dist/server/common.js.map +1 -1
  37. package/dist/server/eventSubscription.d.ts +0 -1
  38. package/dist/server/http.d.ts +0 -1
  39. package/dist/server/rateLimiter.d.ts +0 -1
  40. package/dist/server/sse.d.ts +0 -1
  41. package/dist/server/stdio.d.ts +0 -1
  42. package/dist/server/stream.d.ts +0 -1
  43. package/dist/tools/analyzeSensors.d.ts +6 -0
  44. package/dist/tools/analyzeSensors.js +23 -0
  45. package/dist/tools/analyzeSensors.js.map +1 -0
  46. package/dist/tools/automationControls.d.ts +9 -0
  47. package/dist/tools/automationControls.js +41 -0
  48. package/dist/tools/automationControls.js.map +1 -0
  49. package/dist/tools/calendar.d.ts +7 -0
  50. package/dist/tools/calendar.js +82 -0
  51. package/dist/tools/calendar.js.map +1 -0
  52. package/dist/tools/callService.d.ts +3 -5
  53. package/dist/tools/callService.js +11 -94
  54. package/dist/tools/callService.js.map +1 -1
  55. package/dist/tools/common.d.ts +406 -0
  56. package/dist/tools/common.js +222 -0
  57. package/dist/tools/common.js.map +1 -0
  58. package/dist/tools/controlClimate.d.ts +6 -0
  59. package/dist/tools/controlClimate.js +50 -0
  60. package/dist/tools/controlClimate.js.map +1 -0
  61. package/dist/tools/controlCover.d.ts +6 -0
  62. package/dist/tools/controlCover.js +33 -0
  63. package/dist/tools/controlCover.js.map +1 -0
  64. package/dist/tools/controlFan.d.ts +6 -0
  65. package/dist/tools/controlFan.js +34 -0
  66. package/dist/tools/controlFan.js.map +1 -0
  67. package/dist/tools/controlLight.d.ts +6 -0
  68. package/dist/tools/controlLight.js +28 -0
  69. package/dist/tools/controlLight.js.map +1 -0
  70. package/dist/tools/controlMediaPlayer.d.ts +6 -0
  71. package/dist/tools/controlMediaPlayer.js +35 -0
  72. package/dist/tools/controlMediaPlayer.js.map +1 -0
  73. package/dist/tools/createAutomation.d.ts +6 -0
  74. package/dist/tools/createAutomation.js +24 -0
  75. package/dist/tools/createAutomation.js.map +1 -0
  76. package/dist/tools/deleteAutomation.d.ts +6 -0
  77. package/dist/tools/deleteAutomation.js +14 -0
  78. package/dist/tools/deleteAutomation.js.map +1 -0
  79. package/dist/tools/entityAction.d.ts +6 -0
  80. package/dist/tools/entityAction.js +22 -0
  81. package/dist/tools/entityAction.js.map +1 -0
  82. package/dist/tools/getAllSensors.d.ts +6 -0
  83. package/dist/tools/getAllSensors.js +14 -0
  84. package/dist/tools/getAllSensors.js.map +1 -0
  85. package/dist/tools/getAutomationTrace.d.ts +6 -0
  86. package/dist/tools/getAutomationTrace.js +14 -0
  87. package/dist/tools/getAutomationTrace.js.map +1 -0
  88. package/dist/tools/getDomainSummary.d.ts +6 -0
  89. package/dist/tools/getDomainSummary.js +14 -0
  90. package/dist/tools/getDomainSummary.js.map +1 -0
  91. package/dist/tools/getEntitiesByDomain.d.ts +3 -5
  92. package/dist/tools/getEntitiesByDomain.js +9 -75
  93. package/dist/tools/getEntitiesByDomain.js.map +1 -1
  94. package/dist/tools/getHistory.d.ts +6 -0
  95. package/dist/tools/getHistory.js +14 -0
  96. package/dist/tools/getHistory.js.map +1 -0
  97. package/dist/tools/getState.d.ts +3 -5
  98. package/dist/tools/getState.js +11 -84
  99. package/dist/tools/getState.js.map +1 -1
  100. package/dist/tools/getStates.d.ts +3 -5
  101. package/dist/tools/getStates.js +9 -65
  102. package/dist/tools/getStates.js.map +1 -1
  103. package/dist/tools/getVersion.d.ts +6 -0
  104. package/dist/tools/getVersion.js +14 -0
  105. package/dist/tools/getVersion.js.map +1 -0
  106. package/dist/tools/index.d.ts +6 -7
  107. package/dist/tools/index.js +97 -6
  108. package/dist/tools/index.js.map +1 -1
  109. package/dist/tools/labels.d.ts +12 -0
  110. package/dist/tools/labels.js +139 -0
  111. package/dist/tools/labels.js.map +1 -0
  112. package/dist/tools/listAutomations.d.ts +6 -0
  113. package/dist/tools/listAutomations.js +17 -0
  114. package/dist/tools/listAutomations.js.map +1 -0
  115. package/dist/tools/listEntities.d.ts +6 -0
  116. package/dist/tools/listEntities.js +14 -0
  117. package/dist/tools/listEntities.js.map +1 -0
  118. package/dist/tools/listPersons.d.ts +6 -0
  119. package/dist/tools/listPersons.js +36 -0
  120. package/dist/tools/listPersons.js.map +1 -0
  121. package/dist/tools/sceneAndScript.d.ts +7 -0
  122. package/dist/tools/sceneAndScript.js +32 -0
  123. package/dist/tools/sceneAndScript.js.map +1 -0
  124. package/dist/tools/searchEntities.d.ts +3 -5
  125. package/dist/tools/searchEntities.js +11 -75
  126. package/dist/tools/searchEntities.js.map +1 -1
  127. package/dist/tools/sendNotification.d.ts +8 -0
  128. package/dist/tools/sendNotification.js +160 -0
  129. package/dist/tools/sendNotification.js.map +1 -0
  130. package/dist/tools/systemTools.d.ts +8 -0
  131. package/dist/tools/systemTools.js +32 -0
  132. package/dist/tools/systemTools.js.map +1 -0
  133. package/dist/tools/triggerAutomation.d.ts +6 -0
  134. package/dist/tools/triggerAutomation.js +14 -0
  135. package/dist/tools/triggerAutomation.js.map +1 -0
  136. package/dist/types/automations.d.ts +38 -0
  137. package/dist/types/automations.js +5 -0
  138. package/dist/types/automations.js.map +1 -0
  139. package/dist/types/calendars.d.ts +24 -0
  140. package/dist/types/calendars.js +5 -0
  141. package/dist/types/calendars.js.map +1 -0
  142. package/dist/types/config.d.ts +10 -0
  143. package/dist/types/config.js +5 -0
  144. package/dist/types/config.js.map +1 -0
  145. package/dist/types/entities.d.ts +13 -0
  146. package/dist/types/entities.js +5 -0
  147. package/dist/types/entities.js.map +1 -0
  148. package/dist/types/entity.d.ts +22 -1
  149. package/dist/types/errors.d.ts +0 -1
  150. package/dist/types/haConfig.d.ts +0 -1
  151. package/dist/types/history.d.ts +12 -0
  152. package/dist/types/history.js +5 -0
  153. package/dist/types/history.js.map +1 -0
  154. package/dist/types/index.d.ts +7 -2
  155. package/dist/types/index.js +1 -0
  156. package/dist/types/index.js.map +1 -1
  157. package/dist/types/labels.d.ts +34 -0
  158. package/dist/types/labels.js +5 -0
  159. package/dist/types/labels.js.map +1 -0
  160. package/dist/types/request.d.ts +0 -1
  161. package/dist/types/serviceCall.d.ts +0 -1
  162. package/dist/types/states.d.ts +19 -0
  163. package/dist/types/states.js +5 -0
  164. package/dist/types/states.js.map +1 -0
  165. package/dist/types/updates.d.ts +24 -0
  166. package/dist/types/updates.js +5 -0
  167. package/dist/types/updates.js.map +1 -0
  168. package/dist/types.d.ts +0 -1
  169. package/dist/utils/config-validations.d.ts +0 -1
  170. package/dist/utils/logger.d.ts +0 -1
  171. package/dist/utils/logger.js +2 -1
  172. package/dist/utils/logger.js.map +1 -1
  173. package/dist/wrapper.d.ts +0 -1
  174. package/docs/CHANGELOG.md +114 -85
  175. package/docs/LOCAL_CLIENT.md +572 -268
  176. package/openapi.json +1149 -37
  177. package/package.json +9 -7
  178. package/src/haClient/automations.ts +19 -7
  179. package/src/haClient/calendars.ts +94 -0
  180. package/src/haClient/index.ts +36 -0
  181. package/src/resources/index.ts +159 -211
  182. package/src/server/common.ts +8 -16
  183. package/src/tools/analyzeSensors.ts +33 -0
  184. package/src/tools/automationControls.ts +66 -0
  185. package/src/tools/calendar.ts +97 -0
  186. package/src/tools/callService.ts +16 -105
  187. package/src/tools/common.ts +260 -0
  188. package/src/tools/controlClimate.ts +65 -0
  189. package/src/tools/controlCover.ts +45 -0
  190. package/src/tools/controlFan.ts +41 -0
  191. package/src/tools/controlLight.ts +35 -0
  192. package/src/tools/controlMediaPlayer.ts +47 -0
  193. package/src/tools/createAutomation.ts +35 -0
  194. package/src/tools/deleteAutomation.ts +24 -0
  195. package/src/tools/entityAction.ts +32 -0
  196. package/src/tools/getAllSensors.ts +21 -0
  197. package/src/tools/getAutomationTrace.ts +24 -0
  198. package/src/tools/getDomainSummary.ts +21 -0
  199. package/src/tools/getEntitiesByDomain.ts +15 -86
  200. package/src/tools/getHistory.ts +24 -0
  201. package/src/tools/getState.ts +16 -95
  202. package/src/tools/getStates.ts +14 -73
  203. package/src/tools/getVersion.ts +21 -0
  204. package/src/tools/index.ts +128 -6
  205. package/src/tools/listAutomations.ts +27 -0
  206. package/src/tools/listEntities.ts +24 -0
  207. package/src/tools/listPersons.ts +46 -0
  208. package/src/tools/sceneAndScript.ts +48 -0
  209. package/src/tools/searchEntities.ts +17 -86
  210. package/src/tools/sendNotification.ts +179 -0
  211. package/src/tools/systemTools.ts +52 -0
  212. package/src/tools/triggerAutomation.ts +24 -0
  213. package/src/types/automations.ts +43 -0
  214. package/src/types/calendars.ts +26 -0
  215. package/src/types/config.ts +11 -0
  216. package/src/types/entities.ts +14 -0
  217. package/src/types/history.ts +13 -0
  218. package/src/types/index.ts +37 -1
  219. package/src/types/states.ts +21 -0
  220. package/src/types/updates.ts +28 -0
  221. package/src/utils/logger.ts +2 -1
  222. package/tests/bdd/automation-creation.spec.ts +214 -0
  223. package/tests/bdd/automation-management.spec.ts +267 -0
  224. package/tests/bdd/calendar.spec.ts +190 -0
  225. package/tests/bdd/configuration.spec.ts +283 -0
  226. package/tests/bdd/device-control.spec.ts +344 -0
  227. package/tests/bdd/entity-listing.spec.ts +208 -0
  228. package/tests/bdd/entity-search.spec.ts +183 -0
  229. package/tests/bdd/history-retrieval.spec.ts +195 -0
  230. package/tests/bdd/notifications.spec.ts +238 -0
  231. package/tests/bdd/service-calls.spec.ts +144 -0
  232. package/tests/bdd/state-retrieval.spec.ts +204 -0
  233. package/tests/features/automation-creation.feature +36 -0
  234. package/tests/features/automation-management.feature +54 -0
  235. package/tests/features/calendar.feature +37 -0
  236. package/tests/features/configuration.feature +71 -0
  237. package/tests/features/device-control.feature +100 -0
  238. package/tests/features/entity-listing.feature +51 -0
  239. package/tests/features/entity-search.feature +44 -0
  240. package/tests/features/history-retrieval.feature +38 -0
  241. package/tests/features/notifications.feature +37 -0
  242. package/tests/features/service-calls.feature +35 -0
  243. package/tests/features/state-retrieval.feature +37 -0
  244. package/tests/haClient/index.test.ts +142 -110
  245. package/tests/localAI/index.test.ts +27 -18
  246. package/tests/server/common.test.ts +4 -4
  247. package/tests/server/stdio.test.ts +4 -6
  248. package/tests/tools/registry.test.ts +66 -259
  249. package/tsconfig.json +14 -15
  250. package/vitest.config.ts +1 -1
  251. package/dist/config.d.ts.map +0 -1
  252. package/dist/haClient/automations.d.ts.map +0 -1
  253. package/dist/haClient/config.d.ts.map +0 -1
  254. package/dist/haClient/devices.d.ts.map +0 -1
  255. package/dist/haClient/entities.d.ts.map +0 -1
  256. package/dist/haClient/events.d.ts.map +0 -1
  257. package/dist/haClient/history.d.ts.map +0 -1
  258. package/dist/haClient/index.d.ts.map +0 -1
  259. package/dist/haClient/request.d.ts.map +0 -1
  260. package/dist/haClient/services.d.ts.map +0 -1
  261. package/dist/haClient/states.d.ts.map +0 -1
  262. package/dist/haClient/updates.d.ts.map +0 -1
  263. package/dist/haClient.d.ts +0 -97
  264. package/dist/haClient.d.ts.map +0 -1
  265. package/dist/haClient.js +0 -344
  266. package/dist/haClient.js.map +0 -1
  267. package/dist/index.d.ts.map +0 -1
  268. package/dist/localAI/index.d.ts.map +0 -1
  269. package/dist/localAI/prompts.d.ts.map +0 -1
  270. package/dist/localAI/providers/base.d.ts.map +0 -1
  271. package/dist/localAI/providers/ollama.d.ts.map +0 -1
  272. package/dist/localAI/providers/openai.d.ts.map +0 -1
  273. package/dist/localAI/types.d.ts.map +0 -1
  274. package/dist/ollamaClient.d.ts +0 -37
  275. package/dist/ollamaClient.d.ts.map +0 -1
  276. package/dist/ollamaClient.js +0 -110
  277. package/dist/ollamaClient.js.map +0 -1
  278. package/dist/resources/index.d.ts.map +0 -1
  279. package/dist/server/common.d.ts.map +0 -1
  280. package/dist/server/eventSubscription.d.ts.map +0 -1
  281. package/dist/server/http.d.ts.map +0 -1
  282. package/dist/server/rateLimiter.d.ts.map +0 -1
  283. package/dist/server/sse.d.ts.map +0 -1
  284. package/dist/server/stdio.d.ts.map +0 -1
  285. package/dist/server/stream.d.ts.map +0 -1
  286. package/dist/server.d.ts +0 -8
  287. package/dist/server.d.ts.map +0 -1
  288. package/dist/server.js +0 -30
  289. package/dist/server.js.map +0 -1
  290. package/dist/tools/callService.d.ts.map +0 -1
  291. package/dist/tools/getClient.d.ts +0 -8
  292. package/dist/tools/getClient.d.ts.map +0 -1
  293. package/dist/tools/getClient.js +0 -94
  294. package/dist/tools/getClient.js.map +0 -1
  295. package/dist/tools/getDevice.d.ts +0 -8
  296. package/dist/tools/getDevice.d.ts.map +0 -1
  297. package/dist/tools/getDevice.js +0 -94
  298. package/dist/tools/getDevice.js.map +0 -1
  299. package/dist/tools/getEntitiesByDomain.d.ts.map +0 -1
  300. package/dist/tools/getState.d.ts.map +0 -1
  301. package/dist/tools/getStates.d.ts.map +0 -1
  302. package/dist/tools/index.d.ts.map +0 -1
  303. package/dist/tools/listClients.d.ts +0 -8
  304. package/dist/tools/listClients.d.ts.map +0 -1
  305. package/dist/tools/listClients.js +0 -73
  306. package/dist/tools/listClients.js.map +0 -1
  307. package/dist/tools/listDevices.d.ts +0 -8
  308. package/dist/tools/listDevices.d.ts.map +0 -1
  309. package/dist/tools/listDevices.js +0 -73
  310. package/dist/tools/listDevices.js.map +0 -1
  311. package/dist/tools/listSites.d.ts +0 -8
  312. package/dist/tools/listSites.d.ts.map +0 -1
  313. package/dist/tools/listSites.js +0 -67
  314. package/dist/tools/listSites.js.map +0 -1
  315. package/dist/tools/registry.d.ts +0 -9
  316. package/dist/tools/registry.d.ts.map +0 -1
  317. package/dist/tools/registry.js +0 -1382
  318. package/dist/tools/registry.js.map +0 -1
  319. package/dist/tools/searchDevices.d.ts +0 -8
  320. package/dist/tools/searchDevices.d.ts.map +0 -1
  321. package/dist/tools/searchDevices.js +0 -84
  322. package/dist/tools/searchDevices.js.map +0 -1
  323. package/dist/tools/searchEntities.d.ts.map +0 -1
  324. package/dist/types/entity.d.ts.map +0 -1
  325. package/dist/types/errors.d.ts.map +0 -1
  326. package/dist/types/haConfig.d.ts.map +0 -1
  327. package/dist/types/index.d.ts.map +0 -1
  328. package/dist/types/request.d.ts.map +0 -1
  329. package/dist/types/serviceCall.d.ts.map +0 -1
  330. package/dist/types.d.ts.map +0 -1
  331. package/dist/utils/config-validations.d.ts.map +0 -1
  332. package/dist/utils/logger.d.ts.map +0 -1
  333. package/dist/wrapper.d.ts.map +0 -1
  334. package/src/tools/registry.ts +0 -1521
  335. package/src/types/entity.ts +0 -110
package/dist/config.d.ts CHANGED
@@ -30,4 +30,3 @@ export interface EnvironmentConfig {
30
30
  export declare function loadConfig(env?: NodeJS.ProcessEnv): EnvironmentConfig;
31
31
  export declare function validateConfig(config: EnvironmentConfig): void;
32
32
  export declare function loadConfigFromEnv(): EnvironmentConfig;
33
- //# sourceMappingURL=config.d.ts.map
@@ -44,7 +44,7 @@ export declare class AutomationOperations {
44
44
  reloadAutomations(): Promise<void>;
45
45
  /**
46
46
  * Create a new automation via the config API
47
- * Note: Requires Home Assistant 2023.7+ with config flow support
47
+ * Note: Requires automation: !include automations.yaml in configuration.yaml
48
48
  */
49
49
  createAutomation(config: AutomationConfig): Promise<{
50
50
  id: string;
@@ -64,4 +64,3 @@ export declare class AutomationOperations {
64
64
  */
65
65
  getAutomationTrace(entityId: string): Promise<unknown[]>;
66
66
  }
67
- //# sourceMappingURL=automations.d.ts.map
@@ -124,23 +124,33 @@ export class AutomationOperations {
124
124
  }
125
125
  /**
126
126
  * Create a new automation via the config API
127
- * Note: Requires Home Assistant 2023.7+ with config flow support
127
+ * Note: Requires automation: !include automations.yaml in configuration.yaml
128
128
  */
129
129
  async createAutomation(config) {
130
130
  if (!this.request) {
131
131
  throw new Error('RequestHandler not available');
132
132
  }
133
- logger.info('Creating automation', { alias: config.alias });
134
- // Use the config/automation/config endpoint to create automations
135
- const result = await this.request.post('/config/automation/config', {
133
+ // Generate a unique ID for the automation (timestamp-based like HA UI does)
134
+ const automationId = config.id || String(Date.now());
135
+ logger.info('Creating automation', { alias: config.alias, id: automationId });
136
+ // POST to /config/automation/config/{id} - the ID must be in the URL path
137
+ await this.request.post(`/config/automation/config/${automationId}`, {
138
+ id: automationId,
136
139
  alias: config.alias,
137
- description: config.description,
140
+ description: config.description || '',
138
141
  mode: config.mode ?? 'single',
139
142
  trigger: config.trigger,
140
- condition: config.condition,
143
+ condition: config.condition || [],
141
144
  action: config.action,
142
145
  });
143
- return { id: result.result };
146
+ // Reload automations to pick up the new one
147
+ if (this.serviceOps) {
148
+ await this.serviceOps.callService({
149
+ domain: 'automation',
150
+ service: 'reload',
151
+ });
152
+ }
153
+ return { id: automationId };
144
154
  }
145
155
  /**
146
156
  * Update an existing automation
@@ -1 +1 @@
1
- {"version":3,"file":"automations.js","sourceRoot":"","sources":["../../src/haClient/automations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"automations.js","sourceRoot":"","sources":["../../src/haClient/automations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Calendar Operations for Home Assistant API
3
+ * Handles calendar listing and event retrieval
4
+ */
5
+ import type { CalendarEvent, Calendar } from '../types/index.js';
6
+ import type { RequestHandler } from './request.js';
7
+ /**
8
+ * Calendar-related operations for the Home Assistant API.
9
+ */
10
+ export declare class CalendarOperations {
11
+ private readonly request;
12
+ constructor(request: RequestHandler);
13
+ /**
14
+ * Get all calendar entities
15
+ */
16
+ getCalendars(): Promise<Calendar[]>;
17
+ /**
18
+ * Get events from a calendar
19
+ * @param entityId - Calendar entity ID (e.g., 'calendar.my_calendar')
20
+ * @param startDate - Start date for event range (defaults to now)
21
+ * @param endDate - End date for event range (defaults to 30 days from start)
22
+ */
23
+ getCalendarEvents(entityId: string, startDate?: Date, endDate?: Date): Promise<CalendarEvent[]>;
24
+ /**
25
+ * Get events from all calendars
26
+ * @param startDate - Start date for event range (defaults to now)
27
+ * @param endDate - End date for event range (defaults to 30 days from start)
28
+ */
29
+ getAllCalendarEvents(startDate?: Date, endDate?: Date): Promise<Array<{
30
+ calendar: string;
31
+ events: CalendarEvent[];
32
+ }>>;
33
+ }
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Calendar Operations for Home Assistant API
3
+ * Handles calendar listing and event retrieval
4
+ */
5
+ import { logger } from '../utils/logger.js';
6
+ /**
7
+ * Calendar-related operations for the Home Assistant API.
8
+ */
9
+ export class CalendarOperations {
10
+ request;
11
+ constructor(request) {
12
+ this.request = request;
13
+ }
14
+ /**
15
+ * Get all calendar entities
16
+ */
17
+ async getCalendars() {
18
+ logger.debug('Fetching calendars');
19
+ // Use dedicated /api/calendars endpoint instead of filtering all states
20
+ const response = await this.request.get('/calendars');
21
+ const calendars = response.map(cal => ({
22
+ entity_id: cal.entity_id,
23
+ name: cal.name || cal.entity_id.replace('calendar.', ''),
24
+ state: 'on', // Calendar API doesn't return state, default to 'on'
25
+ }));
26
+ logger.info('Fetched calendars', { count: calendars.length });
27
+ return calendars;
28
+ }
29
+ /**
30
+ * Get events from a calendar
31
+ * @param entityId - Calendar entity ID (e.g., 'calendar.my_calendar')
32
+ * @param startDate - Start date for event range (defaults to now)
33
+ * @param endDate - End date for event range (defaults to 30 days from start)
34
+ */
35
+ async getCalendarEvents(entityId, startDate, endDate) {
36
+ const start = startDate || new Date();
37
+ const end = endDate || new Date(start.getTime() + 30 * 24 * 60 * 60 * 1000);
38
+ logger.debug('Fetching calendar events', { entityId, start: start.toISOString(), end: end.toISOString() });
39
+ // Calendar events use a special API endpoint, not the standard services API
40
+ const events = await this.request.get(`/calendars/${entityId}`, {
41
+ start: start.toISOString(),
42
+ end: end.toISOString(),
43
+ });
44
+ logger.info('Fetched calendar events', { entityId, count: events.length });
45
+ return events;
46
+ }
47
+ /**
48
+ * Get events from all calendars
49
+ * @param startDate - Start date for event range (defaults to now)
50
+ * @param endDate - End date for event range (defaults to 30 days from start)
51
+ */
52
+ async getAllCalendarEvents(startDate, endDate) {
53
+ const calendars = await this.getCalendars();
54
+ // Fetch all calendar events in parallel
55
+ const results = await Promise.all(calendars.map(async (calendar) => {
56
+ try {
57
+ const events = await this.getCalendarEvents(calendar.entity_id, startDate, endDate);
58
+ return { calendar: calendar.entity_id, events };
59
+ }
60
+ catch (error) {
61
+ logger.warn('Failed to fetch events for calendar', { calendar: calendar.entity_id, error });
62
+ return { calendar: calendar.entity_id, events: [] };
63
+ }
64
+ }));
65
+ return results;
66
+ }
67
+ }
68
+ //# sourceMappingURL=calendars.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendars.js","sourceRoot":"","sources":["../../src/haClient/calendars.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAQ5C;;GAEG;AACH,MAAM,OAAO,kBAAkB;IACA;IAA7B,YAA6B,OAAuB;QAAvB,YAAO,GAAP,OAAO,CAAgB;IAAG,CAAC;IAExD;;OAEG;IACH,KAAK,CAAC,YAAY;QAChB,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAEnC,wEAAwE;QACxE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAwB,YAAY,CAAC,CAAC;QAC7E,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACrC,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;YACxD,KAAK,EAAE,IAAI,EAAE,qDAAqD;SACnE,CAAC,CAAC,CAAC;QAEJ,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9D,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,iBAAiB,CACrB,QAAgB,EAChB,SAAgB,EAChB,OAAc;QAEd,MAAM,KAAK,GAAG,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,OAAO,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAE5E,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAE3G,4EAA4E;QAC5E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CACnC,cAAc,QAAQ,EAAE,EACxB;YACE,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE;YAC1B,GAAG,EAAE,GAAG,CAAC,WAAW,EAAE;SACvB,CACF,CAAC;QAEF,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3E,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,oBAAoB,CACxB,SAAgB,EAChB,OAAc;QAEd,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAE5C,wCAAwC;QACxC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,SAAS,CAAC,GAAG,CAAC,KAAK,EAAC,QAAQ,EAAC,EAAE;YAC7B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;gBACpF,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;YAClD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC5F,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;YACtD,CAAC;QACH,CAAC,CAAC,CACH,CAAC;QAEF,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
@@ -25,4 +25,3 @@ export declare class ConfigOperations {
25
25
  */
26
26
  getVersion(): Promise<HaVersion>;
27
27
  }
28
- //# sourceMappingURL=config.d.ts.map
@@ -216,4 +216,3 @@ export declare class DeviceOperations {
216
216
  */
217
217
  sendNotification(message: string, title?: string, target?: string, data?: Record<string, unknown>): Promise<ServiceCallResponse>;
218
218
  }
219
- //# sourceMappingURL=devices.d.ts.map
@@ -32,4 +32,3 @@ export declare class EntityOperations {
32
32
  state?: string;
33
33
  }): Promise<Entity[]>;
34
34
  }
35
- //# sourceMappingURL=entities.d.ts.map
@@ -135,4 +135,3 @@ export declare class EventSubscriber extends EventEmitter {
135
135
  */
136
136
  getSubscriptionCount(): number;
137
137
  }
138
- //# sourceMappingURL=events.d.ts.map
@@ -23,4 +23,3 @@ export declare class HistoryOperations {
23
23
  entity_id?: string;
24
24
  }): Promise<LogbookEntry[]>;
25
25
  }
26
- //# sourceMappingURL=history.d.ts.map
@@ -3,7 +3,7 @@
3
3
  * Main client class that composes all operation modules
4
4
  */
5
5
  import type { EnvironmentConfig } from '../config.js';
6
- import type { Entity, ServiceCallData, ServiceCallResponse, Automation, AutomationConfig, DomainSummary, HaVersion, LogbookEntry, UpdateInfo } from '../types/index.js';
6
+ import type { Entity, ServiceCallData, ServiceCallResponse, Automation, AutomationConfig, DomainSummary, HaVersion, LogbookEntry, UpdateInfo, Calendar, CalendarEvent } from '../types/index.js';
7
7
  import { DeviceOperations } from './devices.js';
8
8
  /**
9
9
  * Main client for interacting with the Home Assistant API.
@@ -18,6 +18,7 @@ export declare class HaClient {
18
18
  private readonly historyOps;
19
19
  private readonly updateOps;
20
20
  private readonly configOps;
21
+ private readonly calendarOps;
21
22
  readonly devices: DeviceOperations;
22
23
  constructor(config: EnvironmentConfig);
23
24
  /**
@@ -139,6 +140,21 @@ export declare class HaClient {
139
140
  * Get Home Assistant version and configuration info
140
141
  */
141
142
  getVersion(): Promise<HaVersion>;
143
+ /**
144
+ * Get all calendar entities
145
+ */
146
+ getCalendars(): Promise<Calendar[]>;
147
+ /**
148
+ * Get events from a calendar
149
+ */
150
+ getCalendarEvents(entityId: string, startDate?: Date, endDate?: Date): Promise<CalendarEvent[]>;
151
+ /**
152
+ * Get events from all calendars
153
+ */
154
+ getAllCalendarEvents(startDate?: Date, endDate?: Date): Promise<Array<{
155
+ calendar: string;
156
+ events: CalendarEvent[];
157
+ }>>;
142
158
  }
143
159
  export { RequestHandler } from './request.js';
144
160
  export { StateOperations } from './states.js';
@@ -149,5 +165,5 @@ export { HistoryOperations } from './history.js';
149
165
  export { UpdateOperations } from './updates.js';
150
166
  export { ConfigOperations } from './config.js';
151
167
  export { DeviceOperations } from './devices.js';
168
+ export { CalendarOperations } from './calendars.js';
152
169
  export type { LightControlOptions, ClimateControlOptions, MediaPlayerControlOptions, CoverControlOptions, FanControlOptions } from './devices.js';
153
- //# sourceMappingURL=index.d.ts.map
@@ -12,6 +12,7 @@ import { RequestHandler } from './request.js';
12
12
  import { ServiceOperations } from './services.js';
13
13
  import { StateOperations } from './states.js';
14
14
  import { UpdateOperations } from './updates.js';
15
+ import { CalendarOperations } from './calendars.js';
15
16
  /**
16
17
  * Main client for interacting with the Home Assistant API.
17
18
  * Organized with dedicated operation classes for each domain.
@@ -25,6 +26,7 @@ export class HaClient {
25
26
  historyOps;
26
27
  updateOps;
27
28
  configOps;
29
+ calendarOps;
28
30
  devices;
29
31
  constructor(config) {
30
32
  logger.debug('Initializing HaClient');
@@ -43,6 +45,7 @@ export class HaClient {
43
45
  this.historyOps = new HistoryOperations(this.request);
44
46
  this.updateOps = new UpdateOperations(this.entityOps);
45
47
  this.configOps = new ConfigOperations(this.request);
48
+ this.calendarOps = new CalendarOperations(this.request);
46
49
  this.devices = new DeviceOperations(this.serviceOps, this.stateOps);
47
50
  logger.info('HaClient initialized');
48
51
  }
@@ -209,6 +212,25 @@ export class HaClient {
209
212
  async getVersion() {
210
213
  return this.configOps.getVersion();
211
214
  }
215
+ // ===== Calendar Operations =====
216
+ /**
217
+ * Get all calendar entities
218
+ */
219
+ async getCalendars() {
220
+ return this.calendarOps.getCalendars();
221
+ }
222
+ /**
223
+ * Get events from a calendar
224
+ */
225
+ async getCalendarEvents(entityId, startDate, endDate) {
226
+ return this.calendarOps.getCalendarEvents(entityId, startDate, endDate);
227
+ }
228
+ /**
229
+ * Get events from all calendars
230
+ */
231
+ async getAllCalendarEvents(startDate, endDate) {
232
+ return this.calendarOps.getAllCalendarEvents(startDate, endDate);
233
+ }
212
234
  }
213
235
  // Re-export operation classes for testing
214
236
  export { RequestHandler } from './request.js';
@@ -220,4 +242,5 @@ export { HistoryOperations } from './history.js';
220
242
  export { UpdateOperations } from './updates.js';
221
243
  export { ConfigOperations } from './config.js';
222
244
  export { DeviceOperations } from './devices.js';
245
+ export { CalendarOperations } from './calendars.js';
223
246
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/haClient/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD;;;GAGG;AACH,MAAM,OAAO,QAAQ;IACF,OAAO,CAAiB;IACxB,QAAQ,CAAkB;IAC1B,UAAU,CAAoB;IAC9B,SAAS,CAAmB;IAC5B,aAAa,CAAuB;IACpC,UAAU,CAAoB;IAC9B,SAAS,CAAmB;IAC5B,SAAS,CAAmB;IAC7B,OAAO,CAAmB;IAE1C,YAAY,MAAyB;QACnC,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAEtC,6BAA6B;QAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,cAAc,CAAC;YAChC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC,CAAC;QAEH,iDAAiD;QACjD,IAAI,CAAC,QAAQ,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,UAAU,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,CAAC,SAAS,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrD,IAAI,CAAC,aAAa,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5F,IAAI,CAAC,UAAU,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,CAAC,SAAS,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtD,IAAI,CAAC,SAAS,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEpE,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACtC,CAAC;IAED,+BAA+B;IAE/B;;OAEG;IACH,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,QAAgB;QAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;IACvC,CAAC;IAED,iCAAiC;IAEjC;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,IAAqB;QACrC,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa;QACjB,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;IACzC,CAAC;IAED,gCAAgC;IAEhC;;OAEG;IACH,KAAK,CAAC,mBAAmB,CAAC,MAAc;QACtC,OAAO,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,KAAa;QAChC,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,MAAc;QACnC,OAAO,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,UAKf,EAAE;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,oCAAoC;IAEpC;;OAEG;IACH,KAAK,CAAC,cAAc;QAClB,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,QAAgB;QAClC,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,QAAgB,EAAE,SAAmC;QAC3E,OAAO,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACnE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,QAAgB;QACrC,OAAO,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,QAAgB;QACtC,OAAO,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,QAAgB;QACrC,OAAO,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB;QACrB,OAAO,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,MAAwB;QAC7C,OAAO,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,YAAoB,EAAE,MAAiC;QAC5E,OAAO,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACnE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,YAAoB;QACzC,OAAO,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAC3D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CAAC,QAAgB;QACvC,OAAO,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACzD,CAAC;IAED,iCAAiC;IAEjC;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,QAAgB,EAAE,QAAgB,EAAE;QACnD,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,UAGf,EAAE;QACJ,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,gCAAgC;IAEhC;;OAEG;IACH,KAAK,CAAC,mBAAmB;QAIvB,OAAO,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE,CAAC;IAC9C,CAAC;IAED,gCAAgC;IAEhC;;OAEG;IACH,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;IACrC,CAAC;CACF;AAED,0CAA0C;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/haClient/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Label Operations for Home Assistant API
3
+ * Uses WebSocket API for label registry and entity registry operations
4
+ */
5
+ import type { Label, LabelCreateInput, LabelUpdateInput, EntityRegistryEntry } from '../types/index.js';
6
+ import type { RequestHandlerConfig } from './request.js';
7
+ /**
8
+ * Label-related operations for the Home Assistant API.
9
+ * Uses WebSocket API since label/entity registry is not available via REST.
10
+ */
11
+ export declare class LabelOperations {
12
+ private baseUrl;
13
+ private token;
14
+ constructor(config: RequestHandlerConfig);
15
+ /**
16
+ * Execute a WebSocket command and return the result
17
+ */
18
+ private wsCommand;
19
+ /**
20
+ * List all labels
21
+ */
22
+ listLabels(): Promise<Label[]>;
23
+ /**
24
+ * Create a new label
25
+ */
26
+ createLabel(input: LabelCreateInput): Promise<Label>;
27
+ /**
28
+ * Update an existing label
29
+ */
30
+ updateLabel(labelId: string, input: LabelUpdateInput): Promise<Label>;
31
+ /**
32
+ * Delete a label
33
+ */
34
+ deleteLabel(labelId: string): Promise<void>;
35
+ /**
36
+ * List all entities in the registry
37
+ */
38
+ listEntityRegistry(): Promise<EntityRegistryEntry[]>;
39
+ /**
40
+ * Get a single entity from the registry
41
+ */
42
+ getEntityRegistryEntry(entityId: string): Promise<EntityRegistryEntry>;
43
+ /**
44
+ * Update an entity in the registry (including labels)
45
+ */
46
+ updateEntityRegistry(entityId: string, updates: {
47
+ labels?: string[];
48
+ name?: string;
49
+ icon?: string;
50
+ area_id?: string;
51
+ }): Promise<EntityRegistryEntry>;
52
+ /**
53
+ * Get entities by label
54
+ */
55
+ getEntitiesByLabel(labelId: string): Promise<EntityRegistryEntry[]>;
56
+ /**
57
+ * Assign a label to an entity
58
+ */
59
+ assignLabelToEntity(entityId: string, labelId: string): Promise<EntityRegistryEntry>;
60
+ /**
61
+ * Remove a label from an entity
62
+ */
63
+ removeLabelFromEntity(entityId: string, labelId: string): Promise<EntityRegistryEntry>;
64
+ }
@@ -0,0 +1,177 @@
1
+ /**
2
+ * Label Operations for Home Assistant API
3
+ * Uses WebSocket API for label registry and entity registry operations
4
+ */
5
+ import WebSocket from 'ws';
6
+ import { logger } from '../utils/logger.js';
7
+ /**
8
+ * Label-related operations for the Home Assistant API.
9
+ * Uses WebSocket API since label/entity registry is not available via REST.
10
+ */
11
+ export class LabelOperations {
12
+ baseUrl;
13
+ token;
14
+ constructor(config) {
15
+ this.baseUrl = config.baseUrl;
16
+ this.token = config.token;
17
+ }
18
+ /**
19
+ * Execute a WebSocket command and return the result
20
+ */
21
+ async wsCommand(type, data = {}) {
22
+ return new Promise((resolve, reject) => {
23
+ const wsUrl = this.baseUrl.replace('http', 'ws') + '/api/websocket';
24
+ const ws = new WebSocket(wsUrl);
25
+ let msgId = 1;
26
+ let authenticated = false;
27
+ const timeout = setTimeout(() => {
28
+ ws.close();
29
+ reject(new Error('WebSocket command timed out'));
30
+ }, 30000);
31
+ ws.on('open', () => {
32
+ logger.debug('WebSocket connection opened for label operation');
33
+ });
34
+ ws.on('message', (rawData) => {
35
+ const msg = JSON.parse(rawData.toString());
36
+ if (msg.type === 'auth_required') {
37
+ ws.send(JSON.stringify({ type: 'auth', access_token: this.token }));
38
+ }
39
+ else if (msg.type === 'auth_ok') {
40
+ authenticated = true;
41
+ // Send the actual command
42
+ ws.send(JSON.stringify({ id: msgId++, type, ...data }));
43
+ }
44
+ else if (msg.type === 'auth_invalid') {
45
+ clearTimeout(timeout);
46
+ ws.close();
47
+ reject(new Error('WebSocket authentication failed'));
48
+ }
49
+ else if (msg.type === 'result') {
50
+ clearTimeout(timeout);
51
+ ws.close();
52
+ if (msg.success) {
53
+ resolve(msg.result);
54
+ }
55
+ else {
56
+ reject(new Error(msg.error?.message || 'WebSocket command failed'));
57
+ }
58
+ }
59
+ });
60
+ ws.on('error', (err) => {
61
+ clearTimeout(timeout);
62
+ reject(err);
63
+ });
64
+ ws.on('close', () => {
65
+ if (!authenticated) {
66
+ clearTimeout(timeout);
67
+ reject(new Error('WebSocket connection closed before authentication'));
68
+ }
69
+ });
70
+ });
71
+ }
72
+ // ===== Label Registry Operations =====
73
+ /**
74
+ * List all labels
75
+ */
76
+ async listLabels() {
77
+ logger.debug('Listing all labels');
78
+ const labels = await this.wsCommand('config/label_registry/list');
79
+ logger.info('Listed labels', { count: labels.length });
80
+ return labels;
81
+ }
82
+ /**
83
+ * Create a new label
84
+ */
85
+ async createLabel(input) {
86
+ logger.debug('Creating label', { name: input.name });
87
+ const label = await this.wsCommand('config/label_registry/create', {
88
+ name: input.name,
89
+ color: input.color,
90
+ icon: input.icon,
91
+ description: input.description,
92
+ });
93
+ logger.info('Created label', { label_id: label.label_id, name: label.name });
94
+ return label;
95
+ }
96
+ /**
97
+ * Update an existing label
98
+ */
99
+ async updateLabel(labelId, input) {
100
+ logger.debug('Updating label', { label_id: labelId });
101
+ const label = await this.wsCommand('config/label_registry/update', {
102
+ label_id: labelId,
103
+ ...input,
104
+ });
105
+ logger.info('Updated label', { label_id: label.label_id });
106
+ return label;
107
+ }
108
+ /**
109
+ * Delete a label
110
+ */
111
+ async deleteLabel(labelId) {
112
+ logger.debug('Deleting label', { label_id: labelId });
113
+ await this.wsCommand('config/label_registry/delete', { label_id: labelId });
114
+ logger.info('Deleted label', { label_id: labelId });
115
+ }
116
+ // ===== Entity Registry Operations =====
117
+ /**
118
+ * List all entities in the registry
119
+ */
120
+ async listEntityRegistry() {
121
+ logger.debug('Listing entity registry');
122
+ const entities = await this.wsCommand('config/entity_registry/list');
123
+ logger.info('Listed entity registry', { count: entities.length });
124
+ return entities;
125
+ }
126
+ /**
127
+ * Get a single entity from the registry
128
+ */
129
+ async getEntityRegistryEntry(entityId) {
130
+ logger.debug('Getting entity registry entry', { entity_id: entityId });
131
+ const entity = await this.wsCommand('config/entity_registry/get', {
132
+ entity_id: entityId,
133
+ });
134
+ return entity;
135
+ }
136
+ /**
137
+ * Update an entity in the registry (including labels)
138
+ */
139
+ async updateEntityRegistry(entityId, updates) {
140
+ logger.debug('Updating entity registry', { entity_id: entityId, updates });
141
+ const entity = await this.wsCommand('config/entity_registry/update', {
142
+ entity_id: entityId,
143
+ ...updates,
144
+ });
145
+ logger.info('Updated entity registry', { entity_id: entityId });
146
+ return entity;
147
+ }
148
+ /**
149
+ * Get entities by label
150
+ */
151
+ async getEntitiesByLabel(labelId) {
152
+ logger.debug('Getting entities by label', { label_id: labelId });
153
+ const allEntities = await this.listEntityRegistry();
154
+ const filtered = allEntities.filter(e => e.labels.includes(labelId));
155
+ logger.info('Found entities with label', { label_id: labelId, count: filtered.length });
156
+ return filtered;
157
+ }
158
+ /**
159
+ * Assign a label to an entity
160
+ */
161
+ async assignLabelToEntity(entityId, labelId) {
162
+ logger.debug('Assigning label to entity', { entity_id: entityId, label_id: labelId });
163
+ const entity = await this.getEntityRegistryEntry(entityId);
164
+ const labels = entity.labels.includes(labelId) ? entity.labels : [...entity.labels, labelId];
165
+ return this.updateEntityRegistry(entityId, { labels });
166
+ }
167
+ /**
168
+ * Remove a label from an entity
169
+ */
170
+ async removeLabelFromEntity(entityId, labelId) {
171
+ logger.debug('Removing label from entity', { entity_id: entityId, label_id: labelId });
172
+ const entity = await this.getEntityRegistryEntry(entityId);
173
+ const labels = entity.labels.filter(l => l !== labelId);
174
+ return this.updateEntityRegistry(entityId, { labels });
175
+ }
176
+ }
177
+ //# sourceMappingURL=labels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"labels.js","sourceRoot":"","sources":["../../src/haClient/labels.ts"],"names":[],"mappings":"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"}
@@ -31,4 +31,3 @@ export declare class RequestHandler {
31
31
  */
32
32
  post<T>(path: string, body?: unknown): Promise<T>;
33
33
  }
34
- //# sourceMappingURL=request.d.ts.map
@@ -19,4 +19,3 @@ export declare class ServiceOperations {
19
19
  */
20
20
  restartServer(): Promise<void>;
21
21
  }
22
- //# sourceMappingURL=services.d.ts.map
@@ -23,4 +23,3 @@ export declare class StateOperations {
23
23
  */
24
24
  getAllSensors(): Promise<Entity[]>;
25
25
  }
26
- //# sourceMappingURL=states.d.ts.map
@@ -19,4 +19,3 @@ export declare class UpdateOperations {
19
19
  entities: Entity[];
20
20
  }>;
21
21
  }
22
- //# sourceMappingURL=updates.d.ts.map
package/dist/index.d.ts CHANGED
@@ -5,4 +5,3 @@
5
5
  * Supports multiple transport modes: stdio, HTTP+SSE, HTTP+Stream
6
6
  */
7
7
  export {};
8
- //# sourceMappingURL=index.d.ts.map
@@ -34,4 +34,3 @@ export declare class LocalAIClient {
34
34
  */
35
35
  getConfig(): Readonly<AIProviderConfig>;
36
36
  }
37
- //# sourceMappingURL=index.d.ts.map