node-red-contrib-modbus-modpackqt 2.1.0 → 3.0.0
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/CHANGELOG.md +33 -0
- package/DISCLAIMER.md +3 -6
- package/README.md +11 -23
- package/nodes/modpackqt-config.html +7 -10
- package/nodes/modpackqt-config.js +4 -35
- package/nodes/modpackqt-master-read.html +2 -4
- package/nodes/modpackqt-master-write.html +2 -2
- package/nodes/modpackqt-slave-read.html +2 -2
- package/nodes/modpackqt-slave-write.html +2 -2
- package/nodes/modpackqt-traffic.html +3 -3
- package/package.json +5 -2
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,39 @@ All notable changes to **node-red-contrib-modbus-modpackqt** are documented
|
|
|
4
4
|
here. This project follows [Semantic Versioning](https://semver.org/) — pin a
|
|
5
5
|
major version (`^2.0.0`) in production.
|
|
6
6
|
|
|
7
|
+
## [3.0.0] — 2026-05-10
|
|
8
|
+
|
|
9
|
+
### ⚠️ Breaking changes (positioning, not behavior)
|
|
10
|
+
|
|
11
|
+
- **Removed the 1,000 ops/day rate limit.** All nodes are now 100% free with
|
|
12
|
+
no usage limits. The `RATE_LIMIT` error code is no longer thrown. If your
|
|
13
|
+
flows previously caught it, you can remove that handler.
|
|
14
|
+
- **Removed the `modpackqt · ` brand prefix from node status text.** Status
|
|
15
|
+
text is now clean by default.
|
|
16
|
+
- **Repositioned palette as "Modbus commissioning, testing & analysis tools."**
|
|
17
|
+
README, package description and node help text updated. No code changes
|
|
18
|
+
beyond the rate-limit removal.
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
- `modpackqt-config.js` — `checkLimit()` is now a no-op counter. The API key
|
|
23
|
+
field is retained but is reserved for future optional cloud features
|
|
24
|
+
(profile sync, remote console). All Modbus functionality works without a key.
|
|
25
|
+
- README — pricing table, "free tier" sections and trial-key call-outs removed.
|
|
26
|
+
- DISCLAIMER.md — rate-limit references removed.
|
|
27
|
+
|
|
28
|
+
### Added
|
|
29
|
+
|
|
30
|
+
- New keywords: `modbus-tester`, `modbus-commissioning`, `modbus-analyzer`
|
|
31
|
+
for better discoverability.
|
|
32
|
+
|
|
33
|
+
## [2.1.1] — 2026-05-09
|
|
34
|
+
|
|
35
|
+
### Changed
|
|
36
|
+
|
|
37
|
+
- **Promo button copy:** "Free Modbus Tester & Tools" →
|
|
38
|
+
"Premium Advanced Modbus Tester". Tagline updated to match.
|
|
39
|
+
|
|
7
40
|
## [2.1.0] — 2026-05-09
|
|
8
41
|
|
|
9
42
|
### Added
|
package/DISCLAIMER.md
CHANGED
|
@@ -53,8 +53,6 @@ and a wrong write can damage equipment, ruin a batch, or cause a safety incident
|
|
|
53
53
|
- It does **not** guarantee delivery, ordering, or completeness of writes
|
|
54
54
|
beyond what the underlying `modbus-serial` library and the network/serial
|
|
55
55
|
link provide.
|
|
56
|
-
- The free tier is rate-limited; if you exceed 1,000 ops/day, master read/write
|
|
57
|
-
nodes will return errors. **Do not rely on the free tier for production.**
|
|
58
56
|
|
|
59
57
|
## Reporting issues
|
|
60
58
|
|
|
@@ -79,10 +77,9 @@ We strongly recommend subscribing to release notifications:
|
|
|
79
77
|
|
|
80
78
|
## Licence
|
|
81
79
|
|
|
82
|
-
This software is provided under the MIT License — see `LICENSE`.
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
users. See <https://modpackqt.com/nodered/terms> for the full terms.
|
|
80
|
+
This software is provided under the MIT License — see `LICENSE`. The
|
|
81
|
+
limitation of liability in the LICENSE applies to all users. See
|
|
82
|
+
<https://modpackqt.com/nodered/terms> for the full terms.
|
|
86
83
|
|
|
87
84
|
---
|
|
88
85
|
|
package/README.md
CHANGED
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
# node-red-contrib-modbus-modpackqt
|
|
2
2
|
|
|
3
|
-
**
|
|
3
|
+
**Modbus commissioning, testing & analysis tools for Node-RED.**
|
|
4
4
|
By [ModPackQT](https://modpackqt.com).
|
|
5
5
|
|
|
6
6
|
[](https://www.npmjs.com/package/node-red-contrib-modbus-modpackqt)
|
|
7
7
|
[](https://nodered.org)
|
|
8
8
|
[](https://opensource.org/licenses/MIT)
|
|
9
9
|
|
|
10
|
+
> **100% free, MIT-licensed, no usage limits.** Open the [ModPackQT web console](https://modpackqt.com) for register decoding, device simulation and AI assistance.
|
|
11
|
+
|
|
10
12
|
---
|
|
11
13
|
|
|
12
14
|
## What you get
|
|
13
15
|
|
|
14
16
|
- **Modbus master** — read (FC1–FC4) and write (FC5/FC6/FC15/FC16) over **TCP** or **RTU (serial)**
|
|
15
17
|
- **Embedded Modbus TCP slave server** — push values from any flow, let PLCs / SCADA / HMIs read them
|
|
16
|
-
- **
|
|
18
|
+
- **Passive traffic monitor** — see every Modbus op (timing, values, errors) in real time
|
|
17
19
|
- **Outputs raw register values** — pair with [`node-red-contrib-bytes-modpackqt`](https://www.npmjs.com/package/node-red-contrib-bytes-modpackqt) to decode int / float / string / bitmask
|
|
18
20
|
- **Zero external dependencies** — Modbus runs inside the Node-RED process
|
|
19
21
|
|
|
@@ -82,7 +84,7 @@ Drop a **modbus traffic** node anywhere on the canvas, point it at the same runt
|
|
|
82
84
|
}
|
|
83
85
|
```
|
|
84
86
|
|
|
85
|
-
Filter by direction, function code, or target if you only want a slice.
|
|
87
|
+
Filter by direction, function code, or target if you only want a slice.
|
|
86
88
|
|
|
87
89
|
### 4. Be a Modbus slave (let SCADA read your values)
|
|
88
90
|
|
|
@@ -137,30 +139,18 @@ External masters connecting to `your-host:1502`, unit `1`, FC `3`, address `0`,
|
|
|
137
139
|
|
|
138
140
|
| Node | Purpose |
|
|
139
141
|
|---|---|
|
|
140
|
-
| `modpackqt-config` | Shared runtime — master mode (TCP/RTU), serial settings, optional slave server
|
|
142
|
+
| `modpackqt-config` | Shared runtime — master mode (TCP/RTU), serial settings, optional slave server |
|
|
141
143
|
| `modpackqt-master-read` | Read FC1/FC2/FC3/FC4 from a remote Modbus device |
|
|
142
144
|
| `modpackqt-master-write` | Write FC5/FC6/FC15/FC16 to a remote Modbus device |
|
|
143
145
|
| `modpackqt-slave-read` | Read from the embedded slave's register store (verify what masters see) |
|
|
144
146
|
| `modpackqt-slave-write` | Push values into the embedded slave's register store |
|
|
145
|
-
| `modpackqt-traffic` |
|
|
147
|
+
| `modpackqt-traffic` | Passive monitor — emits one message per Modbus op with full visibility into what's happening on the wire |
|
|
146
148
|
|
|
147
149
|
---
|
|
148
150
|
|
|
149
|
-
##
|
|
150
|
-
|
|
151
|
-
| | Free | Paid |
|
|
152
|
-
|---|---|---|
|
|
153
|
-
| Master read / write | ✓ | ✓ |
|
|
154
|
-
| Embedded slave server | ✓ | ✓ |
|
|
155
|
-
| **Traffic monitor** | ✓ | ✓ |
|
|
156
|
-
| Daily ops cap | **1,000 / day** per Node-RED instance | **Unlimited** |
|
|
157
|
-
| Branding in node status | Visible | Hidden |
|
|
158
|
-
| API key required | No | Yes |
|
|
159
|
-
| Trial | — | **30 days free, no credit card** |
|
|
160
|
-
|
|
161
|
-
[Get a free trial key →](https://modpackqt.com/nodered)
|
|
151
|
+
## Why this palette?
|
|
162
152
|
|
|
163
|
-
|
|
153
|
+
These nodes are built for **commissioning, testing, and analysis** — the kind of work where you need to quickly probe a device, verify register layouts, decode bytes correctly, simulate a slave for SCADA development, or watch traffic to debug a flaky link. Pair them with the [ModPackQT web console](https://modpackqt.com) for AI-assisted register decoding, profile management, and a full visual tester.
|
|
164
154
|
|
|
165
155
|
---
|
|
166
156
|
|
|
@@ -178,7 +168,6 @@ Make sure `node-red-contrib-bytes-modpackqt` is also installed before importing
|
|
|
178
168
|
|
|
179
169
|
| Issue | Solution |
|
|
180
170
|
|---|---|
|
|
181
|
-
| `ModPackQT free tier limit reached` | Either wait until midnight or [get a free trial key](https://modpackqt.com/nodered) |
|
|
182
171
|
| Decoded float looks like garbage | Try a different word order (`BE` ↔ `LE_SWAP`) — common conventions are ABCD and CDAB |
|
|
183
172
|
| `Serial port not configured for RTU mode` | Open runtime config → set Serial Port (e.g. `/dev/ttyUSB0` or `COM3`) |
|
|
184
173
|
| `EADDRINUSE` on slave port | Another process already uses that port. Pick a different one (e.g. `1502`). |
|
|
@@ -194,10 +183,9 @@ Make sure `node-red-contrib-bytes-modpackqt` is also installed before importing
|
|
|
194
183
|
- **Security issues:** report privately via the [security page](https://modpackqt.com/security).
|
|
195
184
|
- **Updates are never automatic.** Node-RED's palette manager will show
|
|
196
185
|
"update available" when we publish a new version — you choose when to
|
|
197
|
-
upgrade. Pin a major version (`^
|
|
186
|
+
upgrade. Pin a major version (`^3.0.0`) for stability.
|
|
198
187
|
- **Changelog:** the `CHANGELOG.md` file is shipped inside this package. We
|
|
199
188
|
follow [semver](https://semver.org/) — patch releases for bug fixes only.
|
|
200
|
-
- **Paid customers** get notice for security and breaking-change releases.
|
|
201
189
|
|
|
202
190
|
---
|
|
203
191
|
|
|
@@ -212,4 +200,4 @@ Make sure `node-red-contrib-bytes-modpackqt` is also installed before importing
|
|
|
212
200
|
|
|
213
201
|
## License & disclaimer
|
|
214
202
|
|
|
215
|
-
MIT — © ModPackQT. Provided **"as is" without warranty of any kind**. You are responsible for validating this software in your environment before any
|
|
203
|
+
MIT — © ModPackQT. Provided **"as is" without warranty of any kind**. You are responsible for validating this software in your environment before any use with real equipment.
|
|
@@ -102,24 +102,23 @@
|
|
|
102
102
|
<input type="number" id="node-config-input-slavePort" placeholder="1502">
|
|
103
103
|
</div>
|
|
104
104
|
|
|
105
|
-
<h4 style="margin-top:18px">API Key (optional — for
|
|
105
|
+
<h4 style="margin-top:18px">API Key (optional — reserved for future cloud features)</h4>
|
|
106
106
|
<div class="form-row">
|
|
107
107
|
<label for="node-config-input-apiKey"><i class="fa fa-key"></i> API Key</label>
|
|
108
|
-
<input type="password" id="node-config-input-apiKey" placeholder="
|
|
108
|
+
<input type="password" id="node-config-input-apiKey" placeholder="Optional — leave blank for local-only use">
|
|
109
109
|
</div>
|
|
110
110
|
|
|
111
111
|
<div class="form-tips">
|
|
112
|
-
<b>No extra app needed.</b> Modbus runs inside Node-RED
|
|
113
|
-
<b>Free tier:</b> 1,000 ops/day. <a href="https://modpackqt.com/nodered" target="_blank">Get unlimited →</a>
|
|
112
|
+
<b>No extra app needed.</b> Modbus runs inside Node-RED. 100% free, no usage limits.
|
|
114
113
|
</div>
|
|
115
114
|
<div class="form-row" style="margin-top:18px;padding-top:14px;border-top:1px solid #e5e7eb;text-align:center;">
|
|
116
115
|
<a href="https://modpackqt.com" target="_blank" rel="noopener noreferrer"
|
|
117
116
|
style="display:inline-block;padding:8px 20px;background:#2563eb;color:#fff;
|
|
118
117
|
text-decoration:none;border-radius:6px;font-weight:600;font-size:13px;
|
|
119
118
|
box-shadow:0 1px 2px rgba(0,0,0,0.08);">
|
|
120
|
-
|
|
119
|
+
Premium Advanced Modbus Tester <i class="fa fa-external-link" style="margin-left:6px;"></i>
|
|
121
120
|
</a>
|
|
122
|
-
<div style="margin-top:6px;font-size:11px;color:#6b7280;">by ModPackQT —
|
|
121
|
+
<div style="margin-top:6px;font-size:11px;color:#6b7280;">by ModPackQT — full-featured web tester, simulator & AI helper</div>
|
|
123
122
|
</div>
|
|
124
123
|
</script>
|
|
125
124
|
|
|
@@ -146,9 +145,7 @@
|
|
|
146
145
|
|
|
147
146
|
<h3>API key (optional)</h3>
|
|
148
147
|
<p>
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
Add a key for unlimited use and clean status text — <a href="https://modpackqt.com/nodered" target="_blank">get a free 30-day trial key →</a>.
|
|
152
|
-
No credit card required.
|
|
148
|
+
Reserved for future cloud features (profile sync, remote console). Leave blank
|
|
149
|
+
for local-only use — all Modbus functionality works without a key.
|
|
153
150
|
</p>
|
|
154
151
|
</script>
|
|
@@ -4,19 +4,11 @@
|
|
|
4
4
|
* Owns:
|
|
5
5
|
* - A connection pool of Modbus TCP/RTU master clients (one per target).
|
|
6
6
|
* - An optional embedded Modbus TCP slave server with a local register store.
|
|
7
|
-
* - A local rate-limit counter (anonymous tier: 1,000 ops/day per Node-RED instance).
|
|
8
|
-
*
|
|
9
|
-
* Phase 1: limits are enforced locally only. Phase 2 will validate the API key
|
|
10
|
-
* against the ModPackQT cloud lease endpoint for unlimited usage.
|
|
11
7
|
*/
|
|
12
8
|
module.exports = function (RED) {
|
|
13
9
|
const ModbusRTU = require('modbus-serial');
|
|
14
10
|
const { EventEmitter } = require('events');
|
|
15
11
|
|
|
16
|
-
const FREE_DAILY_LIMIT = 1000;
|
|
17
|
-
const UPGRADE_URL = 'https://modpackqt.com/nodered';
|
|
18
|
-
const DEBUG_LOG_INTERVAL = 100; // log "powered by ModPackQT" every N ops
|
|
19
|
-
|
|
20
12
|
function ModPackQTConfigNode(config) {
|
|
21
13
|
RED.nodes.createNode(this, config);
|
|
22
14
|
const node = this;
|
|
@@ -42,46 +34,24 @@ module.exports = function (RED) {
|
|
|
42
34
|
node.slavePort = parseInt(config.slavePort, 10) || 1502;
|
|
43
35
|
node.slaveHost = config.slaveHost || '0.0.0.0';
|
|
44
36
|
|
|
45
|
-
// ----
|
|
37
|
+
// ---- Optional API key (reserved for future cloud features) ----
|
|
46
38
|
node.apiKey = (node.credentials && node.credentials.apiKey) || '';
|
|
47
39
|
|
|
48
40
|
// ====================================================================
|
|
49
|
-
//
|
|
41
|
+
// OPS COUNTER (informational only — no limit enforced)
|
|
50
42
|
// ====================================================================
|
|
51
43
|
const today = () => new Date().toISOString().slice(0, 10);
|
|
52
44
|
node._opsDay = today();
|
|
53
45
|
node._opsCount = 0;
|
|
54
46
|
|
|
55
47
|
node.checkLimit = function () {
|
|
56
|
-
// Reset counter at midnight
|
|
57
48
|
const d = today();
|
|
58
49
|
if (d !== node._opsDay) { node._opsDay = d; node._opsCount = 0; }
|
|
59
|
-
|
|
60
|
-
// Phase 1: anonymous tier only — API key currently ignored for billing
|
|
61
|
-
if (node._opsCount >= FREE_DAILY_LIMIT) {
|
|
62
|
-
const err = new Error(
|
|
63
|
-
`ModPackQT free tier limit reached (${FREE_DAILY_LIMIT} ops/day). ` +
|
|
64
|
-
`Get a free trial API key at ${UPGRADE_URL}`
|
|
65
|
-
);
|
|
66
|
-
err.code = 'RATE_LIMIT';
|
|
67
|
-
throw err;
|
|
68
|
-
}
|
|
69
50
|
node._opsCount += 1;
|
|
70
|
-
|
|
71
|
-
if (node._opsCount % DEBUG_LOG_INTERVAL === 0) {
|
|
72
|
-
node.log(
|
|
73
|
-
`[modpackqt] ${node._opsCount} ops served today — ` +
|
|
74
|
-
`unlock unlimited at ${UPGRADE_URL}`
|
|
75
|
-
);
|
|
76
|
-
}
|
|
77
51
|
return node._opsCount;
|
|
78
52
|
};
|
|
79
53
|
|
|
80
|
-
node.brandStatus = function (text) {
|
|
81
|
-
// Phase 1: branding always visible (anonymous tier).
|
|
82
|
-
// Phase 2: paid users get clean text without the "modpackqt ·" prefix.
|
|
83
|
-
return `modpackqt · ${text}`;
|
|
84
|
-
};
|
|
54
|
+
node.brandStatus = function (text) { return text; };
|
|
85
55
|
|
|
86
56
|
node.opsToday = function () { return node._opsCount; };
|
|
87
57
|
|
|
@@ -323,8 +293,7 @@ module.exports = function (RED) {
|
|
|
323
293
|
node._slaveServer.on('socketError', (err) => node.warn(`[slave] socket error: ${err.message}`));
|
|
324
294
|
node._slaveServer.on('serverError', (err) => node.error(`[slave] server error: ${err.message}`));
|
|
325
295
|
node.log(
|
|
326
|
-
`[modpackqt] embedded Modbus slave listening on ${node.slaveHost}:${node.slavePort}
|
|
327
|
-
`powered by ModPackQT (${UPGRADE_URL})`
|
|
296
|
+
`[modpackqt] embedded Modbus slave listening on ${node.slaveHost}:${node.slavePort}`
|
|
328
297
|
);
|
|
329
298
|
} catch (err) {
|
|
330
299
|
node.error(`Failed to start embedded slave server: ${err.message}`);
|
|
@@ -74,9 +74,9 @@
|
|
|
74
74
|
style="display:inline-block;padding:8px 20px;background:#2563eb;color:#fff;
|
|
75
75
|
text-decoration:none;border-radius:6px;font-weight:600;font-size:13px;
|
|
76
76
|
box-shadow:0 1px 2px rgba(0,0,0,0.08);">
|
|
77
|
-
|
|
77
|
+
Premium Advanced Modbus Tester <i class="fa fa-external-link" style="margin-left:6px;"></i>
|
|
78
78
|
</a>
|
|
79
|
-
<div style="margin-top:6px;font-size:11px;color:#6b7280;">by ModPackQT —
|
|
79
|
+
<div style="margin-top:6px;font-size:11px;color:#6b7280;">by ModPackQT — full-featured web tester, simulator & AI helper</div>
|
|
80
80
|
</div>
|
|
81
81
|
</script>
|
|
82
82
|
|
|
@@ -90,6 +90,4 @@
|
|
|
90
90
|
<dt>topic <span class="property-type">string</span></dt>
|
|
91
91
|
<dd><code>modpackqt/read/{host}:{port}/fc{N}/{address}</code></dd>
|
|
92
92
|
</dl>
|
|
93
|
-
<h3>Free tier</h3>
|
|
94
|
-
<p>1,000 ops/day per Node-RED instance. Add an API key in the runtime config for unlimited use.</p>
|
|
95
93
|
</script>
|
|
@@ -65,9 +65,9 @@
|
|
|
65
65
|
style="display:inline-block;padding:8px 20px;background:#2563eb;color:#fff;
|
|
66
66
|
text-decoration:none;border-radius:6px;font-weight:600;font-size:13px;
|
|
67
67
|
box-shadow:0 1px 2px rgba(0,0,0,0.08);">
|
|
68
|
-
|
|
68
|
+
Premium Advanced Modbus Tester <i class="fa fa-external-link" style="margin-left:6px;"></i>
|
|
69
69
|
</a>
|
|
70
|
-
<div style="margin-top:6px;font-size:11px;color:#6b7280;">by ModPackQT —
|
|
70
|
+
<div style="margin-top:6px;font-size:11px;color:#6b7280;">by ModPackQT — full-featured web tester, simulator & AI helper</div>
|
|
71
71
|
</div>
|
|
72
72
|
</script>
|
|
73
73
|
|
|
@@ -60,9 +60,9 @@
|
|
|
60
60
|
style="display:inline-block;padding:8px 20px;background:#2563eb;color:#fff;
|
|
61
61
|
text-decoration:none;border-radius:6px;font-weight:600;font-size:13px;
|
|
62
62
|
box-shadow:0 1px 2px rgba(0,0,0,0.08);">
|
|
63
|
-
|
|
63
|
+
Premium Advanced Modbus Tester <i class="fa fa-external-link" style="margin-left:6px;"></i>
|
|
64
64
|
</a>
|
|
65
|
-
<div style="margin-top:6px;font-size:11px;color:#6b7280;">by ModPackQT —
|
|
65
|
+
<div style="margin-top:6px;font-size:11px;color:#6b7280;">by ModPackQT — full-featured web tester, simulator & AI helper</div>
|
|
66
66
|
</div>
|
|
67
67
|
</script>
|
|
68
68
|
|
|
@@ -50,9 +50,9 @@
|
|
|
50
50
|
style="display:inline-block;padding:8px 20px;background:#2563eb;color:#fff;
|
|
51
51
|
text-decoration:none;border-radius:6px;font-weight:600;font-size:13px;
|
|
52
52
|
box-shadow:0 1px 2px rgba(0,0,0,0.08);">
|
|
53
|
-
|
|
53
|
+
Premium Advanced Modbus Tester <i class="fa fa-external-link" style="margin-left:6px;"></i>
|
|
54
54
|
</a>
|
|
55
|
-
<div style="margin-top:6px;font-size:11px;color:#6b7280;">by ModPackQT —
|
|
55
|
+
<div style="margin-top:6px;font-size:11px;color:#6b7280;">by ModPackQT — full-featured web tester, simulator & AI helper</div>
|
|
56
56
|
</div>
|
|
57
57
|
</script>
|
|
58
58
|
|
|
@@ -85,9 +85,9 @@
|
|
|
85
85
|
style="display:inline-block;padding:8px 20px;background:#2563eb;color:#fff;
|
|
86
86
|
text-decoration:none;border-radius:6px;font-weight:600;font-size:13px;
|
|
87
87
|
box-shadow:0 1px 2px rgba(0,0,0,0.08);">
|
|
88
|
-
|
|
88
|
+
Premium Advanced Modbus Tester <i class="fa fa-external-link" style="margin-left:6px;"></i>
|
|
89
89
|
</a>
|
|
90
|
-
<div style="margin-top:6px;font-size:11px;color:#6b7280;">by ModPackQT —
|
|
90
|
+
<div style="margin-top:6px;font-size:11px;color:#6b7280;">by ModPackQT — full-featured web tester, simulator & AI helper</div>
|
|
91
91
|
</div>
|
|
92
92
|
</script>
|
|
93
93
|
|
|
@@ -123,5 +123,5 @@
|
|
|
123
123
|
</ul>
|
|
124
124
|
|
|
125
125
|
<h3>Pricing</h3>
|
|
126
|
-
<p><b>Free</b> — visibility
|
|
126
|
+
<p><b>Free</b> — full visibility into every Modbus operation, no usage limits.</p>
|
|
127
127
|
</script>
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-red-contrib-modbus-modpackqt",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "Node-RED
|
|
3
|
+
"version": "3.0.0",
|
|
4
|
+
"description": "Modbus commissioning, testing & analysis tools for Node-RED. Embedded Modbus TCP/RTU master + slave server, FC1/FC2/FC3/FC4 reads, FC5/FC6/FC15/FC16 writes, built-in slave register store, and a passive traffic monitor for debugging. 100% free, MIT, no usage limits. By ModPackQT — open the matching web console at modpackqt.com for register decoding, simulation and AI assistance.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"node-red",
|
|
7
7
|
"modbus",
|
|
@@ -11,6 +11,9 @@
|
|
|
11
11
|
"modbus-master",
|
|
12
12
|
"modbus-slave",
|
|
13
13
|
"modbus-server",
|
|
14
|
+
"modbus-tester",
|
|
15
|
+
"modbus-commissioning",
|
|
16
|
+
"modbus-analyzer",
|
|
14
17
|
"industrial",
|
|
15
18
|
"automation",
|
|
16
19
|
"holding-register",
|