* Fix reconnect failure in some disconnect cases
* Remove duplicate republish function
This commit is contained in:
tsightler
2021-01-12 20:19:42 -05:00
parent a5b344faeb
commit 02d5124b62
3 changed files with 26 additions and 33 deletions

View File

@@ -597,24 +597,17 @@ class TuyaDevice {
// Retry connection every 10 seconds if unable to connect // Retry connection every 10 seconds if unable to connect
async reconnect() { async reconnect() {
if (!this.device.isConnected() && !this.reconnecting) { if (!this.reconnecting) {
this.reconnecting = true this.reconnecting = true
debugError('Error connecting to device id '+this.options.id+'...retry in 10 seconds.') debugError('Error connecting to device id '+this.options.id+'...retry in 10 seconds.')
await utils.sleep(10) await utils.sleep(10)
if (this.connected) { return } if (!this.device.isConnected) {
this.connectDevice() this.connectDevice()
}
this.reconnecting = false this.reconnecting = false
} }
} }
// Republish device discovery/state data (used for Home Assistant state topic)
async republish() {
const status = (this.device.isConnected()) ? 'online' : 'offline'
this.publishMqtt(this.baseTopic+'status', status)
await utils.sleep(1)
this.init()
}
// Republish device discovery/state data (used for Home Assistant state topic) // Republish device discovery/state data (used for Home Assistant state topic)
async republish() { async republish() {
const status = (this.device.isConnected()) ? 'online' : 'offline' const status = (this.device.isConnected()) ? 'online' : 'offline'
@@ -648,4 +641,4 @@ class TuyaDevice {
} }
} }
module.exports = TuyaDevice module.exports = TuyaDevice

36
package-lock.json generated
View File

@@ -1,6 +1,6 @@
{ {
"name": "tuya-mqtt", "name": "tuya-mqtt",
"version": "3.0.2", "version": "3.0.3",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {
@@ -18,13 +18,13 @@
} }
}, },
"@tuyapi/cli": { "@tuyapi/cli": {
"version": "1.13.6", "version": "1.15.0",
"resolved": "https://registry.npmjs.org/@tuyapi/cli/-/cli-1.13.6.tgz", "resolved": "https://registry.npmjs.org/@tuyapi/cli/-/cli-1.15.0.tgz",
"integrity": "sha512-xvQfhFkhc0issQClzHSCrRuFyq6exBloKW0ZCIfWqRaZ9bPuDLjNv3UDFD7ywFSsBWiWNX28kGSAIM5QX2glNQ==", "integrity": "sha512-V85STIKtkDM+t8G08PUdL4klnnGmJU1qcPQF6pYRUn//iSlm1AD0CkNZ9Qll+nK2rpPB/2X5wJCwe8dCp1MEnQ==",
"requires": { "requires": {
"@tuyapi/link": "^0.3.3", "@tuyapi/link": "^0.3.3",
"@tuyapi/openapi": "^1.2.0", "@tuyapi/openapi": "^1.2.0",
"@tuyapi/stub": "^0.1.4", "@tuyapi/stub": "^0.2.0",
"cli-table3": "^0.6.0", "cli-table3": "^0.6.0",
"colors": "^1.4.0", "colors": "^1.4.0",
"commander": "^5.1.0", "commander": "^5.1.0",
@@ -72,9 +72,9 @@
} }
}, },
"@tuyapi/stub": { "@tuyapi/stub": {
"version": "0.1.4", "version": "0.2.0",
"resolved": "https://registry.npmjs.org/@tuyapi/stub/-/stub-0.1.4.tgz", "resolved": "https://registry.npmjs.org/@tuyapi/stub/-/stub-0.2.0.tgz",
"integrity": "sha512-uF2u1Z78Qif3hK92RYxMG4AbjedNRZYmM1jIvegf4KUfDVV/BhHFooz2y3Q28jPl5Q+H39QY/WBH2bMiXMAg/g==", "integrity": "sha512-QVwHf1KexAJw8mgmkyxXH4t5sToK0Ai3O8PFKNqgbgx6LOWciqOOcV99xw+6UwGa2iyvW/PnFoMqVRuYy1EgQQ==",
"requires": { "requires": {
"debug": "^4.1.1", "debug": "^4.1.1",
"tuyapi": "^5.0.0" "tuyapi": "^5.0.0"
@@ -346,12 +346,12 @@
} }
}, },
"call-bind": { "call-bind": {
"version": "1.0.0", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
"integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
"requires": { "requires": {
"function-bind": "^1.1.1", "function-bind": "^1.1.1",
"get-intrinsic": "^1.0.0" "get-intrinsic": "^1.0.2"
} }
}, },
"callback-stream": { "callback-stream": {
@@ -1094,9 +1094,9 @@
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
}, },
"ini": { "ini": {
"version": "1.3.8", "version": "1.3.7",
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz",
"integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ=="
}, },
"inquirer": { "inquirer": {
"version": "7.3.3", "version": "7.3.3",
@@ -2302,9 +2302,9 @@
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
}, },
"tuyapi": { "tuyapi": {
"version": "6.1.2", "version": "6.1.3",
"resolved": "https://registry.npmjs.org/tuyapi/-/tuyapi-6.1.2.tgz", "resolved": "https://registry.npmjs.org/tuyapi/-/tuyapi-6.1.3.tgz",
"integrity": "sha512-C8ewskhjWJHjUlgCRItEilkrZ3z2uH4rkSJMRTG73EQgMutr/9R3EfoyxAMUQIQxvsmODjMsXpKX07+tqIQ7tg==", "integrity": "sha512-/7nI3Dr3NwWMDnrz7MSRQw9lW3R5i6lnRStIjPgybZ1Wj1jL/PHuRfeNBPAb8ocNbLQN6JqxbefY4awXmp+LqQ==",
"requires": { "requires": {
"debug": "4.1.1", "debug": "4.1.1",
"p-queue": "6.6.1", "p-queue": "6.6.1",

View File

@@ -1,6 +1,6 @@
{ {
"name": "tuya-mqtt", "name": "tuya-mqtt",
"version": "3.0.2", "version": "3.0.3",
"description": "Control Tuya devices locally via MQTT", "description": "Control Tuya devices locally via MQTT",
"homepage": "https://github.com/TheAgentK/tuya-mqtt#readme", "homepage": "https://github.com/TheAgentK/tuya-mqtt#readme",
"main": "tuya-mqtt.js", "main": "tuya-mqtt.js",
@@ -13,13 +13,13 @@
}, },
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"@tuyapi/cli": "^1.13.6", "@tuyapi/cli": "^1.15.0",
"color-convert": "^2.0.1", "color-convert": "^2.0.1",
"debug": "^4.3.1", "debug": "^4.3.1",
"json5": "^2.1.3", "json5": "^2.1.3",
"mqtt": "^4.2.6", "mqtt": "^4.2.6",
"supports-color": "^8.1.0", "supports-color": "^8.1.0",
"tuyapi": "^6.1.2", "tuyapi": "^6.1.3",
"mathjs": "8.1.1" "mathjs": "8.1.1"
}, },
"repository": { "repository": {