@coffeerunhobby/mcp-ha-connect 2.1.0 → 2.2.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 (74) hide show
  1. package/README.md +19 -3
  2. package/dist/config.d.ts +4 -0
  3. package/dist/config.js +6 -0
  4. package/dist/config.js.map +1 -1
  5. package/dist/haClient/automations.d.ts +18 -2
  6. package/dist/haClient/automations.js +25 -7
  7. package/dist/haClient/automations.js.map +1 -1
  8. package/dist/haClient/events.d.ts +60 -7
  9. package/dist/haClient/events.js +252 -47
  10. package/dist/haClient/events.js.map +1 -1
  11. package/dist/haClient/index.d.ts +2 -1
  12. package/dist/haClient/index.js +4 -3
  13. package/dist/haClient/index.js.map +1 -1
  14. package/dist/haClient/wsCommand.d.ts +16 -0
  15. package/dist/haClient/wsCommand.js +36 -0
  16. package/dist/haClient/wsCommand.js.map +1 -0
  17. package/dist/omadaClient/site.js +15 -2
  18. package/dist/omadaClient/site.js.map +1 -1
  19. package/dist/ownerQuestions/service.d.ts +167 -0
  20. package/dist/ownerQuestions/service.js +439 -0
  21. package/dist/ownerQuestions/service.js.map +1 -0
  22. package/dist/server/common.d.ts +3 -0
  23. package/dist/server/common.js +2 -1
  24. package/dist/server/common.js.map +1 -1
  25. package/dist/server/http.js +30 -6
  26. package/dist/server/http.js.map +1 -1
  27. package/dist/server/stream.d.ts +2 -0
  28. package/dist/server/stream.js +2 -1
  29. package/dist/server/stream.js.map +1 -1
  30. package/dist/tools/common.d.ts +1 -1
  31. package/dist/tools/common.js +4 -1
  32. package/dist/tools/common.js.map +1 -1
  33. package/dist/tools/homeassistant/askOwner.d.ts +29 -0
  34. package/dist/tools/homeassistant/askOwner.js +85 -0
  35. package/dist/tools/homeassistant/askOwner.js.map +1 -0
  36. package/dist/tools/homeassistant/getAutomationTrace.d.ts +5 -0
  37. package/dist/tools/homeassistant/getAutomationTrace.js +10 -5
  38. package/dist/tools/homeassistant/getAutomationTrace.js.map +1 -1
  39. package/dist/tools/index.d.ts +3 -0
  40. package/dist/tools/index.js +5 -1
  41. package/dist/tools/index.js.map +1 -1
  42. package/dist/utils/plainText.d.ts +22 -0
  43. package/dist/utils/plainText.js +39 -0
  44. package/dist/utils/plainText.js.map +1 -0
  45. package/dist/version.d.ts +1 -1
  46. package/dist/version.js +1 -1
  47. package/docs/CHANGELOG.md +19 -0
  48. package/openapi.json +1 -1
  49. package/package.json +1 -1
  50. package/src/config.ts +10 -0
  51. package/src/haClient/automations.ts +39 -7
  52. package/src/haClient/events.ts +289 -56
  53. package/src/haClient/index.ts +10 -4
  54. package/src/haClient/wsCommand.ts +44 -0
  55. package/src/omadaClient/site.ts +17 -2
  56. package/src/ownerQuestions/service.ts +536 -0
  57. package/src/server/common.ts +5 -1
  58. package/src/server/http.ts +30 -6
  59. package/src/server/stream.ts +4 -1
  60. package/src/tools/common.ts +4 -1
  61. package/src/tools/homeassistant/askOwner.ts +133 -0
  62. package/src/tools/homeassistant/getAutomationTrace.ts +13 -7
  63. package/src/tools/index.ts +8 -1
  64. package/src/utils/plainText.ts +48 -0
  65. package/src/version.ts +1 -1
  66. package/tests/config.test.ts +12 -0
  67. package/tests/haClient/automationTrace.test.ts +59 -0
  68. package/tests/haClient/automations.test.ts +16 -0
  69. package/tests/haClient/events.test.ts +455 -0
  70. package/tests/haClient/eventsTls.test.ts +52 -0
  71. package/tests/omadaClient/ntp.test.ts +15 -0
  72. package/tests/ownerQuestions/service.test.ts +499 -0
  73. package/tests/ownerQuestions/tools.test.ts +186 -0
  74. package/tests/tools/homeassistant/handlers.test.ts +10 -1
