@digital-alchemy/hass 0.2.0 → 0.2.1
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 +53 -0
- package/dist/extensions/call-proxy.extension.d.ts +0 -1
- package/dist/extensions/call-proxy.extension.js +11 -10
- package/dist/extensions/call-proxy.extension.js.map +1 -1
- package/dist/extensions/config.extension.js +1 -1
- package/dist/extensions/config.extension.js.map +1 -1
- package/dist/extensions/entity-manager.extension.d.ts +1 -1
- package/dist/extensions/entity-manager.extension.js +13 -11
- package/dist/extensions/entity-manager.extension.js.map +1 -1
- package/dist/extensions/fetch-api.extension.d.ts +3 -3
- package/dist/extensions/fetch-api.extension.js +20 -25
- package/dist/extensions/fetch-api.extension.js.map +1 -1
- package/dist/extensions/websocket-api.extension.d.ts +11 -2
- package/dist/extensions/websocket-api.extension.js +27 -13
- package/dist/extensions/websocket-api.extension.js.map +1 -1
- package/package.json +1 -1
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
|
+

|
|
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 | |
|
|
@@ -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
|
*
|
|
@@ -42,6 +43,9 @@ function CallProxy({ logger, lifecycle, context, hass, config, }) {
|
|
|
42
43
|
}),
|
|
43
44
|
]));
|
|
44
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* perform the initial load for the
|
|
48
|
+
*/
|
|
45
49
|
async function loadServiceList(recursion = core_1.START) {
|
|
46
50
|
logger.info(`fetching service list`);
|
|
47
51
|
services = await hass.fetch.listServices();
|
|
@@ -57,32 +61,29 @@ function CallProxy({ logger, lifecycle, context, hass, config, }) {
|
|
|
57
61
|
}
|
|
58
62
|
domains = services.map(i => i.domain);
|
|
59
63
|
services.forEach(value => {
|
|
60
|
-
|
|
64
|
+
const services = Object.keys(value.services);
|
|
65
|
+
rawProxy[value.domain] = Object.fromEntries(services.map(i => [i, core_1.noop]));
|
|
66
|
+
logger.trace({ services }, `loaded domain [%s]`, value.domain);
|
|
61
67
|
});
|
|
62
68
|
}
|
|
63
69
|
/**
|
|
64
70
|
* Prefer sending via socket, if available.
|
|
65
71
|
*/
|
|
66
72
|
async function sendMessage(serviceName, service_data) {
|
|
67
|
-
if (!hass.socket.
|
|
73
|
+
if (!hass.socket.connectionActive) {
|
|
68
74
|
return await hass.fetch.callService(serviceName, service_data);
|
|
69
75
|
}
|
|
70
76
|
const [domain, service] = serviceName.split(".");
|
|
77
|
+
const type = __1.HASSIO_WS_COMMAND.call_service;
|
|
71
78
|
// 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);
|
|
79
|
+
return await hass.socket.sendMessage({ domain, service, service_data, type }, true);
|
|
78
80
|
}
|
|
79
81
|
function buildCallProxy() {
|
|
80
|
-
return new Proxy(
|
|
82
|
+
return new Proxy(rawProxy, {
|
|
81
83
|
get: (_, domain) => getDomain(domain),
|
|
82
84
|
});
|
|
83
85
|
}
|
|
84
86
|
return buildCallProxy();
|
|
85
87
|
}
|
|
86
88
|
exports.CallProxy = CallProxy;
|
|
87
|
-
exports.default = CallProxy;
|
|
88
89
|
//# 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":";;;AAAA,
|
|
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
|
-
|
|
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,
|
|
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,7 @@ function EntityManager({ logger, hass, lifecycle }) {
|
|
|
28
28
|
// # Methods
|
|
29
29
|
// ## Retrieve raw state object for entity
|
|
30
30
|
function getCurrentState(entity_id) {
|
|
31
|
-
return
|
|
31
|
+
return internal.utils.object.get(MASTER_STATE, entity_id);
|
|
32
32
|
}
|
|
33
33
|
// ## Proxy version of the logic
|
|
34
34
|
function proxyGetLogic(entity, property) {
|
|
@@ -45,12 +45,12 @@ function EntityManager({ logger, hass, lifecycle }) {
|
|
|
45
45
|
if (!current) {
|
|
46
46
|
logger.error({ defaultValue, name: entity, property }, `proxyGetLogic cannot find entity`);
|
|
47
47
|
}
|
|
48
|
-
return
|
|
48
|
+
return internal.utils.object.get(current, property) || defaultValue;
|
|
49
49
|
}
|
|
50
50
|
// ## Retrieve a proxy by id
|
|
51
51
|
function byId(entity_id) {
|
|
52
52
|
if (!ENTITY_PROXIES.has(entity_id)) {
|
|
53
|
-
ENTITY_PROXIES.set(entity_id, new Proxy(
|
|
53
|
+
ENTITY_PROXIES.set(entity_id, new Proxy(getCurrentState(entity_id), {
|
|
54
54
|
// things that shouldn't be needed: this extract
|
|
55
55
|
get: (_, property) => {
|
|
56
56
|
if (property === "onUpdate") {
|
|
@@ -136,11 +136,11 @@ function EntityManager({ logger, hass, lifecycle }) {
|
|
|
136
136
|
states.forEach(entity => {
|
|
137
137
|
// ? Set first, ensure data is populated
|
|
138
138
|
// `nextTick` will fire AFTER loop finishes
|
|
139
|
-
|
|
139
|
+
internal.utils.object.set(MASTER_STATE, entity.entity_id, entity, core_1.is.undefined(internal.utils.object.get(oldState, entity.entity_id)));
|
|
140
140
|
if (!init) {
|
|
141
141
|
return;
|
|
142
142
|
}
|
|
143
|
-
const old =
|
|
143
|
+
const old = internal.utils.object.get(oldState, entity.entity_id);
|
|
144
144
|
if (core_1.is.equal(old, entity)) {
|
|
145
145
|
logger.trace({ name: entity.entity_id }, `no change on refresh`);
|
|
146
146
|
return;
|
|
@@ -150,22 +150,24 @@ function EntityManager({ logger, hass, lifecycle }) {
|
|
|
150
150
|
// Attempt to not blow up the system?
|
|
151
151
|
// TODO: does this gain anything? is a debounce needed somewhere else instead?
|
|
152
152
|
setImmediate(async () => {
|
|
153
|
-
await (0, core_1.each)(emitUpdates, async (entity) => await EntityUpdateReceiver(entity.entity_id, entity,
|
|
153
|
+
await (0, core_1.each)(emitUpdates, async (entity) => await EntityUpdateReceiver(entity.entity_id, entity, internal.utils.object.get(oldState, entity.entity_id)));
|
|
154
154
|
});
|
|
155
155
|
init = true;
|
|
156
156
|
}
|
|
157
157
|
// ## is.entity definition
|
|
158
158
|
// Actually tie the type casting to real state
|
|
159
|
-
core_1.is.entity = (entityId) => core_1.is.undefined(
|
|
159
|
+
core_1.is.entity = (entityId) => core_1.is.undefined(internal.utils.object.get(MASTER_STATE, entityId));
|
|
160
160
|
// ## Receiver function for incoming entity updates
|
|
161
161
|
function EntityUpdateReceiver(entity_id, new_state, old_state) {
|
|
162
162
|
if (new_state === null) {
|
|
163
163
|
logger.warn({ name: entity_id }, `removing deleted entity from {MASTER_STATE}`);
|
|
164
|
-
|
|
164
|
+
internal.utils.object.del(MASTER_STATE, entity_id);
|
|
165
165
|
return;
|
|
166
166
|
}
|
|
167
|
-
|
|
168
|
-
|
|
167
|
+
internal.utils.object.set(MASTER_STATE, entity_id, new_state);
|
|
168
|
+
if (!hass.socket.pauseMessages) {
|
|
169
|
+
event.emit(entity_id, new_state, old_state);
|
|
170
|
+
}
|
|
169
171
|
}
|
|
170
172
|
lifecycle.onPostConfig(async () => {
|
|
171
173
|
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":";;;;AAAA,
|
|
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,
|
|
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
|
-
|
|
10
|
-
|
|
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
|
-
|
|
14
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
98
|
+
return await fetch({ url: `/api/states` });
|
|
104
99
|
}
|
|
105
100
|
async function getHassConfig() {
|
|
106
101
|
logger.trace(`get config`);
|
|
107
|
-
return await
|
|
102
|
+
return await fetch({ url: `/api/config` });
|
|
108
103
|
}
|
|
109
104
|
async function getLogs() {
|
|
110
105
|
logger.trace(`get logs`);
|
|
111
|
-
const results = await
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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:
|
|
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,
|
|
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,21 @@
|
|
|
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
|
+
connectionActive: boolean;
|
|
5
6
|
/**
|
|
6
7
|
* Convenient wrapper for sendMessage
|
|
7
8
|
*/
|
|
8
9
|
fireEvent: (event_type: string, event_data?: object) => Promise<unknown>;
|
|
9
|
-
getConnectionActive: () => boolean;
|
|
10
10
|
/**
|
|
11
11
|
* Set up a new websocket connection to home assistant
|
|
12
12
|
*
|
|
13
13
|
* This doesn't normally need to be called by applications, the extension self manages
|
|
14
14
|
*/
|
|
15
15
|
init: () => Promise<void>;
|
|
16
|
+
/**
|
|
17
|
+
* run a callback when the socket finishes connecting
|
|
18
|
+
*/
|
|
16
19
|
onConnect: (callback: () => TBlackHole) => void;
|
|
17
20
|
/**
|
|
18
21
|
* Attach to the incoming stream of socket events. Do your own filtering and processing from there
|
|
@@ -20,6 +23,12 @@ export declare function WebsocketAPI({ context, event, hass, config, lifecycle,
|
|
|
20
23
|
* Returns removal function
|
|
21
24
|
*/
|
|
22
25
|
onEvent: <DATA extends object>({ context, label, event, once, exec, }: OnHassEventOptions<DATA>) => () => void;
|
|
26
|
+
/**
|
|
27
|
+
* when true:
|
|
28
|
+
* - outgoing socket messages are blocked
|
|
29
|
+
* - entities don't emit updates
|
|
30
|
+
*/
|
|
31
|
+
pauseMessages: boolean;
|
|
23
32
|
/**
|
|
24
33
|
* Send a message to home assistant via the socket connection
|
|
25
34
|
*
|
|
@@ -10,13 +10,12 @@ 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
14
|
const PING_INTERVAL = 10;
|
|
16
15
|
const UNLIMITED = 0;
|
|
17
16
|
let messageCount = core_1.START;
|
|
18
17
|
exports.SOCKET_CONNECTED = "SOCKET_CONNECTED";
|
|
19
|
-
function WebsocketAPI({ context, event, hass, config, lifecycle, logger, scheduler, }) {
|
|
18
|
+
function WebsocketAPI({ context, event, hass, config, internal, lifecycle, logger, scheduler, }) {
|
|
20
19
|
let AUTH_TIMEOUT;
|
|
21
20
|
/**
|
|
22
21
|
* Local attachment points for socket events
|
|
@@ -54,7 +53,7 @@ function WebsocketAPI({ context, event, hass, config, lifecycle, logger, schedul
|
|
|
54
53
|
await teardown();
|
|
55
54
|
});
|
|
56
55
|
async function ping() {
|
|
57
|
-
if (!
|
|
56
|
+
if (!hass.socket.connectionActive) {
|
|
58
57
|
return;
|
|
59
58
|
}
|
|
60
59
|
try {
|
|
@@ -80,7 +79,7 @@ function WebsocketAPI({ context, event, hass, config, lifecycle, logger, schedul
|
|
|
80
79
|
}
|
|
81
80
|
if (connection.readyState === CONNECTION_OPEN) {
|
|
82
81
|
logger.debug(`closing current connection`);
|
|
83
|
-
|
|
82
|
+
hass.socket.connectionActive = false;
|
|
84
83
|
connection.close();
|
|
85
84
|
}
|
|
86
85
|
connection = undefined;
|
|
@@ -96,9 +95,12 @@ function WebsocketAPI({ context, event, hass, config, lifecycle, logger, schedul
|
|
|
96
95
|
await init();
|
|
97
96
|
return undefined;
|
|
98
97
|
}
|
|
98
|
+
if (hass.socket.pauseMessages && data.type !== __1.HASSIO_WS_COMMAND.ping) {
|
|
99
|
+
return undefined;
|
|
100
|
+
}
|
|
99
101
|
countMessage();
|
|
100
102
|
if (data.type !== __1.HASSIO_WS_COMMAND.auth) {
|
|
101
|
-
if (!
|
|
103
|
+
if (!hass.socket.connectionActive) {
|
|
102
104
|
logger.error({ data }, `cannot send message, connection is not open`);
|
|
103
105
|
return undefined;
|
|
104
106
|
}
|
|
@@ -150,7 +152,7 @@ function WebsocketAPI({ context, event, hass, config, lifecycle, logger, schedul
|
|
|
150
152
|
connecting = now;
|
|
151
153
|
logger.debug(`CONNECTION_ACTIVE = {false}`);
|
|
152
154
|
const url = getUrl();
|
|
153
|
-
|
|
155
|
+
hass.socket.connectionActive = false;
|
|
154
156
|
try {
|
|
155
157
|
messageCount = core_1.START;
|
|
156
158
|
connection = new ws_1.default(url);
|
|
@@ -159,7 +161,7 @@ function WebsocketAPI({ context, event, hass, config, lifecycle, logger, schedul
|
|
|
159
161
|
await onMessage(JSON.parse(message.toString()));
|
|
160
162
|
}
|
|
161
163
|
catch (error) {
|
|
162
|
-
// My expectation is `
|
|
164
|
+
// My expectation is `internal.safeExec` should trap any application errors
|
|
163
165
|
// This try/catch should actually be excessive
|
|
164
166
|
// If this error happens, something weird is happening
|
|
165
167
|
logger.error({ error }, `💣 error bubbled up from websocket message event handler`);
|
|
@@ -167,7 +169,7 @@ function WebsocketAPI({ context, event, hass, config, lifecycle, logger, schedul
|
|
|
167
169
|
});
|
|
168
170
|
connection.on("error", async (error) => {
|
|
169
171
|
logger.error({ error: error.message || error }, "Socket error");
|
|
170
|
-
if (!
|
|
172
|
+
if (!hass.socket.connectionActive) {
|
|
171
173
|
await (0, core_1.sleep)(config.hass.RETRY_INTERVAL);
|
|
172
174
|
await teardown();
|
|
173
175
|
logger.info("🪃 on error re-init");
|
|
@@ -223,7 +225,7 @@ function WebsocketAPI({ context, event, hass, config, lifecycle, logger, schedul
|
|
|
223
225
|
case __1.HassSocketMessageTypes.auth_ok:
|
|
224
226
|
logger.debug(`CONNECTION_ACTIVE = {true}`);
|
|
225
227
|
// * Flag as valid connection
|
|
226
|
-
|
|
228
|
+
hass.socket.connectionActive = true;
|
|
227
229
|
connecting = undefined;
|
|
228
230
|
event.emit(exports.SOCKET_CONNECTED);
|
|
229
231
|
clearTimeout(AUTH_TIMEOUT);
|
|
@@ -245,7 +247,7 @@ function WebsocketAPI({ context, event, hass, config, lifecycle, logger, schedul
|
|
|
245
247
|
return await onMessageResult(id, message);
|
|
246
248
|
case __1.HassSocketMessageTypes.auth_invalid:
|
|
247
249
|
logger.debug(`CONNECTION_ACTIVE = {false}`);
|
|
248
|
-
|
|
250
|
+
hass.socket.connectionActive = false;
|
|
249
251
|
logger.fatal(message.message);
|
|
250
252
|
return;
|
|
251
253
|
default:
|
|
@@ -273,6 +275,9 @@ function WebsocketAPI({ context, event, hass, config, lifecycle, logger, schedul
|
|
|
273
275
|
return;
|
|
274
276
|
}
|
|
275
277
|
}
|
|
278
|
+
if (hass.socket.pauseMessages) {
|
|
279
|
+
return;
|
|
280
|
+
}
|
|
276
281
|
if (waitingCallback.has(id)) {
|
|
277
282
|
const f = waitingCallback.get(id);
|
|
278
283
|
waitingCallback.delete(id);
|
|
@@ -303,7 +308,7 @@ function WebsocketAPI({ context, event, hass, config, lifecycle, logger, schedul
|
|
|
303
308
|
function onEvent({ context, label, event, once, exec, }) {
|
|
304
309
|
logger.trace({ context, event }, `attaching socket event listener`);
|
|
305
310
|
const callback = async (data) => {
|
|
306
|
-
await
|
|
311
|
+
await internal.safeExec({
|
|
307
312
|
duration: __1.SOCKET_EVENT_EXECUTION_TIME,
|
|
308
313
|
errors: __1.SOCKET_EVENT_ERRORS,
|
|
309
314
|
exec: async () => await exec(data),
|
|
@@ -323,20 +328,23 @@ function WebsocketAPI({ context, event, hass, config, lifecycle, logger, schedul
|
|
|
323
328
|
};
|
|
324
329
|
}
|
|
325
330
|
return {
|
|
331
|
+
connectionActive: false,
|
|
326
332
|
/**
|
|
327
333
|
* Convenient wrapper for sendMessage
|
|
328
334
|
*/
|
|
329
335
|
fireEvent,
|
|
330
|
-
getConnectionActive: () => CONNECTION_ACTIVE,
|
|
331
336
|
/**
|
|
332
337
|
* Set up a new websocket connection to home assistant
|
|
333
338
|
*
|
|
334
339
|
* This doesn't normally need to be called by applications, the extension self manages
|
|
335
340
|
*/
|
|
336
341
|
init,
|
|
342
|
+
/**
|
|
343
|
+
* run a callback when the socket finishes connecting
|
|
344
|
+
*/
|
|
337
345
|
onConnect: (callback) => {
|
|
338
346
|
event.on(exports.SOCKET_CONNECTED, async () => {
|
|
339
|
-
await
|
|
347
|
+
await internal.safeExec(async () => await callback());
|
|
340
348
|
});
|
|
341
349
|
},
|
|
342
350
|
/**
|
|
@@ -345,6 +353,12 @@ function WebsocketAPI({ context, event, hass, config, lifecycle, logger, schedul
|
|
|
345
353
|
* Returns removal function
|
|
346
354
|
*/
|
|
347
355
|
onEvent,
|
|
356
|
+
/**
|
|
357
|
+
* when true:
|
|
358
|
+
* - outgoing socket messages are blocked
|
|
359
|
+
* - entities don't emit updates
|
|
360
|
+
*/
|
|
361
|
+
pauseMessages: false,
|
|
348
362
|
/**
|
|
349
363
|
* Send a message to home assistant via the socket connection
|
|
350
364
|
*
|
|
@@ -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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"}
|