johannrichard / homebridge-dingz

Emerging Homebridge Plugin for dingz & myStrom WiFi Switch Devices. Replaces the obsolete homebridge-mystrom plugin
https://github.com/johannrichard/homebridge-dingz/wiki
Apache License 2.0
12 stars 6 forks source link

[BUG] dingz unreachable intermittenly #177

Closed simonnelli closed 3 years ago

simonnelli commented 3 years ago

Describe the bug Now that we found the edge case with my pre production dingz I'm still seeing following all the time in the log (3.0.0). Tried to set the update interval to 20s but that didn't help. Not sure if my unit is just slower to respond or if it is a general issue? (I will write the iolo-guys for a replacement as it seems to me that the device is behaving differently than the final ones)

[12/9/2020, 1:06:29 PM] [dingz] DEAD Device --> entered unreachable state (192.168.227.12) [12/9/2020, 1:06:29 PM] [dingz] HTTP ECONNABORTED Connection aborted --> 192.168.227.12 [12/9/2020, 1:06:47 PM] [dingz] ALIVE Device --> recovered from unreachable state (192.168.227.12) [12/9/2020, 1:08:29 PM] [dingz] Error: timeout of 3000ms exceeded (GET http://192.168.227.12/api/v1/state) [12/9/2020, 1:08:29 PM] [dingz] DEAD Device --> entered unreachable state (192.168.227.12) [12/9/2020, 1:08:29 PM] [dingz] HTTP ECONNABORTED Connection aborted --> 192.168.227.12 [12/9/2020, 1:08:49 PM] [dingz] Error: timeout of 3000ms exceeded (GET http://192.168.227.12/api/v1/state) [12/9/2020, 1:08:49 PM] [dingz] DEAD Device --> entered unreachable state (192.168.227.12) [12/9/2020, 1:08:49 PM] [dingz] HTTP ECONNABORTED Connection aborted --> 192.168.227.12 [12/9/2020, 1:09:06 PM] [dingz] ALIVE Device --> recovered from unreachable state (192.168.227.12) [12/9/2020, 1:10:09 PM] [dingz] Error: timeout of 3000ms exceeded (GET http://192.168.227.12/api/v1/state) [12/9/2020, 1:10:09 PM] [dingz] DEAD Device --> entered unreachable state (192.168.227.12) [12/9/2020, 1:10:09 PM] [dingz] HTTP ECONNABORTED Connection aborted --> 192.168.227.12 [12/9/2020, 1:10:29 PM] [dingz] Error: timeout of 3000ms exceeded (GET http://192.168.227.12/api/v1/state) [12/9/2020, 1:10:29 PM] [dingz] DEAD Device --> entered unreachable state (192.168.227.12) [12/9/2020, 1:10:29 PM] [dingz] HTTP ECONNABORTED Connection aborted --> 192.168.227.12 [12/9/2020, 1:10:47 PM] [dingz] ALIVE Device --> recovered from unreachable state (192.168.227.12)

johannrichard commented 3 years ago

Thans for reporting this.

As far as I can tell, every two minutes, the timeout of 3 seconds for querying the state of the dingz is too short. I don't see that (at least not often) with my dingz, and mostly related to config changes. I'm thinking about adding a dynamic timeout which increases if the delay between polls is increased as well, or if we face too many timeouts.

It wouldn't make sense to have a timeout almost as long as the polling frequency -- we would get overlapping, concurrent requests

What happens if you disable both the myStrom Cloud and dingz cloud connection (Services menu in the Web UI)? Do the timeouts remain or do they go away?(Since the timeouts happen roughly every second minute, I wonder if something's happening in the background which interferes with our reading of the state, for example (other) network requests from the dingz).

simonnelli commented 3 years ago

tried with both services off, but still getting the same errors in the same interval. I tried to turn off IPv6 on the Synology NAS (HB resides in docker on NAS) but still getting the errors (I thought that it maybe times out because something isn't reachable via IPv6)

github-actions[bot] commented 3 years ago

:tada: This issue has been resolved in version 3.1.0-beta.5 :tada:

The release is available on:

Your semantic-release bot :package::rocket:

github-actions[bot] commented 3 years ago

:tada: This issue has been resolved in version 3.1.1 :tada:

The release is available on:

Your semantic-release bot :package::rocket:

github-actions[bot] commented 3 years ago

:tada: This issue has been resolved in version 3.1.0-alpha.1 :tada:

The release is available on:

Your semantic-release bot :package::rocket: