@digital-alchemy/hass 0.2.0 → 0.2.2

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.
package/README.md ADDED
@@ -0,0 +1,53 @@
1
+ ## Description
2
+ Welcome to `@digital-alchemy/hass`!
3
+
4
+ This repository contains generic extensions for interacting with Home Assistant, including websocket & rest api adapters, entity & event management, backup workflows, and more.
5
+ ## Features
6
+ ### First class editor experiences
7
+
8
+ - Did you just typo that entity name?
9
+ - Just what services are actually available?
10
+
11
+ Create references to entities that will always reflect their current state. Get details about all the services your setup supports and how to use them, directly in your editor.
12
+
13
+ ![editor](./docs/editor.png)
14
+
15
+ ### Managed Websocket
16
+
17
+ Don't worry about all the complexities of dealing with home assistant. Let the library help by handling all the connection logic, keeping track of events for you, formatting requests, and
18
+
19
+ ## Configuration
20
+ ### Custom Types
21
+
22
+ This library has support for customizing type definitions to match a particular Home Assistant install. This functionality requires the [type-writer](https://github.com/Digital-Alchemy-TS/type-writer) command to be installed as well.
23
+
24
+ > Add to `devDependencies`!
25
+ ```bash
26
+ npm i --save-dev @digital-alchemy/type-writer
27
+ npx type-writer
28
+ ```
29
+ Custom types only affect the development experience, and have no impact on the way the application runs.
30
+
31
+ ### Supervised Support
32
+
33
+ If your code is running within a Home Assistant addon environment, it will automatically connect with no additional configuration needed.
34
+
35
+ ### Manual
36
+
37
+ For code running elsewhere, manual configuration is required. You will need a **Long Lived Access Token**, which can be generated on your user profile.
38
+ ```ini
39
+ [hass]
40
+ BASE_URL=http://localhost:8123
41
+ TOKEN=YOUR LONG LIVED ACCESS TOKEN
42
+ ```
43
+ ## Related Projects
44
+
45
+ For additional projects that build on and consume this library, check out these other projects
46
+
47
+
48
+ | GitHub | Description | NPM |
49
+ | ------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
50
+ | [synapse](https://github.com/Digital-Alchemy-TS/synapse) | Tools for generating entities within home assistant. | [@digitial-alchemy/synapse](https://www.npmjs.com/package/@digital-alchemy/synapse) |
51
+ | [automation](https://github.com/Digital-Alchemy-TS/automation) | Advanced automation tools for creating dynamic workflows. | [@digital-alchemy/automation](https://www.npmjs.com/package/@digital-alchemy/automation) |
52
+ | [type-writer](https://github.com/Digital-Alchemy-TS/terminal) | Generate custom type definitions for your setup. | [@digital-alchemy/type-writer](https://www.npmjs.com/package/@digital-alchemy/terminal) |
53
+ | [automation-template](https://github.com/Digital-Alchemy-TS/gotify) | Start your own Home Automation project with the `@digital-alchemy` quick start template | |
@@ -1,4 +1,3 @@
1
1
  import { TServiceParams } from "@digital-alchemy/core";
2
2
  import { iCallService } from "..";
3
3
  export declare function CallProxy({ logger, lifecycle, context, hass, config, }: TServiceParams): iCallService;
4
- export default CallProxy;
@@ -11,6 +11,7 @@ const NOT_A_DOMAIN = new Set(["then"]);
11
11
  function CallProxy({ logger, lifecycle, context, hass, config, }) {
12
12
  let domains;
13
13
  let services;
14
+ const rawProxy = {};
14
15
  /**
15
16
  * Describe the current services, and build up a proxy api based on that.
16
17
  *
@@ -47,7 +48,7 @@ function CallProxy({ logger, lifecycle, context, hass, config, }) {
47
48
  services = await hass.fetch.listServices();
48
49
  if (core_1.is.empty(services)) {
49
50
  if (recursion > MAX_ATTEMPTS) {
50
- logger.fatal(`Failed to load service list from Home Assistant. Validate configuration`);
51
+ logger.fatal(`failed to load service list from Home Assistant`);
51
52
  (0, process_1.exit)(FAILED);
52
53
  }
53
54
  logger.warn("failed to retrieve {service} list. Retrying {%s}/[%s]", recursion, MAX_ATTEMPTS);
@@ -57,32 +58,36 @@ function CallProxy({ logger, lifecycle, context, hass, config, }) {
57
58
  }
58
59
  domains = services.map(i => i.domain);
59
60
  services.forEach(value => {
60
- logger.trace({ services: Object.keys(value.services) }, `loaded domain [%s]`, value.domain);
61
+ const services = Object.keys(value.services);
62
+ rawProxy[value.domain] = Object.fromEntries(services.map(i => [i, core_1.noop]));
63
+ logger.trace({ services }, `loaded domain [%s]`, value.domain);
61
64
  });
62
65
  }
63
66
  /**
64
67
  * Prefer sending via socket, if available.
65
68
  */
66
69
  async function sendMessage(serviceName, service_data) {
67
- if (!hass.socket.getConnectionActive()) {
70
+ // pause for rest also
71
+ if (hass.socket.pauseMessages) {
72
+ return undefined;
73
+ }
74
+ const sendViaRest = (config.hass.CALL_PROXY_ALLOW_REST === "allow" &&
75
+ hass.socket.connectionState !== "connected") ||
76
+ config.hass.CALL_PROXY_ALLOW_REST === "prefer";
77
+ if (sendViaRest) {
68
78
  return await hass.fetch.callService(serviceName, service_data);
69
79
  }
70
80
  const [domain, service] = serviceName.split(".");
81
+ const type = __1.HASSIO_WS_COMMAND.call_service;
71
82
  // User can just not await this call if they don't care about the "waitForChange"
72
- return await hass.socket.sendMessage({
73
- domain,
74
- service,
75
- service_data,
76
- type: __1.HASSIO_WS_COMMAND.call_service,
77
- }, true);
83
+ return await hass.socket.sendMessage({ domain, service, service_data, type }, true);
78
84
  }
79
85
  function buildCallProxy() {
80
- return new Proxy({}, {
86
+ return new Proxy(rawProxy, {
81
87
  get: (_, domain) => getDomain(domain),
82
88
  });
83
89
  }
84
90
  return buildCallProxy();
85
91
  }
86
92
  exports.CallProxy = CallProxy;
87
- exports.default = CallProxy;
88
93
  //# sourceMappingURL=call-proxy.extension.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"call-proxy.extension.js","sourceRoot":"","sources":["../../src/extensions/call-proxy.extension.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"call-proxy.extension.js","sourceRoot":"","sources":["../../src/extensions/call-proxy.extension.ts"],"names":[],"mappings":"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"}
@@ -29,7 +29,7 @@ function Configure({ logger, lifecycle, hass, config, internal, }) {
29
29
  if (!config.hass.VALIDATE_CONFIGURATION) {
30
30
  return;
31
31
  }
32
- core_1.ZCC.logger.setLogLevel("trace");
32
+ internal.logger.setLogLevel("trace");
33
33
  logger.info(`validating credentials`);
34
34
  try {
35
35
  const result = await hass.fetch.checkCredentials();
@@ -1 +1 @@
1
- {"version":3,"file":"config.extension.js","sourceRoot":"","sources":["../../src/extensions/config.extension.ts"],"names":[],"mappings":";;;AAAA,wDAAwD;AACxD,gDAAgE;AAChE,qCAAoC;AAEpC,0BAA0C;AAC1C,SAAgB,SAAS,CAAC,EACxB,MAAM,EACN,SAAS,EACT,IAAI,EACJ,MAAM,EACN,QAAQ,GACO;IACf;;;;OAIG;IACH,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE;QACvB,MAAM,KAAK,GAAG,aAAG,CAAC,YAAY,IAAI,aAAG,CAAC,gBAAgB,CAAC;QACvD,IAAI,SAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;QACxD,QAAQ,CAAC,MAAM,CAAC,GAAG,CACjB,MAAM,EACN,UAAU,EACV,aAAG,CAAC,WAAW,IAAI,wBAAwB,CAC5C,CAAC;QACF,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH;;;;OAIG;IACH,SAAS,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE;QAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACxC,OAAO;QACT,CAAC;QACD,UAAG,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;YACnD,IAAI,SAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtB,aAAa;gBACb,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC5B,IAAA,cAAI,EAAC,CAAC,CAAC,CAAC;YACV,CAAC;YACD,cAAc;YACd,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAC7B,IAAA,cAAI,EAAC,CAAC,CAAC,CAAC;QACV,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,iBAAiB;YACjB,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,wBAAwB,CAAC,CAAC;YAClD,IAAA,cAAI,EAAC,CAAC,CAAC,CAAC;QACV,CAAC;IACH,CAAC,EAAE,wBAAoB,CAAC,QAAQ,CAAC,CAAC;AACpC,CAAC;AArDD,8BAqDC"}
1
+ {"version":3,"file":"config.extension.js","sourceRoot":"","sources":["../../src/extensions/config.extension.ts"],"names":[],"mappings":";;;AAAA,wDAAwD;AACxD,gDAA2D;AAC3D,qCAAoC;AAEpC,0BAA0C;AAC1C,SAAgB,SAAS,CAAC,EACxB,MAAM,EACN,SAAS,EACT,IAAI,EACJ,MAAM,EACN,QAAQ,GACO;IACf;;;;OAIG;IACH,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE;QACvB,MAAM,KAAK,GAAG,aAAG,CAAC,YAAY,IAAI,aAAG,CAAC,gBAAgB,CAAC;QACvD,IAAI,SAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;QACxD,QAAQ,CAAC,MAAM,CAAC,GAAG,CACjB,MAAM,EACN,UAAU,EACV,aAAG,CAAC,WAAW,IAAI,wBAAwB,CAC5C,CAAC;QACF,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH;;;;OAIG;IACH,SAAS,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE;QAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACxC,OAAO;QACT,CAAC;QACD,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;YACnD,IAAI,SAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtB,aAAa;gBACb,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC5B,IAAA,cAAI,EAAC,CAAC,CAAC,CAAC;YACV,CAAC;YACD,cAAc;YACd,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAC7B,IAAA,cAAI,EAAC,CAAC,CAAC,CAAC;QACV,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,iBAAiB;YACjB,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,wBAAwB,CAAC,CAAC;YAClD,IAAA,cAAI,EAAC,CAAC,CAAC,CAAC;QACV,CAAC;IACH,CAAC,EAAE,wBAAoB,CAAC,QAAQ,CAAC,CAAC;AACpC,CAAC;AArDD,8BAqDC"}
@@ -16,7 +16,7 @@ export type ByIdProxy<ENTITY_ID extends PICK_ENTITY> = ENTITY_STATE<ENTITY_ID> &
16
16
  */
17
17
  nextState: () => Promise<ENTITY_STATE<ENTITY_ID>>;
18
18
  };
19
- export declare function EntityManager({ logger, hass, lifecycle }: TServiceParams): {
19
+ export declare function EntityManager({ logger, hass, lifecycle, internal, }: TServiceParams): {
20
20
  /**
21
21
  * Internal library use only
22
22
  */
@@ -12,7 +12,7 @@ const MAX_ATTEMPTS = 50;
12
12
  const FAILED_LOAD_DELAY = 5;
13
13
  const UNLIMITED = 0;
14
14
  const RECENT = 5;
15
- function EntityManager({ logger, hass, lifecycle }) {
15
+ function EntityManager({ logger, hass, lifecycle, internal, }) {
16
16
  // # Local vars
17
17
  /**
18
18
  * MASTER_STATE.switch.desk_light = {entity_id,state,attributes,...}
@@ -28,7 +28,8 @@ function EntityManager({ logger, hass, lifecycle }) {
28
28
  // # Methods
29
29
  // ## Retrieve raw state object for entity
30
30
  function getCurrentState(entity_id) {
31
- return core_1.ZCC.utils.object.get(MASTER_STATE, entity_id);
31
+ const out = internal.utils.object.get(MASTER_STATE, entity_id) ?? {};
32
+ return out;
32
33
  }
33
34
  // ## Proxy version of the logic
34
35
  function proxyGetLogic(entity, property) {
@@ -45,12 +46,12 @@ function EntityManager({ logger, hass, lifecycle }) {
45
46
  if (!current) {
46
47
  logger.error({ defaultValue, name: entity, property }, `proxyGetLogic cannot find entity`);
47
48
  }
48
- return core_1.ZCC.utils.object.get(current, property) || defaultValue;
49
+ return internal.utils.object.get(current, property) || defaultValue;
49
50
  }
50
51
  // ## Retrieve a proxy by id
51
52
  function byId(entity_id) {
52
53
  if (!ENTITY_PROXIES.has(entity_id)) {
53
- ENTITY_PROXIES.set(entity_id, new Proxy({ entity_id }, {
54
+ ENTITY_PROXIES.set(entity_id, new Proxy(getCurrentState(entity_id), {
54
55
  // things that shouldn't be needed: this extract
55
56
  get: (_, property) => {
56
57
  if (property === "onUpdate") {
@@ -136,11 +137,11 @@ function EntityManager({ logger, hass, lifecycle }) {
136
137
  states.forEach(entity => {
137
138
  // ? Set first, ensure data is populated
138
139
  // `nextTick` will fire AFTER loop finishes
139
- core_1.ZCC.utils.object.set(MASTER_STATE, entity.entity_id, entity, core_1.is.undefined(core_1.ZCC.utils.object.get(oldState, entity.entity_id)));
140
+ internal.utils.object.set(MASTER_STATE, entity.entity_id, entity, core_1.is.undefined(internal.utils.object.get(oldState, entity.entity_id)));
140
141
  if (!init) {
141
142
  return;
142
143
  }
143
- const old = core_1.ZCC.utils.object.get(oldState, entity.entity_id);
144
+ const old = internal.utils.object.get(oldState, entity.entity_id);
144
145
  if (core_1.is.equal(old, entity)) {
145
146
  logger.trace({ name: entity.entity_id }, `no change on refresh`);
146
147
  return;
@@ -150,22 +151,24 @@ function EntityManager({ logger, hass, lifecycle }) {
150
151
  // Attempt to not blow up the system?
151
152
  // TODO: does this gain anything? is a debounce needed somewhere else instead?
152
153
  setImmediate(async () => {
153
- await (0, core_1.each)(emitUpdates, async (entity) => await EntityUpdateReceiver(entity.entity_id, entity, core_1.ZCC.utils.object.get(oldState, entity.entity_id)));
154
+ await (0, core_1.each)(emitUpdates, async (entity) => await EntityUpdateReceiver(entity.entity_id, entity, internal.utils.object.get(oldState, entity.entity_id)));
154
155
  });
155
156
  init = true;
156
157
  }
157
158
  // ## is.entity definition
158
159
  // Actually tie the type casting to real state
159
- core_1.is.entity = (entityId) => core_1.is.undefined(core_1.ZCC.utils.object.get(MASTER_STATE, entityId));
160
+ core_1.is.entity = (entityId) => core_1.is.undefined(internal.utils.object.get(MASTER_STATE, entityId));
160
161
  // ## Receiver function for incoming entity updates
161
162
  function EntityUpdateReceiver(entity_id, new_state, old_state) {
162
163
  if (new_state === null) {
163
164
  logger.warn({ name: entity_id }, `removing deleted entity from {MASTER_STATE}`);
164
- core_1.ZCC.utils.object.del(MASTER_STATE, entity_id);
165
+ internal.utils.object.del(MASTER_STATE, entity_id);
165
166
  return;
166
167
  }
167
- core_1.ZCC.utils.object.set(MASTER_STATE, entity_id, new_state);
168
- event.emit(entity_id, new_state, old_state);
168
+ internal.utils.object.set(MASTER_STATE, entity_id, new_state);
169
+ if (!hass.socket.pauseMessages) {
170
+ event.emit(entity_id, new_state, old_state);
171
+ }
169
172
  }
170
173
  lifecycle.onPostConfig(async () => {
171
174
  logger.debug(`pre populate {MASTER_STATE}`);
@@ -1 +1 @@
1
- {"version":3,"file":"entity-manager.extension.js","sourceRoot":"","sources":["../../src/extensions/entity-manager.extension.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity-manager.extension.js","sourceRoot":"","sources":["../../src/extensions/entity-manager.extension.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- import { FilteredFetchArguments, TFetch, TServiceParams } from "@digital-alchemy/core";
1
+ import { FilteredFetchArguments, TServiceParams } from "@digital-alchemy/core";
2
2
  import { CalendarEvent, CalendarFetchOptions, CheckConfigResult, ENTITY_STATE, HassConfig, HassServiceDTO, HomeAssistantServerLogItem, PICK_ENTITY, PICK_SERVICE, PICK_SERVICE_PARAMETERS } from "..";
3
3
  type SendBody<STATE extends string | number = string, ATTRIBUTES extends object = object> = {
4
4
  attributes?: ATTRIBUTES;
5
5
  state?: STATE;
6
6
  };
7
- export declare function FetchAPI({ logger, lifecycle, context, config, }: TServiceParams): {
7
+ export declare function FetchAPI({ logger, lifecycle, context, internal, config, }: TServiceParams): {
8
8
  calendarSearch: ({ calendar, start, end, }: CalendarFetchOptions) => Promise<CalendarEvent[]>;
9
9
  callService: <SERVICE extends PICK_SERVICE>(serviceName: SERVICE, data: PICK_SERVICE_PARAMETERS<SERVICE>) => Promise<ENTITY_STATE<PICK_ENTITY>[]>;
10
10
  checkConfig: () => Promise<CheckConfigResult>;
@@ -12,7 +12,7 @@ export declare function FetchAPI({ logger, lifecycle, context, config, }: TServi
12
12
  message: string;
13
13
  } | string>;
14
14
  download: (destination: string, fetchWith: FilteredFetchArguments) => Promise<void>;
15
- fetch: TFetch;
15
+ fetch: import("@digital-alchemy/core").TFetch;
16
16
  fetchEntityCustomizations: <T extends Record<never, unknown> = Record<"local" | "global", Record<string, string>>>(entityId: string | string[]) => Promise<T>;
17
17
  fetchEntityHistory: <ENTITY extends PICK_ENTITY = PICK_ENTITY, T_1 extends ENTITY_STATE<ENTITY> = ENTITY_STATE<ENTITY>>(entity_id: ENTITY, from: Date, to: Date, extra?: {
18
18
  minimal_response?: "";
@@ -5,18 +5,13 @@ const tslib_1 = require("tslib");
5
5
  const core_1 = require("@digital-alchemy/core");
6
6
  const dayjs_1 = tslib_1.__importDefault(require("dayjs"));
7
7
  const __1 = require("..");
8
- function FetchAPI({ logger, lifecycle, context, config, }) {
9
- let fetcher;
10
- let downloader;
8
+ function FetchAPI({ logger, lifecycle, context, internal, config, }) {
9
+ const fetcher = internal.createFetcher({ context });
10
+ const { fetch, download: downloader } = fetcher;
11
11
  // Load configurations
12
12
  lifecycle.onPostConfig(() => {
13
- const fetch = core_1.ZCC.createFetcher({
14
- baseUrl: config.hass.BASE_URL,
15
- context,
16
- headers: { Authorization: `Bearer ${config.hass.TOKEN}` },
17
- });
18
- fetcher = fetch.fetch;
19
- downloader = fetch.download;
13
+ fetcher.setBaseUrl(config.hass.BASE_URL);
14
+ fetcher.setHeaders({ Authorization: `Bearer ${config.hass.TOKEN}` });
20
15
  }, __1.PostConfigPriorities.FETCH);
21
16
  async function calendarSearch({ calendar, start = (0, dayjs_1.default)(), end, }) {
22
17
  if (Array.isArray(calendar)) {
@@ -30,7 +25,7 @@ function FetchAPI({ logger, lifecycle, context, config, }) {
30
25
  : core_1.DOWN);
31
26
  }
32
27
  const params = { end: end.toISOString(), start: start.toISOString() };
33
- const events = await fetcher({
28
+ const events = await fetch({
34
29
  params,
35
30
  url: `/api/calendars/${calendar}`,
36
31
  });
@@ -43,7 +38,7 @@ function FetchAPI({ logger, lifecycle, context, config, }) {
43
38
  }
44
39
  async function callService(serviceName, data) {
45
40
  const [domain, service] = serviceName.split(".");
46
- return await fetcher({
41
+ return await fetch({
47
42
  body: data,
48
43
  method: "post",
49
44
  url: `/api/services/${domain}/${service}`,
@@ -51,7 +46,7 @@ function FetchAPI({ logger, lifecycle, context, config, }) {
51
46
  }
52
47
  async function checkConfig() {
53
48
  logger.trace(`check config`);
54
- return await fetcher({
49
+ return await fetch({
55
50
  method: `post`,
56
51
  url: `/api/config/core/check_config`,
57
52
  });
@@ -65,13 +60,13 @@ function FetchAPI({ logger, lifecycle, context, config, }) {
65
60
  });
66
61
  }
67
62
  async function fetchEntityCustomizations(entityId) {
68
- return await fetcher({
63
+ return await fetch({
69
64
  url: `/api/config/customize/config/${entityId}`,
70
65
  });
71
66
  }
72
67
  async function fetchEntityHistory(entity_id, from, to, extra = {}) {
73
68
  logger.info({ entity_id, from: from.toISOString(), to: to.toISOString() }, `fetch entity history`);
74
- const result = await fetcher({
69
+ const result = await fetch({
75
70
  params: {
76
71
  end_time: to.toISOString(),
77
72
  filter_entity_id: entity_id,
@@ -88,7 +83,7 @@ function FetchAPI({ logger, lifecycle, context, config, }) {
88
83
  }
89
84
  async function fireEvent(event, data) {
90
85
  logger.trace({ name: event, ...data }, `Firing event`);
91
- const response = await fetcher({
86
+ const response = await fetch({
92
87
  // body: data,
93
88
  body: {},
94
89
  method: "post",
@@ -100,15 +95,15 @@ function FetchAPI({ logger, lifecycle, context, config, }) {
100
95
  }
101
96
  async function getAllEntities() {
102
97
  logger.trace(`get all entities`);
103
- return await fetcher({ url: `/api/states` });
98
+ return await fetch({ url: `/api/states` });
104
99
  }
105
100
  async function getHassConfig() {
106
101
  logger.trace(`get config`);
107
- return await fetcher({ url: `/api/config` });
102
+ return await fetch({ url: `/api/config` });
108
103
  }
109
104
  async function getLogs() {
110
105
  logger.trace(`get logs`);
111
- const results = await fetcher({
106
+ const results = await fetch({
112
107
  url: `/api/error/all`,
113
108
  });
114
109
  return results.map(i => {
@@ -119,11 +114,11 @@ function FetchAPI({ logger, lifecycle, context, config, }) {
119
114
  }
120
115
  async function getRawLogs() {
121
116
  logger.trace(`get raw logs`);
122
- return await fetcher({ process: "text", url: `/api/error_log` });
117
+ return await fetch({ process: "text", url: `/api/error_log` });
123
118
  }
124
119
  async function listServices() {
125
120
  logger.trace(`list services`);
126
- return await fetcher({ url: `/api/services` });
121
+ return await fetch({ url: `/api/services` });
127
122
  }
128
123
  async function updateEntity(entity_id, { attributes, state }) {
129
124
  const body = {};
@@ -134,11 +129,11 @@ function FetchAPI({ logger, lifecycle, context, config, }) {
134
129
  body.attributes = attributes;
135
130
  }
136
131
  logger.trace({ ...body, name: entity_id }, `set entity state`);
137
- await fetcher({ body, method: "post", url: `/api/states/${entity_id}` });
132
+ await fetch({ body, method: "post", url: `/api/states/${entity_id}` });
138
133
  }
139
134
  async function webhook(name, data = {}) {
140
135
  logger.trace({ ...data, name }, `webhook`);
141
- await fetcher({
136
+ await fetch({
142
137
  body: data,
143
138
  method: "post",
144
139
  process: "text",
@@ -147,7 +142,7 @@ function FetchAPI({ logger, lifecycle, context, config, }) {
147
142
  }
148
143
  async function checkCredentials() {
149
144
  logger.trace(`check credentials`);
150
- return await fetcher({
145
+ return await fetch({
151
146
  url: `/api/`,
152
147
  });
153
148
  }
@@ -157,7 +152,7 @@ function FetchAPI({ logger, lifecycle, context, config, }) {
157
152
  checkConfig,
158
153
  checkCredentials,
159
154
  download,
160
- fetch: fetcher,
155
+ fetch: fetch,
161
156
  fetchEntityCustomizations,
162
157
  fetchEntityHistory,
163
158
  fireEvent,
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-api.extension.js","sourceRoot":"","sources":["../../src/extensions/fetch-api.extension.ts"],"names":[],"mappings":";;;;AAAA,gDAY+B;AAC/B,0DAA0B;AAE1B,0BAaY;AAUZ,SAAgB,QAAQ,CAAC,EACvB,MAAM,EACN,SAAS,EACT,OAAO,EACP,MAAM,GACS;IACf,IAAI,OAAe,CAAC;IACpB,IAAI,UAAqB,CAAC;IAE1B,sBAAsB;IACtB,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE;QAC1B,MAAM,KAAK,GAAG,UAAG,CAAC,aAAa,CAAC;YAC9B,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ;YAC7B,OAAO;YACP,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE;SAC1D,CAAC,CAAC;QACH,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC;QACtB,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC;IAC9B,CAAC,EAAE,wBAAoB,CAAC,KAAK,CAAC,CAAC;IAE/B,KAAK,UAAU,cAAc,CAAC,EAC5B,QAAQ,EACR,KAAK,GAAG,IAAA,eAAK,GAAE,EACf,GAAG,GACkB;QACrB,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAC5B,QAAQ,CAAC,GAAG,CACV,KAAK,EAAC,GAAG,EAAC,EAAE,CAAC,MAAM,cAAc,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CACjE,CACF,CAAC;YACF,OAAO,IAAI;iBACR,IAAI,EAAE;iBACN,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACb,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;gBACrB,CAAC,CAAC,gBAAS;gBACX,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;oBACxB,CAAC,CAAC,SAAE;oBACJ,CAAC,CAAC,WAAI,CACX,CAAC;QACN,CAAC;QAED,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;QACtE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAqB;YAC/C,MAAM;YACN,GAAG,EAAE,kBAAkB,QAAQ,EAAE;SAClC,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CACV,EAAE,GAAG,MAAM,EAAE,EACb,2BAA2B,EAC3B,QAAQ,EACR,MAAM,CAAC,MAAM,CACd,CAAC;QACF,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YAC/C,GAAG,KAAK;YACR,GAAG,EAAE,IAAA,eAAK,EAAC,GAAG,CAAC,QAAQ,CAAC;YACxB,KAAK,EAAE,IAAA,eAAK,EAAC,KAAK,CAAC,QAAQ,CAAC;SAC7B,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,UAAU,WAAW,CACxB,WAAoB,EACpB,IAAsC;QAEtC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjD,OAAO,MAAM,OAAO,CAAC;YACnB,IAAI,EAAE,IAAkB;YACxB,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,iBAAiB,MAAM,IAAI,OAAO,EAAE;SAC1C,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,WAAW;QACxB,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC7B,OAAO,MAAM,OAAO,CAAC;YACnB,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,+BAA+B;SACrC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,QAAQ,CACrB,WAAmB,EACnB,SAAiC;QAEjC,MAAM,UAAU,CAAC;YACf,GAAG,SAAS;YACZ,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ;YAC7B,WAAW;YACX,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE;SAC1D,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,yBAAyB,CAKtC,QAA2B;QAC3B,OAAO,MAAM,OAAO,CAAI;YACtB,GAAG,EAAE,gCAAgC,QAAQ,EAAE;SAChD,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,kBAAkB,CAI/B,SAAiB,EACjB,IAAU,EACV,EAAQ,EACR,QAAmC,EAAE;QAErC,MAAM,CAAC,IAAI,CACT,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,WAAW,EAAE,EAAE,EAC7D,sBAAsB,CACvB,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAQ;YAClC,MAAM,EAAE;gBACN,QAAQ,EAAE,EAAE,CAAC,WAAW,EAAE;gBAC1B,gBAAgB,EAAE,SAAS;gBAC3B,GAAG,KAAK;aACT;YACD,GAAG,EAAE,uBAAuB,IAAI,CAAC,WAAW,EAAE,EAAE;SACjD,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,0BAA0B,CAAC,CAAC;YACrD,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;QACrB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,UAAU,SAAS,CACtB,KAAa,EACb,IAAW;QAEX,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,cAAc,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAsB;YAClD,cAAc;YACd,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,eAAe,KAAK,EAAE;SAC5B,CAAC,CAAC;QACH,IAAI,QAAQ,EAAE,OAAO,KAAK,SAAS,KAAK,SAAS,EAAE,CAAC;YAClD,MAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,EAAE,uCAAuC,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED,KAAK,UAAU,cAAc;QAC3B,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACjC,OAAO,MAAM,OAAO,CAA8B,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,UAAU,aAAa;QAC1B,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC3B,OAAO,MAAM,OAAO,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,UAAU,OAAO;QACpB,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACzB,MAAM,OAAO,GAAG,MAAM,OAAO,CAA+B;YAC1D,GAAG,EAAE,gBAAgB;SACtB,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACrB,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,GAAG,aAAM,CAAC,CAAC;YAC/C,CAAC,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,GAAG,aAAM,CAAC,CAAC;YACzD,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,UAAU;QACvB,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC7B,OAAO,MAAM,OAAO,CAAS,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,KAAK,UAAU,YAAY;QACzB,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC9B,OAAO,MAAM,OAAO,CAAmB,EAAE,GAAG,EAAE,eAAe,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,UAAU,YAAY,CAIzB,SAAsB,EACtB,EAAE,UAAU,EAAE,KAAK,EAA+B;QAElD,MAAM,IAAI,GAAoB,EAAE,CAAC;QACjC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,CAAC;QACD,IAAI,CAAC,SAAE,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC/B,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,kBAAkB,CAAC,CAAC;QAC/D,MAAM,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,SAAS,EAAE,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,KAAK,UAAU,OAAO,CAAC,IAAY,EAAE,OAAe,EAAE;QACpD,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC,CAAC;QAC3C,MAAM,OAAO,CAAC;YACZ,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,MAAM;YACf,GAAG,EAAE,gBAAgB,IAAI,EAAE;SAC5B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,gBAAgB;QAC7B,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAClC,OAAO,MAAM,OAAO,CAAC;YACnB,GAAG,EAAE,OAAO;SACb,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,cAAc;QACd,WAAW;QACX,WAAW;QACX,gBAAgB;QAChB,QAAQ;QACR,KAAK,EAAE,OAAO;QACd,yBAAyB;QACzB,kBAAkB;QAClB,SAAS;QACT,cAAc;QACd,SAAS,EAAE,aAAa;QACxB,OAAO;QACP,UAAU;QACV,YAAY;QACZ,YAAY;QACZ,OAAO;KACR,CAAC;AACJ,CAAC;AAzOD,4BAyOC"}
1
+ {"version":3,"file":"fetch-api.extension.js","sourceRoot":"","sources":["../../src/extensions/fetch-api.extension.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,24 @@
1
1
  import { TBlackHole, TServiceParams } from "@digital-alchemy/core";
2
2
  import { HASSIO_WS_COMMAND, OnHassEventOptions } from "..";
3
3
  export declare const SOCKET_CONNECTED = "SOCKET_CONNECTED";
4
- export declare function WebsocketAPI({ context, event, hass, config, lifecycle, logger, scheduler, }: TServiceParams): {
4
+ export declare function WebsocketAPI({ context, event, hass, config, internal, lifecycle, logger, scheduler, }: TServiceParams): {
5
+ /**
6
+ * the current state of the websocket
7
+ */
8
+ connectionState: "invalid" | "offline" | "connecting" | "connected" | "unknown";
5
9
  /**
6
10
  * Convenient wrapper for sendMessage
7
11
  */
8
- fireEvent: (event_type: string, event_data?: object) => Promise<unknown>;
9
- getConnectionActive: () => boolean;
12
+ fireEvent: (event_type: string, event_data?: object, waitForResponse?: boolean) => Promise<unknown>;
10
13
  /**
11
14
  * Set up a new websocket connection to home assistant
12
15
  *
13
16
  * This doesn't normally need to be called by applications, the extension self manages
14
17
  */
15
18
  init: () => Promise<void>;
19
+ /**
20
+ * run a callback when the socket finishes connecting
21
+ */
16
22
  onConnect: (callback: () => TBlackHole) => void;
17
23
  /**
18
24
  * Attach to the incoming stream of socket events. Do your own filtering and processing from there
@@ -20,6 +26,12 @@ export declare function WebsocketAPI({ context, event, hass, config, lifecycle,
20
26
  * Returns removal function
21
27
  */
22
28
  onEvent: <DATA extends object>({ context, label, event, once, exec, }: OnHassEventOptions<DATA>) => () => void;
29
+ /**
30
+ * when true:
31
+ * - outgoing socket messages are blocked
32
+ * - entities don't emit updates
33
+ */
34
+ pauseMessages: boolean;
23
35
  /**
24
36
  * Send a message to home assistant via the socket connection
25
37
  *
@@ -10,41 +10,138 @@ const ws_1 = tslib_1.__importDefault(require("ws"));
10
10
  const __1 = require("..");
11
11
  let connection;
12
12
  const CONNECTION_OPEN = 1;
13
- let CONNECTION_ACTIVE = false;
14
13
  const CLEANUP_INTERVAL = 5;
15
- const PING_INTERVAL = 10;
16
14
  const UNLIMITED = 0;
15
+ const CONNECTION_FAILED = 2;
17
16
  let messageCount = core_1.START;
18
17
  exports.SOCKET_CONNECTED = "SOCKET_CONNECTED";
19
- function WebsocketAPI({ context, event, hass, config, lifecycle, logger, scheduler, }) {
20
- let AUTH_TIMEOUT;
18
+ /* eslint-disable @typescript-eslint/no-magic-numbers */
19
+ var WebsocketConnectionState;
20
+ (function (WebsocketConnectionState) {
21
+ WebsocketConnectionState[WebsocketConnectionState["offline"] = 1] = "offline";
22
+ WebsocketConnectionState[WebsocketConnectionState["connecting"] = 2] = "connecting";
23
+ WebsocketConnectionState[WebsocketConnectionState["connected"] = 3] = "connected";
24
+ WebsocketConnectionState[WebsocketConnectionState["unknown"] = 4] = "unknown";
25
+ WebsocketConnectionState[WebsocketConnectionState["invalid"] = 5] = "invalid";
26
+ })(WebsocketConnectionState || (WebsocketConnectionState = {}));
27
+ function WebsocketAPI({ context, event, hass, config, internal, lifecycle, logger, scheduler, }) {
21
28
  /**
22
29
  * Local attachment points for socket events
23
30
  */
24
31
  const socketEvents = new events_1.default();
25
32
  event.setMaxListeners(UNLIMITED);
26
- let connecting;
27
33
  let MESSAGE_TIMESTAMPS = [];
34
+ let onSocketReady;
28
35
  const waitingCallback = new Map();
36
+ const isOld = (date) => core_1.is.undefined(date) || date.diff((0, dayjs_1.default)(), "s") >= config.hass.RETRY_INTERVAL;
29
37
  // Start the socket
30
38
  lifecycle.onBootstrap(async () => {
31
39
  if (config.hass.AUTO_CONNECT_SOCKET) {
32
40
  logger.debug(`auto starting connection`);
33
- await init();
41
+ await ManageConnection();
34
42
  attachScheduledFunctions();
35
43
  }
36
44
  });
45
+ let lastReceivedMessage;
46
+ let pingSleep;
47
+ let lastConnectAttempt;
48
+ let lastPingAttempt;
49
+ function setConnectionState(state) {
50
+ hass.socket.connectionState = state;
51
+ __1.SOCKET_CONNECTION_STATE.labels({ state }).set(WebsocketConnectionState[state]);
52
+ }
53
+ async function ManageConnection() {
54
+ const now = (0, dayjs_1.default)();
55
+ const name = "CheckSocket";
56
+ const threshold = config.hass.RETRY_INTERVAL * CONNECTION_FAILED;
57
+ switch (hass.socket.connectionState) {
58
+ case "connected":
59
+ if (!isOld(lastReceivedMessage)) {
60
+ // if hass is actively sending messages, don't do anything
61
+ return;
62
+ }
63
+ // 🦗 haven't heard from hass in a while
64
+ setConnectionState("unknown");
65
+ logger.trace({ name }, "no replies in a while {connected} => {unknown}");
66
+ // fall through
67
+ case "unknown":
68
+ if (!isOld(lastPingAttempt)) {
69
+ // if we very recently attempted a ping, do nothing
70
+ return;
71
+ }
72
+ // send a ping message to force a pong
73
+ logger.trace({ name }, `emitting ping`);
74
+ lastPingAttempt = now;
75
+ // emit a ping, do not wait for reply (inline)
76
+ sendMessage({ type: __1.HASSIO_WS_COMMAND.ping }, false);
77
+ // reply will be captured by this, waiting at most a second
78
+ pingSleep = (0, core_1.sleep)(core_1.SECOND);
79
+ await pingSleep;
80
+ pingSleep = undefined;
81
+ if (!isOld(lastReceivedMessage)) {
82
+ // received a least a pong
83
+ setConnectionState("connected");
84
+ logger.trace({ name }, `still there {unknown} => {connected}`);
85
+ return;
86
+ }
87
+ // 😨 hass didn't reply
88
+ if (lastReceivedMessage.diff(now, "s") < threshold) {
89
+ // take a deep breath, and try again
90
+ logger.warn({ name }, "failed to receive expected {pong}");
91
+ return;
92
+ }
93
+ // 🪦 oof, get rid of the current connection and try again
94
+ await teardown();
95
+ logger.warn({ name }, "hass stopped replying {unknown} => {offline}");
96
+ return;
97
+ case "connecting":
98
+ if (!isOld(lastConnectAttempt)) {
99
+ // schedule happened in the middle of a connect attempt
100
+ // weird but possible
101
+ return;
102
+ }
103
+ // connect probably stalled somewhere
104
+ // maybe we tried to connect before hass was actually ready for an incoming connection?
105
+ //
106
+ // reset and try again
107
+ await teardown();
108
+ logger.warn({ name }, "connection failed {connecting} => {offline}");
109
+ await ManageConnection();
110
+ return;
111
+ // fall through
112
+ case "offline":
113
+ // ### offline
114
+ // * connection identifies as offline, let's attempt to fix that
115
+ messageCount = core_1.START;
116
+ lastConnectAttempt = now;
117
+ setConnectionState("connecting");
118
+ logger.debug({ name }, "initializing new socket {offline} => {connecting}");
119
+ try {
120
+ await init();
121
+ setConnectionState("connected");
122
+ logger.info("socket connected");
123
+ }
124
+ catch (error) {
125
+ logger.error({ error, name }, "init failed {connecting} => {offline}");
126
+ await teardown();
127
+ }
128
+ return;
129
+ case "invalid":
130
+ // ### error
131
+ logger.error("socket received error, check credentials and restart application");
132
+ return;
133
+ }
134
+ }
37
135
  function attachScheduledFunctions() {
38
136
  logger.trace(`attaching interval schedules`);
39
- // Set up intervals
40
137
  scheduler.interval({
41
- exec: async () => await ping(),
42
- interval: PING_INTERVAL * core_1.SECOND,
138
+ exec: async () => await ManageConnection(),
139
+ interval: config.hass.RETRY_INTERVAL * core_1.SECOND,
43
140
  });
44
141
  scheduler.interval({
45
142
  exec: () => {
46
143
  const now = Date.now();
47
- MESSAGE_TIMESTAMPS = MESSAGE_TIMESTAMPS.filter(time => time > now - core_1.SECOND);
144
+ MESSAGE_TIMESTAMPS = MESSAGE_TIMESTAMPS.filter(time => time > now - core_1.SECOND * config.hass.SOCKET_AVG_DURATION);
48
145
  },
49
146
  interval: CLEANUP_INTERVAL * core_1.SECOND,
50
147
  });
@@ -53,58 +150,37 @@ function WebsocketAPI({ context, event, hass, config, lifecycle, logger, schedul
53
150
  logger.debug(`shutdown - tearing down connection`);
54
151
  await teardown();
55
152
  });
56
- async function ping() {
57
- if (!CONNECTION_ACTIVE) {
58
- return;
59
- }
60
- try {
61
- const pong = await sendMessage({ type: __1.HASSIO_WS_COMMAND.ping });
62
- if (pong) {
63
- return;
64
- }
65
- // Tends to happen when HA resets
66
- // Resolution is to re-connect when it's up again
67
- logger.error(`failed to pong!`);
68
- }
69
- catch (error) {
70
- logger.error({ error }, `ping error`);
71
- }
72
- logger.debug(`ping teardown`);
73
- await teardown();
74
- logger.info(`🪃 ping re-init`);
75
- await init();
76
- }
77
153
  async function teardown() {
78
154
  if (!connection) {
155
+ logger.trace("HIT1");
79
156
  return;
80
157
  }
158
+ logger.trace("HIT2");
81
159
  if (connection.readyState === CONNECTION_OPEN) {
82
160
  logger.debug(`closing current connection`);
83
- CONNECTION_ACTIVE = false;
84
161
  connection.close();
85
162
  }
86
163
  connection = undefined;
164
+ setConnectionState("offline");
87
165
  }
88
- async function fireEvent(event_type, event_data) {
89
- // logger.debug({ event_data, event_type, type: "fire_event" });
90
- return await sendMessage({ event_data, event_type, type: "fire_event" });
166
+ async function fireEvent(event_type, event_data, waitForResponse = true) {
167
+ return await sendMessage({ event_data, event_type, type: "fire_event" }, waitForResponse);
91
168
  }
92
169
  async function sendMessage(data, waitForResponse = true, subscription) {
93
- if (!connection) {
94
- logger.error("cannot send messages before socket is initialized");
95
- logger.info("🪃 on error re-init");
96
- await init();
170
+ if (hass.socket.connectionState === "offline") {
171
+ logger.error("socket is closed, cannot send message");
172
+ return undefined;
173
+ }
174
+ if (hass.socket.pauseMessages && data.type !== __1.HASSIO_WS_COMMAND.ping) {
97
175
  return undefined;
98
176
  }
99
- countMessage();
177
+ countMessage(data.type);
178
+ const id = messageCount;
100
179
  if (data.type !== __1.HASSIO_WS_COMMAND.auth) {
101
- if (!CONNECTION_ACTIVE) {
102
- logger.error({ data }, `cannot send message, connection is not open`);
103
- return undefined;
104
- }
105
- data.id = messageCount;
180
+ data.id = id;
106
181
  }
107
182
  const json = JSON.stringify(data);
183
+ const sentAt = new Date();
108
184
  connection.send(json);
109
185
  if (subscription) {
110
186
  return data.id;
@@ -112,19 +188,38 @@ function WebsocketAPI({ context, event, hass, config, lifecycle, logger, schedul
112
188
  if (!waitForResponse) {
113
189
  return undefined;
114
190
  }
115
- return new Promise(done => waitingCallback.set(messageCount, done));
191
+ return new Promise(async (done) => {
192
+ waitingCallback.set(id, done);
193
+ await (0, core_1.sleep)(config.hass.EXPECT_RESPONSE_AFTER);
194
+ if (!waitingCallback.has(id)) {
195
+ return;
196
+ }
197
+ // this could happen around dropped connections, or a number of other reasons
198
+ //
199
+ // discard the promise so whatever flow is depending on this can get garbage collected
200
+ waitingCallback.delete(id);
201
+ logger.warn({
202
+ message: data,
203
+ name: "sendMessage",
204
+ sentAt: internal.utils.relativeDate(sentAt),
205
+ }, `sent message, did not receive reply`);
206
+ });
116
207
  }
117
- function countMessage() {
208
+ function countMessage(type) {
118
209
  messageCount++;
119
210
  const now = Date.now();
120
211
  MESSAGE_TIMESTAMPS.push(now);
121
- const count = MESSAGE_TIMESTAMPS.filter(time => time > now - core_1.SECOND).length;
122
- if (count > config.hass.SOCKET_CRASH_REQUESTS_PER_SEC) {
123
- logger.fatal(`FATAL ERROR: Exceeded {CRASH_REQUESTS_PER_MIN} threshold.`);
212
+ const avgWindow = config.hass.SOCKET_AVG_DURATION;
213
+ const perSecondAverage = Math.ceil(MESSAGE_TIMESTAMPS.filter(time => time > now - core_1.SECOND * avgWindow)
214
+ .length / avgWindow);
215
+ __1.SOCKET_SENT_MESSAGES.labels({ type }).inc();
216
+ const { SOCKET_CRASH_REQUESTS_PER_SEC: crashCount, SOCKET_WARN_REQUESTS_PER_SEC: warnCount, } = config.hass;
217
+ if (perSecondAverage > crashCount) {
218
+ logger.fatal(`exceeded {CRASH_REQUESTS_PER_MIN} ([%s]) threshold`, crashCount);
124
219
  (0, process_1.exit)();
125
220
  }
126
- if (count > config.hass.SOCKET_WARN_REQUESTS_PER_SEC) {
127
- logger.warn(`message traffic ${config.hass.SOCKET_CRASH_REQUESTS_PER_SEC}>${count}>${config.hass.SOCKET_WARN_REQUESTS_PER_SEC}`);
221
+ if (perSecondAverage > warnCount) {
222
+ logger.warn(`message traffic [%s] > [%s] > [%s]`, crashCount, perSecondAverage, warnCount);
128
223
  }
129
224
  }
130
225
  function getUrl() {
@@ -136,66 +231,44 @@ function WebsocketAPI({ context, event, hass, config, lifecycle, logger, schedul
136
231
  `${protocol}//${url.hostname}${port}${path}/api/websocket`);
137
232
  }
138
233
  async function init() {
139
- const now = (0, dayjs_1.default)();
140
- if (connecting) {
141
- if (connecting.add(config.hass.RETRY_INTERVAL, "second").isAfter(now)) {
142
- logger.debug("stopped, already connecting");
143
- return;
144
- }
145
- connection = undefined;
146
- }
147
234
  if (connection) {
235
+ // logger.error({ connection });
148
236
  throw new core_1.InternalError(context, "ExistingConnection", `Destroy the current connection before creating a new one`);
149
237
  }
150
- connecting = now;
151
238
  logger.debug(`CONNECTION_ACTIVE = {false}`);
152
239
  const url = getUrl();
153
- CONNECTION_ACTIVE = false;
154
240
  try {
155
241
  messageCount = core_1.START;
156
242
  connection = new ws_1.default(url);
157
243
  connection.on("message", async (message) => {
158
244
  try {
159
- await onMessage(JSON.parse(message.toString()));
245
+ lastReceivedMessage = (0, dayjs_1.default)();
246
+ const data = JSON.parse(message.toString());
247
+ await onMessage(data);
248
+ pingSleep?.kill("continue");
160
249
  }
161
250
  catch (error) {
162
- // My expectation is `ZCC.safeExec` should trap any application errors
251
+ // My expectation is `internal.safeExec` should trap any application errors
163
252
  // This try/catch should actually be excessive
164
253
  // If this error happens, something weird is happening
165
254
  logger.error({ error }, `💣 error bubbled up from websocket message event handler`);
166
255
  }
167
256
  });
168
257
  connection.on("error", async (error) => {
169
- logger.error({ error: error.message || error }, "Socket error");
170
- if (!CONNECTION_ACTIVE) {
171
- await (0, core_1.sleep)(config.hass.RETRY_INTERVAL);
172
- await teardown();
173
- logger.info("🪃 on error re-init");
174
- await (0, core_1.sleep)(core_1.SECOND);
175
- await init();
258
+ logger.error({ error: error }, "Socket error");
259
+ if (hass.socket.connectionState === "connected") {
260
+ setConnectionState("unknown");
176
261
  }
177
262
  });
178
263
  connection.on("close", async () => {
179
264
  logger.warn("connection closed");
180
265
  await teardown();
181
- await (0, core_1.sleep)(config.hass.RETRY_INTERVAL);
182
- logger.info("🪃 on close re-init");
183
- await init();
184
- });
185
- return await new Promise(done => {
186
- connection.once("open", () => {
187
- connecting = undefined;
188
- done();
189
- });
190
266
  });
267
+ return await new Promise(done => (onSocketReady = done));
191
268
  }
192
269
  catch (error) {
193
270
  logger.error({ error, url }, `initConnection error`);
194
- connecting = undefined;
195
- setTimeout(async () => {
196
- logger.debug(`🪃 retry re-init`);
197
- await init();
198
- }, config.hass.RETRY_INTERVAL);
271
+ setConnectionState("offline");
199
272
  }
200
273
  }
201
274
  /**
@@ -216,37 +289,32 @@ function WebsocketAPI({ context, event, hass, config, lifecycle, logger, schedul
216
289
  */
217
290
  async function onMessage(message) {
218
291
  const id = Number(message.id);
292
+ __1.SOCKET_RECEIVED_MESSAGES.labels({ type: message.type }).inc();
219
293
  switch (message.type) {
220
294
  case __1.HassSocketMessageTypes.auth_required:
221
295
  logger.debug(`sending authentication`);
222
- return await sendAuth();
296
+ sendMessage({ access_token: config.hass.TOKEN, type: __1.HASSIO_WS_COMMAND.auth }, false);
297
+ return;
223
298
  case __1.HassSocketMessageTypes.auth_ok:
224
299
  logger.debug(`CONNECTION_ACTIVE = {true}`);
225
300
  // * Flag as valid connection
226
- CONNECTION_ACTIVE = true;
227
- connecting = undefined;
228
- event.emit(exports.SOCKET_CONNECTED);
229
- clearTimeout(AUTH_TIMEOUT);
230
301
  logger.debug(`event subscriptions starting`);
231
302
  await sendMessage({ type: __1.HASSIO_WS_COMMAND.subscribe_events }, false);
232
- event.emit(__1.ON_SOCKET_AUTH);
303
+ onSocketReady();
304
+ event.emit(exports.SOCKET_CONNECTED);
233
305
  return;
234
306
  case __1.HassSocketMessageTypes.event:
235
307
  return await onMessageEvent(id, message);
236
308
  case __1.HassSocketMessageTypes.pong:
237
309
  // 🏓
238
- if (waitingCallback.has(id)) {
239
- const f = waitingCallback.get(id);
240
- waitingCallback.delete(id);
241
- f(message);
242
- }
243
310
  return;
244
311
  case __1.HassSocketMessageTypes.result:
245
312
  return await onMessageResult(id, message);
246
313
  case __1.HassSocketMessageTypes.auth_invalid:
247
- logger.debug(`CONNECTION_ACTIVE = {false}`);
248
- CONNECTION_ACTIVE = false;
249
- logger.fatal(message.message);
314
+ setConnectionState("invalid");
315
+ logger.fatal({ message }, "auth_invalid");
316
+ // ? If you have a use case for making this exit configurable, open a ticket
317
+ (0, process_1.exit)();
250
318
  return;
251
319
  default:
252
320
  // Code error probably
@@ -273,6 +341,9 @@ function WebsocketAPI({ context, event, hass, config, lifecycle, logger, schedul
273
341
  return;
274
342
  }
275
343
  }
344
+ if (hass.socket.pauseMessages) {
345
+ return;
346
+ }
276
347
  if (waitingCallback.has(id)) {
277
348
  const f = waitingCallback.get(id);
278
349
  waitingCallback.delete(id);
@@ -290,20 +361,10 @@ function WebsocketAPI({ context, event, hass, config, lifecycle, logger, schedul
290
361
  f(message.result);
291
362
  }
292
363
  }
293
- async function sendAuth() {
294
- AUTH_TIMEOUT = setTimeout(() => {
295
- logger.error(`did not receive an auth response, retrying`);
296
- sendAuth();
297
- }, config.hass.RETRY_INTERVAL);
298
- await sendMessage({
299
- access_token: config.hass.TOKEN,
300
- type: __1.HASSIO_WS_COMMAND.auth,
301
- });
302
- }
303
364
  function onEvent({ context, label, event, once, exec, }) {
304
365
  logger.trace({ context, event }, `attaching socket event listener`);
305
366
  const callback = async (data) => {
306
- await core_1.ZCC.safeExec({
367
+ await internal.safeExec({
307
368
  duration: __1.SOCKET_EVENT_EXECUTION_TIME,
308
369
  errors: __1.SOCKET_EVENT_ERRORS,
309
370
  exec: async () => await exec(data),
@@ -323,21 +384,33 @@ function WebsocketAPI({ context, event, hass, config, lifecycle, logger, schedul
323
384
  };
324
385
  }
325
386
  return {
387
+ /**
388
+ * the current state of the websocket
389
+ */
390
+ connectionState: "offline",
326
391
  /**
327
392
  * Convenient wrapper for sendMessage
328
393
  */
329
394
  fireEvent,
330
- getConnectionActive: () => CONNECTION_ACTIVE,
331
395
  /**
332
396
  * Set up a new websocket connection to home assistant
333
397
  *
334
398
  * This doesn't normally need to be called by applications, the extension self manages
335
399
  */
336
400
  init,
401
+ /**
402
+ * run a callback when the socket finishes connecting
403
+ */
337
404
  onConnect: (callback) => {
338
- event.on(exports.SOCKET_CONNECTED, async () => {
339
- await core_1.ZCC.safeExec(async () => await callback());
340
- });
405
+ const wrapped = async () => {
406
+ await internal.safeExec(async () => await callback());
407
+ };
408
+ if (hass.socket.connectionState === "connected") {
409
+ logger.warn(`added [onConnect] callback after socket was already connected, running immediately`);
410
+ setImmediate(wrapped);
411
+ // attach anyways, for restarts or whatever
412
+ }
413
+ event.on(exports.SOCKET_CONNECTED, wrapped);
341
414
  },
342
415
  /**
343
416
  * Attach to the incoming stream of socket events. Do your own filtering and processing from there
@@ -345,6 +418,12 @@ function WebsocketAPI({ context, event, hass, config, lifecycle, logger, schedul
345
418
  * Returns removal function
346
419
  */
347
420
  onEvent,
421
+ /**
422
+ * when true:
423
+ * - outgoing socket messages are blocked
424
+ * - entities don't emit updates
425
+ */
426
+ pauseMessages: false,
348
427
  /**
349
428
  * Send a message to home assistant via the socket connection
350
429
  *
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-api.extension.js","sourceRoot":"","sources":["../../src/extensions/websocket-api.extension.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"websocket-api.extension.js","sourceRoot":"","sources":["../../src/extensions/websocket-api.extension.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
+ import { StringConfig } from "@digital-alchemy/core";
1
2
  import { CallProxy, Configure, EntityManager, FetchAPI, Utilities, WebsocketAPI } from "./extensions";
3
+ type AllowRestOptions = "prefer" | "allow" | "forbid";
2
4
  export declare const LIB_HASS: import("@digital-alchemy/core").LibraryDefinition<{
3
5
  /**
4
6
  * general service calling interface
@@ -40,11 +42,22 @@ export declare const LIB_HASS: import("@digital-alchemy/core").LibraryDefinition
40
42
  description: string;
41
43
  type: "string";
42
44
  };
45
+ CALL_PROXY_ALLOW_REST: StringConfig<AllowRestOptions>;
46
+ EXPECT_RESPONSE_AFTER: {
47
+ default: number;
48
+ description: string;
49
+ type: "number";
50
+ };
43
51
  RETRY_INTERVAL: {
44
52
  default: number;
45
53
  description: string;
46
54
  type: "number";
47
55
  };
56
+ SOCKET_AVG_DURATION: {
57
+ default: number;
58
+ description: string;
59
+ type: "number";
60
+ };
48
61
  SOCKET_CRASH_REQUESTS_PER_SEC: {
49
62
  default: number;
50
63
  description: string;
@@ -78,3 +91,4 @@ declare module "@digital-alchemy/core" {
78
91
  hass: typeof LIB_HASS;
79
92
  }
80
93
  }
94
+ export {};
@@ -20,11 +20,30 @@ exports.LIB_HASS = (0, core_1.CreateLibrary)({
20
20
  description: "Url to reach Home Assistant at",
21
21
  type: "string",
22
22
  },
23
+ CALL_PROXY_ALLOW_REST: {
24
+ default: "allow",
25
+ description: [
26
+ "Send commands from hass.call via rest instead of socket",
27
+ "Allow = only if socket is not connected",
28
+ ],
29
+ enum: ["prefer", "forbid", "allow"],
30
+ type: "string",
31
+ },
32
+ EXPECT_RESPONSE_AFTER: {
33
+ default: 5,
34
+ description: "If sendMessage was set to expect a response, a warning will be emitted after this delay if one is not received",
35
+ type: "number",
36
+ },
23
37
  RETRY_INTERVAL: {
24
- default: 5000,
38
+ default: 5,
25
39
  description: "How often to retry connecting on connection failure (ms).",
26
40
  type: "number",
27
41
  },
42
+ SOCKET_AVG_DURATION: {
43
+ default: 5,
44
+ description: "How many seconds worth of requests to use in avg for math in REQ_PER_SEC calculations",
45
+ type: "number",
46
+ },
28
47
  SOCKET_CRASH_REQUESTS_PER_SEC: {
29
48
  default: 500,
30
49
  description: "Socket service will commit sudoku if more than this many outgoing messages are sent to Home Assistant in a second. Usually indicates runaway code.",
@@ -1 +1 @@
1
- {"version":3,"file":"hass.module.js","sourceRoot":"","sources":["../src/hass.module.ts"],"names":[],"mappings":";;;AAAA,gDAAsD;AAEtD,6CAOsB;AAET,QAAA,QAAQ,GAAG,IAAA,oBAAa,EAAC;IACpC,aAAa,EAAE;QACb,mBAAmB,EAAE;YACnB,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,wDAAwD;YACrE,IAAI,EAAE,SAAS;SAChB;QACD,oBAAoB,EAAE;YACpB,OAAO,EAAE,IAAI;YACb,WAAW,EACT,+DAA+D;YACjE,IAAI,EAAE,SAAS;SAChB;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,iCAAiC;YAC1C,WAAW,EAAE,gCAAgC;YAC7C,IAAI,EAAE,QAAQ;SACf;QACD,cAAc,EAAE;YACd,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,2DAA2D;YACxE,IAAI,EAAE,QAAQ;SACf;QACD,6BAA6B,EAAE;YAC7B,OAAO,EAAE,GAAG;YACZ,WAAW,EACT,oJAAoJ;YACtJ,IAAI,EAAE,QAAQ;SACf;QACD,4BAA4B,EAAE;YAC5B,OAAO,EAAE,GAAG;YACZ,WAAW,EACT,kHAAkH;YACpH,IAAI,EAAE,QAAQ;SACf;QACD,KAAK,EAAE;YACL,WAAW,EAAE,4CAA4C;YACzD,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,QAAQ;SACf;QACD,sBAAsB,EAAE;YACtB,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,qCAAqC;YAClD,IAAI,EAAE,SAAS;SAChB;QACD,aAAa,EAAE;YACb,WAAW,EAAE,8GAA8G;YAC3H,IAAI,EAAE,QAAQ;SACf;KACF;IACD,IAAI,EAAE,MAAM;IACZ,oCAAoC;IACpC,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;IAChC,QAAQ,EAAE;QACR;;WAEG;QACH,IAAI,EAAE,sBAAS;QAEf;;WAEG;QACH,SAAS,EAAE,sBAAS;QAEpB;;WAEG;QACH,MAAM,EAAE,0BAAa;QAErB;;WAEG;QACH,KAAK,EAAE,qBAAQ;QAEf;;WAEG;QACH,MAAM,EAAE,yBAAY;QAEpB;;WAEG;QACH,KAAK,EAAE,sBAAS;KACjB;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"hass.module.js","sourceRoot":"","sources":["../src/hass.module.ts"],"names":[],"mappings":";;;AAAA,gDAAoE;AAEpE,6CAOsB;AAIT,QAAA,QAAQ,GAAG,IAAA,oBAAa,EAAC;IACpC,aAAa,EAAE;QACb,mBAAmB,EAAE;YACnB,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,wDAAwD;YACrE,IAAI,EAAE,SAAS;SAChB;QACD,oBAAoB,EAAE;YACpB,OAAO,EAAE,IAAI;YACb,WAAW,EACT,+DAA+D;YACjE,IAAI,EAAE,SAAS;SAChB;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,iCAAiC;YAC1C,WAAW,EAAE,gCAAgC;YAC7C,IAAI,EAAE,QAAQ;SACf;QACD,qBAAqB,EAAE;YACrB,OAAO,EAAE,OAAO;YAChB,WAAW,EAAE;gBACX,yDAAyD;gBACzD,yCAAyC;aAC1C;YACD,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC;YACnC,IAAI,EAAE,QAAQ;SACmB;QACnC,qBAAqB,EAAE;YACrB,OAAO,EAAE,CAAC;YACV,WAAW,EACT,gHAAgH;YAClH,IAAI,EAAE,QAAQ;SACf;QACD,cAAc,EAAE;YACd,OAAO,EAAE,CAAC;YACV,WAAW,EAAE,2DAA2D;YACxE,IAAI,EAAE,QAAQ;SACf;QACD,mBAAmB,EAAE;YACnB,OAAO,EAAE,CAAC;YACV,WAAW,EACT,uFAAuF;YACzF,IAAI,EAAE,QAAQ;SACf;QACD,6BAA6B,EAAE;YAC7B,OAAO,EAAE,GAAG;YACZ,WAAW,EACT,oJAAoJ;YACtJ,IAAI,EAAE,QAAQ;SACf;QACD,4BAA4B,EAAE;YAC5B,OAAO,EAAE,GAAG;YACZ,WAAW,EACT,kHAAkH;YACpH,IAAI,EAAE,QAAQ;SACf;QACD,KAAK,EAAE;YACL,WAAW,EAAE,4CAA4C;YACzD,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,QAAQ;SACf;QACD,sBAAsB,EAAE;YACtB,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,qCAAqC;YAClD,IAAI,EAAE,SAAS;SAChB;QACD,aAAa,EAAE;YACb,WAAW,EAAE,8GAA8G;YAC3H,IAAI,EAAE,QAAQ;SACf;KACF;IACD,IAAI,EAAE,MAAM;IACZ,oCAAoC;IACpC,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;IAChC,QAAQ,EAAE;QACR;;WAEG;QACH,IAAI,EAAE,sBAAS;QAEf;;WAEG;QACH,SAAS,EAAE,sBAAS;QAEpB;;WAEG;QACH,MAAM,EAAE,0BAAa;QAErB;;WAEG;QACH,KAAK,EAAE,qBAAQ;QAEf;;WAEG;QACH,MAAM,EAAE,yBAAY;QAEpB;;WAEG;QACH,KAAK,EAAE,sBAAS;KACjB;CACF,CAAC,CAAC"}
@@ -2,7 +2,6 @@ export declare const HASS_ENTITY = "HASS_ENTITY";
2
2
  export declare const HASS_ENTITY_GROUP = "HASS_ENTITY_GROUP";
3
3
  export declare const ALL_ENTITIES_UPDATED = "ALL_ENTITIES_UPDATED";
4
4
  export declare const SOCKET_READY = "SOCKET_READY";
5
- export declare const ON_SOCKET_AUTH = "ON_SOCKET_AUTH";
6
5
  export declare enum HASSIO_WS_COMMAND {
7
6
  area_list = "config/area_registry/list",
8
7
  auth = "auth",
@@ -1,11 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.HOME_ASSISTANT_MODULE_CONFIGURATION = exports.HassSocketMessageTypes = exports.HASSIO_WS_COMMAND = exports.ON_SOCKET_AUTH = exports.SOCKET_READY = exports.ALL_ENTITIES_UPDATED = exports.HASS_ENTITY_GROUP = exports.HASS_ENTITY = void 0;
3
+ exports.HOME_ASSISTANT_MODULE_CONFIGURATION = exports.HassSocketMessageTypes = exports.HASSIO_WS_COMMAND = exports.SOCKET_READY = exports.ALL_ENTITIES_UPDATED = exports.HASS_ENTITY_GROUP = exports.HASS_ENTITY = void 0;
4
4
  exports.HASS_ENTITY = "HASS_ENTITY";
5
5
  exports.HASS_ENTITY_GROUP = "HASS_ENTITY_GROUP";
6
6
  exports.ALL_ENTITIES_UPDATED = "ALL_ENTITIES_UPDATED";
7
7
  exports.SOCKET_READY = "SOCKET_READY";
8
- exports.ON_SOCKET_AUTH = "ON_SOCKET_AUTH";
9
8
  var HASSIO_WS_COMMAND;
10
9
  (function (HASSIO_WS_COMMAND) {
11
10
  // Found a use for
@@ -1 +1 @@
1
- {"version":3,"file":"constants.helper.js","sourceRoot":"","sources":["../../src/helpers/constants.helper.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG,aAAa,CAAC;AAC5B,QAAA,iBAAiB,GAAG,mBAAmB,CAAC;AACxC,QAAA,oBAAoB,GAAG,sBAAsB,CAAC;AAC9C,QAAA,YAAY,GAAG,cAAc,CAAC;AAC9B,QAAA,cAAc,GAAG,gBAAgB,CAAC;AAE/C,IAAY,iBA0CX;AA1CD,WAAY,iBAAiB;IAC3B,kBAAkB;IAClB,4DAAuC,CAAA;IACvC,kCAAa,CAAA;IACb,kDAA6B,CAAA;IAC7B,gEAA2C,CAAA;IAC3C,wFAAmE,CAAA;IACnE,gEAA2C,CAAA;IAC3C,oEAA+C,CAAA;IAC/C,sEAAiD,CAAA;IACjD,8CAAyB,CAAA;IACzB,wDAAmC,CAAA;IACnC,oDAA+B,CAAA;IAC/B,4EAAuD,CAAA;IACvD,gDAA2B,CAAA;IAC3B,uDAAkC,CAAA;IAClC,8CAAyB,CAAA;IACzB,8CAAyB,CAAA;IACzB,kCAAa,CAAA;IACb,gEAA2C,CAAA;IAC3C,wDAAmC,CAAA;IACnC,sDAAiC,CAAA;IACjC,4DAAuC,CAAA;IACvC,0DAAqC,CAAA;IACrC,kBAAkB;IAClB,uDAAkC,CAAA;IAClC,4EAAuD,CAAA;IACvD,0DAAqC,CAAA;IACrC,yDAAoC,CAAA;IACpC,sDAAiC,CAAA;IACjC,8DAAyC,CAAA;IACzC,qCAAqC;IACrC,4CAAuB,CAAA;IACvB,mDAA8B,CAAA;IAC9B,kDAA6B,CAAA;IAC7B,uDAAkC,CAAA;IAClC,uDAAkC,CAAA;IAClC,6DAAwC,CAAA;IACxC,wDAAmC,CAAA;IACnC,8DAAyC,CAAA;IACzC,wCAAmB,CAAA;IACnB,+DAA0C,CAAA;AAC5C,CAAC,EA1CW,iBAAiB,iCAAjB,iBAAiB,QA0C5B;AAED,IAAY,sBAOX;AAPD,WAAY,sBAAsB;IAChC,yDAA+B,CAAA;IAC/B,6CAAmB,CAAA;IACnB,yCAAe,CAAA;IACf,2CAAiB,CAAA;IACjB,uCAAa,CAAA;IACb,uDAA6B,CAAA;AAC/B,CAAC,EAPW,sBAAsB,sCAAtB,sBAAsB,QAOjC;AAEY,QAAA,mCAAmC,GAC9C,qCAAqC,CAAC"}
1
+ {"version":3,"file":"constants.helper.js","sourceRoot":"","sources":["../../src/helpers/constants.helper.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG,aAAa,CAAC;AAC5B,QAAA,iBAAiB,GAAG,mBAAmB,CAAC;AACxC,QAAA,oBAAoB,GAAG,sBAAsB,CAAC;AAC9C,QAAA,YAAY,GAAG,cAAc,CAAC;AAE3C,IAAY,iBA0CX;AA1CD,WAAY,iBAAiB;IAC3B,kBAAkB;IAClB,4DAAuC,CAAA;IACvC,kCAAa,CAAA;IACb,kDAA6B,CAAA;IAC7B,gEAA2C,CAAA;IAC3C,wFAAmE,CAAA;IACnE,gEAA2C,CAAA;IAC3C,oEAA+C,CAAA;IAC/C,sEAAiD,CAAA;IACjD,8CAAyB,CAAA;IACzB,wDAAmC,CAAA;IACnC,oDAA+B,CAAA;IAC/B,4EAAuD,CAAA;IACvD,gDAA2B,CAAA;IAC3B,uDAAkC,CAAA;IAClC,8CAAyB,CAAA;IACzB,8CAAyB,CAAA;IACzB,kCAAa,CAAA;IACb,gEAA2C,CAAA;IAC3C,wDAAmC,CAAA;IACnC,sDAAiC,CAAA;IACjC,4DAAuC,CAAA;IACvC,0DAAqC,CAAA;IACrC,kBAAkB;IAClB,uDAAkC,CAAA;IAClC,4EAAuD,CAAA;IACvD,0DAAqC,CAAA;IACrC,yDAAoC,CAAA;IACpC,sDAAiC,CAAA;IACjC,8DAAyC,CAAA;IACzC,qCAAqC;IACrC,4CAAuB,CAAA;IACvB,mDAA8B,CAAA;IAC9B,kDAA6B,CAAA;IAC7B,uDAAkC,CAAA;IAClC,uDAAkC,CAAA;IAClC,6DAAwC,CAAA;IACxC,wDAAmC,CAAA;IACnC,8DAAyC,CAAA;IACzC,wCAAmB,CAAA;IACnB,+DAA0C,CAAA;AAC5C,CAAC,EA1CW,iBAAiB,iCAAjB,iBAAiB,QA0C5B;AAED,IAAY,sBAOX;AAPD,WAAY,sBAAsB;IAChC,yDAA+B,CAAA;IAC/B,6CAAmB,CAAA;IACnB,yCAAe,CAAA;IACf,2CAAiB,CAAA;IACjB,uCAAa,CAAA;IACb,uDAA6B,CAAA;AAC/B,CAAC,EAPW,sBAAsB,sCAAtB,sBAAsB,QAOjC;AAEY,QAAA,mCAAmC,GAC9C,qCAAqC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { Counter, Summary } from "prom-client";
1
+ import { Counter, Gauge, Summary } from "prom-client";
2
2
  /**
3
3
  * Tracks the number of times a socket event callback has been executed.
4
4
  */
@@ -7,7 +7,19 @@ export declare const SOCKET_EVENT_EXECUTION_COUNT: Counter<"event" | "context" |
7
7
  * Counts the number of errors occurred during socket event callback executions.
8
8
  */
9
9
  export declare const SOCKET_EVENT_ERRORS: Counter<"event" | "context" | "label">;
10
+ /**
11
+ * Counts the number of errors occurred during socket event callback executions.
12
+ */
13
+ export declare const SOCKET_SENT_MESSAGES: Counter<"type">;
14
+ /**
15
+ * Counts the number of errors occurred during socket event callback executions.
16
+ */
17
+ export declare const SOCKET_RECEIVED_MESSAGES: Counter<"type">;
10
18
  /**
11
19
  * Summary for Execution Time
12
20
  */
13
21
  export declare const SOCKET_EVENT_EXECUTION_TIME: Summary<"event" | "context" | "label">;
22
+ /**
23
+ * Show the current state
24
+ */
25
+ export declare const SOCKET_CONNECTION_STATE: Gauge<"state">;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SOCKET_EVENT_EXECUTION_TIME = exports.SOCKET_EVENT_ERRORS = exports.SOCKET_EVENT_EXECUTION_COUNT = void 0;
3
+ exports.SOCKET_CONNECTION_STATE = exports.SOCKET_EVENT_EXECUTION_TIME = exports.SOCKET_RECEIVED_MESSAGES = exports.SOCKET_SENT_MESSAGES = exports.SOCKET_EVENT_ERRORS = exports.SOCKET_EVENT_EXECUTION_COUNT = void 0;
4
4
  const prom_client_1 = require("prom-client");
5
5
  /**
6
6
  * Tracks the number of times a socket event callback has been executed.
@@ -18,6 +18,22 @@ exports.SOCKET_EVENT_ERRORS = new prom_client_1.Counter({
18
18
  labelNames: ["context", "label", "event"],
19
19
  name: "digital_alchemy_home_assistant_socket_event_callback_errors",
20
20
  });
21
+ /**
22
+ * Counts the number of errors occurred during socket event callback executions.
23
+ */
24
+ exports.SOCKET_SENT_MESSAGES = new prom_client_1.Counter({
25
+ help: "Counts the number of outgoing sent messages",
26
+ labelNames: ["type"],
27
+ name: "digital_alchemy_home_assistant_socket_sent_messages",
28
+ });
29
+ /**
30
+ * Counts the number of errors occurred during socket event callback executions.
31
+ */
32
+ exports.SOCKET_RECEIVED_MESSAGES = new prom_client_1.Counter({
33
+ help: "Counts the number of incoming socket messages",
34
+ labelNames: ["type"],
35
+ name: "digital_alchemy_home_assistant_socket_received_messages",
36
+ });
21
37
  /**
22
38
  * Summary for Execution Time
23
39
  */
@@ -27,4 +43,12 @@ exports.SOCKET_EVENT_EXECUTION_TIME = new prom_client_1.Summary({
27
43
  name: "digital_alchemy_home_assistant_socket_event_callback_execution_time",
28
44
  percentiles: [0.5, 0.9, 0.99],
29
45
  });
46
+ /**
47
+ * Show the current state
48
+ */
49
+ exports.SOCKET_CONNECTION_STATE = new prom_client_1.Gauge({
50
+ help: "The current connection to home assistant state, observable as a metrics",
51
+ labelNames: ["state"],
52
+ name: "digital_alchemy_home_assistant_socket_connection_state",
53
+ });
30
54
  //# sourceMappingURL=metrics.helper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.helper.js","sourceRoot":"","sources":["../../src/helpers/metrics.helper.ts"],"names":[],"mappings":";;;AAAA,6CAA+C;AAE/C;;GAEG;AACU,QAAA,4BAA4B,GAAG,IAAI,qBAAO,CAAC;IACtD,IAAI,EAAE,sEAAsE;IAC5E,UAAU,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAU;IAClD,IAAI,EAAE,sEAAsE;CAC7E,CAAC,CAAC;AAEH;;GAEG;AACU,QAAA,mBAAmB,GAAG,IAAI,qBAAO,CAAC;IAC7C,IAAI,EAAE,qEAAqE;IAC3E,UAAU,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAU;IAClD,IAAI,EAAE,6DAA6D;CACpE,CAAC,CAAC;AAEH;;GAEG;AACU,QAAA,2BAA2B,GAAG,IAAI,qBAAO,CAAC;IACrD,IAAI,EAAE,+DAA+D;IACrE,UAAU,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAU;IAClD,IAAI,EAAE,qEAAqE;IAC3E,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC;CAC9B,CAAC,CAAC"}
1
+ {"version":3,"file":"metrics.helper.js","sourceRoot":"","sources":["../../src/helpers/metrics.helper.ts"],"names":[],"mappings":";;;AAAA,6CAAsD;AAEtD;;GAEG;AACU,QAAA,4BAA4B,GAAG,IAAI,qBAAO,CAAC;IACtD,IAAI,EAAE,sEAAsE;IAC5E,UAAU,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAU;IAClD,IAAI,EAAE,sEAAsE;CAC7E,CAAC,CAAC;AAEH;;GAEG;AACU,QAAA,mBAAmB,GAAG,IAAI,qBAAO,CAAC;IAC7C,IAAI,EAAE,qEAAqE;IAC3E,UAAU,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAU;IAClD,IAAI,EAAE,6DAA6D;CACpE,CAAC,CAAC;AAEH;;GAEG;AACU,QAAA,oBAAoB,GAAG,IAAI,qBAAO,CAAC;IAC9C,IAAI,EAAE,6CAA6C;IACnD,UAAU,EAAE,CAAC,MAAM,CAAU;IAC7B,IAAI,EAAE,qDAAqD;CAC5D,CAAC,CAAC;AAEH;;GAEG;AACU,QAAA,wBAAwB,GAAG,IAAI,qBAAO,CAAC;IAClD,IAAI,EAAE,+CAA+C;IACrD,UAAU,EAAE,CAAC,MAAM,CAAU;IAC7B,IAAI,EAAE,yDAAyD;CAChE,CAAC,CAAC;AAEH;;GAEG;AACU,QAAA,2BAA2B,GAAG,IAAI,qBAAO,CAAC;IACrD,IAAI,EAAE,+DAA+D;IACrE,UAAU,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAU;IAClD,IAAI,EAAE,qEAAqE;IAC3E,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC;CAC9B,CAAC,CAAC;AAEH;;GAEG;AACU,QAAA,uBAAuB,GAAG,IAAI,mBAAK,CAAC;IAC/C,IAAI,EAAE,yEAAyE;IAC/E,UAAU,EAAE,CAAC,OAAO,CAAU;IAC9B,IAAI,EAAE,wDAAwD;CAC/D,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@digital-alchemy/hass",
3
3
  "repository": "https://github.com/Digital-Alchemy-TS/hass",
4
- "version": "0.2.0",
4
+ "version": "0.2.2",
5
5
  "scripts": {
6
6
  "build": "tsc",
7
7
  "lint": "eslint src",