diff --git a/README.md b/README.md index c2c069da..e42706cb 100644 --- a/README.md +++ b/README.md @@ -195,6 +195,9 @@ There are some programs in folder *test' to test the TCP communication: ## Changelog +### __WORK IN PROGRESS__ +* (Apollon77) Prevent crash case (Sentry IOBROKER-MODBUS-1C) + ### 3.1.7 (2020-07-23) * (Apollon77) Fix some Sentry crash reports (IOBROKER-MODBUS-N) diff --git a/io-package.json b/io-package.json index b8f04971..ee67e48a 100644 --- a/io-package.json +++ b/io-package.json @@ -274,7 +274,12 @@ "sentry": { "dsn": "https://0c7b6d766435448cbf4908f615efe683@sentry.iobroker.net/84" } - } + }, + "dependencies": [ + { + "js-controller": ">=2.0.0" + } + ] }, "native": { "params": { diff --git a/lib/master.js b/lib/master.js index b2aa02a9..248984ec 100755 --- a/lib/master.js +++ b/lib/master.js @@ -218,6 +218,9 @@ function Master(options, adapter) { for (let b = 0; b < buffer.length; b++) { buffer[b] = regs.config[(obj.native.address - regs.addressLow) * 2 + b]; } + if (!modbusClient) { + return void callback('client disconnected'); + } modbusClient.writeMultipleRegisters(regs.deviceId, obj.native.address, buffer) .then(response => callback()) .catch(err => { diff --git a/package.json b/package.json index 1fd7f401..5e6beac5 100644 --- a/package.json +++ b/package.json @@ -39,9 +39,9 @@ "@iobroker/adapter-core": "^2.4.0" }, "devDependencies": { - "@alcalzone/release-script": "^1.4.1", + "@alcalzone/release-script": "^1.8.1", "gulp": "^4.0.2", - "mocha": "^8.0.1", + "mocha": "^8.1.3", "chai": "^4.2.0", "nan": "2.14.1", "modbus-stack": "^0.2.1"