@digital-alchemy/hass 0.2.1 → 0.2.3
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/dist/extensions/call-proxy.extension.js +9 -5
- package/dist/extensions/call-proxy.extension.js.map +1 -1
- package/dist/extensions/entity-manager.extension.js +2 -1
- package/dist/extensions/entity-manager.extension.js.map +1 -1
- package/dist/extensions/websocket-api.extension.d.ts +5 -2
- package/dist/extensions/websocket-api.extension.js +172 -109
- package/dist/extensions/websocket-api.extension.js.map +1 -1
- package/dist/hass.module.d.ts +14 -0
- package/dist/hass.module.js +20 -1
- package/dist/hass.module.js.map +1 -1
- package/dist/helpers/constants.helper.d.ts +0 -1
- package/dist/helpers/constants.helper.js +1 -2
- package/dist/helpers/constants.helper.js.map +1 -1
- package/dist/helpers/metrics.helper.d.ts +13 -1
- package/dist/helpers/metrics.helper.js +25 -1
- package/dist/helpers/metrics.helper.js.map +1 -1
- package/package.json +1 -1
|
@@ -43,15 +43,12 @@ function CallProxy({ logger, lifecycle, context, hass, config, }) {
|
|
|
43
43
|
}),
|
|
44
44
|
]));
|
|
45
45
|
}
|
|
46
|
-
/**
|
|
47
|
-
* perform the initial load for the
|
|
48
|
-
*/
|
|
49
46
|
async function loadServiceList(recursion = core_1.START) {
|
|
50
47
|
logger.info(`fetching service list`);
|
|
51
48
|
services = await hass.fetch.listServices();
|
|
52
49
|
if (core_1.is.empty(services)) {
|
|
53
50
|
if (recursion > MAX_ATTEMPTS) {
|
|
54
|
-
logger.fatal(`
|
|
51
|
+
logger.fatal(`failed to load service list from Home Assistant`);
|
|
55
52
|
(0, process_1.exit)(FAILED);
|
|
56
53
|
}
|
|
57
54
|
logger.warn("failed to retrieve {service} list. Retrying {%s}/[%s]", recursion, MAX_ATTEMPTS);
|
|
@@ -70,7 +67,14 @@ function CallProxy({ logger, lifecycle, context, hass, config, }) {
|
|
|
70
67
|
* Prefer sending via socket, if available.
|
|
71
68
|
*/
|
|
72
69
|
async function sendMessage(serviceName, service_data) {
|
|
73
|
-
|
|
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) {
|
|
74
78
|
return await hass.fetch.callService(serviceName, service_data);
|
|
75
79
|
}
|
|
76
80
|
const [domain, service] = serviceName.split(".");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"call-proxy.extension.js","sourceRoot":"","sources":["../../src/extensions/call-proxy.extension.ts"],"names":[],"mappings":";;;AAAA,gDAS+B;AAC/B,qCAA+B;AAE/B,0BAOY;AAEZ,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B,MAAM,YAAY,GAAG,EAAE,CAAC;AACxB,MAAM,MAAM,GAAG,CAAC,CAAC;AACjB,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAEvC,SAAgB,SAAS,CAAC,EACxB,MAAM,EACN,SAAS,EACT,OAAO,EACP,IAAI,EACJ,MAAM,GACS;IACf,IAAI,OAAiB,CAAC;IACtB,IAAI,QAA0B,CAAC;IAC/B,MAAM,QAAQ,GAAG,EAA6C,CAAC;IAC/D;;;;OAIG;IACH,SAAS,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;QAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACtC,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;YACtC,OAAO;QACT,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACpD,MAAM,eAAe,EAAE,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,SAAS,SAAS,CAAC,MAAmB;QACpC,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9B,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,gBAAgB,CAAC,CAAC;YAC7C,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,UAAU,GAAmB,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QAC3E,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,oBAAa,CACrB,OAAO,EACP,qBAAqB,EACrB,8BAA8B,MAAM,oDAAoD,CACzF,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACjD,GAAG;YACH,KAAK,EAAgC,UAAkB,EAAE,EAAE,CACzD,MAAM,WAAW,CACf,GAAG,MAAM,IAAI,GAAG,EAAa,EAC7B;gBACE,GAAG,UAAU;aACsB,CACtC;SACJ,CAAC,CACH,CAAC;IACJ,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"call-proxy.extension.js","sourceRoot":"","sources":["../../src/extensions/call-proxy.extension.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,7 +28,8 @@ function EntityManager({ logger, hass, lifecycle, internal, }) {
|
|
|
28
28
|
// # Methods
|
|
29
29
|
// ## Retrieve raw state object for entity
|
|
30
30
|
function getCurrentState(entity_id) {
|
|
31
|
-
|
|
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) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-manager.extension.js","sourceRoot":"","sources":["../../src/extensions/entity-manager.extension.ts"],"names":[],"mappings":";;;;AAAA,gDAU+B;AAC/B,0DAAqC;AACrC,4DAAkC;AAClC,qCAA+B;AAG/B,0BAOY;AAGC,QAAA,sBAAsB,GAAG,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;AAsBzE,MAAM,YAAY,GAAG,EAAE,CAAC;AACxB,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B,MAAM,SAAS,GAAG,CAAC,CAAC;AACpB,MAAM,MAAM,GAAG,CAAC,CAAC;AAEjB,SAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,IAAI,EACJ,SAAS,EACT,QAAQ,GACO;IACf,eAAe;IACf;;OAEG;IACH,IAAI,YAAY,GAAG,EAElB,CAAC;IACF,MAAM,cAAc,GAAG,IAAI,GAAG,EAAuC,CAAC;IACtE,IAAI,WAAkB,CAAC;IAEvB,0DAA0D;IAC1D,sEAAsE;IACtE,MAAM,KAAK,GAAG,IAAI,gBAAY,EAAE,CAAC;IACjC,KAAK,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IACjC,IAAI,IAAI,GAAG,KAAK,CAAC;IAEjB,YAAY;IACZ,0CAA0C;IAC1C,SAAS,eAAe,CACtB,SAAoB;QAGpB,
|
|
1
|
+
{"version":3,"file":"entity-manager.extension.js","sourceRoot":"","sources":["../../src/extensions/entity-manager.extension.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,11 +2,14 @@ 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
4
|
export declare function WebsocketAPI({ context, event, hass, config, internal, lifecycle, logger, scheduler, }: TServiceParams): {
|
|
5
|
-
|
|
5
|
+
/**
|
|
6
|
+
* the current state of the websocket
|
|
7
|
+
*/
|
|
8
|
+
connectionState: "invalid" | "offline" | "connecting" | "connected" | "unknown";
|
|
6
9
|
/**
|
|
7
10
|
* Convenient wrapper for sendMessage
|
|
8
11
|
*/
|
|
9
|
-
fireEvent: (event_type: string, event_data?: object) => Promise<unknown>;
|
|
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
|
*
|
|
@@ -11,39 +11,137 @@ const __1 = require("..");
|
|
|
11
11
|
let connection;
|
|
12
12
|
const CONNECTION_OPEN = 1;
|
|
13
13
|
const CLEANUP_INTERVAL = 5;
|
|
14
|
-
const PING_INTERVAL = 10;
|
|
15
14
|
const UNLIMITED = 0;
|
|
15
|
+
const CONNECTION_FAILED = 2;
|
|
16
16
|
let messageCount = core_1.START;
|
|
17
17
|
exports.SOCKET_CONNECTED = "SOCKET_CONNECTED";
|
|
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 = {}));
|
|
18
27
|
function WebsocketAPI({ context, event, hass, config, internal, lifecycle, logger, scheduler, }) {
|
|
19
|
-
let AUTH_TIMEOUT;
|
|
20
28
|
/**
|
|
21
29
|
* Local attachment points for socket events
|
|
22
30
|
*/
|
|
23
31
|
const socketEvents = new events_1.default();
|
|
24
32
|
event.setMaxListeners(UNLIMITED);
|
|
25
|
-
let connecting;
|
|
26
33
|
let MESSAGE_TIMESTAMPS = [];
|
|
34
|
+
let onSocketReady;
|
|
27
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;
|
|
28
37
|
// Start the socket
|
|
29
38
|
lifecycle.onBootstrap(async () => {
|
|
30
39
|
if (config.hass.AUTO_CONNECT_SOCKET) {
|
|
31
40
|
logger.debug(`auto starting connection`);
|
|
32
|
-
await
|
|
41
|
+
await ManageConnection();
|
|
33
42
|
attachScheduledFunctions();
|
|
34
43
|
}
|
|
35
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
|
+
}
|
|
36
135
|
function attachScheduledFunctions() {
|
|
37
136
|
logger.trace(`attaching interval schedules`);
|
|
38
|
-
// Set up intervals
|
|
39
137
|
scheduler.interval({
|
|
40
|
-
exec: async () => await
|
|
41
|
-
interval:
|
|
138
|
+
exec: async () => await ManageConnection(),
|
|
139
|
+
interval: config.hass.RETRY_INTERVAL * core_1.SECOND,
|
|
42
140
|
});
|
|
43
141
|
scheduler.interval({
|
|
44
142
|
exec: () => {
|
|
45
143
|
const now = Date.now();
|
|
46
|
-
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);
|
|
47
145
|
},
|
|
48
146
|
interval: CLEANUP_INTERVAL * core_1.SECOND,
|
|
49
147
|
});
|
|
@@ -52,61 +150,35 @@ function WebsocketAPI({ context, event, hass, config, internal, lifecycle, logge
|
|
|
52
150
|
logger.debug(`shutdown - tearing down connection`);
|
|
53
151
|
await teardown();
|
|
54
152
|
});
|
|
55
|
-
async function ping() {
|
|
56
|
-
if (!hass.socket.connectionActive) {
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
try {
|
|
60
|
-
const pong = await sendMessage({ type: __1.HASSIO_WS_COMMAND.ping });
|
|
61
|
-
if (pong) {
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
// Tends to happen when HA resets
|
|
65
|
-
// Resolution is to re-connect when it's up again
|
|
66
|
-
logger.error(`failed to pong!`);
|
|
67
|
-
}
|
|
68
|
-
catch (error) {
|
|
69
|
-
logger.error({ error }, `ping error`);
|
|
70
|
-
}
|
|
71
|
-
logger.debug(`ping teardown`);
|
|
72
|
-
await teardown();
|
|
73
|
-
logger.info(`🪃 ping re-init`);
|
|
74
|
-
await init();
|
|
75
|
-
}
|
|
76
153
|
async function teardown() {
|
|
77
154
|
if (!connection) {
|
|
78
155
|
return;
|
|
79
156
|
}
|
|
80
157
|
if (connection.readyState === CONNECTION_OPEN) {
|
|
81
158
|
logger.debug(`closing current connection`);
|
|
82
|
-
hass.socket.connectionActive = false;
|
|
83
159
|
connection.close();
|
|
84
160
|
}
|
|
85
161
|
connection = undefined;
|
|
162
|
+
setConnectionState("offline");
|
|
86
163
|
}
|
|
87
|
-
async function fireEvent(event_type, event_data) {
|
|
88
|
-
|
|
89
|
-
return await sendMessage({ event_data, event_type, type: "fire_event" });
|
|
164
|
+
async function fireEvent(event_type, event_data, waitForResponse = true) {
|
|
165
|
+
return await sendMessage({ event_data, event_type, type: "fire_event" }, waitForResponse);
|
|
90
166
|
}
|
|
91
167
|
async function sendMessage(data, waitForResponse = true, subscription) {
|
|
92
|
-
if (
|
|
93
|
-
logger.error("
|
|
94
|
-
logger.info("🪃 on error re-init");
|
|
95
|
-
await init();
|
|
168
|
+
if (hass.socket.connectionState === "offline") {
|
|
169
|
+
logger.error("socket is closed, cannot send message");
|
|
96
170
|
return undefined;
|
|
97
171
|
}
|
|
98
172
|
if (hass.socket.pauseMessages && data.type !== __1.HASSIO_WS_COMMAND.ping) {
|
|
99
173
|
return undefined;
|
|
100
174
|
}
|
|
101
|
-
countMessage();
|
|
175
|
+
countMessage(data.type);
|
|
176
|
+
const id = messageCount;
|
|
102
177
|
if (data.type !== __1.HASSIO_WS_COMMAND.auth) {
|
|
103
|
-
|
|
104
|
-
logger.error({ data }, `cannot send message, connection is not open`);
|
|
105
|
-
return undefined;
|
|
106
|
-
}
|
|
107
|
-
data.id = messageCount;
|
|
178
|
+
data.id = id;
|
|
108
179
|
}
|
|
109
180
|
const json = JSON.stringify(data);
|
|
181
|
+
const sentAt = new Date();
|
|
110
182
|
connection.send(json);
|
|
111
183
|
if (subscription) {
|
|
112
184
|
return data.id;
|
|
@@ -114,19 +186,38 @@ function WebsocketAPI({ context, event, hass, config, internal, lifecycle, logge
|
|
|
114
186
|
if (!waitForResponse) {
|
|
115
187
|
return undefined;
|
|
116
188
|
}
|
|
117
|
-
return new Promise(done =>
|
|
189
|
+
return new Promise(async (done) => {
|
|
190
|
+
waitingCallback.set(id, done);
|
|
191
|
+
await (0, core_1.sleep)(config.hass.EXPECT_RESPONSE_AFTER * core_1.SECOND);
|
|
192
|
+
if (!waitingCallback.has(id)) {
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
// this could happen around dropped connections, or a number of other reasons
|
|
196
|
+
//
|
|
197
|
+
// discard the promise so whatever flow is depending on this can get garbage collected
|
|
198
|
+
waitingCallback.delete(id);
|
|
199
|
+
logger.warn({
|
|
200
|
+
message: data,
|
|
201
|
+
name: "sendMessage",
|
|
202
|
+
sentAt: internal.utils.relativeDate(sentAt),
|
|
203
|
+
}, `sent message, did not receive reply`);
|
|
204
|
+
});
|
|
118
205
|
}
|
|
119
|
-
function countMessage() {
|
|
206
|
+
function countMessage(type) {
|
|
120
207
|
messageCount++;
|
|
121
208
|
const now = Date.now();
|
|
122
209
|
MESSAGE_TIMESTAMPS.push(now);
|
|
123
|
-
const
|
|
124
|
-
|
|
125
|
-
|
|
210
|
+
const avgWindow = config.hass.SOCKET_AVG_DURATION;
|
|
211
|
+
const perSecondAverage = Math.ceil(MESSAGE_TIMESTAMPS.filter(time => time > now - core_1.SECOND * avgWindow)
|
|
212
|
+
.length / avgWindow);
|
|
213
|
+
__1.SOCKET_SENT_MESSAGES.labels({ type }).inc();
|
|
214
|
+
const { SOCKET_CRASH_REQUESTS_PER_SEC: crashCount, SOCKET_WARN_REQUESTS_PER_SEC: warnCount, } = config.hass;
|
|
215
|
+
if (perSecondAverage > crashCount) {
|
|
216
|
+
logger.fatal(`exceeded {CRASH_REQUESTS_PER_MIN} ([%s]) threshold`, crashCount);
|
|
126
217
|
(0, process_1.exit)();
|
|
127
218
|
}
|
|
128
|
-
if (
|
|
129
|
-
logger.warn(`message traffic
|
|
219
|
+
if (perSecondAverage > warnCount) {
|
|
220
|
+
logger.warn(`message traffic [%s] > [%s] > [%s]`, crashCount, perSecondAverage, warnCount);
|
|
130
221
|
}
|
|
131
222
|
}
|
|
132
223
|
function getUrl() {
|
|
@@ -138,27 +229,21 @@ function WebsocketAPI({ context, event, hass, config, internal, lifecycle, logge
|
|
|
138
229
|
`${protocol}//${url.hostname}${port}${path}/api/websocket`);
|
|
139
230
|
}
|
|
140
231
|
async function init() {
|
|
141
|
-
const now = (0, dayjs_1.default)();
|
|
142
|
-
if (connecting) {
|
|
143
|
-
if (connecting.add(config.hass.RETRY_INTERVAL, "second").isAfter(now)) {
|
|
144
|
-
logger.debug("stopped, already connecting");
|
|
145
|
-
return;
|
|
146
|
-
}
|
|
147
|
-
connection = undefined;
|
|
148
|
-
}
|
|
149
232
|
if (connection) {
|
|
233
|
+
// logger.error({ connection });
|
|
150
234
|
throw new core_1.InternalError(context, "ExistingConnection", `Destroy the current connection before creating a new one`);
|
|
151
235
|
}
|
|
152
|
-
connecting = now;
|
|
153
236
|
logger.debug(`CONNECTION_ACTIVE = {false}`);
|
|
154
237
|
const url = getUrl();
|
|
155
|
-
hass.socket.connectionActive = false;
|
|
156
238
|
try {
|
|
157
239
|
messageCount = core_1.START;
|
|
158
240
|
connection = new ws_1.default(url);
|
|
159
241
|
connection.on("message", async (message) => {
|
|
160
242
|
try {
|
|
161
|
-
|
|
243
|
+
lastReceivedMessage = (0, dayjs_1.default)();
|
|
244
|
+
const data = JSON.parse(message.toString());
|
|
245
|
+
await onMessage(data);
|
|
246
|
+
pingSleep?.kill("continue");
|
|
162
247
|
}
|
|
163
248
|
catch (error) {
|
|
164
249
|
// My expectation is `internal.safeExec` should trap any application errors
|
|
@@ -168,36 +253,20 @@ function WebsocketAPI({ context, event, hass, config, internal, lifecycle, logge
|
|
|
168
253
|
}
|
|
169
254
|
});
|
|
170
255
|
connection.on("error", async (error) => {
|
|
171
|
-
logger.error({ error: error
|
|
172
|
-
if (
|
|
173
|
-
|
|
174
|
-
await teardown();
|
|
175
|
-
logger.info("🪃 on error re-init");
|
|
176
|
-
await (0, core_1.sleep)(core_1.SECOND);
|
|
177
|
-
await init();
|
|
256
|
+
logger.error({ error: error }, "Socket error");
|
|
257
|
+
if (hass.socket.connectionState === "connected") {
|
|
258
|
+
setConnectionState("unknown");
|
|
178
259
|
}
|
|
179
260
|
});
|
|
180
261
|
connection.on("close", async () => {
|
|
181
262
|
logger.warn("connection closed");
|
|
182
263
|
await teardown();
|
|
183
|
-
await (0, core_1.sleep)(config.hass.RETRY_INTERVAL);
|
|
184
|
-
logger.info("🪃 on close re-init");
|
|
185
|
-
await init();
|
|
186
|
-
});
|
|
187
|
-
return await new Promise(done => {
|
|
188
|
-
connection.once("open", () => {
|
|
189
|
-
connecting = undefined;
|
|
190
|
-
done();
|
|
191
|
-
});
|
|
192
264
|
});
|
|
265
|
+
return await new Promise(done => (onSocketReady = done));
|
|
193
266
|
}
|
|
194
267
|
catch (error) {
|
|
195
268
|
logger.error({ error, url }, `initConnection error`);
|
|
196
|
-
|
|
197
|
-
setTimeout(async () => {
|
|
198
|
-
logger.debug(`🪃 retry re-init`);
|
|
199
|
-
await init();
|
|
200
|
-
}, config.hass.RETRY_INTERVAL);
|
|
269
|
+
setConnectionState("offline");
|
|
201
270
|
}
|
|
202
271
|
}
|
|
203
272
|
/**
|
|
@@ -218,37 +287,32 @@ function WebsocketAPI({ context, event, hass, config, internal, lifecycle, logge
|
|
|
218
287
|
*/
|
|
219
288
|
async function onMessage(message) {
|
|
220
289
|
const id = Number(message.id);
|
|
290
|
+
__1.SOCKET_RECEIVED_MESSAGES.labels({ type: message.type }).inc();
|
|
221
291
|
switch (message.type) {
|
|
222
292
|
case __1.HassSocketMessageTypes.auth_required:
|
|
223
293
|
logger.debug(`sending authentication`);
|
|
224
|
-
|
|
294
|
+
sendMessage({ access_token: config.hass.TOKEN, type: __1.HASSIO_WS_COMMAND.auth }, false);
|
|
295
|
+
return;
|
|
225
296
|
case __1.HassSocketMessageTypes.auth_ok:
|
|
226
297
|
logger.debug(`CONNECTION_ACTIVE = {true}`);
|
|
227
298
|
// * Flag as valid connection
|
|
228
|
-
hass.socket.connectionActive = true;
|
|
229
|
-
connecting = undefined;
|
|
230
|
-
event.emit(exports.SOCKET_CONNECTED);
|
|
231
|
-
clearTimeout(AUTH_TIMEOUT);
|
|
232
299
|
logger.debug(`event subscriptions starting`);
|
|
233
300
|
await sendMessage({ type: __1.HASSIO_WS_COMMAND.subscribe_events }, false);
|
|
234
|
-
|
|
301
|
+
onSocketReady();
|
|
302
|
+
event.emit(exports.SOCKET_CONNECTED);
|
|
235
303
|
return;
|
|
236
304
|
case __1.HassSocketMessageTypes.event:
|
|
237
305
|
return await onMessageEvent(id, message);
|
|
238
306
|
case __1.HassSocketMessageTypes.pong:
|
|
239
307
|
// 🏓
|
|
240
|
-
if (waitingCallback.has(id)) {
|
|
241
|
-
const f = waitingCallback.get(id);
|
|
242
|
-
waitingCallback.delete(id);
|
|
243
|
-
f(message);
|
|
244
|
-
}
|
|
245
308
|
return;
|
|
246
309
|
case __1.HassSocketMessageTypes.result:
|
|
247
310
|
return await onMessageResult(id, message);
|
|
248
311
|
case __1.HassSocketMessageTypes.auth_invalid:
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
312
|
+
setConnectionState("invalid");
|
|
313
|
+
logger.fatal({ message }, "auth_invalid");
|
|
314
|
+
// ? If you have a use case for making this exit configurable, open a ticket
|
|
315
|
+
(0, process_1.exit)();
|
|
252
316
|
return;
|
|
253
317
|
default:
|
|
254
318
|
// Code error probably
|
|
@@ -295,16 +359,6 @@ function WebsocketAPI({ context, event, hass, config, internal, lifecycle, logge
|
|
|
295
359
|
f(message.result);
|
|
296
360
|
}
|
|
297
361
|
}
|
|
298
|
-
async function sendAuth() {
|
|
299
|
-
AUTH_TIMEOUT = setTimeout(() => {
|
|
300
|
-
logger.error(`did not receive an auth response, retrying`);
|
|
301
|
-
sendAuth();
|
|
302
|
-
}, config.hass.RETRY_INTERVAL);
|
|
303
|
-
await sendMessage({
|
|
304
|
-
access_token: config.hass.TOKEN,
|
|
305
|
-
type: __1.HASSIO_WS_COMMAND.auth,
|
|
306
|
-
});
|
|
307
|
-
}
|
|
308
362
|
function onEvent({ context, label, event, once, exec, }) {
|
|
309
363
|
logger.trace({ context, event }, `attaching socket event listener`);
|
|
310
364
|
const callback = async (data) => {
|
|
@@ -328,7 +382,10 @@ function WebsocketAPI({ context, event, hass, config, internal, lifecycle, logge
|
|
|
328
382
|
};
|
|
329
383
|
}
|
|
330
384
|
return {
|
|
331
|
-
|
|
385
|
+
/**
|
|
386
|
+
* the current state of the websocket
|
|
387
|
+
*/
|
|
388
|
+
connectionState: "offline",
|
|
332
389
|
/**
|
|
333
390
|
* Convenient wrapper for sendMessage
|
|
334
391
|
*/
|
|
@@ -343,9 +400,15 @@ function WebsocketAPI({ context, event, hass, config, internal, lifecycle, logge
|
|
|
343
400
|
* run a callback when the socket finishes connecting
|
|
344
401
|
*/
|
|
345
402
|
onConnect: (callback) => {
|
|
346
|
-
|
|
403
|
+
const wrapped = async () => {
|
|
347
404
|
await internal.safeExec(async () => await callback());
|
|
348
|
-
}
|
|
405
|
+
};
|
|
406
|
+
if (hass.socket.connectionState === "connected") {
|
|
407
|
+
logger.warn(`added [onConnect] callback after socket was already connected, running immediately`);
|
|
408
|
+
setImmediate(wrapped);
|
|
409
|
+
// attach anyways, for restarts or whatever
|
|
410
|
+
}
|
|
411
|
+
event.on(exports.SOCKET_CONNECTED, wrapped);
|
|
349
412
|
},
|
|
350
413
|
/**
|
|
351
414
|
* Attach to the incoming stream of socket events. Do your own filtering and processing from there
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket-api.extension.js","sourceRoot":"","sources":["../../src/extensions/websocket-api.extension.ts"],"names":[],"mappings":";;;;AAAA,gDAQ+B;AAC/B,0DAAqC;AACrC,4DAAkC;AAClC,qCAA+B;AAC/B,oDAAoB;AAEpB,0BAWY;AAEZ,IAAI,UAAc,CAAC;AACnB,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,MAAM,aAAa,GAAG,EAAE,CAAC;AACzB,MAAM,SAAS,GAAG,CAAC,CAAC;AACpB,IAAI,YAAY,GAAG,YAAK,CAAC;AACZ,QAAA,gBAAgB,GAAG,kBAAkB,CAAC;AAEnD,SAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,KAAK,EACL,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,SAAS,EACT,MAAM,EACN,SAAS,GACM;IACf,IAAI,YAA2C,CAAC;IAEhD;;OAEG;IACH,MAAM,YAAY,GAAG,IAAI,gBAAY,EAAE,CAAC;IACxC,KAAK,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IACjC,IAAI,UAAiB,CAAC;IAEtB,IAAI,kBAAkB,GAAa,EAAE,CAAC;IACtC,MAAM,eAAe,GAAG,IAAI,GAAG,EAA2C,CAAC;IAE3E,mBAAmB;IACnB,SAAS,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;QAC/B,IAAI,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACpC,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;YACzC,MAAM,IAAI,EAAE,CAAC;YACb,wBAAwB,EAAE,CAAC;QAC7B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,SAAS,wBAAwB;QAC/B,MAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAC7C,mBAAmB;QACnB,SAAS,CAAC,QAAQ,CAAC;YACjB,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,IAAI,EAAE;YAC9B,QAAQ,EAAE,aAAa,GAAG,aAAM;SACjC,CAAC,CAAC;QACH,SAAS,CAAC,QAAQ,CAAC;YACjB,IAAI,EAAE,GAAG,EAAE;gBACT,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACvB,kBAAkB,GAAG,kBAAkB,CAAC,MAAM,CAC5C,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,GAAG,GAAG,aAAM,CAC5B,CAAC;YACJ,CAAC;YACD,QAAQ,EAAE,gBAAgB,GAAG,aAAM;SACpC,CAAC,CAAC;IACL,CAAC;IAED,SAAS,CAAC,kBAAkB,CAAC,KAAK,IAAI,EAAE;QACtC,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACnD,MAAM,QAAQ,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,KAAK,UAAU,IAAI;QACjB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,EAAE,IAAI,EAAE,qBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;YACjE,IAAI,IAAI,EAAE,CAAC;gBACT,OAAO;YACT,CAAC;YACD,iCAAiC;YACjC,iDAAiD;YACjD,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,YAAY,CAAC,CAAC;QACxC,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC9B,MAAM,QAAQ,EAAE,CAAC;QACjB,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC/B,MAAM,IAAI,EAAE,CAAC;IACf,CAAC;IAED,KAAK,UAAU,QAAQ;QACrB,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QACD,IAAI,UAAU,CAAC,UAAU,KAAK,eAAe,EAAE,CAAC;YAC9C,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAC3C,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,KAAK,CAAC;YACrC,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;QACD,UAAU,GAAG,SAAS,CAAC;IACzB,CAAC;IAED,KAAK,UAAU,SAAS,CAAC,UAAkB,EAAE,UAAmB;QAC9D,gEAAgE;QAChE,OAAO,MAAM,WAAW,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,KAAK,UAAU,WAAW,CACxB,IAIC,EACD,eAAe,GAAG,IAAI,EACtB,YAAyB;QAEzB,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;YAClE,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACnC,MAAM,IAAI,EAAE,CAAC;YACb,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,KAAK,qBAAiB,CAAC,IAAI,EAAE,CAAC;YACtE,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,YAAY,EAAE,CAAC;QACf,IAAI,IAAI,CAAC,IAAI,KAAK,qBAAiB,CAAC,IAAI,EAAE,CAAC;YACzC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBAClC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,6CAA6C,CAAC,CAAC;gBACtE,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,IAAI,CAAC,EAAE,GAAG,YAAY,CAAC;QACzB,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAClC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,EAAoB,CAAC;QACnC,CAAC;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,IAAI,OAAO,CAAiB,IAAI,CAAC,EAAE,CACxC,eAAe,CAAC,GAAG,CACjB,YAAY,EACZ,IAAuC,CACxC,CACF,CAAC;IACJ,CAAC;IAED,SAAS,YAAY;QACnB,YAAY,EAAE,CAAC;QACf,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,KAAK,GAAG,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,GAAG,GAAG,aAAM,CAAC,CAAC,MAAM,CAAC;QAC5E,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE,CAAC;YACtD,MAAM,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;YAC1E,IAAA,cAAI,GAAE,CAAC;QACT,CAAC;QACD,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE,CAAC;YACrD,MAAM,CAAC,IAAI,CACT,mBAAmB,MAAM,CAAC,IAAI,CAAC,6BAA6B,IAAI,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE,CACpH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,SAAS,MAAM;QACb,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QAC3D,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;QACtD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,OAAO,CACL,MAAM,CAAC,IAAI,CAAC,aAAa;YACzB,GAAG,QAAQ,KAAK,GAAG,CAAC,QAAQ,GAAG,IAAI,GAAG,IAAI,gBAAgB,CAC3D,CAAC;IACJ,CAAC;IAED,KAAK,UAAU,IAAI;QACjB,MAAM,GAAG,GAAG,IAAA,eAAK,GAAE,CAAC;QACpB,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtE,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;gBAC5C,OAAO;YACT,CAAC;YACD,UAAU,GAAG,SAAS,CAAC;QACzB,CAAC;QACD,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,IAAI,oBAAa,CACrB,OAAO,EACP,oBAAoB,EACpB,0DAA0D,CAC3D,CAAC;QACJ,CAAC;QACD,UAAU,GAAG,GAAG,CAAC;QACjB,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,KAAK,CAAC;QACrC,IAAI,CAAC;YACH,YAAY,GAAG,YAAK,CAAC;YACrB,UAAU,GAAG,IAAI,YAAE,CAAC,GAAG,CAAC,CAAC;YACzB,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,OAAe,EAAE,EAAE;gBACjD,IAAI,CAAC;oBACH,MAAM,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;gBAClD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,2EAA2E;oBAC3E,8CAA8C;oBAC9C,sDAAsD;oBACtD,MAAM,CAAC,KAAK,CACV,EAAE,KAAK,EAAE,EACT,0DAA0D,CAC3D,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,KAAY,EAAE,EAAE;gBAC5C,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK,EAAE,EAAE,cAAc,CAAC,CAAC;gBAChE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;oBAClC,MAAM,IAAA,YAAK,EAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;oBACxC,MAAM,QAAQ,EAAE,CAAC;oBACjB,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;oBACnC,MAAM,IAAA,YAAK,EAAC,aAAM,CAAC,CAAC;oBACpB,MAAM,IAAI,EAAE,CAAC;gBACf,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;gBAChC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBACjC,MAAM,QAAQ,EAAE,CAAC;gBACjB,MAAM,IAAA,YAAK,EAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBACxC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBACnC,MAAM,IAAI,EAAE,CAAC;YACf,CAAC,CAAC,CAAC;YAEH,OAAO,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE;gBAC9B,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;oBAC3B,UAAU,GAAG,SAAS,CAAC;oBACvB,IAAI,EAAE,CAAC;gBACT,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,sBAAsB,CAAC,CAAC;YACrD,UAAU,GAAG,SAAS,CAAC;YACvB,UAAU,CAAC,KAAK,IAAI,EAAE;gBACpB,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;gBACjC,MAAM,IAAI,EAAE,CAAC;YACf,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,UAAU,SAAS,CAAC,OAAyB;QAChD,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC9B,QAAQ,OAAO,CAAC,IAA8B,EAAE,CAAC;YAC/C,KAAK,0BAAsB,CAAC,aAAa;gBACvC,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;gBACvC,OAAO,MAAM,QAAQ,EAAE,CAAC;YAE1B,KAAK,0BAAsB,CAAC,OAAO;gBACjC,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;gBAC3C,6BAA6B;gBAC7B,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC;gBACpC,UAAU,GAAG,SAAS,CAAC;gBACvB,KAAK,CAAC,IAAI,CAAC,wBAAgB,CAAC,CAAC;gBAC7B,YAAY,CAAC,YAAY,CAAC,CAAC;gBAC3B,MAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;gBAC7C,MAAM,WAAW,CAAC,EAAE,IAAI,EAAE,qBAAiB,CAAC,gBAAgB,EAAE,EAAE,KAAK,CAAC,CAAC;gBACvE,KAAK,CAAC,IAAI,CAAC,kBAAc,CAAC,CAAC;gBAC3B,OAAO;YAET,KAAK,0BAAsB,CAAC,KAAK;gBAC/B,OAAO,MAAM,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YAE3C,KAAK,0BAAsB,CAAC,IAAI;gBAC9B,KAAK;gBACL,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC5B,MAAM,CAAC,GAAG,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAClC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBAC3B,CAAC,CAAC,OAAO,CAAC,CAAC;gBACb,CAAC;gBACD,OAAO;YAET,KAAK,0BAAsB,CAAC,MAAM;gBAChC,OAAO,MAAM,eAAe,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YAE5C,KAAK,0BAAsB,CAAC,YAAY;gBACtC,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;gBAC5C,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,KAAK,CAAC;gBACrC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC9B,OAAO;YAET;gBACE,sBAAsB;gBACtB,MAAM,CAAC,KAAK,CAAC,mCAAmC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,SAAS,cAAc,CAAC,EAAU,EAAE,OAAyB;QAC3D,IAAI,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,eAAe,EAAE,CAAC;YACjD,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;YACpD,MAAM,EAAE,GAAG,SAAS,EAAE,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC;YACvD,IAAI,SAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;gBACjB,MAAM,IAAI,oBAAa,CACrB,OAAO,EACP,OAAO,EACP,4DAA4D,CAC7D,CAAC;YACJ,CAAC;YACD,0BAA0B;YAC1B,gCAAgC;YAChC,IAAI,SAAS,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACpC,IAAI,CAAC,MAAM,CAAC,0BAAsB,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YAChE,CAAC;iBAAM,CAAC;gBACN,oCAAoC;gBACpC,0EAA0E;gBAC1E,0EAA0E;gBAC1E,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,EAAE,4CAA4C,CAAC,CAAC;gBACxE,OAAO;YACT,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QACD,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,GAAG,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC3B,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QAED,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC;IAED,SAAS,eAAe,CAAC,EAAU,EAAE,OAAyB;QAC5D,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAC5B,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAClB,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;YAC5B,CAAC;YACD,MAAM,CAAC,GAAG,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC3B,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,KAAK,UAAU,QAAQ;QACrB,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE;YAC7B,MAAM,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAC3D,QAAQ,EAAE,CAAC;QACb,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC/B,MAAM,WAAW,CAAC;YAChB,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;YAC/B,IAAI,EAAE,qBAAiB,CAAC,IAAI;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,SAAS,OAAO,CAAsB,EACpC,OAAO,EACP,KAAK,EACL,KAAK,EACL,IAAI,EACJ,IAAI,GACqB;QACzB,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,iCAAiC,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,KAAK,EAAE,IAAuB,EAAE,EAAE;YACjD,MAAM,QAAQ,CAAC,QAAQ,CAAC;gBACtB,QAAQ,EAAE,+BAA2B;gBACrC,MAAM,EAAE,uBAAmB;gBAC3B,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,IAAY,CAAC;gBAC1C,UAAU,EAAE,gCAA4B;gBACxC,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE;aAClC,CAAC,CAAC;QACL,CAAC,CAAC;QACF,IAAI,IAAI,EAAE,CAAC;YACT,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,gCAAgC,CAAC,CAAC;YACnE,YAAY,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC/C,CAAC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,gBAAgB,EAAE,KAAK;QAEvB;;WAEG;QACH,SAAS;QACT;;;;WAIG;QACH,IAAI;QAEJ;;WAEG;QACH,SAAS,EAAE,CAAC,QAA0B,EAAE,EAAE;YACxC,KAAK,CAAC,EAAE,CAAC,wBAAgB,EAAE,KAAK,IAAI,EAAE;gBACpC,MAAM,QAAQ,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,QAAQ,EAAE,CAAC,CAAC;YACxD,CAAC,CAAC,CAAC;QACL,CAAC;QAED;;;;WAIG;QACH,OAAO;QAEP;;;;WAIG;QACH,aAAa,EAAE,KAAK;QAEpB;;;;WAIG;QACH,WAAW;QACX;;;;WAIG;QACH,QAAQ;KACT,CAAC;AACJ,CAAC;AA/aD,oCA+aC"}
|
|
1
|
+
{"version":3,"file":"websocket-api.extension.js","sourceRoot":"","sources":["../../src/extensions/websocket-api.extension.ts"],"names":[],"mappings":"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"}
|
package/dist/hass.module.d.ts
CHANGED
|
@@ -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 {};
|
package/dist/hass.module.js
CHANGED
|
@@ -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:
|
|
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.",
|
package/dist/hass.module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hass.module.js","sourceRoot":"","sources":["../src/hass.module.ts"],"names":[],"mappings":";;;AAAA,
|
|
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.
|
|
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;
|
|
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,
|
|
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"}
|