package/README.md CHANGED
@@ -79,7 +79,7 @@ high-value questions an LLM can actually answer about your network:
79
79
 
80
80
  ## Available Tools (60 Total)
81
81
 
82
- ### Home Assistant Tools (35)
82
+ ### Home Assistant Tools (38)
83
83
 
84
84
  #### State & Entity Tools
85
85
 
@@ -116,6 +116,20 @@ high-value questions an LLM can actually answer about your network:
116
116
  | `sendNotification` | Send notifications with full mobile app support (actions, priority, images) |
117
117
  | `listNotificationTargets` | Discover available mobile app notification targets |
118
118
 
119
+ #### Owner Questions (approval on the phone)
120
+
121
+ Ask the owner a question as a phone notification with up to 3 buttons and read back the tap. HTTP mode only; needs an **admin** Home Assistant token (button taps are admin-only events) and `MCP_AUTH_SECRET` so open questions survive a restart. Everything except an explicit approving answer counts as NO.
122
+
123
+ | Tool | Description |
124
+ |------|-------------|
125
+ | `askOwner` | Send the question (plain text, max 256 characters; 1-3 buttons, default Approve / Deny; open up to 7 days) and return a `requestId` at once |
126
+ | `getOwnerAnswer` | Wait up to 50 s per call: `answered` (button index and label, time, HA user), `pending`, `timeout`, `cancelled` or `unknown` |
127
+ | `cancelOwnerQuestion` | Withdraw an open question; the notification changes to "Cancelled" |
128
+
129
+ Taps are verified with signed button ids and must come from the mobile app (an automation cannot fake one); set `MCP_OWNER_QUESTIONS_HA_USERS` so only your HA user can answer. Only the client that asked can read the answer; at most 3 open questions and 30 per hour per client.
130
+
131
+ Known limit: cancellations and answers are kept in memory. After a restart, someone with a Home Assistant login could re-send an old button id through HA's own API and answer a question that had been cancelled or denied (the phone no longer shows its buttons). That access already allows controlling the house directly.
132
+
119
133
  #### Automation Tools
120
134
 
121
135
  | Tool | Description |
@@ -128,7 +142,7 @@ high-value questions an LLM can actually answer about your network:
128
142
  | `reloadAutomations` | Reload automations from config |
129
143
  | `createAutomation` | Create a new automation |
130
144
  | `deleteAutomation` | Delete an automation |
131
- | `getAutomationTrace` | Get automation execution history |
145
+ | `getAutomationTrace` | Recent runs of an automation, newest first: trigger, result, errors (automations with an `id` only) |
132
146
 
133
147
  #### System Tools
134
148
 
@@ -303,7 +317,9 @@ and dispatch through the same handlers, validation, and RBAC as the MCP face.
303
317
 
304
318
  | Variable | Default | Description |
305
319
  |----------|---------|-------------|
306
- | `MCP_SSE_EVENTS_ENABLED` | `false` | Enable real-time SSE events |
320
+ | `MCP_SSE_EVENTS_ENABLED` | `true` | Enable real-time SSE events |
321
+ | `MCP_OWNER_QUESTIONS_ENABLED` | `true` | Enable `askOwner` / `getOwnerAnswer` / `cancelOwnerQuestion` (HTTP mode with Home Assistant) |
322
+ | `MCP_OWNER_QUESTIONS_HA_USERS` | (any HA user) | Comma-separated Home Assistant user ids allowed to answer owner questions (the `answeredBy` value of an answer) |
307
323
  | `MCP_SSE_EVENTS_PATH` | `/subscribe_events` | SSE endpoint path |
308
324
 
309
325
  ### Optional - Rate Limiting
