Skip to content

v3.3.0 - More integrations, more internet, more ways to display

Choose a tag to compare

@benmac7 benmac7 released this 30 Sep 13:59
· 93 commits to main since this release
8cfc744

[3.3.0]

A major release built around Monitoring: bring Uptime Kuma, Ping,
Gatus, and UptimeRobot straight into the diagram as their own badges
and circles, not just router-brand integrations. Also adds a
Secondary Internet entity for a backup or genuine second
connection, real-time Download/Upload summary items sourced from the
Router itself, a Card Size control (Compact, Fit to Width, or a
manual Scaled percentage) aimed at fitting large networks on a phone
screen, keyword search across every Auto-Discovery list, and
support for additional integrations.

Added

  • Monitoring - a new main menu, and a new way of drawing a service's
    status directly on the diagram rather than only on the device that
    runs it. Auto-discovery covers four integrations, each confirmed
    against home-assistant/core's own test suite where one exists:
    Uptime Kuma, Gatus, and UptimeRobot (all three checked
    directly against their real entity/snapshot test fixtures), and
    Ping (from its documented round_trip_time_avg attribute). Each
    discovered or hand-added service gets its own entity, name override,
    icon, and border/icon colors (with separate colors while it's down),
    plus a Type of Auto, External, or Internal:
    • External services draw in a new dashed box above Internet,
      joined to it by dotted lines - one per circle when a Secondary
      Internet is configured.
    • Internal services can be assigned to Clients (their own
      "Monitored" sub-group) or to any device or client already
      configured anywhere on the card, not just Router and Servers -
      Internet, LAN, the Core Switch, any Switch or Access Point at any
      depth, any Server, or any individual Client. A device with several
      services shows the worst state among them.
    • Auto resolves live, from the monitor's own data: its tags,
      then the address it checks (a public address is External; a
      private range, single-word host, or .local/.lan name is
      Internal). Gatus exposes neither, so Auto falls back to checking
      its name for a keyword like "External" or "Internal" (Gatus puts
      its group name into the entity name); UptimeRobot, with nothing to
      go on, defaults to External, since a cloud checker can only be
      watching something reachable from the internet. The discovery list
      and the service editor both flag a service Auto can't classify.
    • An optional response-time badge, per service (Show Response
      Time Badge), at the bottom of its own circle (not on a device
      badge) - from its Response Time entity, or a status entity's own
      round_trip_time_avg attribute - colored globally by the same
      single-color-or-threshold choice PoE badges use.
    • A down badge flashes, following the card's own Enable Animations
      switch like every other animation on the card.
    • Global settings: badge colors and icons by state (up/down/pending/
      maintenance), badge location, the icon shown when several services
      share one device badge, how an unavailable entity is treated
      (Pending by default, or Down), Box Border Color/Radius for the
      External box, and Show Monitored Names - independent of the
      Clients page's own Show Names, so either can be on without the
      other.
    • Both the auto-discovery list and the list of services already
      added can be filtered by integration, each showing how many of
      each it found; filtering the already-added list also turns "Delete
      All" into "Delete Shown".
  • Real-time Download / Upload summary items, sourced from two new
    entity pickers on the Router page (Download Speed Entity,
    Upload Speed Entity). With no Router configured, they fall back
    to the Primary Access Point's own Download/Upload entities instead;
    a Router that is configured but has no speed entity for a direction
    shows nothing for that direction rather than borrowing the Primary
    AP's. Router discovery for FRITZ!Box, pfSense, ASUSWRT,
    and AsusRouter (already supported for the router entity itself)
    now also fills these in automatically where each integration exposes
    live throughput: FRITZ!Box's and pfSense's own WAN rate sensors
    (pfSense from the default gateway's interface specifically, both
    directions from the same WAN), and ASUSWRT's and AsusRouter's
    "Download/Upload speed" sensors - both confirmed against
    home-assistant/core's own test fixtures, including which sensors are
    enabled by default and which are only created for interfaces
    selected in AsusRouter's own options. ASUSWRT's speed sensors carry
    a caution in the discovery list, since they're reported to read 0 or
    identical values on some routers. They're now the default Summary
    Item 1 and 2, ahead of the plain Speedtest-sourced Download/Upload.
  • Secondary WAN IP Address, a new Router-page field shown only once
    a Secondary Internet exists, displayed under the secondary circle the
    same way the primary's WAN Address already is. AsusRouter fills it in
    automatically - confirmed against its own official change log
    (wan_ip / wan_ip_secondary sensors, added in integration 0.24.0
    alongside its secondary-WAN support). Checked as well against UniFi
    and TP-Link (Omada, Deco, Router): neither exposes a distinct
    secondary WAN address in any integration this card already supports,
    so there's nothing to auto-fill there yet.
  • Card Size (Advanced → Layout) - one choice replacing the size
    sliders as the way to fit more on a small screen:
    • Normal - no change; the size sliders below work as set.
    • Compact - every circle, badge, and icon shrinks to its
      slider's own minimum, the column gap tightens to its minimum, and
      every name on the card - client, monitored-service, and the label
      inside a Router/Switch/AP/LAN/Server circle alike - hides, all
      without touching the size sliders themselves, so switching back to
      Normal is instant.
    • Fit to Width - automatically zooms the whole diagram down just
      enough to fit the card's width, recalculating whenever the card
      resizes or the network changes, down to a 40% floor.
    • Scaled - a manual zoom percentage (40-100%), remembered on its
      own even when switching to another Card Size and back.
    • A separate Horizontal Scroll toggle applies to every Card Size
      except Fit to Width (already sized not to need it) - lets a
      diagram wider than the card pan sideways, in both directions, to
      reach content that overflows on either side, instead of it being
      clipped by the card's own edge, which it previously always was,
      silently, with no way to see the rest.
    • A separate Hide Names toggle (Advanced → Layout) is a global
      override independent of Card Size or either page's own Show Names:
      on, it hides every name on the card at once, everywhere Compact
      does, without switching the rest of Compact's sizing on too.
  • Secondary Internet: a second internet_secondary entity draws
    alongside the primary, with the same fields (bandwidth, quota,
    colors) and its own dashed circle outline, for a backup line or a
    genuine second connection - always the same Circle and Icon Size as
    the primary, so the one pair of sliders governs both. Edited from
    inside the Internet page itself (Primary/Secondary tabs) rather than
    a separate menu entry, and Speedtest discovery adds or removes it
    with the same plain buttons as the primary, acting on whichever tab
    is open. A Mode choice - Active/Active or Active/Standby,
    defaulting to Active/Standby - decides whether the secondary is drawn
    solid and animated (carrying its own traffic) or dashed and still (a
    backup, showing no flow at all while idle); in Active/Standby, it
    switches to solid and starts animating automatically the moment the
    primary actually goes down and the secondary is the one carrying
    traffic, then back to dashed and still once the primary recovers.
    Every line in the assembly - both drop lines, the T-bar, and the stem
    into whatever sits below it - uses the one global Flow Line Color
    rather than the Internet's own Download/Upload colors, at the same
    tighter spacing a typical Access Point's own dual line uses, and the
    T-bar reaches the true outer edge of a paired download/upload line
    rather than stopping short of it. Where the Primary AP itself sits
    directly under Internet with no Router or Switch between them, its
    line uses the normal line color and its own Download/Upload entities
    to decide a single or double line, rather than Internet's.
  • Keyword search, alongside the integration filter, on every
    Auto-Discovery list on the card - Speedtest, ISP, pfSense, AdGuard,
    Routers, Main Switches, Nodes, Clients, Containers, and Monitoring -
    matching a candidate by its name or its entity id. Where a list
    already has an integration filter, search narrows within it rather
    than replacing it.
  • ASUSWRT Auto-Discovery - experimental (the built-in asuswrt
    integration, confirmed against home-assistant/core's own source; not
    the same as the community AsusRouter integration already supported,
    and the two can be installed side by side). Router: uses the
    integration's own "Devices connected" sensor, which is enabled by
    default, tied to the router's own device, and goes unavailable
    whenever the router can't be polled - so it's a genuine router-status
    entity, and also fills in the Router's LAN Connected Devices count.
    Only if that sensor has been disabled does it fall back to a client
    tracker as a best-effort proxy. Every configured ASUSWRT router is
    offered as its own candidate. Clients: every tracked device - by
    default only devices that report a name, unless "Track unknown
    devices" is turned on in the integration itself. Nothing is offered
    as a Switch/AP node; for AiMesh satellites, use AsusRouter.
  • UniFi Network Map and UniFi Device Info Auto-Discovery -
    experimental.
    Two HACS integrations, checked against their own
    source. UniFi Network Map (unifi_network_map) labels every gateway,
    switch, and AP explicitly, so no model guessing is needed; its
    tracked-client sensors appear under Clients. UniFi Device Info
    (unifi_mqtt, whose entities arrive through MQTT discovery) reports
    uptime as its state and online/offline in a status attribute - the
    card now reads that attribute for offline detection on those entities
    only. Both feed the Router, Core Switch, and Nodes scans.
  • UniFi devices now default to "Add as: under " when UniFi
    reports which switch/AP they're plugged into (core UniFi's "Device
    Uplink MAC" sensor, or UniFi Network Map's uplink_device) and that
    parent is already in your tree. It's only a default in the dropdown.
  • ha-openwrt Auto-Discovery (FaserF/ha-openwrt, domain openwrt) -
    a separate, far more capable community integration from Home
    Assistant's own built-in luci integration (a bare device-tracker
    proxy with no router-status entities at all), confirmed against
    ha-openwrt's own source (sensor.py, binary_sensor.py,
    device_tracker.py). Router: prefers the WAN interface's own
    connectivity sensor, falling back to the integration's always-on
    "device reachable" sensor when a device has no separate WAN interface
    sensor of its own; Real-time Download/Upload from the WAN interface's
    live rate sensors; WAN Address from the router's externally-checked
    public IP, falling back to the WAN interface's own configured address.
    A device with no WAN interface at all - the "extra Access Point on a
    LAN cable" setup ha-openwrt's own FAQ describes - is offered as a Node
    (Access Point) candidate instead of a Router candidate, detected from
    that absence alone, since nothing WAN-related exists for it in that
    case; a device with one is only ever offered as a Router, never both.
    Clients: every tracked device, the same device_tracker pattern this
    card already uses for TP-Link, UniFi, and everything else.
  • Synology SRM and Netgear now also offer their Router candidate as a
    Node (Access Point) candidate
    , matching how TP-Link Deco's master
    unit already works: both run on hardware that genuinely supports an
    Access Point mode, but - unlike ha-openwrt - neither integration
    exposes anything beyond a single device_tracker per device, so there's
    no signal to tell which mode is active. Offering the same entity both
    ways lets the person choose, rather than only ever seeing it as a
    Router candidate regardless of how it's actually configured.

