@digital-alchemy/hass 0.2.1 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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 +174 -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,37 @@ 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) {
|
|
155
|
+
logger.trace("HIT1");
|
|
78
156
|
return;
|
|
79
157
|
}
|
|
158
|
+
logger.trace("HIT2");
|
|
80
159
|
if (connection.readyState === CONNECTION_OPEN) {
|
|
81
160
|
logger.debug(`closing current connection`);
|
|
82
|
-
hass.socket.connectionActive = false;
|
|
83
161
|
connection.close();
|
|
84
162
|
}
|
|
85
163
|
connection = undefined;
|
|
164
|
+
setConnectionState("offline");
|
|
86
165
|
}
|
|
87
|
-
async function fireEvent(event_type, event_data) {
|
|
88
|
-
|
|
89
|
-
return await sendMessage({ event_data, event_type, type: "fire_event" });
|
|
166
|
+
async function fireEvent(event_type, event_data, waitForResponse = true) {
|
|
167
|
+
return await sendMessage({ event_data, event_type, type: "fire_event" }, waitForResponse);
|
|
90
168
|
}
|
|
91
169
|
async function sendMessage(data, waitForResponse = true, subscription) {
|
|
92
|
-
if (
|
|
93
|
-
logger.error("
|
|
94
|
-
logger.info("🪃 on error re-init");
|
|
95
|
-
await init();
|
|
170
|
+
if (hass.socket.connectionState === "offline") {
|
|
171
|
+
logger.error("socket is closed, cannot send message");
|
|
96
172
|
return undefined;
|
|
97
173
|
}
|
|
98
174
|
if (hass.socket.pauseMessages && data.type !== __1.HASSIO_WS_COMMAND.ping) {
|
|
99
175
|
return undefined;
|
|
100
176
|
}
|
|
101
|
-
countMessage();
|
|
177
|
+
countMessage(data.type);
|
|
178
|
+
const id = messageCount;
|
|
102
179
|
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;
|
|
180
|
+
data.id = id;
|
|
108
181
|
}
|
|
109
182
|
const json = JSON.stringify(data);
|
|
183
|
+
const sentAt = new Date();
|
|
110
184
|
connection.send(json);
|
|
111
185
|
if (subscription) {
|
|
112
186
|
return data.id;
|
|
@@ -114,19 +188,38 @@ function WebsocketAPI({ context, event, hass, config, internal, lifecycle, logge
|
|
|
114
188
|
if (!waitForResponse) {
|
|
115
189
|
return undefined;
|
|
116
190
|
}
|
|
117
|
-
return new Promise(done =>
|
|
191
|
+
return new Promise(async (done) => {
|
|
192
|
+
waitingCallback.set(id, done);
|
|
193
|
+
await (0, core_1.sleep)(config.hass.EXPECT_RESPONSE_AFTER);
|
|
194
|
+
if (!waitingCallback.has(id)) {
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
// this could happen around dropped connections, or a number of other reasons
|
|
198
|
+
//
|
|
199
|
+
// discard the promise so whatever flow is depending on this can get garbage collected
|
|
200
|
+
waitingCallback.delete(id);
|
|
201
|
+
logger.warn({
|
|
202
|
+
message: data,
|
|
203
|
+
name: "sendMessage",
|
|
204
|
+
sentAt: internal.utils.relativeDate(sentAt),
|
|
205
|
+
}, `sent message, did not receive reply`);
|
|
206
|
+
});
|
|
118
207
|
}
|
|
119
|
-
function countMessage() {
|
|
208
|
+
function countMessage(type) {
|
|
120
209
|
messageCount++;
|
|
121
210
|
const now = Date.now();
|
|
122
211
|
MESSAGE_TIMESTAMPS.push(now);
|
|
123
|
-
const
|
|
124
|
-
|
|
125
|
-
|
|
212
|
+
const avgWindow = config.hass.SOCKET_AVG_DURATION;
|
|
213
|
+
const perSecondAverage = Math.ceil(MESSAGE_TIMESTAMPS.filter(time => time > now - core_1.SECOND * avgWindow)
|
|
214
|
+
.length / avgWindow);
|
|
215
|
+
__1.SOCKET_SENT_MESSAGES.labels({ type }).inc();
|
|
216
|
+
const { SOCKET_CRASH_REQUESTS_PER_SEC: crashCount, SOCKET_WARN_REQUESTS_PER_SEC: warnCount, } = config.hass;
|
|
217
|
+
if (perSecondAverage > crashCount) {
|
|
218
|
+
logger.fatal(`exceeded {CRASH_REQUESTS_PER_MIN} ([%s]) threshold`, crashCount);
|
|
126
219
|
(0, process_1.exit)();
|
|
127
220
|
}
|
|
128
|
-
if (
|
|
129
|
-
logger.warn(`message traffic
|
|
221
|
+
if (perSecondAverage > warnCount) {
|
|
222
|
+
logger.warn(`message traffic [%s] > [%s] > [%s]`, crashCount, perSecondAverage, warnCount);
|
|
130
223
|
}
|
|
131
224
|
}
|
|
132
225
|
function getUrl() {
|
|
@@ -138,27 +231,21 @@ function WebsocketAPI({ context, event, hass, config, internal, lifecycle, logge
|
|
|
138
231
|
`${protocol}//${url.hostname}${port}${path}/api/websocket`);
|
|
139
232
|
}
|
|
140
233
|
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
234
|
if (connection) {
|
|
235
|
+
// logger.error({ connection });
|
|
150
236
|
throw new core_1.InternalError(context, "ExistingConnection", `Destroy the current connection before creating a new one`);
|
|
151
237
|
}
|
|
152
|
-
connecting = now;
|
|
153
238
|
logger.debug(`CONNECTION_ACTIVE = {false}`);
|
|
154
239
|
const url = getUrl();
|
|
155
|
-
hass.socket.connectionActive = false;
|
|
156
240
|
try {
|
|
157
241
|
messageCount = core_1.START;
|
|
158
242
|
connection = new ws_1.default(url);
|
|
159
243
|
connection.on("message", async (message) => {
|
|
160
244
|
try {
|
|
161
|
-
|
|
245
|
+
lastReceivedMessage = (0, dayjs_1.default)();
|
|
246
|
+
const data = JSON.parse(message.toString());
|
|
247
|
+
await onMessage(data);
|
|
248
|
+
pingSleep?.kill("continue");
|
|
162
249
|
}
|
|
163
250
|
catch (error) {
|
|
164
251
|
// My expectation is `internal.safeExec` should trap any application errors
|
|
@@ -168,36 +255,20 @@ function WebsocketAPI({ context, event, hass, config, internal, lifecycle, logge
|
|
|
168
255
|
}
|
|
169
256
|
});
|
|
170
257
|
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();
|
|
258
|
+
logger.error({ error: error }, "Socket error");
|
|
259
|
+
if (hass.socket.connectionState === "connected") {
|
|
260
|
+
setConnectionState("unknown");
|
|
178
261
|
}
|
|
179
262
|
});
|
|
180
263
|
connection.on("close", async () => {
|
|
181
264
|
logger.warn("connection closed");
|
|
182
265
|
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
266
|
});
|
|
267
|
+
return await new Promise(done => (onSocketReady = done));
|
|
193
268
|
}
|
|
194
269
|
catch (error) {
|
|
195
270
|
logger.error({ error, url }, `initConnection error`);
|
|
196
|
-
|
|
197
|
-
setTimeout(async () => {
|
|
198
|
-
logger.debug(`🪃 retry re-init`);
|
|
199
|
-
await init();
|
|
200
|
-
}, config.hass.RETRY_INTERVAL);
|
|
271
|
+
setConnectionState("offline");
|
|
201
272
|
}
|
|
202
273
|
}
|
|
203
274
|
/**
|
|
@@ -218,37 +289,32 @@ function WebsocketAPI({ context, event, hass, config, internal, lifecycle, logge
|
|
|
218
289
|
*/
|
|
219
290
|
async function onMessage(message) {
|
|
220
291
|
const id = Number(message.id);
|
|
292
|
+
__1.SOCKET_RECEIVED_MESSAGES.labels({ type: message.type }).inc();
|
|
221
293
|
switch (message.type) {
|
|
222
294
|
case __1.HassSocketMessageTypes.auth_required:
|
|
223
295
|
logger.debug(`sending authentication`);
|
|
224
|
-
|
|
296
|
+
sendMessage({ access_token: config.hass.TOKEN, type: __1.HASSIO_WS_COMMAND.auth }, false);
|
|
297
|
+
return;
|
|
225
298
|
case __1.HassSocketMessageTypes.auth_ok:
|
|
226
299
|
logger.debug(`CONNECTION_ACTIVE = {true}`);
|
|
227
300
|
// * Flag as valid connection
|
|
228
|
-
hass.socket.connectionActive = true;
|
|
229
|
-
connecting = undefined;
|
|
230
|
-
event.emit(exports.SOCKET_CONNECTED);
|
|
231
|
-
clearTimeout(AUTH_TIMEOUT);
|
|
232
301
|
logger.debug(`event subscriptions starting`);
|
|
233
302
|
await sendMessage({ type: __1.HASSIO_WS_COMMAND.subscribe_events }, false);
|
|
234
|
-
|
|
303
|
+
onSocketReady();
|
|
304
|
+
event.emit(exports.SOCKET_CONNECTED);
|
|
235
305
|
return;
|
|
236
306
|
case __1.HassSocketMessageTypes.event:
|
|
237
307
|
return await onMessageEvent(id, message);
|
|
238
308
|
case __1.HassSocketMessageTypes.pong:
|
|
239
309
|
// 🏓
|
|
240
|
-
if (waitingCallback.has(id)) {
|
|
241
|
-
const f = waitingCallback.get(id);
|
|
242
|
-
waitingCallback.delete(id);
|
|
243
|
-
f(message);
|
|
244
|
-
}
|
|
245
310
|
return;
|
|
246
311
|
case __1.HassSocketMessageTypes.result:
|
|
247
312
|
return await onMessageResult(id, message);
|
|
248
313
|
case __1.HassSocketMessageTypes.auth_invalid:
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
314
|
+
setConnectionState("invalid");
|
|
315
|
+
logger.fatal({ message }, "auth_invalid");
|
|
316
|
+
// ? If you have a use case for making this exit configurable, open a ticket
|
|
317
|
+
(0, process_1.exit)();
|
|
252
318
|
return;
|
|
253
319
|
default:
|
|
254
320
|
// Code error probably
|
|
@@ -295,16 +361,6 @@ function WebsocketAPI({ context, event, hass, config, internal, lifecycle, logge
|
|
|
295
361
|
f(message.result);
|
|
296
362
|
}
|
|
297
363
|
}
|
|
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
364
|
function onEvent({ context, label, event, once, exec, }) {
|
|
309
365
|
logger.trace({ context, event }, `attaching socket event listener`);
|
|
310
366
|
const callback = async (data) => {
|
|
@@ -328,7 +384,10 @@ function WebsocketAPI({ context, event, hass, config, internal, lifecycle, logge
|
|
|
328
384
|
};
|
|
329
385
|
}
|
|
330
386
|
return {
|
|
331
|
-
|
|
387
|
+
/**
|
|
388
|
+
* the current state of the websocket
|
|
389
|
+
*/
|
|
390
|
+
connectionState: "offline",
|
|
332
391
|
/**
|
|
333
392
|
* Convenient wrapper for sendMessage
|
|
334
393
|
*/
|
|
@@ -343,9 +402,15 @@ function WebsocketAPI({ context, event, hass, config, internal, lifecycle, logge
|
|
|
343
402
|
* run a callback when the socket finishes connecting
|
|
344
403
|
*/
|
|
345
404
|
onConnect: (callback) => {
|
|
346
|
-
|
|
405
|
+
const wrapped = async () => {
|
|
347
406
|
await internal.safeExec(async () => await callback());
|
|
348
|
-
}
|
|
407
|
+
};
|
|
408
|
+
if (hass.socket.connectionState === "connected") {
|
|
409
|
+
logger.warn(`added [onConnect] callback after socket was already connected, running immediately`);
|
|
410
|
+
setImmediate(wrapped);
|
|
411
|
+
// attach anyways, for restarts or whatever
|
|
412
|
+
}
|
|
413
|
+
event.on(exports.SOCKET_CONNECTED, wrapped);
|
|
349
414
|
},
|
|
350
415
|
/**
|
|
351
416
|
* 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":"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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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"}
|
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"}
|