fixes reconnection issues in node_helper

This commit is contained in:
Mathias Scherer 2021-09-18 01:41:19 +02:00
parent 086d9fb51b
commit ac290d18ae
No known key found for this signature in database
GPG Key ID: 0B90BA0208F8DD2B

View File

@ -8,6 +8,7 @@ module.exports = NodeHelper.create({
stop,
socketNotificationReceived,
connect,
connectWs,
getState,
toggleState,
setCoverPosition,
@ -83,6 +84,10 @@ async function connect(payload) {
entities: [],
};
this.connectWs(connectionConfig, payload)
}
async function connectWs(connectionConfig, payload) {
const self = this;
HomeAssistantWS.default({
...connectionConfig,
@ -90,13 +95,22 @@ async function connect(payload) {
})
.then((hassWs) => {
this.connections[payload.identifier].websocket = hassWs;
hassWs.onEvent("state_changed", onStateChangedEvent.bind(self));
hassWs.on("state_changed", onStateChangedEvent.bind(self));
hassWs.on('ws_close', () => {
this.logger.debug(`Lost connection for ${payload.identifier}... Trying to reconnect in 2secs`)
setTimeout(() => {
this.connectWs(connectionConfig, payload)
}, 2000)
})
})
.catch((err) => {
this.logger.error(
`WS connection for ${payload.identifier} failed with`,
err
`WS connection for ${payload.identifier} failed...`
);
this.logger.debug(`Trying to reconnect for ${payload.identifier} in 2secs`)
setTimeout(() => {
this.connectWs(connectionConfig, payload)
}, 2000)
});
}