package/dist/config.d.ts CHANGED
@@ -43,6 +43,10 @@ export interface EnvironmentConfig {
43
43
  */
44
44
  httpAllowedHosts?: string[];
45
45
  sseEventsEnabled: boolean;
46
+ /** askOwner / getOwnerAnswer / cancelOwnerQuestion (HTTP mode with Home Assistant). */
47
+ ownerQuestionsEnabled: boolean;
48
+ /** HA user ids allowed to answer owner questions; empty = any HA user. */
49
+ ownerQuestionsHaUsers: string[];
46
50
  sseEventsPath: string;
47
51
  rateLimitEnabled: boolean;
48
52
  rateLimitWindowMs: number;
package/dist/config.js CHANGED
@@ -68,6 +68,8 @@ const envSchema = z
68
68
  httpAllowedHosts: z.string().optional().transform((v) => v?.split(',').map((s) => s.trim()).filter(Boolean)),
69
69
  // SSE Event Subscription Configuration
70
70
  sseEventsEnabled: createBooleanStringSchema(true),
71
+ ownerQuestionsEnabled: createBooleanStringSchema(true),
72
+ ownerQuestionsHaUsers: z.string().optional(),
71
73
  sseEventsPath: z.string().optional(),
72
74
  // Rate Limiting Configuration
73
75
  rateLimitEnabled: createBooleanStringSchema(true),
@@ -188,6 +190,8 @@ export function loadConfig(env = process.env) {
188
190
  httpAllowedHosts: env.MCP_HTTP_ALLOWED_HOSTS,
189
191
  // SSE Event Subscription Configuration
190
192
  sseEventsEnabled: env.MCP_SSE_EVENTS_ENABLED,
193
+ ownerQuestionsEnabled: env.MCP_OWNER_QUESTIONS_ENABLED,
194
+ ownerQuestionsHaUsers: env.MCP_OWNER_QUESTIONS_HA_USERS,
191
195
  sseEventsPath: env.MCP_SSE_EVENTS_PATH,
192
196
  // Rate Limiting Configuration
193
197
  rateLimitEnabled: env.MCP_RATE_LIMIT_ENABLED,
@@ -269,6 +273,8 @@ export function loadConfig(env = process.env) {
269
273
  httpAllowedHosts: parsed.data.httpAllowedHosts,
270
274
  // SSE Event Subscription Configuration
271
275
  sseEventsEnabled: parsed.data.sseEventsEnabled,
276
+ ownerQuestionsEnabled: parsed.data.ownerQuestionsEnabled,
277
+ ownerQuestionsHaUsers: (parsed.data.ownerQuestionsHaUsers ?? '').split(',').map((u) => u.trim()).filter(Boolean),
272
278
  sseEventsPath: parsed.data.sseEventsPath ?? '/subscribe_events',
273
279
  // Rate Limiting Configuration
274
280
  rateLimitEnabled: parsed.data.rateLimitEnabled,
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,21 @@ import type { Automation, AutomationConfig, ServiceCallResponse } from '../types
6
6
  import type { StateOperations } from './states.js';
7
7
  import type { ServiceOperations } from './services.js';
8
8
  import type { RequestHandler } from './request.js';
9
+ import type { HaWebSocketCommand } from './wsCommand.js';
10
+ /** One run of an automation, as `trace/list` summarizes it. */
11
+ export interface AutomationTraceSummary {
12
+ run_id: string;
13
+ state?: string;
14
+ script_execution?: string | null;
15
+ last_step?: string | null;
16
+ error?: string;
17
+ trigger?: string;
18
+ timestamp?: {
19
+ start: string;
20
+ finish: string | null;
21
+ };
22
+ [key: string]: unknown;
23
+ }
9
24
  /**
10
25
  * Automation-related operations for the Home Assistant API.
11
26
  */
@@ -13,7 +28,8 @@ export declare class AutomationOperations {
13
28
  private readonly stateOps;
14
29
  private readonly serviceOps?;
15
30
  private readonly request?;
16
- constructor(stateOps: StateOperations, serviceOps?: ServiceOperations | undefined, request?: RequestHandler | undefined);
31
+ private readonly wsCommand?;
32
+ constructor(stateOps: StateOperations, serviceOps?: ServiceOperations | undefined, request?: RequestHandler | undefined, wsCommand?: HaWebSocketCommand | undefined);
17
33
  /**
18
34
  * Get all automations
19
35
  */
@@ -62,5 +78,5 @@ export declare class AutomationOperations {
62
78
  /**
63
79
  * Get automation trace (execution history)
64
80
  */
65
- getAutomationTrace(entityId: string): Promise<unknown[]>;
81
+ getAutomationTrace(entityId: string, limit?: number): Promise<AutomationTraceSummary[]>;
66
82
  }
@@ -10,10 +10,12 @@ export class AutomationOperations {
10
10
  stateOps;
11
11
  serviceOps;
12
12
  request;
13
- constructor(stateOps, serviceOps, request) {
13
+ wsCommand;
14
+ constructor(stateOps, serviceOps, request, wsCommand) {
14
15
  this.stateOps = stateOps;
15
16
  this.serviceOps = serviceOps;
16
17
  this.request = request;
18
+ this.wsCommand = wsCommand;
17
19
  }
18
20
  /**
19
21
  * Get all automations
@@ -179,13 +181,29 @@ export class AutomationOperations {
179
181
  /**
180
182
  * Get automation trace (execution history)
181
183
  */
182
- async getAutomationTrace(entityId) {
183
- if (!this.request) {
184
- throw new Error('RequestHandler not available');
184
+ async getAutomationTrace(entityId, limit = 5) {
185
+ if (!this.wsCommand) {
186
+ throw new Error('Automation traces need the Home Assistant WebSocket API, which is not available');
187
+ }
188
+ // Traces are WebSocket-only (there is no REST endpoint) and are keyed by the
189
+ // automation's config id (its `id` attribute), not by the entity id.
190
+ const state = await this.stateOps.getState(entityId);
191
+ if (!state) {
192
+ throw new Error(`Automation ${entityId} not found`);
185
193
  }
186
- const automationId = entityId.replace('automation.', '');
187
- logger.debug('Fetching automation trace', { automationId });
188
- return this.request.get(`/trace/automation/${encodeURIComponent(automationId)}`);
194
+ const itemId = state.attributes.id;
195
+ if (itemId === undefined || itemId === null || itemId === '') {
196
+ throw new Error(`Automation ${entityId} has no 'id' (an automation defined in YAML without an id), so Home Assistant keeps no traces for it`);
197
+ }
198
+ logger.debug('Fetching automation traces', { entityId, itemId });
199
+ const traces = await this.wsCommand({
200
+ type: 'trace/list',
201
+ domain: 'automation',
202
+ item_id: String(itemId),
203
+ });
204
+ return [...(traces ?? [])]
205
+ .sort((a, b) => (b.timestamp?.start ?? '').localeCompare(a.timestamp?.start ?? ''))
206
+ .slice(0, limit);
189
207
  }
190
208
  }
191
209
  //# sourceMappingURL=automations.js.map
@@ -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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"}
@@ -3,6 +3,7 @@
3
3
  * Connects to Home Assistant WebSocket API to receive real-time events
4
4
  */
5
5
  import { EventEmitter } from 'events';
6
+ import WebSocket from 'ws';
6
7
  export interface HaEvent {
7
8
  event_type: string;
8
9
  data: {
@@ -34,19 +35,41 @@ export interface HaEvent {
34
35
  user_id: string | null;
35
36
  };
36
37
  }
38
+ /** Home Assistant answered a command with `success: false` (a refusal, not a connection problem). */
39
+ export declare class HaCommandError extends Error {
40
+ readonly commandType: string;
41
+ readonly code: string;
42
+ constructor(commandType: string, code: string);
43
+ }
37
44
  export interface EventSubscription {
38
45
  id: string;
39
46
  subscriptionId: number;
47
+ /** The socket this subscription was sent on (HA forgets it when that socket closes). */
48
+ connection?: WebSocket | null;
49
+ /** The subscribe_events command in flight on that socket. */
50
+ sending?: Promise<number>;
40
51
  eventType?: string;
41
52
  domain?: string;
42
53
  entityId?: string;
43
54
  callback: (event: HaEvent) => void;
55
+ /** Called if Home Assistant refuses the subscription (e.g. a non-admin token); it is then dropped. */
56
+ onRejected?: (error: HaCommandError) => void;
44
57
  }
45
58
  export interface EventSubscriberConfig {
46
59
  baseUrl: string;
47
60
  token: string;
48
61
  reconnectInterval?: number;
49
62
  maxReconnectAttempts?: number;
63
+ /** Upper bound for the exponential reconnect delay (ms). Default 60 s. */
64
+ maxReconnectDelay?: number;
65
+ /** Deadline for connecting and authenticating (ms). Default 30 s. */
66
+ connectTimeout?: number;
67
+ /** Verify the TLS certificate of a wss:// Home Assistant (HA_STRICT_SSL). Default true. */
68
+ strictSsl?: boolean;
69
+ /** How long a command waits for its result (ms). Default 30 s. */
70
+ commandTimeout?: number;
71
+ /** Delay before re-sending subscriptions that failed for a transient reason (ms). Default 30 s. */
72
+ resubscribeRetryDelay?: number;
50
73
  }
51
74
  /**
52
75
  * Home Assistant Event Subscriber
@@ -57,14 +80,20 @@ export declare class EventSubscriber extends EventEmitter {
57
80
  private messageId;
58
81
  private authenticated;
59
82
  private subscriptions;
60
- private pendingSubscriptions;
83
+ /** Commands awaiting their `result`, keyed by message id (HA answers by id). */
84
+ private pendingCommands;
61
85
  private reconnectAttempts;
62
86
  private reconnectTimer;
87
+ /** Deadline of the connect attempt in progress (cleared on auth_ok or close). */
88
+ private connectTimer;
89
+ /** Pending retry of subscriptions that failed for a transient reason. */
90
+ private resubscribeTimer;
63
91
  private isConnecting;
64
92
  private shouldReconnect;
65
93
  private readonly config;
66
94
  private readonly reconnectInterval;
67
95
  private readonly maxReconnectAttempts;
96
+ private readonly maxReconnectDelay;
68
97
  constructor(config: EventSubscriberConfig);
69
98
  /**
70
99
  * Connect to Home Assistant WebSocket API
@@ -78,6 +107,28 @@ export declare class EventSubscriber extends EventEmitter {
78
107
  * Handle result messages (responses to commands)
79
108
  */
80
109
  private handleResult;
110
+ private clearConnectTimer;
111
+ private rejectPendingCommands;
112
+ /**
113
+ * Send a WebSocket command and resolve with its `result` (rejects on
114
+ * `success: false`, on disconnect, or after `timeoutMs`).
115
+ */
116
+ sendCommand<T = unknown>(command: {
117
+ type: string;
118
+ [key: string]: unknown;
119
+ }, timeoutMs?: number): Promise<T>;
120
+ /** Like sendCommand, but also reports the message id the command was sent with. */
121
+ private dispatchCommand;
122
+ /**
123
+ * Send a command now and return its message id synchronously, with a promise
124
+ * for its result. Callers that must act on the id before the result arrives
125
+ * (subscriptions) use this directly.
126
+ */
127
+ private beginCommand;
128
+ /** Send subscribe_events for every registered subscription on a new connection. */
129
+ private resubscribeAll;
130
+ /** Retry failed subscriptions later on the same connection (a reconnect also retries them). */
131
+ private scheduleResubscribe;
81
132
  /**
82
133
  * Handle event messages
83
134
  */
@@ -97,7 +148,7 @@ export declare class EventSubscriber extends EventEmitter {
97
148
  /**
98
149
  * Subscribe to specific event type
99
150
  */
100
- subscribeEventType(eventType: string, callback: (event: HaEvent) => void): Promise<string>;
151
+ subscribeEventType(eventType: string, callback: (event: HaEvent) => void, onRejected?: (error: HaCommandError) => void): Promise<string>;
101
152
  /**
102
153
  * Subscribe to state changes for a specific domain
103
154
  */
@@ -107,17 +158,19 @@ export declare class EventSubscriber extends EventEmitter {
107
158
  */
108
159
  subscribeEntity(entityId: string, callback: (event: HaEvent) => void): Promise<string>;
109
160
  /**
110
- * Internal subscribe method
161
+ * Internal subscribe method.
162
+ *
163
+ * The subscription is registered first and then sent on every authenticated
164
+ * connection: right away when connected, otherwise as soon as Home Assistant
165
+ * is reachable, and again after any reconnect (HA forgets subscriptions with
166
+ * the connection). It never fails because Home Assistant is down.
111
167
  */
112
168
  private subscribe;
113
- /**
114
- * Send subscribe_events command
115
- */
116
- private sendSubscribeEvents;
117
169
  /**
118
170
  * Unsubscribe from events
119
171
  */
120
172
  unsubscribe(subscriptionId: string): Promise<void>;
173
+ private sendUnsubscribe;
121
174
  /**
122
175
  * Send a message over WebSocket
123
176
  */