Changed

  • The Internet page's "Download Speed Entity" and "Upload Speed
    Entity" are now "Download Speed Test Entity" and "Upload Speed Test
    Entity"
    , to read clearly alongside the Router page's own Real-time
    speed fields, with default icons of mdi:progress-download and
    mdi:progress-upload in place of the plain download/upload arrows.
    Neither icon is in this card's small hand-picked icon set, so both
    render through Home Assistant's own icon component instead - anyone
    who already set a different icon here keeps it.
  • Summary badges: Download/Upload and Real-time Download/Upload now
    show different second-line information, each better suited to what
    actually feeds it.
    Download and Upload - sourced from the Internet
    page's speed-test entities - now name whichever integration is
    providing that reading (e.g. "Speedtest.net", "Aussie Broadband")
    instead of the lifetime total. Real-time Download and Real-time
    Upload now show the Total Downloaded/Uploaded entity instead of the
    Router or Access Point's name; with no Total entity configured, the
    line is simply blank rather than falling back to the old text. A
    fresh card's Summary now defaults to Real-time Download and Real-time
    Upload in the first two slots, Latency third - the Speedtest-based
    Download/Upload badges are still there to choose, just no longer
    selected automatically. Summary also grew from 3 badge slots to 5;
    the two new ones are empty by default.
  • "Connected AP" is now "Connected Device", and groups wired clients
    by their switch as well as wireless ones by their AP. Only TP-Link
    Omada exposes which switch a wired client is on (switch_name,
    falling back to switch_mac, confirmed from its own
    device_tracker.py source) - no other integration supported here
    reports this for any client, wired or not, so a wired client on
    anything else still falls to "Unknown", the same as before this
    existed. The config value is unchanged (individual_devices_group_by: ap), so no existing config needs to change - only the editor's label
    and what the mode covers.
  • Show IP Addressing (Advanced → Layout) now defaults to on.
    Anyone who had already turned it off keeps that setting.