@nightspark77/node-red-charlie-home-assistant 1.0.2 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/device.html +3 -9
  2. package/device.js +6 -10
  3. package/package.json +1 -1
package/device.html CHANGED
@@ -5,9 +5,9 @@
5
5
  color: '#fff',
6
6
  defaults: {
7
7
  name: { value: '', required: true },
8
- deviceId: { value: '', required: true },
9
8
  deviceType: { value: 'light', required: true },
10
9
  externalId: { value: '', required: true },
10
+ roomId: { value: '', required: false },
11
11
  outputs: { value: 2 },
12
12
  },
13
13
  inputs: 1,
@@ -31,18 +31,13 @@
31
31
 
32
32
  <script type="text/x-red" data-template-name="charlie-device">
33
33
  <form id="dialog-form" class="form-horizontal" autocomplete="off">
34
- <div class="form-row">
35
- <label for="node-input-deviceId">Id</label>
36
- <input id="node-input-deviceId" />
37
- </div>
38
-
39
34
  <div class="form-row">
40
35
  <label for="node-input-name">Name</label>
41
36
  <input id="node-input-name" />
42
37
  </div>
43
38
 
44
39
  <div class="form-row">
45
- <label for="node-input-externalId">External id</label>
40
+ <label for="node-input-externalId">Unique ID</label>
46
41
  <input id="node-input-externalId" />
47
42
  </div>
48
43
 
@@ -121,9 +116,8 @@
121
116
 
122
117
  <h3>Properties</h3>
123
118
  <ul>
124
- <li><b>ID</b> – Unique identifier for this device within Charlie.</li>
125
119
  <li><b>Name</b> – Display name shown in the Node‑RED editor.</li>
126
- <li><b>External ID</b> – Identifier used by the Charlie backend.</li>
120
+ <li><b>Unique ID</b> – Identifier used by the Charlie backend.</li>
127
121
  <li><b>Type</b> – Device category:
128
122
  <ul>
129
123
  <li><b>Lum</b> – Light</li>
package/device.js CHANGED
@@ -9,12 +9,7 @@ module.exports = function (RED) {
9
9
  let client = null;
10
10
 
11
11
  (async () => {
12
- if (
13
- !config.deviceId ||
14
- !config.name ||
15
- !config.externalId ||
16
- !config.deviceType
17
- )
12
+ if (!config.name || !config.externalId || !config.deviceType)
18
13
  return;
19
14
 
20
15
  await isReady();
@@ -26,7 +21,6 @@ module.exports = function (RED) {
26
21
  'Content-Type': 'application/json',
27
22
  },
28
23
  body: JSON.stringify({
29
- _id: config.deviceId,
30
24
  name: config.name,
31
25
  externalId: config.externalId,
32
26
  provider: conf.provider.id,
@@ -37,7 +31,7 @@ module.exports = function (RED) {
37
31
  client = mqtt.connect(mqttHost());
38
32
 
39
33
  client.on('connect', () => {
40
- client.subscribe(`device/${config.deviceId}/state`);
34
+ client.subscribe(`device/${config.externalId}/state`);
41
35
  });
42
36
 
43
37
  client.on('message', (topic, payload) => {
@@ -51,7 +45,7 @@ module.exports = function (RED) {
51
45
 
52
46
  const outputs = [null, null, null];
53
47
  outputs[oi] = {
54
- topic: config.deviceId,
48
+ topic: config.externalId,
55
49
  payload: { state: res.power, level: res.level },
56
50
  };
57
51
 
@@ -75,7 +69,7 @@ module.exports = function (RED) {
75
69
  client.publish(
76
70
  `device/state`,
77
71
  JSON.stringify({
78
- id: config.deviceId,
72
+ externalId: config.externalId,
79
73
  power: payload.state,
80
74
  level: payload.level ?? 100,
81
75
  }),
@@ -88,6 +82,8 @@ module.exports = function (RED) {
88
82
  }
89
83
  }
90
84
  });
85
+
86
+ node.on('close', () => client?.end(true));
91
87
  }
92
88
 
93
89
  RED.nodes.registerType('charlie-device', MyNode);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nightspark77/node-red-charlie-home-assistant",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "description": "Create and control your own device with Charlie within nodered",
5
5
  "license": "ISC",
6
6
  "keywords": [