node-red-contrib-esphome 0.2.4 → 0.2.6
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 +3 -5
- package/build/nodes/api.js.map +1 -1
- package/build/nodes/device.html +27 -7
- package/build/nodes/device.js +2 -2
- package/build/nodes/device.js.map +1 -1
- package/build/nodes/in.js +10 -4
- package/build/nodes/in.js.map +1 -1
- package/build/nodes/out.js +5 -4
- package/build/nodes/out.js.map +1 -1
- package/package.json +2 -2
- package/src/nodes/device.ts +2 -2
- package/src/nodes/in.ts +13 -6
- package/src/nodes/out.ts +7 -6
package/README.md
CHANGED
|
@@ -21,6 +21,9 @@ Node-RED nodes to ESPhome devices
|
|
|
21
21
|
|
|
22
22
|
## Changelog
|
|
23
23
|
|
|
24
|
+
#### 0.2.5
|
|
25
|
+
- change status algorithm [issues/30](https://github.com/twocolors/node-red-contrib-esphome/issues/30)
|
|
26
|
+
- support Reconnect interval (Default: 15 sec) [issues/29](https://github.com/twocolors/node-red-contrib-esphome/issues/29)
|
|
24
27
|
#### 0.2.3
|
|
25
28
|
- support Text
|
|
26
29
|
#### 0.2.1
|
|
@@ -29,11 +32,6 @@ Node-RED nodes to ESPhome devices
|
|
|
29
32
|
- support MediaPlayer
|
|
30
33
|
- support BLE Advertisements (thx @richardhopton)
|
|
31
34
|
- support Encryption Key (thx @richardhopton)
|
|
32
|
-
#### 0.1.1
|
|
33
|
-
- fix logs
|
|
34
|
-
#### 0.1.0
|
|
35
|
-
- support logs in node
|
|
36
|
-
- allow empty password
|
|
37
35
|
|
|
38
36
|
## Installation
|
|
39
37
|
|
package/build/nodes/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/nodes/api.ts"],"names":[],"mappings":";;;;;;;;;;;AAEA,8DAA8D;AAC9D,MAAM,EAAC,SAAS,EAAC,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;AAE3D,MAAM,CAAC,OAAO,GAAG,CAAC,GAAY,EAAE,EAAE;IAChC,MAAM,SAAS,GAAG,WAAW,CAAC;IAE9B,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,GAAG,WAAW,EAAE,CAAO,GAAoB,EAAE,GAAqB,EAAE,EAAE;QAChG,SAAS,EAAE;aACR,IAAI,CAAC,CAAC,OAAsB,EAAE,EAAE;YAC/B,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAQ,EAAE,EAAE;YAClB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;IACP,CAAC,CAAA,CAAC,CAAC;IAEH,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,GAAG,UAAU,EAAE,CAAO,GAAoB,EAAE,GAAqB,EAAE,EAAE;QAC/F,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAQ,CAAC;QAEjE,IAAI,UAAU,EAAE;
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/nodes/api.ts"],"names":[],"mappings":";;;;;;;;;;;AAEA,8DAA8D;AAC9D,MAAM,EAAC,SAAS,EAAC,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;AAE3D,MAAM,CAAC,OAAO,GAAG,CAAC,GAAY,EAAE,EAAE;IAChC,MAAM,SAAS,GAAG,WAAW,CAAC;IAE9B,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,GAAG,WAAW,EAAE,CAAO,GAAoB,EAAE,GAAqB,EAAE,EAAE;QAChG,SAAS,EAAE;aACR,IAAI,CAAC,CAAC,OAAsB,EAAE,EAAE;YAC/B,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAQ,EAAE,EAAE;YAClB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;IACP,CAAC,CAAA,CAAC,CAAC;IAEH,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,GAAG,UAAU,EAAE,CAAO,GAAoB,EAAE,GAAqB,EAAE,EAAE;QAC/F,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAQ,CAAC;QAEjE,IAAI,UAAU,EAAE,CAAC;YACf,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,CAAC;IACH,CAAC,CAAA,CAAC,CAAC;AACL,CAAC,CAAC"}
|
package/build/nodes/device.html
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
name: {},
|
|
6
6
|
host: {value: ''},
|
|
7
7
|
port: {value: 6053, validate: RED.validators.number()},
|
|
8
|
+
reconnect: {value: 15, validate: RED.validators.number()},
|
|
8
9
|
loglevel: {value: '0'},
|
|
9
10
|
logdump: {value: false},
|
|
10
11
|
ble: {value: false}
|
|
@@ -55,11 +56,13 @@
|
|
|
55
56
|
$('#node-config-input-host').replaceWith(
|
|
56
57
|
`<select id="node-config-input-host" style="width: 100%;"></select>`
|
|
57
58
|
);
|
|
58
|
-
data
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
59
|
+
data
|
|
60
|
+
.sort((a, b) => (a.host > b.host ? 1 : -1))
|
|
61
|
+
.map(function (d) {
|
|
62
|
+
$('#node-config-input-host').append(
|
|
63
|
+
`<option value="${d.address}" data-host="${d.address}" data-port="${d.port}" data-fqdn="${d.host}">${d.host} (${d.board})</option>`
|
|
64
|
+
);
|
|
65
|
+
});
|
|
63
66
|
|
|
64
67
|
$('#node-config-input-host').on('change', changeHost);
|
|
65
68
|
if (!$val || data.length === 1) {
|
|
@@ -137,6 +140,11 @@
|
|
|
137
140
|
<input type="password" id="node-config-input-password" placeholder="Deprecated" />
|
|
138
141
|
</div>
|
|
139
142
|
|
|
143
|
+
<div class="form-row">
|
|
144
|
+
<label for="node-config-input-reconnect"><i class="fa fa-refresh"></i> Reconnect</label>
|
|
145
|
+
<input type="text" id="node-config-input-reconnect" placeholder="15 sec" />
|
|
146
|
+
</div>
|
|
147
|
+
|
|
140
148
|
<div class="form-row">
|
|
141
149
|
<label for="node-config-input-loglevel"><i class="fa fa-file-o"></i> Log Level</label>
|
|
142
150
|
<select id="node-config-input-loglevel" style="width: 70%;">
|
|
@@ -154,14 +162,24 @@
|
|
|
154
162
|
<div class="form-row">
|
|
155
163
|
<label for="node-config-input-logdump"> </label>
|
|
156
164
|
<label for="node-config-input-logdump" style="width:70%">
|
|
157
|
-
<input
|
|
165
|
+
<input
|
|
166
|
+
type="checkbox"
|
|
167
|
+
id="node-config-input-logdump"
|
|
168
|
+
style="display:inline-block; width:22px; vertical-align:top;"
|
|
169
|
+
autocomplete="off"
|
|
170
|
+
/><span>dump config</span>
|
|
158
171
|
</label>
|
|
159
172
|
</div>
|
|
160
173
|
|
|
161
174
|
<div class="form-row">
|
|
162
175
|
<label for="node-config-input-ble"><i class="fa fa-bluetooth"></i> <span>BLE</span></label>
|
|
163
176
|
<label for="node-config-input-ble" style="width:70%">
|
|
164
|
-
<input
|
|
177
|
+
<input
|
|
178
|
+
type="checkbox"
|
|
179
|
+
id="node-config-input-ble"
|
|
180
|
+
style="display:inline-block; width:22px; vertical-align:top;"
|
|
181
|
+
autocomplete="off"
|
|
182
|
+
/><span>Advertisements</span>
|
|
165
183
|
</label>
|
|
166
184
|
</div>
|
|
167
185
|
|
|
@@ -182,6 +200,8 @@
|
|
|
182
200
|
<dd>encryption key for API</dd>
|
|
183
201
|
<dt class="required">Password<span class="property-type">password</span></dt>
|
|
184
202
|
<dd>password for API</dd>
|
|
203
|
+
<dt class="required">Reconnect<span class="property-type">number</span></dt>
|
|
204
|
+
<dd>Reconnect interval in seconds (Default: 15)</dd>
|
|
185
205
|
<dt class="required">Log Level<span class="property-type">number</span></dt>
|
|
186
206
|
<dd>possible log levels</dd>
|
|
187
207
|
<dt class="required">Dump Config<span class="property-type">true|false</span></dt>
|
package/build/nodes/device.js
CHANGED
|
@@ -34,12 +34,12 @@ module.exports = (RED) => {
|
|
|
34
34
|
let options = {
|
|
35
35
|
host: config.host,
|
|
36
36
|
port: config.port,
|
|
37
|
-
clientInfo: Package.name
|
|
37
|
+
clientInfo: `${Package.name} ${Package.version}`,
|
|
38
38
|
initializeDeviceInfo: true,
|
|
39
39
|
initializeListEntities: true,
|
|
40
40
|
initializeSubscribeStates: true,
|
|
41
41
|
reconnect: true,
|
|
42
|
-
reconnectInterval: 15 * 1000,
|
|
42
|
+
reconnectInterval: ((config === null || config === void 0 ? void 0 : config.reconnect) || 15) * 1000,
|
|
43
43
|
pingInterval: 15 * 1000,
|
|
44
44
|
initializeSubscribeBLEAdvertisements: self.ble
|
|
45
45
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device.js","sourceRoot":"","sources":["../../src/nodes/device.ts"],"names":[],"mappings":";;AACA,8DAA8D;AAC9D,MAAM,EAAC,MAAM,EAAC,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;AACxD,8DAA8D;AAC9D,MAAM,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAC9C,wCAAsC;AAEtC,MAAM,CAAC,OAAO,GAAG,CAAC,GAAY,EAAE,EAAE;IAChC,GAAG,CAAC,KAAK,CAAC,YAAY,CACpB,gBAAgB,EAChB,UAAqB,MAAW;QAC9B,4DAA4D;QAC5D,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAEnC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,CAAC;QAEhC,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAA,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAA,EAAE;
|
|
1
|
+
{"version":3,"file":"device.js","sourceRoot":"","sources":["../../src/nodes/device.ts"],"names":[],"mappings":"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"}
|
package/build/nodes/in.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const utils_1 = require("../lib/utils");
|
|
4
|
-
const util_1 = require("util");
|
|
5
4
|
module.exports = (RED) => {
|
|
6
5
|
RED.nodes.registerType('esphome-in', function (config) {
|
|
7
6
|
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
8
7
|
const self = this;
|
|
9
8
|
self.config = config;
|
|
10
9
|
RED.nodes.createNode(this, config);
|
|
10
|
+
// system
|
|
11
|
+
self.text_status = undefined;
|
|
11
12
|
try {
|
|
12
13
|
self.deviceNode = RED.nodes.getNode(config.device);
|
|
13
14
|
}
|
|
@@ -21,7 +22,9 @@ module.exports = (RED) => {
|
|
|
21
22
|
const current_status = self.deviceNode.current_status;
|
|
22
23
|
setTimeout(() => {
|
|
23
24
|
if (current_status) {
|
|
24
|
-
self.
|
|
25
|
+
if (current_status != 'connected' || self.text_status == 'connected') {
|
|
26
|
+
self.status(utils_1.Status[current_status]);
|
|
27
|
+
}
|
|
25
28
|
}
|
|
26
29
|
else {
|
|
27
30
|
self.status({});
|
|
@@ -40,10 +43,13 @@ module.exports = (RED) => {
|
|
|
40
43
|
return;
|
|
41
44
|
}
|
|
42
45
|
delete payload.key;
|
|
43
|
-
let text = typeof payload.state !== 'undefined' && typeof payload.state !== 'object'
|
|
46
|
+
let text = typeof payload.state !== 'undefined' && typeof payload.state !== 'object'
|
|
47
|
+
? String(payload.state)
|
|
48
|
+
: `${Object.keys(payload)[0]}: ${Object.values(payload)[0]}`;
|
|
44
49
|
if (text && text.length > 32) {
|
|
45
|
-
text = text.
|
|
50
|
+
text = `${text.substring(0, 32)}...`;
|
|
46
51
|
}
|
|
52
|
+
self.text_status = text;
|
|
47
53
|
setStatus({ fill: 'yellow', shape: 'dot', text: text }, 3000);
|
|
48
54
|
const entity = self.deviceNode.entities.find((e) => e.key == config.entity);
|
|
49
55
|
self.send({
|
package/build/nodes/in.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"in.js","sourceRoot":"","sources":["../../src/nodes/in.ts"],"names":[],"mappings":";;AACA,wCAAoC;
|
|
1
|
+
{"version":3,"file":"in.js","sourceRoot":"","sources":["../../src/nodes/in.ts"],"names":[],"mappings":"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"}
|
package/build/nodes/out.js
CHANGED
|
@@ -10,7 +10,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
const utils_1 = require("../lib/utils");
|
|
13
|
-
const util_1 = require("util");
|
|
14
13
|
module.exports = (RED) => {
|
|
15
14
|
RED.nodes.registerType('esphome-out', function (config) {
|
|
16
15
|
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
@@ -59,14 +58,16 @@ module.exports = (RED) => {
|
|
|
59
58
|
return;
|
|
60
59
|
}
|
|
61
60
|
const payload = msg.payload;
|
|
62
|
-
let text = typeof payload.state !== 'undefined' && typeof payload.state !== 'object'
|
|
61
|
+
let text = typeof payload.state !== 'undefined' && typeof payload.state !== 'object'
|
|
62
|
+
? String(payload.state)
|
|
63
|
+
: `${Object.keys(payload)[0]}: ${Object.values(payload)[0]}`;
|
|
63
64
|
if (text && text.length > 32) {
|
|
64
|
-
text = text.
|
|
65
|
+
text = `${text.substring(0, 32)}...`;
|
|
65
66
|
}
|
|
66
|
-
setStatus({ fill: 'yellow', shape: 'dot', text: text }, 3000);
|
|
67
67
|
try {
|
|
68
68
|
const command = capitalize(entity.type + 'CommandService');
|
|
69
69
|
yield self.deviceNode.client.connection[command](Object.assign({ key: config.entity }, payload));
|
|
70
|
+
setStatus({ fill: 'yellow', shape: 'dot', text: text });
|
|
70
71
|
}
|
|
71
72
|
catch (e) {
|
|
72
73
|
setStatus(utils_1.Status['error'], 3000);
|
package/build/nodes/out.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"out.js","sourceRoot":"","sources":["../../src/nodes/out.ts"],"names":[],"mappings":";;;;;;;;;;;AACA,wCAAoC;
|
|
1
|
+
{"version":3,"file":"out.js","sourceRoot":"","sources":["../../src/nodes/out.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-red-contrib-esphome",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.6",
|
|
4
4
|
"description": "Node-RED nodes to ESPhome devices",
|
|
5
5
|
"homepage": "https://github.com/twocolors/node-red-contrib-esphome",
|
|
6
6
|
"license": "MIT",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
}
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@2colors/esphome-native-api": "1.2.
|
|
32
|
+
"@2colors/esphome-native-api": "1.2.9"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"@types/node": "^20.1.0",
|
package/src/nodes/device.ts
CHANGED
|
@@ -44,12 +44,12 @@ module.exports = (RED: NodeAPI) => {
|
|
|
44
44
|
let options: any = {
|
|
45
45
|
host: config.host,
|
|
46
46
|
port: config.port,
|
|
47
|
-
clientInfo: Package.name
|
|
47
|
+
clientInfo: `${Package.name} ${Package.version}`,
|
|
48
48
|
initializeDeviceInfo: true,
|
|
49
49
|
initializeListEntities: true,
|
|
50
50
|
initializeSubscribeStates: true,
|
|
51
51
|
reconnect: true,
|
|
52
|
-
reconnectInterval: 15 * 1000,
|
|
52
|
+
reconnectInterval: (config?.reconnect || 15) * 1000,
|
|
53
53
|
pingInterval: 15 * 1000,
|
|
54
54
|
initializeSubscribeBLEAdvertisements: self.ble
|
|
55
55
|
};
|
package/src/nodes/in.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import {NodeAPI} from 'node-red';
|
|
2
2
|
import {Status} from '../lib/utils';
|
|
3
|
-
import {inspect} from 'util';
|
|
4
3
|
|
|
5
4
|
module.exports = (RED: NodeAPI) => {
|
|
6
5
|
RED.nodes.registerType('esphome-in', function (this: any, config: any) {
|
|
@@ -10,6 +9,9 @@ module.exports = (RED: NodeAPI) => {
|
|
|
10
9
|
|
|
11
10
|
RED.nodes.createNode(this, config);
|
|
12
11
|
|
|
12
|
+
// system
|
|
13
|
+
self.text_status = undefined;
|
|
14
|
+
|
|
13
15
|
try {
|
|
14
16
|
self.deviceNode = RED.nodes.getNode(config.device);
|
|
15
17
|
} catch (_) {
|
|
@@ -21,10 +23,12 @@ module.exports = (RED: NodeAPI) => {
|
|
|
21
23
|
}
|
|
22
24
|
|
|
23
25
|
const clearStatus = (timeout = 0) => {
|
|
24
|
-
const current_status = self.deviceNode.current_status;
|
|
26
|
+
const current_status: string = self.deviceNode.current_status;
|
|
25
27
|
setTimeout(() => {
|
|
26
28
|
if (current_status) {
|
|
27
|
-
|
|
29
|
+
if (current_status != 'connected' || self.text_status == 'connected') {
|
|
30
|
+
self.status(Status[current_status]);
|
|
31
|
+
}
|
|
28
32
|
} else {
|
|
29
33
|
self.status({});
|
|
30
34
|
}
|
|
@@ -47,11 +51,14 @@ module.exports = (RED: NodeAPI) => {
|
|
|
47
51
|
|
|
48
52
|
delete payload.key;
|
|
49
53
|
|
|
50
|
-
let text =
|
|
51
|
-
typeof payload.state !== 'undefined' && typeof payload.state !== 'object'
|
|
54
|
+
let text: string =
|
|
55
|
+
typeof payload.state !== 'undefined' && typeof payload.state !== 'object'
|
|
56
|
+
? String(payload.state)
|
|
57
|
+
: `${Object.keys(payload)[0]}: ${Object.values(payload)[0]}`;
|
|
52
58
|
if (text && text.length > 32) {
|
|
53
|
-
text = text.
|
|
59
|
+
text = `${text.substring(0, 32)}...`;
|
|
54
60
|
}
|
|
61
|
+
self.text_status = text;
|
|
55
62
|
setStatus({fill: 'yellow', shape: 'dot', text: text}, 3000);
|
|
56
63
|
|
|
57
64
|
const entity: any = self.deviceNode.entities.find((e: any) => e.key == config.entity);
|
package/src/nodes/out.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import {NodeAPI} from 'node-red';
|
|
2
2
|
import {Status} from '../lib/utils';
|
|
3
|
-
import {inspect} from 'util';
|
|
4
3
|
|
|
5
4
|
module.exports = (RED: NodeAPI) => {
|
|
6
5
|
RED.nodes.registerType('esphome-out', function (this: any, config: any) {
|
|
@@ -21,7 +20,7 @@ module.exports = (RED: NodeAPI) => {
|
|
|
21
20
|
}
|
|
22
21
|
|
|
23
22
|
const clearStatus = (timeout = 0) => {
|
|
24
|
-
const current_status = self.deviceNode.current_status;
|
|
23
|
+
const current_status: string = self.deviceNode.current_status;
|
|
25
24
|
setTimeout(() => {
|
|
26
25
|
if (current_status) {
|
|
27
26
|
self.status(Status[current_status as string]);
|
|
@@ -57,16 +56,18 @@ module.exports = (RED: NodeAPI) => {
|
|
|
57
56
|
}
|
|
58
57
|
|
|
59
58
|
const payload: any = msg.payload;
|
|
60
|
-
let text =
|
|
61
|
-
typeof payload.state !== 'undefined' && typeof payload.state !== 'object'
|
|
59
|
+
let text: string =
|
|
60
|
+
typeof payload.state !== 'undefined' && typeof payload.state !== 'object'
|
|
61
|
+
? String(payload.state)
|
|
62
|
+
: `${Object.keys(payload)[0]}: ${Object.values(payload)[0]}`;
|
|
62
63
|
if (text && text.length > 32) {
|
|
63
|
-
text = text.
|
|
64
|
+
text = `${text.substring(0, 32)}...`;
|
|
64
65
|
}
|
|
65
|
-
setStatus({fill: 'yellow', shape: 'dot', text: text}, 3000);
|
|
66
66
|
|
|
67
67
|
try {
|
|
68
68
|
const command = capitalize(entity.type + 'CommandService');
|
|
69
69
|
await self.deviceNode.client.connection[command]({key: config.entity, ...payload});
|
|
70
|
+
setStatus({fill: 'yellow', shape: 'dot', text: text});
|
|
70
71
|
} catch (e: any) {
|
|
71
72
|
setStatus(Status['error'], 3000);
|
|
72
73
|
self.error(e.message);
|