Replies: 3 comments
-
|
v3.14 update — partial solution to this problem: In designing the v3.14 architecture, channel rebonding came up during HA integration planning. The approach addresses the immediate usability issue but doesn't solve the historical data question raised in this discussion. What v3.14 does:
What it doesn't solve:
The full channel lifecycle tracking proposed here (active/inactive states, history preservation) would be the right long-term answer. This is a step toward it. |
Beta Was this translation helpful? Give feedback.
-
|
Interesting discussion. I did some research on how other DOCSIS monitoring projects handle this: Most projects avoid the problem entirely by using stateless time-series databases. For example, fritzdocsis (Prometheus exporter for Fritz!Box Cable) calls The HA equivalent would be the Dispatcher Signal pattern used by Z-Wave JS and ZHA — store the That said, I think the v3.14 approach (stability detection + manual Reset Entities) is a reasonable pragmatic step. The full dynamic lifecycle model can build on top of that foundation later. |
Beta Was this translation helpful? Give feedback.
-
|
v3.14-alpha.16 update — position mode solves the core rebonding problem. The channel identity work that landed in v3.14-alpha.16 takes a different path than stability detection (my March 25 update) or the dispatcher pattern above — simpler, and already shipped. Position mode (new default): entities key on ID mode (preserved for upgrades): entities key on Existing installs default to ID mode via v1→v2 migration so history stays intact. Switching is opt-in via config flow. New dev tool — What's still open: position mode treats rebonding as stability, not an event. The dispatcher-signal lifecycle model is still the right answer for users who want "channel 21 disappeared on March 15" as diagnostic data. Both paths are legitimate — position mode ships first because "graphs don't break on reboot" is what most users want. Anyone running on position vs id mode in beta — feedback welcome. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
TL;DR
When a modem reboots and bonds to different channels, existing sensor entities show "Unknown" while new channels have no entities. Rather than choosing between entity stability and channel tracking, what if channel lifecycle itself became valuable diagnostic data?
Background: Why Channel IDs Are Used
Cable modems display channel data in tables like this:
Two numbers could be used for entity naming:
Channel ID was chosen for several reasons:
ISP diagnostics context: When troubleshooting with an ISP, they ask "what's the SNR on channel 21?" not "what's your first channel's SNR?"
Frequency correlation: Channel ID maps to specific frequency ranges. Channel 21 is always ~237 MHz. Tracking interference on a frequency means tracking that specific channel.
Error accumulation: Corrected/uncorrected errors accumulate per channel. If channel 21 has errors, tracking channel 21's history specifically matters.
DOCSIS 3.1 disambiguation: DOCSIS 3.1 modems have both SC-QAM and OFDM channels that can share the same Channel ID:
Using
(channel_type, channel_id)as the composite key creates separate entities likesensor.ds_qam_ch_33_powerandsensor.ds_ofdm_ch_33_power.Why not row index? Index-based entities (
slot_1,slot_2) seem appealing for stability, but channel tables are often fragmented - gaps appear when channels are unlocked. Row 1 might be Channel 5, row 2 might be Channel 13. The index does not provide meaningful continuity.The Problem: Channel Rebonding
When a modem reboots (power outage, firmware update, ISP maintenance), it re-negotiates with the CMTS. The CMTS may assign different channels based on network conditions.
Current Behavior
Result:
User Reports
Issue #42 comment (SB8200):
Issue #94 comment (TC4400):
Reframing the Problem
Instead of viewing channel changes as a problem to hide, what if channel lifecycle is valuable diagnostic data?
A chart showing when channels were disconnected and new ones added over the past month could reveal:
The goal becomes:
Proposed Behavior
What the User Sees
Default dashboard (filtered to active channels):
History/diagnostic view (all channels):
Trigger Options
Entity scanning for new/removed channels could be triggered by:
Questions for the Community
How often do your channels change? After every reboot? Rarely? Never noticed?
Is channel lifecycle data interesting to you? Would you look at a chart showing when channels came and went?
Should inactive entities be disabled by default?
What retention policy makes sense for inactive channels?
Automation impact: Do you reference specific channel entities in automations? Would a state change to "Inactive" break anything?
Related Issues & References
Looking forward to your feedback!
Beta Was this translation helpful? Give feedback.
All reactions