ESPHome

Separate from the config/compile path in ESPHome builder - this talks straight to a device's own API (Noise-encrypted protobuf over TCP), and works even for devices with no YAML file managed there.

Discovering devices

Split into two tabs - Configured and Discovered - "Rescan" lives in the header's three-dot menu only while the Discovered tab is open, since it's only that tab's concern. Discovered devices come from a real mDNS query against _esphomelib._tcp.local. - your network needs to actually deliver multicast traffic to Athena for this to find anything (see Installation).

Scanning runs continuously in the background rather than only while the Discovered tab happens to be open, so opening it just shows what's already known. Each row has its own "Do not show again" (hides it permanently, even if it drops off the network and comes back) and Delete (removes the row, but it's eligible to notify/appear again on its next sighting). The first time a given device is ever seen, it raises a notification.

Shelly devices share this same background scan and Configured/Discovered pattern, on their own tab bar at Devices & Services > Shelly.

Connecting

Connecting matches a discovered device against any existing ESPHome YAML device by name and auto-fills its known encryption key. If a device needs a key and none is supplied, Athena warns before submitting rather than round-tripping through a failed connection first. Right after it connects, Athena asks where the device is - see Locations & Areas - Save to tag it now, or Skip and do it later. The Configured tab's own header menu also has "+ Add device", for typing a device's name, address, port, and encryption key in by hand instead of connecting from a Discovered row - see Devices & Services.

A device configured with time: platform: homeassistant completes its handshake slightly differently (it requests the time before confirming the connection) - standard ESPHome behavior, and Athena handles it correctly. It then keeps that device's own clock synced for as long as the connection stays open - useful for a LAN-only device with no internet route for its own NTP client.

The device page

Three columns: device info, a Location card (its context menu edits the Location/Area/Floor tags), and an Automations card (every automation that references this device, linking straight to its editor) on the left; entities in the middle; a live activity feed on the right.

  • Live entity list - sensors, switches, lights, and other entities the device exposes, grouped into one card per category.
  • Basic controls - relayed over a bidirectional WebSocket.
  • Activity feed - a live log of state changes for the device.

Each entity-category card has its own context menu with Add to dashboard - it bulk-adds every entity in that category as one new Entities-list card on whichever dashboard you pick, prefilled with the device's own friendly name as the title, so you don't have to add each entity by hand.

Connected devices and their state history are the only device-related data Athena keeps in its own database - everything in ESPHome builder instead reads straight from the config directory.