First release as a standalone integration for the AT&T Nokia BGW320-505
XGS-PON fiber gateway.
Added
- Fiber optical sensors. Optical Rx power, Tx power, and SFP module
temperature as graphable sensors. The current values live in
<h1>… Currently N</h1>headers onfiberstat.ha— the page's tables hold
only thresholds — so a post-processor extracts them and scales power by 1/10
to dBm. - PON and WAN sensors. Optical WAN operational status, link state,
wavelength, raw GPON state, connection/network type, negotiated link speed,
public IPv4/IPv6, and receive/transmit byte, packet, error, and drop counters. - Device sensors. Firmware version, hardware version, uptime, and derived
last boot time. - Restart button. New
form_md5_nonceauth strategy: GET the login page for
a server nonce, POSTmd5(access_code + nonce), then POST the reboot with a
freshly fetched per-request nonce. Needs the 12-character Device Access Code;
monitoring stays credential-free. Verified live against firmware 6.34.7. - Self-contained HACS artifact.
scripts/dev/build_hacs_zip.pyvendors the
engine packages intobgw320.zip, so installation pulls nothing from PyPI
under thesolentlabsname.
Changed
- Domain is
bgw320, display name "AT&T BGW320 Gateway". Entities are
sensor.bgw320_*; the Home Assistant device is namedBGW320. docsis_statusis nowpon_status(andDocsisStatusisPonStatus)
throughout core, catalog, the adapter, and fixtures.- Channel-less devices report ONLINE.
derive_connection_statustreats an
operational optical link as online instead of NO_SIGNAL, which assumed a
cable modem that failed to lock channels. docsis_versionis optional in device metadata, so non-DOCSIS hardware
validates.- The catalog contains a single device, the BGW320-505.
Removed
- DS/US channel-count sensors. The parser coordinator still emits both
counts, but XGS-PON has no DOCSIS channels, so they were permanently 0. - Channel-bond change notifications and their
Store. Without channel
bonding they had nothing to report, and the check ran on every poll.
Fixed
- Diagnostics dropped engine logs. Log filtering matched a substring of the
old domain, which incidentally also matched the engine's logger name.
Renaming the domain would have silently excluded every engine record, so the
filter is now an explicit predicate over both logger prefixes. trial_parsemis-handled channel-less configs. It detected parser
sections by substring-matching the raw YAML text, so a config whose comments
mention "downstream" was treated as declaring one and failed with "extracted
0 channels". It also required at least one channel to pass, so a correct
system_info-only parser never could. Section detection is now structural and
system_info counts as extraction.- The self-containment check in the build script was vacuous after the
rename: it filteredsys.pathon a directory name that no longer matched, so
the editable install could satisfy the import the check was meant to isolate.
Full Changelog: https://github.com/pope523/att-fiber-gateway/commits/v1.0.0