From 9d990c8c0b3f237e55826826f743fc793fc72f78 Mon Sep 17 00:00:00 2001 From: cmadds Date: Thu, 30 Jul 2026 11:28:19 +1000 Subject: [PATCH] Expose wireless band, channel, and channel width on client device_trackers Adds band (e.g. '2.4 GHz' / '5 GHz'), channel, and channel_width attributes to connected wireless client device_tracker entities, sourced from data the API already returns. Useful for seeing how clients are distributed across bands. --- README.md | 2 +- custom_components/eero/device_tracker.py | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index cfe1fba..8749d09 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ Custom component to allow control of Eero networks in [Home Assistant](https://h - Control network properties (ex. guest network, Eero Plus features, Eero Labs features) - Pause access for profiles and/or clients - Control content filters for profiles -- Device tracker entities for clients and profiles +- Device tracker entities for clients and profiles (wireless clients also report `band`, `channel`, and `channel_width` attributes) - Sensors for various metrics - Button entities to control features that require network restarts - Select and time entities to control nightlight features for Eero Beacon devices diff --git a/custom_components/eero/device_tracker.py b/custom_components/eero/device_tracker.py index 1cc2766..83dfcae 100755 --- a/custom_components/eero/device_tracker.py +++ b/custom_components/eero/device_tracker.py @@ -210,4 +210,16 @@ def extra_state_attributes(self) -> Mapping[str, Any] | None: if manufacturer := self.resource.manufacturer: attrs[ATTR_MANUFACTURER] = manufacturer attrs["network_name"] = self.network.name + if self.resource.wireless: + frequency, frequency_unit = self.resource.interface_frequency + if frequency: + attrs["band"] = ( + f"{frequency} {frequency_unit}".strip() + if frequency_unit + else str(frequency) + ) + if self.resource.channel is not None: + attrs["channel"] = self.resource.channel + if channel_width := self.resource.channel_width_rx: + attrs["channel_width"] = channel_width return attrs