The service stops after few days with an error: Can't send data because WebSocket is not opened
<!-- PLEASE READ BEFORE POSTING A NEW ISSUE
   → If you are giving feedback or requesting a new feature then feel free to ignore this template.
   → If you are experiencing an issue with the plugin then please use this template as well as you can.
   → Things that may seem unimportant to you are often helpful in finding the cause of the issue.
-->

### What issue do you have? Please be as thorough and explicit as possible.

I use a jail inside TrueNAS. I installed HOOBS plugin and the jail works fine. The service also works but after several days I enter the web interface and see that the service is not running for some reason. If I look at the logs I can see these lines:

[eWeLink] WS login failed [Can't send data because WebSocket is not opened.]. (more logs below).



I have only two devices set at the moment, I can see them both when the service is running and I can switch them both on and off.
If I start the service everything is good again.
How can I resolve the issue?

### Details of your setup.
* Do you use Homebridge (with config-ui?) or HOOBS? 
I have HOOBS installed as a plugin/jail in a FreeBSD TrueNAS installation.


* Which version of Homebridge/HOOBS do you have?
HOOBS version 3.2.10
Node version 14.13.0

* Which version of this plugin (homebridge-ewelink) do you have? Has the issue started since upgrading from a previous version?
Version 3.13.3
I don't know if the issue started from the upgrade as I started using this from the previous version and upgraded straight away.

* Which eWeLink devices do you have that are causing issues? Please include product models if applicable.
SONOFF POWR2 and SONOFF S26R1


* Do you use your main eWeLink credentials or do you use a secondary eWeLink account for Homebridge?
I'm using my main credentials for the connection.


### Please paste any relevant logs below.
<!-- ABOUT LOGS
   → More thorough logging can be seen by enabling 'Debug Logging' and
     ...'Request & Response Logging' in the plugin settings.
   → If you are posting an error then it is helpful for me to also see
     ...the previous few lines as this can show the cause of the error.
   → Please enter the logs between the two ``` lines below so that
     ...the logs are formatted in a way which is easier to read.
-->

```
11/21/2020, 5:10:07 AM [eWeLink] WS login failed [Can't send data because WebSocket is not opened.].
11/21/2020, 5:10:07 AM [eWeLink] WS login failed [Can't send data because WebSocket is not opened.].
11/21/2020, 5:10:07 AM [eWeLink] WS login failed [Can't send data because WebSocket is not opened.].
11/21/2020, 5:10:07 AM [eWeLink] WS login failed [Can't send data because WebSocket is not opened.].
11/21/2020, 5:10:07 AM [eWeLink] WS login failed [Can't send data because WebSocket is not opened.].
11/21/2020, 5:10:07 AM [eWeLink] WS login failed [Can't send data because WebSocket is not opened.].
11/21/2020, 6:16:14 AM <--- Last few GCs --->
11/21/2020, 6:16:14 AM [65945:0x803c75840] 380087215 ms: Mark-sweep (reduce) 4066.5 (4101.2) -> 4065.8 (4102.5) MB, 7671.6 / 14.1 ms  (average mu = 0.065, current mu = 0.004) allocation failure scavenge might not succeed
11/21/2020, 6:16:14 AM [65945:0x803c75840] 380096046 ms: Mark-sweep (reduce) 4066.9 (4104.5) -> 4066.2 (4104.7) MB, 8791.5 / 20.3 ms  (average mu = 0.035, current mu = 0.005) allocation failure scavenge might not succeed
11/21/2020, 6:16:14 AM <--- JS stacktrace --->
11/21/2020, 6:16:14 AM FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
11/21/2020, 6:16:14 AM 1: 0x1531860 node::Abort(void) [/usr/local/bin/node]
11/21/2020, 6:16:14 AM 2: 0x15319cc node::OnFatalError(char const*, char const) [/usr/local/bin/node]
11/21/2020, 6:16:14 AM 3: 0x1699bb3 v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [/usr/local/bin/node]
11/21/2020, 6:16:14 AM 4: 0x1699b59 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/usr/local/bin/node]
11/21/2020, 6:16:14 AM 5: 0x1830b05 v8::internal::Heap::FatalProcessOutOfMemory(char const*) [/usr/local/bin/node]
11/21/2020, 6:16:14 AM 6: 0x1832330 v8::internal::Heap::HasLowYoungGenerationAllocationRate(void) [/usr/local/bin/node]
11/21/2020, 6:16:14 AM 7: 0x182e7e8 v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [/usr/local/bin/node]
11/21/2020, 6:16:14 AM 8: 0x182c445 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/usr/local/bin/node]
11/21/2020, 6:16:14 AM 9: 0x1838d4a v8::internal::Heap::AllocateRawWithLightRetrySlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/usr/local/bin/node]
11/21/2020, 6:16:14 AM 10: 0x1838dd1 v8::internal::Heap::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/usr/local/bin/node]
11/21/2020, 6:16:14 AM 11: 0x180b5a7 v8::internal::Factory::NewFillerObject(int, bool, v8::internal::AllocationType, v8::internal::AllocationOrigin) [/usr/local/bin/node]

```
