Insteon: Change Hopcount Calculation to a Moving Average #266
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When I created the current hopcount calculation, I opted to use the highest count over the past 20 reported figures as the hopcount. This often resulted in a higher than necessary hopcount.
@mstovenour modified that original code to use a running average. After significant testing (both real world and using the new stress test) it is clear that using a running average results in a more reliable network.
Of note, the hopcount system has always relied on the hopcounts of incoming messages to determine the proper outgoing hopcount. I have at least two devices on my network in which the hopcounts are highly asynchronous. That is, where the outgoing and incoming hopcounts are very different. If you have one of these instances, you should consider using the min_hops() and max_hops() routines for that device.