Sno Station
Sno Station is your agents' workstation: open-source software that turns the AI agents you already run into one squad on your own machine. Two heads are better than one, and they get better with every
DOCSIS signal monitoring for Home Assistant. Track signal strength, noise margins, and errors.
PluginsPython · ShellGitHub @solentlabsOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Home Assistant integration for monitoring cable modem signal quality
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗A custom Home Assistant integration that monitors your cable modem's signal quality, power levels and error rates, so line problems show up before they cause outages.
⭐ If you find this integration useful, please star this repo! It helps others find the project.
🤖 AI-Assisted Development: This project uses AI-assisted development (Claude) to accelerate implementation while maintaining human oversight for architecture and community decisions.
New contributor? Start with the Getting Started Guide (environment setup, running tests, your first commit).
Returning contributor? See the Contributing Guide for workflow, code style, and PR guidelines.
Architecture: Two runtime pip packages in packages/ (Core + Catalog) plus a thin HA adapter in custom_components/. A third package, Catalog Tools, holds the authoring tools (HAR analysis, YAML generation, verification) for contributors and maintainers; HA never installs it. See CONTRIBUTING.md for details.
What it monitors:
What it does:
Track your cable modem's health with comprehensive dashboards and real-time monitoring:
This integration supports modems from ARRIS, CommScope, Compal, Hitron, Motorola, Netgear, Sagemcom, SDMC, Sercomm, Technicolor and Ubee, including ISP-branded boxes such as Virgin Media and Xfinity. Compatibility varies with firmware and ISP customization.
View the Supported Modems List - Complete list with DOCSIS versions, ISP compatibility, verification status, and model timelines.
The catalog grows when contributors with hardware step up. Two paths:
Modem listed as ⏳ Awaiting? Report it working to help verify support.
Don't have HACS? Follow the HACS installation guide first.
Betas don't auto-update; each one is a manual per-version install.
To return to stable: repeat the steps and pick the latest stable release.
192.168.100.1) and credentials if requiredAfter setup, configure via Settings → Devices & Services → Cable Modem Monitor → Configure:
Modem Model and Channel Identity are install-time choices, not editable here. See Known Limitations.
All sensors use the cable_modem_ prefix. Supporting entities (system information, error totals and rates, latency, LAN statistics) sit in the device page's Diagnostic section.
Entity Naming Pattern:
System sensors: sensor.cable_modem_{metric} (e.g., sensor.cable_modem_status).
Channel sensor naming depends on the Channel Identity mode you picked at setup:
sensor.cable_modem_{direction}_ch_{number}_{metric}
sensor.cable_modem_ds_ch_1_powersensor.cable_modem_us_ch_3_frequencysensor.cable_modem_{direction}_{type}_ch_{id}_{metric}
sensor.cable_modem_ds_qam_ch_1_powersensor.cable_modem_us_atdma_ch_3_frequencysensor.cable_modem_ds_ofdm_ch_1_powerChannel Identity is set when you add the integration; to switch it, see Known Limitations.
sensor.cable_modem_status: One state combining connection, health probes and DOCSIS lock, such as Operational, Unresponsive, Auth Failed, No Signal or Partial Lock. All ten states, in priority order, are in Understanding the Status Sensor.sensor.cable_modem_software_version: Modem firmware/software versionsensor.cable_modem_last_boot_time: When the modem last rebooted (timestamp device class); Home Assistant renders it as relative age ("5 days ago"), which doubles as uptimesensor.cable_modem_ds_channel_count: Number of active downstream channelssensor.cable_modem_us_channel_count: Number of active upstream channelsFirmware and hardware versions also appear on the device info card. Other system fields your modem reports (provisioned speeds, for example) become sensors automatically, and LAN interface statistics get per-interface sensors for bytes, packets, errors, and drops.
sensor.cable_modem_ping_latency: Ping response time in millisecondssensor.cable_modem_tcp_latency: TCP connect time in millisecondssensor.cable_modem_http_latency: HTTP response time in millisecondssensor.cable_modem_total_corrected_errors: Total corrected errors summed over downstream channelssensor.cable_modem_total_uncorrected_errors: Total uncorrected errors summed over downstream channelssensor.cable_modem_rate_corrected_errors: Corrected errors per minutesensor.cable_modem_rate_uncorrected_errors: Uncorrected errors per minuteThe integration sums the totals from per-channel counters; no modem in the catalog reports one itself. What they cover depends on the modem:
Replace {type} with channel type (qam, ofdm) and X with the channel number:
sensor.cable_modem_ds_{type}_ch_X_power: Power level in dBmVsensor.cable_modem_ds_{type}_ch_X_snr: Signal-to-Noise Ratio in dBsensor.cable_modem_ds_{type}_ch_X_frequency: Channel frequency in Hzsensor.cable_modem_ds_{type}_ch_X_corrected: Corrected errorssensor.cable_modem_ds_{type}_ch_X_uncorrected: Uncorrected errorsReplace {type} with channel type (atdma, ofdma) and X with the channel number:
sensor.cable_modem_us_{type}_ch_X_power: Transmit power level in dBmVsensor.cable_modem_us_{type}_ch_X_frequency: Channel frequency in HzThe integration registers three buttons under the modem device:
cable_modem_monitor.generate_dashboard: Generates a Lovelace dashboard YAML tailored to your modem's channel layout. Configurable: which graphs to include (status card, downstream/upstream power/SNR/frequency, errors, latency), graph_hours window (1–168), and short-title mode.cable_modem_monitor.request_refresh: Triggers an immediate data poll for the selected device.cable_modem_monitor.request_health_check: Runs an immediate health probe (ICMP / TCP / HTTP) outside the regular cadence.cable_modem_monitor.convert_channel_identity: Renames recorder statistics from the previous Channel Identity mode to the current one, so historical graphs survive a remove-and-re-add in the other mode. Modem must be online.cable_modem_monitor.orphaned_statistics: Lists recorder statistics left behind by a mode switch, channel rebonding, or a prefix change; call again with execute: true to purge them. See Ghost Statistics in History.Ready-to-use dashboard and automation examples are available in the Examples Guide.
Includes:
To remove a single modem:
Deleting the integration does not purge recorded sensor history; your Home Assistant recorder settings govern it. To clear leftover channel history, use the orphaned_statistics service or follow Ghost Statistics in History. To clear state history, see Leftover State History.
To uninstall completely, delete every modem entry as above, then remove Cable Modem Monitor from HACS (open it, ⋯ menu → Remove) and restart Home Assistant.
convert_channel_identity service to carry your recorder statistics across.📖 The Troubleshooting Guide covers connection problems, missing sensors, and duplicate entities.
_review_before_sharing checklist to help you spot anything sensitivecable-modem-monitor-ql/queries/no_timeout.ql flags HTTP requests without explicit timeouts, which would otherwise hang the integration on unreachable modems.MIT License - see LICENSE file for details. The project's names and logos are not covered by it; see TRADEMARKS.md.
Cable Modem Monitor is maintained by one person, in the evenings, around a day job. What to expect from replies and reviews, and where to ask what, is in SUPPORT.md.
⚠️ Disclaimer: This integration interacts with the user-facing diagnostic interface (LAN side) of your modem. It does not modify boot files, interact with the ISP side (WAN), or bypass any service limits.
Solent Labs™ is not affiliated with Arris, Motorola, Netgear, or any ISP. All product names are trademarks of their respective owners. Use this software at your own risk.