Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,9 @@ range -- without needing a dedicated ESPHome microcontroller for each one.
- **Bluetooth-audio transmitter control** -- FlooGoo FMA120 and Sennheiser
BTD 700 dongles get full control drawers in the web UI (see
[Supported USB devices](#supported-usb-devices))
- **USB backup drive** -- share a plugged-in USB drive over SMB as a
Home Assistant network **backup target**, managed from the Overview drawer
(see [Using a USB drive for Home Assistant backups](#using-a-usb-drive-for-home-assistant-backups))
- Web UI for configuration (accessible at `http://<device-ip>`)
- USB hotplug detection -- plug/unplug serial adapters at any time
- DETS-backed persistent device configuration across reboots
Expand All @@ -66,6 +69,7 @@ persist across reboots and replugs.
| **Bluetooth (HCI) adapters** | Any `btusb`-supported dongle | Selectable radio for the **Bluetooth proxy** (BLE advertisement relay + active GATT connections) -- adds Bluetooth to boards without a usable onboard radio (`rpi`, `rpi2`, `x86_64`) or replaces a weak onboard one. |
| **USB DACs / sound cards** | Any class-compliant (`snd-usb-audio`) device, including hi-res DACs (up to 24-bit/96 kHz where supported) | Each output becomes an independently discoverable **Sendspin** player for synchronized multi-room audio. |
| **Bluetooth-audio transmitters** | FlooGoo FMA120, Sennheiser BTD 700 | Sendspin players (via their sound-card half) **plus a device control drawer** on the Overview -- details below. |
| **USB storage drives** | Any USB flash drive or SSD (ext4, exFAT, NTFS, FAT32) | Mounted as the device's **backup drive**, with an opt-in **SMB share** Home Assistant can use as a network backup target. Folder selection, formatting (to ext4), safe eject, and the share credentials all live in the drive's Overview drawer. |
| **USB hubs** | -- | Devices behind a hub render as an indented tree at the hub's slot; branded hubs are named. |

### Bluetooth-audio transmitter control drawers
Expand Down Expand Up @@ -174,6 +178,32 @@ IRDroid / IR Toy USB infrared devices are also **auto-detected** by USB ID
Home Assistant via the ESPHome Native API as **Infrared entities**, supporting
infrared transmit and receive operations.

### Using a USB drive for Home Assistant backups

Plug in a USB drive and it appears on the Overview at its USB slot, showing
its capacity. The first data partition is mounted automatically (ext4, exFAT,
NTFS, and FAT32 are supported); ext4 and FAT32 volumes that weren't unmounted
cleanly get a filesystem check first. One drive is mounted and shared at a
Comment thread
bbangert marked this conversation as resolved.
Outdated
time.

From the drive's Overview drawer you can:

1. **Enable the SMB share** and pick (or create) the folder backups should
land in. Sharing is opt-in per drive and remembered across replugs.
2. **Add it to Home Assistant**: go to **Settings > System > Storage**, add
a network storage with usage *Backup*, and copy the server, share name
(`usb_backup_<id>`, unique per drive), and the generated username and
Comment thread
bbangert marked this conversation as resolved.
Outdated
password straight from the drawer -- it shows exactly the fields Home
Assistant's dialog asks for. The password can be revealed, copied, or
regenerated at any time (update the credential in Home Assistant after
regenerating).
3. **Format** the drive to a single ext4 volume (erases everything -- the
button must be armed first) or **eject** it safely before unplugging.
Comment thread
bbangert marked this conversation as resolved.
Outdated

The share requires Samba in the target's Nerves system, which every custom
target ships except `x86_64`. On targets without it, drives still mount and
show in the Overview but sharing is unavailable.

### Editing ESPHome device configuration

1. Go to the **ESPHome Config** tab (`/esphome-config`).
Expand Down Expand Up @@ -234,6 +264,7 @@ lib/
bluez/ # BlueZ/D-Bus stack: Client (scanner), Gatt, Agent, DeviceCache
audio/ # Sendspin audio: Enumerate, per-output Server/Store, Player
firmware_update/ # In-app firmware update flow
storage/ # USB backup drive: mount, capacity, opt-in SMB share (smbd)
esphome/ # ESPHome Native API adapters + Supervisor
serial_proxy/ # Serial proxy
zwave_proxy/ # Z-Wave proxy
Expand Down
Loading