@ya-modbus/mqtt-bridge 0.7.0 → 0.8.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 CHANGED
@@ -3,6 +3,16 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [0.8.0](https://github.com/groupsky/ya-modbus/compare/@ya-modbus/mqtt-bridge@0.7.1...@ya-modbus/mqtt-bridge@0.8.0) (2026-02-08)
7
+
8
+ ### Features
9
+
10
+ - **mqtt-bridge:** add device loading from config ([#341](https://github.com/groupsky/ya-modbus/issues/341)) ([28e800e](https://github.com/groupsky/ya-modbus/commit/28e800e414232d0dc2a01970ec1e72213fed14e1)), closes [#337](https://github.com/groupsky/ya-modbus/issues/337)
11
+
12
+ ## [0.7.1](https://github.com/groupsky/ya-modbus/compare/@ya-modbus/mqtt-bridge@0.7.0...@ya-modbus/mqtt-bridge@0.7.1) (2026-02-06)
13
+
14
+ **Note:** Version bump only for package @ya-modbus/mqtt-bridge
15
+
6
16
  # [0.7.0](https://github.com/groupsky/ya-modbus/compare/@ya-modbus/mqtt-bridge@0.6.0...@ya-modbus/mqtt-bridge@0.7.0) (2026-01-11)
7
17
 
8
18
  ### Features
package/README.md CHANGED
@@ -103,7 +103,32 @@ Create a `config.json` file:
103
103
  "username": "user",
104
104
  "password": "pass"
105
105
  },
106
- "topicPrefix": "modbus"
106
+ "topicPrefix": "modbus",
107
+ "devices": [
108
+ {
109
+ "deviceId": "sensor1",
110
+ "driver": "@ya-modbus/driver-ex9em",
111
+ "connection": {
112
+ "type": "rtu",
113
+ "port": "/dev/ttyUSB0",
114
+ "baudRate": 9600,
115
+ "slaveId": 1
116
+ },
117
+ "polling": {
118
+ "interval": 2000
119
+ }
120
+ },
121
+ {
122
+ "deviceId": "meter1",
123
+ "driver": "@ya-modbus/driver-xymd1",
124
+ "connection": {
125
+ "type": "tcp",
126
+ "host": "192.168.1.100",
127
+ "port": 502,
128
+ "slaveId": 2
129
+ }
130
+ }
131
+ ]
107
132
  }
108
133
  ```
109
134
 
@@ -116,6 +141,38 @@ Create a `config.json` file:
116
141
  - `mqtt.reconnectPeriod` (optional) - Reconnection interval in milliseconds (default: 5000)
117
142
  - `topicPrefix` (optional) - Topic prefix for all MQTT topics (default: 'modbus')
118
143
  - `stateDir` (optional) - Directory path for state persistence (future)
144
+ - `devices` (optional) - Array of device configurations to load on startup
145
+
146
+ **Device configuration:**
147
+
148
+ - `deviceId` (required) - Unique device identifier
149
+ - `driver` (required) - Driver package name (@ya-modbus/driver-_ or ya-modbus-driver-_)
150
+ - `connection` (required) - Connection configuration (RTU or TCP)
151
+ - `enabled` (optional) - Enable/disable device (default: true)
152
+ - `polling` (optional) - Polling configuration
153
+
154
+ **RTU connection:**
155
+
156
+ - `type: "rtu"` (required)
157
+ - `port` (required) - Serial port path
158
+ - `baudRate` (required) - Baud rate (e.g., 9600, 19200)
159
+ - `slaveId` (required) - Modbus slave ID (0-247)
160
+ - `parity` (optional) - Parity: "none", "even", "odd"
161
+ - `dataBits` (optional) - Data bits: 7 or 8
162
+ - `stopBits` (optional) - Stop bits: 1 or 2
163
+
164
+ **TCP connection:**
165
+
166
+ - `type: "tcp"` (required)
167
+ - `host` (required) - TCP host address
168
+ - `port` (required) - TCP port (1-65535)
169
+ - `slaveId` (required) - Modbus slave ID (0-247)
170
+
171
+ **Polling configuration:**
172
+
173
+ - `interval` (required) - Polling interval in milliseconds (100-86400000)
174
+ - `maxRetries` (optional) - Maximum retry attempts (0-100)
175
+ - `retryBackoff` (optional) - Retry backoff in milliseconds
119
176
 
120
177
  ## Programmatic Usage
121
178
 
@@ -86,6 +86,14 @@ async function runCommand(options) {
86
86
  const bridge = (0, index_js_1.createBridge)(config);
87
87
  await bridge.start();
88
88
  console.log(chalk_1.default.green('Bridge started successfully'));
89
+ // Load devices from config if provided
90
+ if (config.devices && config.devices.length > 0) {
91
+ console.log(chalk_1.default.blue(`Loading ${config.devices.length} device(s) from configuration...`));
92
+ for (const deviceConfig of config.devices) {
93
+ await bridge.addDevice(deviceConfig);
94
+ console.log(chalk_1.default.green(`✓ Loaded device: ${deviceConfig.deviceId}`));
95
+ }
96
+ }
89
97
  let isShuttingDown = false;
90
98
  const handleShutdown = async (signal) => {
91
99
  if (isShuttingDown) {
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/cli.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ export interface MqttBridgeConfig {
8
8
  };
9
9
  stateDir?: string;
10
10
  topicPrefix?: string;
11
+ devices?: DeviceConfig[];
11
12
  }
12
13
  export interface BridgeStatus {
13
14
  state: 'starting' | 'running' | 'stopping' | 'stopped' | 'error';
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"config-validator.d.ts","sourceRoot":"","sources":["../../../../src/utils/config-validator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AA4BnD,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI,gBAAgB,CAOlF"}
1
+ {"version":3,"file":"config-validator.d.ts","sourceRoot":"","sources":["../../../../src/utils/config-validator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AA+BnD,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI,gBAAgB,CAOlF"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validateConfig = validateConfig;
4
4
  const zod_1 = require("zod");
5
+ const device_validation_js_1 = require("./device-validation.js");
5
6
  const mqttConfigSchema = zod_1.z.object({
6
7
  url: zod_1.z
7
8
  .string()
@@ -24,6 +25,7 @@ const mqttBridgeConfigSchema = zod_1.z.object({
24
25
  message: 'Topic prefix must not contain MQTT special characters (+, #, /, $) or null character',
25
26
  })
26
27
  .optional(),
28
+ devices: zod_1.z.array(device_validation_js_1.deviceConfigSchema).optional(),
27
29
  });
28
30
  function validateConfig(config) {
29
31
  const result = mqttBridgeConfigSchema.safeParse(config);
@@ -1 +1 @@
1
- {"version":3,"file":"config-validator.js","sourceRoot":"","sources":["../../../../src/utils/config-validator.ts"],"names":[],"mappings":";;AA8BA,wCAOC;AArCD,6BAAuB;AAIvB,MAAM,gBAAgB,GAAG,OAAC,CAAC,MAAM,CAAC;IAChC,GAAG,EAAE,OAAC;SACH,MAAM,EAAE;SACR,GAAG,EAAE;SACL,KAAK,CAAC,2BAA2B,EAAE;QAClC,OAAO,EAAE,yDAAyD;KACnE,CAAC;IACJ,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACxD,CAAC,CAAA;AAEF,MAAM,sBAAsB,GAAG,OAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,gBAAgB;IACtB,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,WAAW,EAAE,OAAC;SACX,MAAM,EAAE;QACT,4CAA4C;SAC3C,KAAK,CAAC,gBAAgB,EAAE;QACvB,OAAO,EACL,sFAAsF;KACzF,CAAC;SACD,QAAQ,EAAE;CACd,CAAC,CAAA;AAEF,SAAgB,cAAc,CAAC,MAAe;IAC5C,MAAM,MAAM,GAAG,sBAAsB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IAEvD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC7F,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,EAAE,CAAC,CAAA;IACrD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"config-validator.js","sourceRoot":"","sources":["../../../../src/utils/config-validator.ts"],"names":[],"mappings":";;AAiCA,wCAOC;AAxCD,6BAAuB;AAIvB,iEAA2D;AAE3D,MAAM,gBAAgB,GAAG,OAAC,CAAC,MAAM,CAAC;IAChC,GAAG,EAAE,OAAC;SACH,MAAM,EAAE;SACR,GAAG,EAAE;SACL,KAAK,CAAC,2BAA2B,EAAE;QAClC,OAAO,EAAE,yDAAyD;KACnE,CAAC;IACJ,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACxD,CAAC,CAAA;AAEF,MAAM,sBAAsB,GAAG,OAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,gBAAgB;IACtB,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,WAAW,EAAE,OAAC;SACX,MAAM,EAAE;QACT,4CAA4C;SAC3C,KAAK,CAAC,gBAAgB,EAAE;QACvB,OAAO,EACL,sFAAsF;KACzF,CAAC;SACD,QAAQ,EAAE;IACb,OAAO,EAAE,OAAC,CAAC,KAAK,CAAC,yCAAkB,CAAC,CAAC,QAAQ,EAAE;CAChD,CAAC,CAAA;AAEF,SAAgB,cAAc,CAAC,MAAe;IAC5C,MAAM,MAAM,GAAG,sBAAsB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IAEvD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC7F,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,EAAE,CAAC,CAAA;IACrD,CAAC;AACH,CAAC"}