node-red-contrib-esphome 0.2.3 → 0.2.5
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 +25 -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 -3
- package/build/nodes/in.js.map +1 -1
- package/build/nodes/out.js +5 -3
- 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 -5
- package/src/nodes/out.ts +7 -5
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
|
|
|
@@ -43,7 +41,29 @@ $ npm i node-red-contrib-esphome
|
|
|
43
41
|
|
|
44
42
|
## Inputs
|
|
45
43
|
|
|
44
|
+
Inputs are sent to the node as JSON payloads. The list below provides a list of keys and values (and their expected value type) that may be sent to the "esphome out" nodes. It is helpful to watch the "esphome in" messages to learn which type and range of commands are expected by your device.
|
|
45
|
+
|
|
46
|
+
Some example message payloads are:
|
|
47
|
+
|
|
48
|
+
```js
|
|
49
|
+
// to set a light on:
|
|
50
|
+
msg.payload = {'state': true}
|
|
51
|
+
|
|
52
|
+
// set a door lock to unlock:
|
|
53
|
+
msg.payload = {'command':0}
|
|
54
|
+
|
|
55
|
+
// to toggle a light to 42% brightness:
|
|
56
|
+
msg.payload = {'brightness': 42}
|
|
57
|
+
|
|
58
|
+
// to press a button:
|
|
59
|
+
msg.payload = true
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
|
|
46
63
|
#### Button
|
|
64
|
+
|
|
65
|
+
Button inputs may be triggered with any payload in the input message. Simply send a timestamp, `true`, or other payload to the button node. Button type nodes provide no messages into Node-RED.
|
|
66
|
+
|
|
47
67
|
#### Climate
|
|
48
68
|
- `mode` - optional. 0 - OFF, 1 - AUTO, 2 - COOL, 3 - HEAT, 4 - FAN_ONLY, 5 - DRY. See `supportedModesList` attr in config
|
|
49
69
|
- `targetTemperature`- optional. float
|
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
|
@@ -8,6 +8,8 @@ module.exports = (RED) => {
|
|
|
8
8
|
const self = this;
|
|
9
9
|
self.config = config;
|
|
10
10
|
RED.nodes.createNode(this, config);
|
|
11
|
+
// system
|
|
12
|
+
self.text_status = undefined;
|
|
11
13
|
try {
|
|
12
14
|
self.deviceNode = RED.nodes.getNode(config.device);
|
|
13
15
|
}
|
|
@@ -21,7 +23,9 @@ module.exports = (RED) => {
|
|
|
21
23
|
const current_status = self.deviceNode.current_status;
|
|
22
24
|
setTimeout(() => {
|
|
23
25
|
if (current_status) {
|
|
24
|
-
self.
|
|
26
|
+
if (current_status != 'connected' || self.text_status == 'connected') {
|
|
27
|
+
self.status(utils_1.Status[current_status]);
|
|
28
|
+
}
|
|
25
29
|
}
|
|
26
30
|
else {
|
|
27
31
|
self.status({});
|
|
@@ -40,10 +44,13 @@ module.exports = (RED) => {
|
|
|
40
44
|
return;
|
|
41
45
|
}
|
|
42
46
|
delete payload.key;
|
|
43
|
-
let text = typeof payload.state !== 'undefined' && typeof payload.state !== 'object'
|
|
47
|
+
let text = typeof payload.state !== 'undefined' && typeof payload.state !== 'object'
|
|
48
|
+
? String(payload.state)
|
|
49
|
+
: (0, util_1.inspect)(payload);
|
|
44
50
|
if (text && text.length > 32) {
|
|
45
|
-
text = text.
|
|
51
|
+
text = `${text.substring(0, 32)}...`;
|
|
46
52
|
}
|
|
53
|
+
self.text_status = text;
|
|
47
54
|
setStatus({ fill: 'yellow', shape: 'dot', text: text }, 3000);
|
|
48
55
|
const entity = self.deviceNode.entities.find((e) => e.key == config.entity);
|
|
49
56
|
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;AACpC,+BAA6B;AAE7B,MAAM,CAAC,OAAO,GAAG,CAAC,GAAY,EAAE,EAAE;IAChC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,UAAqB,MAAW;QACnE,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;
|
|
1
|
+
{"version":3,"file":"in.js","sourceRoot":"","sources":["../../src/nodes/in.ts"],"names":[],"mappings":"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"}
|
package/build/nodes/out.js
CHANGED
|
@@ -59,14 +59,16 @@ module.exports = (RED) => {
|
|
|
59
59
|
return;
|
|
60
60
|
}
|
|
61
61
|
const payload = msg.payload;
|
|
62
|
-
let text = typeof payload.state !== 'undefined' && typeof payload.state !== 'object'
|
|
62
|
+
let text = typeof payload.state !== 'undefined' && typeof payload.state !== 'object'
|
|
63
|
+
? String(payload.state)
|
|
64
|
+
: (0, util_1.inspect)(payload);
|
|
63
65
|
if (text && text.length > 32) {
|
|
64
|
-
text = text.
|
|
66
|
+
text = `${text.substring(0, 32)}...`;
|
|
65
67
|
}
|
|
66
|
-
setStatus({ fill: 'yellow', shape: 'dot', text: text }, 3000);
|
|
67
68
|
try {
|
|
68
69
|
const command = capitalize(entity.type + 'CommandService');
|
|
69
70
|
yield self.deviceNode.client.connection[command](Object.assign({ key: config.entity }, payload));
|
|
71
|
+
setStatus({ fill: 'yellow', shape: 'dot', text: text });
|
|
70
72
|
}
|
|
71
73
|
catch (e) {
|
|
72
74
|
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;AACpC,+BAA6B;AAE7B,MAAM,CAAC,OAAO,GAAG,CAAC,GAAY,EAAE,EAAE;IAChC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,aAAa,EAAE,UAAqB,MAAW;QACpE,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;
|
|
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.5",
|
|
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": "
|
|
32
|
+
"@2colors/esphome-native-api": "1.2.8"
|
|
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
|
@@ -10,6 +10,9 @@ module.exports = (RED: NodeAPI) => {
|
|
|
10
10
|
|
|
11
11
|
RED.nodes.createNode(this, config);
|
|
12
12
|
|
|
13
|
+
// system
|
|
14
|
+
self.text_status = undefined;
|
|
15
|
+
|
|
13
16
|
try {
|
|
14
17
|
self.deviceNode = RED.nodes.getNode(config.device);
|
|
15
18
|
} catch (_) {
|
|
@@ -21,10 +24,12 @@ module.exports = (RED: NodeAPI) => {
|
|
|
21
24
|
}
|
|
22
25
|
|
|
23
26
|
const clearStatus = (timeout = 0) => {
|
|
24
|
-
const current_status = self.deviceNode.current_status;
|
|
27
|
+
const current_status: string = self.deviceNode.current_status;
|
|
25
28
|
setTimeout(() => {
|
|
26
29
|
if (current_status) {
|
|
27
|
-
|
|
30
|
+
if (current_status != 'connected' || self.text_status == 'connected') {
|
|
31
|
+
self.status(Status[current_status]);
|
|
32
|
+
}
|
|
28
33
|
} else {
|
|
29
34
|
self.status({});
|
|
30
35
|
}
|
|
@@ -47,11 +52,14 @@ module.exports = (RED: NodeAPI) => {
|
|
|
47
52
|
|
|
48
53
|
delete payload.key;
|
|
49
54
|
|
|
50
|
-
let text =
|
|
51
|
-
typeof payload.state !== 'undefined' && typeof payload.state !== 'object'
|
|
55
|
+
let text: string =
|
|
56
|
+
typeof payload.state !== 'undefined' && typeof payload.state !== 'object'
|
|
57
|
+
? String(payload.state)
|
|
58
|
+
: inspect(payload);
|
|
52
59
|
if (text && text.length > 32) {
|
|
53
|
-
text = text.
|
|
60
|
+
text = `${text.substring(0, 32)}...`;
|
|
54
61
|
}
|
|
62
|
+
self.text_status = text;
|
|
55
63
|
setStatus({fill: 'yellow', shape: 'dot', text: text}, 3000);
|
|
56
64
|
|
|
57
65
|
const entity: any = self.deviceNode.entities.find((e: any) => e.key == config.entity);
|
package/src/nodes/out.ts
CHANGED
|
@@ -21,7 +21,7 @@ module.exports = (RED: NodeAPI) => {
|
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
const clearStatus = (timeout = 0) => {
|
|
24
|
-
const current_status = self.deviceNode.current_status;
|
|
24
|
+
const current_status: string = self.deviceNode.current_status;
|
|
25
25
|
setTimeout(() => {
|
|
26
26
|
if (current_status) {
|
|
27
27
|
self.status(Status[current_status as string]);
|
|
@@ -57,16 +57,18 @@ module.exports = (RED: NodeAPI) => {
|
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
const payload: any = msg.payload;
|
|
60
|
-
let text =
|
|
61
|
-
typeof payload.state !== 'undefined' && typeof payload.state !== 'object'
|
|
60
|
+
let text: string =
|
|
61
|
+
typeof payload.state !== 'undefined' && typeof payload.state !== 'object'
|
|
62
|
+
? String(payload.state)
|
|
63
|
+
: inspect(payload);
|
|
62
64
|
if (text && text.length > 32) {
|
|
63
|
-
text = text.
|
|
65
|
+
text = `${text.substring(0, 32)}...`;
|
|
64
66
|
}
|
|
65
|
-
setStatus({fill: 'yellow', shape: 'dot', text: text}, 3000);
|
|
66
67
|
|
|
67
68
|
try {
|
|
68
69
|
const command = capitalize(entity.type + 'CommandService');
|
|
69
70
|
await self.deviceNode.client.connection[command]({key: config.entity, ...payload});
|
|
71
|
+
setStatus({fill: 'yellow', shape: 'dot', text: text});
|
|
70
72
|
} catch (e: any) {
|
|
71
73
|
setStatus(Status['error'], 3000);
|
|
72
74
|
self.error(e.message);
|