Add SSDP/UPnP scanner to frontend status displays

Surface the SSDP/UPnP scanner alongside ARP and mDNS: a dedicated card on
the Status screen and a row in the consolidated Status card on Home. Mirrors
the existing mDNS implementation and reuses the generic ScannerStatusCard and
PolledValue infrastructure. Also maps the 'Ssdp' device-event scanner to the
"SSDP/UPnP" label.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
rzuasti
2026-06-01 18:13:33 -04:00
co-authored by Claude Opus 4.8
parent e8159f2b40
commit 440959b10d
6 changed files with 139 additions and 2 deletions
@@ -0,0 +1,23 @@
class SsdpScannerStatus {
final bool isListening;
final double? listeningForSeconds;
final int devicesSeen;
final double? lastDeviceSeenSecondsAgo;
const SsdpScannerStatus({
required this.isListening,
this.listeningForSeconds,
required this.devicesSeen,
this.lastDeviceSeenSecondsAgo,
});
factory SsdpScannerStatus.fromJson(Map<String, dynamic> json) {
return SsdpScannerStatus(
isListening: json['is_listening'] as bool,
listeningForSeconds: (json['listening_for_seconds'] as num?)?.toDouble(),
devicesSeen: (json['devices_seen'] as num).toInt(),
lastDeviceSeenSecondsAgo: (json['last_device_seen_seconds_ago'] as num?)
?.toDouble(),
);
}
}