Skip to content

feat(ui): clarify health check dialog display with directional headers and combined metrics#4509

Draft
Copilot wants to merge 4 commits intomasterfrom
copilot/fix-failed-pings-display
Draft

feat(ui): clarify health check dialog display with directional headers and combined metrics#4509
Copilot wants to merge 4 commits intomasterfrom
copilot/fix-failed-pings-display

Conversation

Copy link
Contributor

Copilot AI commented Jan 7, 2026

The health check dialog showed failedPingsController inconsistently (visible only when defined), causing confusion about whether data was missing or zero. Column headers lacked directional context, and the relationship between failed pings and power levels was unclear.

Changes

  • Dynamic column headers with node IDs

    • "Failed pings 1 → 102" (target → active node)
    • "Min powerlevel 102 → 1" (active → target/controller)
  • Simplified failed pings column

    • Shows only failedPingsNode as "0/10", "3/10", etc.
    • Direction now evident from header (removed inline arrows)
  • Combined minPowerlevel display

    • When failedPingsController exists: "3 failed pings @ Normal Power" or "no failed pings @ -6 dBm"
    • When undefined (node lacks Powerlevel CC support): shows only power level
    • Clarifies that reduced power levels always mean zero failures

Example

Before:

Failed pings: 1 → 102: 0/10, 1 ← 102: 1/10  (← sometimes missing)
Min power level w/o errors: Normal Power

After:

Failed pings 1 → 102: 0/10
Min powerlevel 102 → 1: 1 failed ping @ Normal Power

When power is successfully reduced:

Failed pings 1 → 126: 0/10
Min powerlevel 126 → 1: no failed pings @ -6 dBm
Original prompt

This section details on the original issue you should resolve

<issue_title>Displaying the failedPingsController attribute</issue_title>
<issue_description>Hi,

Is the failedPingsNode attribute displayed all the time even when it's 0 ?
I ran 2 tests on the same node and once it appeared, another time it didn't.

I don't have a custom route, and I haven't done any reconstruction in the meantime. Can you explain to me ?

102-126

102

102-2

126
</issue_description>

<agent_instructions> I think this is mostly a presentation issue. Maybe we should rework the columns to make this clearer:

  1. "Failed pings" --> "Failed pings 1 -> 102", only display failedPingsNode
  2. "Min. power level w/o errors" --> "Min. powerlevel 102 -> 1". Display failed pings and powerlevel together:
    a. "3 failed pings @ normal power" (if minPowerlevel is "normal power", the failed pings are relevant)
    a. "no failed pings @ -6 dBm" (only minPowerlevel is relevant here)
    </agent_instructions>

Comments on the Issue (you are @copilot in this section)

@robertsLando I don't show them when they are undefined:

<p
class="mb-0"
v-if="item.failedPingsNode !== undefined"
>
{{ resultsTargetNode }} → {{ activeNode.id }}:
<strong
:class="
getFailedPingsColor(
item.failedPingsNode,
)
"
>{{ item.failedPingsNode }}/10</strong
>
</p>
<p
class="mb-0"
v-if="item.failedPingsController !== undefined"
>
{{ resultsTargetNode }} ← {{ activeNode.id }}:
<strong
:class="
getFailedPingsColor(
item.failedPingsController,
)
"
>{{ item.failedPingsController }}/10</strong
>
</p>
</template>

I dunno sincerly why sometimes they are undefined and sometimes them are not, maybe that's an issue on driver not setting them to 0 by default. cc @AlCalzone </comment_new>
<comment_new>@robertsLando
@duylong I have a feel that when missing it's 0/10, it's just the driver maybe that doens't set it. Let me talk with @AlCalzone to see what's the best solution</comment_new>
<comment_new>@AlCalzone
Please make a driver log of a health check where they are missing, loglevel debug and attach it here as a file (drag & drop into the text field).</comment_new>
<comment_new>@AlCalzone
Ok, so this requires a bit of explanation:
Measuring the failed pings from node -> controller requires that the node supports Powerlevel CC.
If it doesn't, failedPingsController will be undefined. This seems to be the case for node 8 in the log.

When it is supported, the min. powerlevel without errors indicates the lowest powerlevel at which there were no failed pings from node -> controller. We could additionally display 0 failed pings here, but this feels redundant to me.

Currently, the only situation when failedPingsController is shown, is when there was no reduction in powerlevel and there were still ping failures, as seen in the health check for node 102.</comment_new>
<comment_new>@AlCalzone
@robertsLando I think this is mostly a presentation issue. Maybe we should rework the columns to make this clearer:

  1. "Failed pings" --> "Failed pings 1 -> 102", only display failedPingsNode
  2. "Min. power level w/o errors" --> "Min. powerlevel 102 -> 1". Display failed pings and powerlevel together:
    a. "3 failed pings @ normal power" (if minPowerlevel is "normal power", the failed pings are relevant)
    a. "no failed pings @ -6 dBm" (only minPowerlevel is relevant here)

✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

Copilot AI and others added 3 commits January 7, 2026 10:16
Co-authored-by: robertsLando <11502495+robertsLando@users.noreply.github.com>
…thods

Co-authored-by: robertsLando <11502495+robertsLando@users.noreply.github.com>
…ethod

Co-authored-by: robertsLando <11502495+robertsLando@users.noreply.github.com>
@zwave-js-assistant
Copy link

💡 The pull request title does not match our guidelines 💡

We follow conventional commits, check out the description and examples. This means that the PR title must...

  • start with the type of change, e.g. feat:, or fix:
  • optionally specify a scope, for example we use config for changes to config files: feat(config):
  • contain a description that explains what is being changed, e.g. add a parameter, correct a typo, ...
  • and ideally explains what the change affects, e.g. the device (manufacturer, device label, firmware, ...)

The description should use uppercase and lowercase normally, except for the first character which must be lowercase.

Copilot AI changed the title [WIP] Fix display of failedPingsController attribute feat(ui): clarify health check dialog display with directional headers and combined metrics Jan 7, 2026
Copilot AI requested a review from robertsLando January 7, 2026 10:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Displaying the failedPingsController attribute

2 participants