@digital-alchemy/hass 24.9.3 → 24.9.4
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 +4 -1
- package/dist/dynamic.d.ts +1 -1
- package/dist/dynamic.js +7 -2
- package/dist/dynamic.js.map +1 -1
- package/dist/extensions/area.extension.d.ts +2 -12
- package/dist/extensions/area.extension.js +20 -26
- package/dist/extensions/area.extension.js.map +1 -1
- package/dist/extensions/backup.extension.d.ts +2 -7
- package/dist/extensions/backup.extension.js +5 -8
- package/dist/extensions/backup.extension.js.map +1 -1
- package/dist/extensions/call-proxy.extension.d.ts +1 -1
- package/dist/extensions/call-proxy.extension.js +3 -22
- package/dist/extensions/call-proxy.extension.js.map +1 -1
- package/dist/extensions/config.extension.d.ts +2 -6
- package/dist/extensions/config.extension.js +21 -25
- package/dist/extensions/config.extension.js.map +1 -1
- package/dist/extensions/conversation.extension.d.ts +2 -6
- package/dist/extensions/conversation.extension.js +5 -8
- package/dist/extensions/conversation.extension.js.map +1 -1
- package/dist/extensions/device.extension.d.ts +2 -5
- package/dist/extensions/device.extension.js +16 -22
- package/dist/extensions/device.extension.js.map +1 -1
- package/dist/extensions/entity.extension.d.ts +2 -61
- package/dist/extensions/entity.extension.js +42 -83
- package/dist/extensions/entity.extension.js.map +1 -1
- package/dist/extensions/events.extension.d.ts +3 -11
- package/dist/extensions/events.extension.js +8 -11
- package/dist/extensions/events.extension.js.map +1 -1
- package/dist/extensions/fetch-api.extension.d.ts +12 -4
- package/dist/extensions/fetch-api.extension.js +23 -35
- package/dist/extensions/fetch-api.extension.js.map +1 -1
- package/dist/extensions/floor.extension.d.ts +2 -9
- package/dist/extensions/floor.extension.js +17 -23
- package/dist/extensions/floor.extension.js.map +1 -1
- package/dist/extensions/id-by.extension.js +15 -20
- package/dist/extensions/id-by.extension.js.map +1 -1
- package/dist/extensions/index.d.ts +1 -0
- package/dist/extensions/index.js +16 -18
- package/dist/extensions/index.js.map +1 -1
- package/dist/extensions/internal.extension.d.ts +18 -0
- package/dist/extensions/internal.extension.js +102 -0
- package/dist/extensions/internal.extension.js.map +1 -0
- package/dist/extensions/label.extension.d.ts +2 -9
- package/dist/extensions/label.extension.js +17 -23
- package/dist/extensions/label.extension.js.map +1 -1
- package/dist/extensions/reference.extension.d.ts +2 -12
- package/dist/extensions/reference.extension.js +19 -25
- package/dist/extensions/reference.extension.js.map +1 -1
- package/dist/extensions/registry.extension.d.ts +2 -7
- package/dist/extensions/registry.extension.js +1 -4
- package/dist/extensions/registry.extension.js.map +1 -1
- package/dist/extensions/websocket-api.extension.d.ts +3 -78
- package/dist/extensions/websocket-api.extension.js +82 -165
- package/dist/extensions/websocket-api.extension.js.map +1 -1
- package/dist/extensions/zone.extension.d.ts +2 -7
- package/dist/extensions/zone.extension.js +15 -21
- package/dist/extensions/zone.extension.js.map +1 -1
- package/dist/hass.module.d.ts +47 -36
- package/dist/hass.module.js +70 -70
- package/dist/hass.module.js.map +1 -1
- package/dist/helpers/backup.helper.js +1 -2
- package/dist/helpers/constants.helper.js +15 -18
- package/dist/helpers/constants.helper.js.map +1 -1
- package/dist/helpers/device.helper.js +2 -5
- package/dist/helpers/device.helper.js.map +1 -1
- package/dist/helpers/entity-state.helper.d.ts +3 -8
- package/dist/helpers/entity-state.helper.js +1 -8
- package/dist/helpers/entity-state.helper.js.map +1 -1
- package/dist/helpers/features.helper.js +79 -85
- package/dist/helpers/features.helper.js.map +1 -1
- package/dist/helpers/fetch/calendar.js +1 -2
- package/dist/helpers/fetch/configuration.js +2 -5
- package/dist/helpers/fetch/configuration.js.map +1 -1
- package/dist/helpers/fetch/index.js +5 -8
- package/dist/helpers/fetch/index.js.map +1 -1
- package/dist/helpers/fetch/server-log.js +1 -2
- package/dist/helpers/fetch/server-log.js.map +1 -1
- package/dist/helpers/fetch/service-list.js +1 -2
- package/dist/helpers/fetch/weather-forecasts.js +1 -2
- package/dist/helpers/fetch/weather-forecasts.js.map +1 -1
- package/dist/helpers/fetch.helper.d.ts +162 -0
- package/dist/helpers/fetch.helper.js +161 -0
- package/dist/helpers/fetch.helper.js.map +1 -0
- package/dist/helpers/id-by.helper.js +1 -2
- package/dist/helpers/index.d.ts +2 -1
- package/dist/helpers/index.js +13 -15
- package/dist/helpers/index.js.map +1 -1
- package/dist/helpers/interfaces.helper.d.ts +228 -0
- package/dist/helpers/interfaces.helper.js +10 -0
- package/dist/helpers/interfaces.helper.js.map +1 -0
- package/dist/helpers/manifest.helper.d.ts +0 -1
- package/dist/helpers/manifest.helper.js +0 -1
- package/dist/helpers/notify.helper.d.ts +11 -3
- package/dist/helpers/notify.helper.js +1 -2
- package/dist/helpers/registry.js +7 -10
- package/dist/helpers/registry.js.map +1 -1
- package/dist/helpers/utility.helper.d.ts +6 -1
- package/dist/helpers/utility.helper.js +9 -13
- package/dist/helpers/utility.helper.js.map +1 -1
- package/dist/helpers/websocket.helper.d.ts +1 -2
- package/dist/helpers/websocket.helper.js +1 -2
- package/dist/index.js +5 -8
- package/dist/index.js.map +1 -1
- package/dist/mock_assistant/extensions/area.extension.d.ts +8 -0
- package/dist/mock_assistant/extensions/area.extension.js +51 -0
- package/dist/mock_assistant/extensions/area.extension.js.map +1 -0
- package/dist/mock_assistant/extensions/config.extension.d.ts +14 -0
- package/dist/mock_assistant/extensions/config.extension.js +29 -0
- package/dist/mock_assistant/extensions/config.extension.js.map +1 -0
- package/dist/mock_assistant/extensions/device.extension.d.ts +8 -0
- package/dist/mock_assistant/extensions/device.extension.js +33 -0
- package/dist/mock_assistant/extensions/device.extension.js.map +1 -0
- package/dist/mock_assistant/extensions/entity-registry.extension.d.ts +13 -0
- package/dist/mock_assistant/extensions/entity-registry.extension.js +28 -0
- package/dist/mock_assistant/extensions/entity-registry.extension.js.map +1 -0
- package/dist/mock_assistant/extensions/entity.extension.d.ts +30 -0
- package/dist/mock_assistant/extensions/entity.extension.js +77 -0
- package/dist/mock_assistant/extensions/entity.extension.js.map +1 -0
- package/dist/mock_assistant/extensions/events.extension.d.ts +1 -1
- package/dist/mock_assistant/extensions/events.extension.js +3 -6
- package/dist/mock_assistant/extensions/events.extension.js.map +1 -1
- package/dist/mock_assistant/extensions/fetch.extension.d.ts +1 -0
- package/dist/mock_assistant/extensions/fetch.extension.js +4 -0
- package/dist/mock_assistant/extensions/fetch.extension.js.map +1 -0
- package/dist/mock_assistant/extensions/fixtures.extension.d.ts +1 -1
- package/dist/mock_assistant/extensions/fixtures.extension.js +29 -33
- package/dist/mock_assistant/extensions/fixtures.extension.js.map +1 -1
- package/dist/mock_assistant/extensions/floor.extension.d.ts +8 -0
- package/dist/mock_assistant/extensions/floor.extension.js +51 -0
- package/dist/mock_assistant/extensions/floor.extension.js.map +1 -0
- package/dist/mock_assistant/extensions/index.d.ts +10 -0
- package/dist/mock_assistant/extensions/index.js +12 -5
- package/dist/mock_assistant/extensions/index.js.map +1 -1
- package/dist/mock_assistant/extensions/label.extension.d.ts +8 -0
- package/dist/mock_assistant/extensions/label.extension.js +51 -0
- package/dist/mock_assistant/extensions/label.extension.js.map +1 -0
- package/dist/mock_assistant/extensions/services.extension.d.ts +12 -0
- package/dist/mock_assistant/extensions/services.extension.js +20 -0
- package/dist/mock_assistant/extensions/services.extension.js.map +1 -0
- package/dist/mock_assistant/extensions/websocket-api.extension.d.ts +15 -0
- package/dist/mock_assistant/extensions/websocket-api.extension.js +68 -0
- package/dist/mock_assistant/extensions/websocket-api.extension.js.map +1 -0
- package/dist/mock_assistant/extensions/zone.extension.d.ts +8 -0
- package/dist/mock_assistant/extensions/zone.extension.js +51 -0
- package/dist/mock_assistant/extensions/zone.extension.js.map +1 -0
- package/dist/mock_assistant/helpers/fixtures.js +1 -2
- package/dist/mock_assistant/helpers/index.d.ts +0 -1
- package/dist/mock_assistant/helpers/index.js +1 -5
- package/dist/mock_assistant/helpers/index.js.map +1 -1
- package/dist/mock_assistant/index.js +3 -6
- package/dist/mock_assistant/index.js.map +1 -1
- package/dist/mock_assistant/main.js +11 -15
- package/dist/mock_assistant/main.js.map +1 -1
- package/dist/mock_assistant/mock-assistant.module.d.ts +156 -3
- package/dist/mock_assistant/mock-assistant.module.js +56 -11
- package/dist/mock_assistant/mock-assistant.module.js.map +1 -1
- package/dist/quickboot.module.js +5 -8
- package/dist/quickboot.module.js.map +1 -1
- package/dist/testing/area.spec.js +106 -194
- package/dist/testing/area.spec.js.map +1 -1
- package/dist/testing/backup.spec.js +97 -139
- package/dist/testing/backup.spec.js.map +1 -1
- package/dist/testing/config.spec.js +79 -153
- package/dist/testing/config.spec.js.map +1 -1
- package/dist/testing/device.spec.js +35 -69
- package/dist/testing/device.spec.js.map +1 -1
- package/dist/testing/entity.spec.js +94 -149
- package/dist/testing/entity.spec.js.map +1 -1
- package/dist/testing/events.spec.js +33 -57
- package/dist/testing/events.spec.js.map +1 -1
- package/dist/testing/fetch-api.spec.js +242 -427
- package/dist/testing/fetch-api.spec.js.map +1 -1
- package/dist/testing/fixtures.spec.d.ts +1 -0
- package/dist/testing/fixtures.spec.js +150 -0
- package/dist/testing/fixtures.spec.js.map +1 -0
- package/dist/testing/floor.spec.js +106 -194
- package/dist/testing/floor.spec.js.map +1 -1
- package/dist/testing/id-by.spec.js +68 -107
- package/dist/testing/id-by.spec.js.map +1 -1
- package/dist/testing/label.spec.js +106 -194
- package/dist/testing/label.spec.js.map +1 -1
- package/dist/testing/ref-by.spec.js +155 -219
- package/dist/testing/ref-by.spec.js.map +1 -1
- package/dist/testing/websocket.spec.d.ts +1 -8
- package/dist/testing/websocket.spec.js +35 -50
- package/dist/testing/websocket.spec.js.map +1 -1
- package/dist/testing/workflow.spec.js +82 -81
- package/dist/testing/workflow.spec.js.map +1 -1
- package/dist/testing/zone.spec.js +61 -113
- package/dist/testing/zone.spec.js.map +1 -1
- package/package.json +56 -40
- package/dist/helpers/metrics.helper.d.ts +0 -29
- package/dist/helpers/metrics.helper.js +0 -62
- package/dist/helpers/metrics.helper.js.map +0 -1
- package/dist/mock_assistant/helpers/utils.d.ts +0 -4
- package/dist/mock_assistant/helpers/utils.js +0 -57
- package/dist/mock_assistant/helpers/utils.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zone.extension.js","sourceRoot":"","sources":["../../src/extensions/zone.extension.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"zone.extension.js","sourceRoot":"","sources":["../../src/extensions/zone.extension.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAkB,MAAM,uBAAuB,CAAC;AAEjE,OAAO,EACL,cAAc,EAGd,qBAAqB,GAGtB,MAAM,YAAY,CAAC;AAEpB,MAAM,UAAU,IAAI,CAAC,EACnB,MAAM,EACN,IAAI,EACJ,KAAK,EACL,MAAM,EACN,OAAO,EACP,SAAS,GACM;IACf,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QAC/B,IAAI,OAAO,GAAG,IAAI,OAAO,CAAO,KAAK,EAAC,IAAI,EAAC,EAAE;YAC3C,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC3C,OAAO,GAAG,SAAS,CAAC;YACpB,IAAI,EAAE,CAAC;QACT,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,OAAO,IAAI,CAAC,MAAM,OAAO,CAAC,EAAE,cAAc,CAAC,CAAC;QAE1E,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;YACpB,OAAO;YACP,UAAU,EAAE,uBAAuB;YACnC,KAAK,CAAC,IAAI;gBACR,MAAM,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBACrE,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC3C,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBACtC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACpC,CAAC;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,KAAK,UAAU,UAAU,CAAC,OAAoB;QAC5C,OAAO,IAAI,OAAO,CAAO,KAAK,EAAC,IAAI,EAAC,EAAE;YACpC,KAAK,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;YACxC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAiB;gBAC5C,GAAG,OAAO;gBACV,IAAI,EAAE,aAAa;aACpB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,UAAU,CAAC,OAAe,EAAE,OAAoB;QAC7D,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAiB;YAC5C,GAAG,OAAO;YACV,IAAI,EAAE,aAAa;YACnB,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,QAAQ;QACrB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAgB;YAClD,IAAI,EAAE,WAAW;SAClB,CAAC,CAAC;IACL,CAAC;IACD,OAAO;QACL,MAAM,EAAE,UAAU;QAClB,OAAO,EAAE,EAAmB;QAC5B,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,UAAU;KACnB,CAAC;AACJ,CAAC"}
|
package/dist/hass.module.d.ts
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Area, Backup, CallProxy, Configure, Device, EntityManager, Events, FetchAPI, Floor, Label, Registry, WebsocketAPI, Zone } from "./extensions";
|
|
3
|
-
import { IDByExtension } from "./extensions/id-by.extension";
|
|
4
|
-
import { ReferenceExtension } from "./extensions/reference.extension";
|
|
5
|
-
type AllowRestOptions = "prefer" | "allow" | "forbid";
|
|
1
|
+
import { Area, Backup, CallProxy, Configure, Device, EntityManager, Events, FetchAPI, FetchInternals, Floor, IDByExtension, Label, ReferenceExtension, Registry, WebsocketAPI, Zone } from "./extensions";
|
|
6
2
|
export declare const LIB_HASS: import("@digital-alchemy/core").LibraryDefinition<{
|
|
7
3
|
/**
|
|
8
4
|
* home assistant areas
|
|
@@ -44,6 +40,10 @@ export declare const LIB_HASS: import("@digital-alchemy/core").LibraryDefinition
|
|
|
44
40
|
* search for entity ids in a type safe way
|
|
45
41
|
*/
|
|
46
42
|
idBy: typeof IDByExtension;
|
|
43
|
+
/**
|
|
44
|
+
* @internal
|
|
45
|
+
*/
|
|
46
|
+
internals: typeof FetchInternals;
|
|
47
47
|
/**
|
|
48
48
|
* home assistant label interactions
|
|
49
49
|
*/
|
|
@@ -65,81 +65,93 @@ export declare const LIB_HASS: import("@digital-alchemy/core").LibraryDefinition
|
|
|
65
65
|
*/
|
|
66
66
|
zone: typeof Zone;
|
|
67
67
|
}, {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
AUTO_SCAN_CALL_PROXY: {
|
|
74
|
-
default: true;
|
|
75
|
-
description: string;
|
|
76
|
-
type: "boolean";
|
|
77
|
-
};
|
|
68
|
+
/**
|
|
69
|
+
* Where to reach Home Assistant at
|
|
70
|
+
*
|
|
71
|
+
* Will auto detect inside an addon
|
|
72
|
+
*/
|
|
78
73
|
BASE_URL: {
|
|
79
74
|
default: string;
|
|
80
75
|
description: string;
|
|
81
76
|
type: "string";
|
|
82
77
|
};
|
|
83
|
-
|
|
78
|
+
/**
|
|
79
|
+
* When adding new integrations, app will receive 1 update event for everything that changes.
|
|
80
|
+
* This can result in a flood of updates where only a single one is needed at the very end.
|
|
81
|
+
*
|
|
82
|
+
* This setting helps control that.
|
|
83
|
+
*/
|
|
84
84
|
EVENT_DEBOUNCE_MS: {
|
|
85
85
|
default: number;
|
|
86
86
|
description: string;
|
|
87
87
|
type: "number";
|
|
88
88
|
};
|
|
89
|
+
/**
|
|
90
|
+
* ## ACKNOWLEDGE ME
|
|
91
|
+
*
|
|
92
|
+
* Home Assistant **should** respond to all sent messages with a reply to confirm it was received.
|
|
93
|
+
*
|
|
94
|
+
* If this does not happen, then a warning will be emitted into the logs
|
|
95
|
+
*/
|
|
89
96
|
EXPECT_RESPONSE_AFTER: {
|
|
90
97
|
default: number;
|
|
91
98
|
description: string;
|
|
92
99
|
type: "number";
|
|
93
100
|
};
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
MOCK_SOCKET: {
|
|
100
|
-
default: false;
|
|
101
|
-
description: string[];
|
|
102
|
-
type: "boolean";
|
|
103
|
-
};
|
|
101
|
+
/**
|
|
102
|
+
* General purpose variable, adds delays to things when retrying
|
|
103
|
+
*
|
|
104
|
+
* > **NOTE**: this is best set to `0` for unit tests
|
|
105
|
+
*/
|
|
104
106
|
RETRY_INTERVAL: {
|
|
105
107
|
default: number;
|
|
106
108
|
description: string;
|
|
107
109
|
type: "number";
|
|
108
110
|
};
|
|
111
|
+
/**
|
|
112
|
+
* @internal
|
|
113
|
+
*/
|
|
109
114
|
SOCKET_AVG_DURATION: {
|
|
110
115
|
default: number;
|
|
111
116
|
description: string;
|
|
112
117
|
type: "number";
|
|
113
118
|
};
|
|
119
|
+
/**
|
|
120
|
+
* @internal
|
|
121
|
+
*/
|
|
114
122
|
SOCKET_CRASH_REQUESTS_PER_SEC: {
|
|
115
123
|
default: number;
|
|
116
124
|
description: string;
|
|
117
125
|
type: "number";
|
|
118
126
|
};
|
|
127
|
+
/**
|
|
128
|
+
* @internal
|
|
129
|
+
*/
|
|
119
130
|
SOCKET_WARN_REQUESTS_PER_SEC: {
|
|
120
131
|
default: number;
|
|
121
132
|
description: string;
|
|
122
133
|
type: "number";
|
|
123
134
|
};
|
|
135
|
+
/**
|
|
136
|
+
* Long lived access token
|
|
137
|
+
*/
|
|
124
138
|
TOKEN: {
|
|
125
139
|
description: string;
|
|
126
140
|
required: true;
|
|
127
141
|
type: "string";
|
|
128
142
|
};
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
143
|
+
/**
|
|
144
|
+
* Intended to be provided via command line switch. Ex:
|
|
145
|
+
*
|
|
146
|
+
* ```bash
|
|
147
|
+
* $ node dist/main.js --validate-configuration
|
|
148
|
+
* ```
|
|
149
|
+
*/
|
|
134
150
|
VALIDATE_CONFIGURATION: {
|
|
135
151
|
default: false;
|
|
136
152
|
description: string;
|
|
137
153
|
type: "boolean";
|
|
138
154
|
};
|
|
139
|
-
WEBSOCKET_URL: {
|
|
140
|
-
description: string;
|
|
141
|
-
type: "string";
|
|
142
|
-
};
|
|
143
155
|
}>;
|
|
144
156
|
declare module "@digital-alchemy/core" {
|
|
145
157
|
interface LoadedModules {
|
|
@@ -149,4 +161,3 @@ declare module "@digital-alchemy/core" {
|
|
|
149
161
|
hass: typeof LIB_HASS;
|
|
150
162
|
}
|
|
151
163
|
}
|
|
152
|
-
export {};
|
package/dist/hass.module.js
CHANGED
|
@@ -1,163 +1,163 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const core_1 = require("@digital-alchemy/core");
|
|
5
|
-
const extensions_1 = require("./extensions");
|
|
6
|
-
const id_by_extension_1 = require("./extensions/id-by.extension");
|
|
7
|
-
const reference_extension_1 = require("./extensions/reference.extension");
|
|
8
|
-
exports.LIB_HASS = (0, core_1.CreateLibrary)({
|
|
1
|
+
import { CreateLibrary } from "@digital-alchemy/core";
|
|
2
|
+
import { Area, Backup, CallProxy, Configure, Device, EntityManager, Events, FetchAPI, FetchInternals, Floor, IDByExtension, Label, ReferenceExtension, Registry, WebsocketAPI, Zone, } from "./extensions";
|
|
3
|
+
export const LIB_HASS = CreateLibrary({
|
|
9
4
|
configuration: {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
AUTO_SCAN_CALL_PROXY: {
|
|
16
|
-
default: true,
|
|
17
|
-
description: "Should the call proxy request a service listing at bootstrap?",
|
|
18
|
-
type: "boolean",
|
|
19
|
-
},
|
|
5
|
+
/**
|
|
6
|
+
* Where to reach Home Assistant at
|
|
7
|
+
*
|
|
8
|
+
* Will auto detect inside an addon
|
|
9
|
+
*/
|
|
20
10
|
BASE_URL: {
|
|
21
11
|
default: "http://homeassistant.local:8123",
|
|
22
12
|
description: "Url to reach Home Assistant at",
|
|
23
13
|
type: "string",
|
|
24
14
|
},
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
enum: ["prefer", "forbid", "allow"],
|
|
32
|
-
type: "string",
|
|
33
|
-
},
|
|
15
|
+
/**
|
|
16
|
+
* When adding new integrations, app will receive 1 update event for everything that changes.
|
|
17
|
+
* This can result in a flood of updates where only a single one is needed at the very end.
|
|
18
|
+
*
|
|
19
|
+
* This setting helps control that.
|
|
20
|
+
*/
|
|
34
21
|
EVENT_DEBOUNCE_MS: {
|
|
35
22
|
default: 50,
|
|
36
23
|
description: "Debounce reactions to registry changes",
|
|
37
24
|
type: "number",
|
|
38
25
|
},
|
|
26
|
+
/**
|
|
27
|
+
* ## ACKNOWLEDGE ME
|
|
28
|
+
*
|
|
29
|
+
* Home Assistant **should** respond to all sent messages with a reply to confirm it was received.
|
|
30
|
+
*
|
|
31
|
+
* If this does not happen, then a warning will be emitted into the logs
|
|
32
|
+
*/
|
|
39
33
|
EXPECT_RESPONSE_AFTER: {
|
|
40
34
|
default: 5,
|
|
41
35
|
description: "If sendMessage was set to expect a response, a warning will be emitted after this delay if one is not received",
|
|
42
36
|
type: "number",
|
|
43
37
|
},
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
MOCK_SOCKET: {
|
|
50
|
-
default: false,
|
|
51
|
-
description: [
|
|
52
|
-
"Operate with an artificial socket connection",
|
|
53
|
-
"For unit testing",
|
|
54
|
-
],
|
|
55
|
-
type: "boolean",
|
|
56
|
-
},
|
|
38
|
+
/**
|
|
39
|
+
* General purpose variable, adds delays to things when retrying
|
|
40
|
+
*
|
|
41
|
+
* > **NOTE**: this is best set to `0` for unit tests
|
|
42
|
+
*/
|
|
57
43
|
RETRY_INTERVAL: {
|
|
58
44
|
default: 5,
|
|
59
|
-
description: "How often to retry connecting on connection failure (seconds)
|
|
45
|
+
description: "How often to retry connecting on connection failure (seconds)",
|
|
60
46
|
type: "number",
|
|
61
47
|
},
|
|
48
|
+
/**
|
|
49
|
+
* @internal
|
|
50
|
+
*/
|
|
62
51
|
SOCKET_AVG_DURATION: {
|
|
63
52
|
default: 5,
|
|
64
53
|
description: "How many seconds worth of requests to use in avg for math in REQ_PER_SEC calculations",
|
|
65
54
|
type: "number",
|
|
66
55
|
},
|
|
56
|
+
/**
|
|
57
|
+
* @internal
|
|
58
|
+
*/
|
|
67
59
|
SOCKET_CRASH_REQUESTS_PER_SEC: {
|
|
68
60
|
default: 500,
|
|
69
|
-
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
|
|
61
|
+
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",
|
|
70
62
|
type: "number",
|
|
71
63
|
},
|
|
64
|
+
/**
|
|
65
|
+
* @internal
|
|
66
|
+
*/
|
|
72
67
|
SOCKET_WARN_REQUESTS_PER_SEC: {
|
|
73
68
|
default: 300,
|
|
74
|
-
description: "Emit warnings if the home controller attempts to send more than X messages to Home Assistant inside of a second
|
|
69
|
+
description: "Emit warnings if the home controller attempts to send more than X messages to Home Assistant inside of a second",
|
|
75
70
|
type: "number",
|
|
76
71
|
},
|
|
72
|
+
/**
|
|
73
|
+
* Long lived access token
|
|
74
|
+
*/
|
|
77
75
|
TOKEN: {
|
|
78
|
-
description: "Long lived access token to Home Assistant
|
|
76
|
+
description: "Long lived access token to Home Assistant",
|
|
79
77
|
required: true,
|
|
80
78
|
type: "string",
|
|
81
79
|
},
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
80
|
+
/**
|
|
81
|
+
* Intended to be provided via command line switch. Ex:
|
|
82
|
+
*
|
|
83
|
+
* ```bash
|
|
84
|
+
* $ node dist/main.js --validate-configuration
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
87
87
|
VALIDATE_CONFIGURATION: {
|
|
88
88
|
default: false,
|
|
89
|
-
description: "Validate the credentials
|
|
89
|
+
description: "Validate the credentials then quit",
|
|
90
90
|
type: "boolean",
|
|
91
91
|
},
|
|
92
|
-
WEBSOCKET_URL: {
|
|
93
|
-
description: `Override calculated value if it's breaking or you want something custom. Make sure to use "ws[s]://" scheme.`,
|
|
94
|
-
type: "string",
|
|
95
|
-
},
|
|
96
92
|
},
|
|
97
93
|
name: "hass",
|
|
98
94
|
// no internal dependency ones first
|
|
99
|
-
priorityInit: ["fetch", "socket"],
|
|
95
|
+
priorityInit: ["internals", "fetch", "socket"],
|
|
100
96
|
services: {
|
|
101
97
|
/**
|
|
102
98
|
* home assistant areas
|
|
103
99
|
*/
|
|
104
|
-
area:
|
|
100
|
+
area: Area,
|
|
105
101
|
/**
|
|
106
102
|
* home assistant backup interactions
|
|
107
103
|
*/
|
|
108
|
-
backup:
|
|
104
|
+
backup: Backup,
|
|
109
105
|
/**
|
|
110
106
|
* general service calling interface
|
|
111
107
|
*/
|
|
112
|
-
call:
|
|
108
|
+
call: CallProxy,
|
|
113
109
|
/**
|
|
114
110
|
* internal tools
|
|
115
111
|
*/
|
|
116
|
-
configure:
|
|
112
|
+
configure: Configure,
|
|
117
113
|
/**
|
|
118
114
|
* device interactions
|
|
119
115
|
*/
|
|
120
|
-
device:
|
|
116
|
+
device: Device,
|
|
121
117
|
/**
|
|
122
118
|
* retrieve and interact with home assistant entities
|
|
123
119
|
*/
|
|
124
|
-
entity:
|
|
120
|
+
entity: EntityManager,
|
|
125
121
|
/**
|
|
126
122
|
* named event attachments
|
|
127
123
|
*/
|
|
128
|
-
events:
|
|
124
|
+
events: Events,
|
|
129
125
|
/**
|
|
130
126
|
* rest api commands
|
|
131
127
|
*/
|
|
132
|
-
fetch:
|
|
128
|
+
fetch: FetchAPI,
|
|
133
129
|
/**
|
|
134
130
|
* floors, like groups of areas
|
|
135
131
|
*/
|
|
136
|
-
floor:
|
|
132
|
+
floor: Floor,
|
|
137
133
|
/**
|
|
138
134
|
* search for entity ids in a type safe way
|
|
139
135
|
*/
|
|
140
|
-
idBy:
|
|
136
|
+
idBy: IDByExtension,
|
|
137
|
+
/**
|
|
138
|
+
* @internal
|
|
139
|
+
*/
|
|
140
|
+
internals: FetchInternals,
|
|
141
141
|
/**
|
|
142
142
|
* home assistant label interactions
|
|
143
143
|
*/
|
|
144
|
-
label:
|
|
144
|
+
label: Label,
|
|
145
145
|
/**
|
|
146
146
|
* obtain references to entities
|
|
147
147
|
*/
|
|
148
|
-
refBy:
|
|
148
|
+
refBy: ReferenceExtension,
|
|
149
149
|
/**
|
|
150
150
|
* interact with the home assistant registry
|
|
151
151
|
*/
|
|
152
|
-
registry:
|
|
152
|
+
registry: Registry,
|
|
153
153
|
/**
|
|
154
154
|
* websocket interface
|
|
155
155
|
*/
|
|
156
|
-
socket:
|
|
156
|
+
socket: WebsocketAPI,
|
|
157
157
|
/**
|
|
158
158
|
* zone interactions
|
|
159
159
|
*/
|
|
160
|
-
zone:
|
|
160
|
+
zone: Zone,
|
|
161
161
|
},
|
|
162
162
|
});
|
|
163
163
|
//# sourceMappingURL=hass.module.js.map
|
package/dist/hass.module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hass.module.js","sourceRoot":"","sources":["../src/hass.module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hass.module.js","sourceRoot":"","sources":["../src/hass.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EACL,IAAI,EACJ,MAAM,EACN,SAAS,EACT,SAAS,EACT,MAAM,EACN,aAAa,EACb,MAAM,EACN,QAAQ,EACR,cAAc,EACd,KAAK,EACL,aAAa,EACb,KAAK,EACL,kBAAkB,EAClB,QAAQ,EACR,YAAY,EACZ,IAAI,GACL,MAAM,cAAc,CAAC;AAEtB,MAAM,CAAC,MAAM,QAAQ,GAAG,aAAa,CAAC;IACpC,aAAa,EAAE;QACb;;;;WAIG;QACH,QAAQ,EAAE;YACR,OAAO,EAAE,iCAAiC;YAC1C,WAAW,EAAE,gCAAgC;YAC7C,IAAI,EAAE,QAAQ;SACf;QAED;;;;;WAKG;QACH,iBAAiB,EAAE;YACjB,OAAO,EAAE,EAAE;YACX,WAAW,EAAE,wCAAwC;YACrD,IAAI,EAAE,QAAQ;SACf;QAED;;;;;;WAMG;QACH,qBAAqB,EAAE;YACrB,OAAO,EAAE,CAAC;YACV,WAAW,EACT,gHAAgH;YAClH,IAAI,EAAE,QAAQ;SACf;QAED;;;;WAIG;QACH,cAAc,EAAE;YACd,OAAO,EAAE,CAAC;YACV,WAAW,EAAE,+DAA+D;YAC5E,IAAI,EAAE,QAAQ;SACf;QAED;;WAEG;QACH,mBAAmB,EAAE;YACnB,OAAO,EAAE,CAAC;YACV,WAAW,EACT,uFAAuF;YACzF,IAAI,EAAE,QAAQ;SACf;QAED;;WAEG;QACH,6BAA6B,EAAE;YAC7B,OAAO,EAAE,GAAG;YACZ,WAAW,EACT,mJAAmJ;YACrJ,IAAI,EAAE,QAAQ;SACf;QAED;;WAEG;QACH,4BAA4B,EAAE;YAC5B,OAAO,EAAE,GAAG;YACZ,WAAW,EACT,iHAAiH;YACnH,IAAI,EAAE,QAAQ;SACf;QAED;;WAEG;QACH,KAAK,EAAE;YACL,WAAW,EAAE,2CAA2C;YACxD,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,QAAQ;SACf;QAED;;;;;;WAMG;QACH,sBAAsB,EAAE;YACtB,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,oCAAoC;YACjD,IAAI,EAAE,SAAS;SAChB;KACF;IACD,IAAI,EAAE,MAAM;IACZ,oCAAoC;IACpC,YAAY,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC;IAC9C,QAAQ,EAAE;QACR;;WAEG;QACH,IAAI,EAAE,IAAI;QAEV;;WAEG;QACH,MAAM,EAAE,MAAM;QAEd;;WAEG;QACH,IAAI,EAAE,SAAS;QAEf;;WAEG;QACH,SAAS,EAAE,SAAS;QAEpB;;WAEG;QACH,MAAM,EAAE,MAAM;QAEd;;WAEG;QACH,MAAM,EAAE,aAAa;QAErB;;WAEG;QACH,MAAM,EAAE,MAAM;QAEd;;WAEG;QACH,KAAK,EAAE,QAAQ;QAEf;;WAEG;QACH,KAAK,EAAE,KAAK;QAEZ;;WAEG;QACH,IAAI,EAAE,aAAa;QAEnB;;WAEG;QACH,SAAS,EAAE,cAAc;QAEzB;;WAEG;QACH,KAAK,EAAE,KAAK;QAEZ;;WAEG;QACH,KAAK,EAAE,kBAAkB;QAEzB;;WAEG;QACH,QAAQ,EAAE,QAAQ;QAElB;;WAEG;QACH,MAAM,EAAE,YAAY;QAEpB;;WAEG;QACH,IAAI,EAAE,IAAI;KACX;CACF,CAAC,CAAC"}
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
exports.ALL_ENTITIES_UPDATED = "ALL_ENTITIES_UPDATED";
|
|
7
|
-
exports.SOCKET_READY = "SOCKET_READY";
|
|
8
|
-
var HassSocketMessageTypes;
|
|
1
|
+
export const HASS_ENTITY = "HASS_ENTITY";
|
|
2
|
+
export const HASS_ENTITY_GROUP = "HASS_ENTITY_GROUP";
|
|
3
|
+
export const ALL_ENTITIES_UPDATED = "ALL_ENTITIES_UPDATED";
|
|
4
|
+
export const SOCKET_READY = "SOCKET_READY";
|
|
5
|
+
export var HassSocketMessageTypes;
|
|
9
6
|
(function (HassSocketMessageTypes) {
|
|
10
7
|
HassSocketMessageTypes["auth_required"] = "auth_required";
|
|
11
8
|
HassSocketMessageTypes["auth_ok"] = "auth_ok";
|
|
@@ -13,20 +10,20 @@ var HassSocketMessageTypes;
|
|
|
13
10
|
HassSocketMessageTypes["result"] = "result";
|
|
14
11
|
HassSocketMessageTypes["pong"] = "pong";
|
|
15
12
|
HassSocketMessageTypes["auth_invalid"] = "auth_invalid";
|
|
16
|
-
})(HassSocketMessageTypes || (
|
|
17
|
-
|
|
13
|
+
})(HassSocketMessageTypes || (HassSocketMessageTypes = {}));
|
|
14
|
+
export const HOME_ASSISTANT_MODULE_CONFIGURATION = "HOME_ASSISTANT_MODULE_CONFIGURATION";
|
|
18
15
|
/**
|
|
19
16
|
* Required for label support, which is an automatic process at boot
|
|
20
17
|
*
|
|
21
18
|
* Will not make feature optional to support older hass versions
|
|
22
19
|
* Update your stuff
|
|
23
20
|
*/
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
21
|
+
export const MIN_SUPPORTED_HASS_VERSION = "2024.4.0";
|
|
22
|
+
export const EARLY_ON_READY = 1;
|
|
23
|
+
export const ENTITY_REGISTRY_UPDATED = "ENTITY_REGISTRY_UPDATED";
|
|
24
|
+
export const AREA_REGISTRY_UPDATED = "AREA_REGISTRY_UPDATED";
|
|
25
|
+
export const LABEL_REGISTRY_UPDATED = "LABEL_REGISTRY_UPDATED";
|
|
26
|
+
export const FLOOR_REGISTRY_UPDATED = "FLOOR_REGISTRY_UPDATED";
|
|
27
|
+
export const DEVICE_REGISTRY_UPDATED = "DEVICE_REGISTRY_UPDATED";
|
|
28
|
+
export const ZONE_REGISTRY_UPDATED = "ZONE_REGISTRY_UPDATED";
|
|
32
29
|
//# sourceMappingURL=constants.helper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.helper.js","sourceRoot":"","sources":["../../src/helpers/constants.helper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"constants.helper.js","sourceRoot":"","sources":["../../src/helpers/constants.helper.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC;AACzC,MAAM,CAAC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AACrD,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AAC3D,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAC;AAE3C,MAAM,CAAN,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,KAAtB,sBAAsB,QAOjC;AAED,MAAM,CAAC,MAAM,mCAAmC,GAAG,qCAAqC,CAAC;AAEzF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,UAAU,CAAC;AACrD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;AAChC,MAAM,CAAC,MAAM,uBAAuB,GAAG,yBAAyB,CAAC;AACjE,MAAM,CAAC,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;AAC7D,MAAM,CAAC,MAAM,sBAAsB,GAAG,wBAAwB,CAAC;AAC/D,MAAM,CAAC,MAAM,sBAAsB,GAAG,wBAAwB,CAAC;AAC/D,MAAM,CAAC,MAAM,uBAAuB,GAAG,yBAAyB,CAAC;AACjE,MAAM,CAAC,MAAM,qBAAqB,GAAG,uBAAuB,CAAC"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EntryType = void 0;
|
|
4
|
-
var EntryType;
|
|
1
|
+
export var EntryType;
|
|
5
2
|
(function (EntryType) {
|
|
6
3
|
EntryType["Service"] = "service";
|
|
7
|
-
})(EntryType || (
|
|
4
|
+
})(EntryType || (EntryType = {}));
|
|
8
5
|
//# sourceMappingURL=device.helper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device.helper.js","sourceRoot":"","sources":["../../src/helpers/device.helper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"device.helper.js","sourceRoot":"","sources":["../../src/helpers/device.helper.ts"],"names":[],"mappings":"AAsBA,MAAM,CAAN,IAAY,SAEX;AAFD,WAAY,SAAS;IACnB,gCAAmB,CAAA;AACrB,CAAC,EAFW,SAAS,KAAT,SAAS,QAEpB"}
|
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
import { FIRST, TBlackHole } from "@digital-alchemy/core";
|
|
2
2
|
import { Dayjs } from "dayjs";
|
|
3
3
|
import { Except } from "type-fest";
|
|
4
|
-
import { iCallService, TAreaId, TDeviceId, TLabelId, TRawDomains } from "../dynamic";
|
|
4
|
+
import { iCallService, TAreaId, TDeviceId, TLabelId, TPlatformId, TRawDomains } from "../dynamic";
|
|
5
5
|
import { SensorUnitOfMeasurement } from "./registry";
|
|
6
6
|
import { ALL_DOMAINS, ALL_SERVICE_DOMAINS, ANY_ENTITY, ENTITY_STATE, GetDomain, PICK_ENTITY } from "./utility.helper";
|
|
7
|
-
export declare enum HassEvents {
|
|
8
|
-
state_changed = "state_changed",
|
|
9
|
-
hue_event = "hue_event"
|
|
10
|
-
}
|
|
11
7
|
export interface HassEntityContext {
|
|
12
8
|
id: string | null;
|
|
13
9
|
parent_id: string | null;
|
|
@@ -87,7 +83,7 @@ export interface EventData<ID extends ANY_ENTITY = ANY_ENTITY> {
|
|
|
87
83
|
export type EntityUpdateEvent<ID extends ANY_ENTITY = ANY_ENTITY, CONTEXT extends HassEntityContext = HassEntityContext> = {
|
|
88
84
|
context: CONTEXT;
|
|
89
85
|
data: EventData<ID>;
|
|
90
|
-
event_type:
|
|
86
|
+
event_type: string;
|
|
91
87
|
origin: "local";
|
|
92
88
|
result?: string;
|
|
93
89
|
time_fired: Date;
|
|
@@ -109,7 +105,7 @@ export interface EntityDetails<ENTITY extends ANY_ENTITY> {
|
|
|
109
105
|
name: null | string;
|
|
110
106
|
options: Options;
|
|
111
107
|
original_name: null | string;
|
|
112
|
-
platform:
|
|
108
|
+
platform: TPlatformId;
|
|
113
109
|
translation_key: null | string;
|
|
114
110
|
unique_id: string;
|
|
115
111
|
}
|
|
@@ -131,5 +127,4 @@ export interface Sensor {
|
|
|
131
127
|
export interface SensorPrivate {
|
|
132
128
|
suggested_unit_of_measurement: string;
|
|
133
129
|
}
|
|
134
|
-
export type TPlatform = string;
|
|
135
130
|
export {};
|
|
@@ -1,9 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.HassEvents = void 0;
|
|
4
|
-
var HassEvents;
|
|
5
|
-
(function (HassEvents) {
|
|
6
|
-
HassEvents["state_changed"] = "state_changed";
|
|
7
|
-
HassEvents["hue_event"] = "hue_event";
|
|
8
|
-
})(HassEvents || (exports.HassEvents = HassEvents = {}));
|
|
1
|
+
export {};
|
|
9
2
|
//# sourceMappingURL=entity-state.helper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-state.helper.js","sourceRoot":"","sources":["../../src/helpers/entity-state.helper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"entity-state.helper.js","sourceRoot":"","sources":["../../src/helpers/entity-state.helper.ts"],"names":[],"mappings":""}
|