Added
-
A paired host's identity key can now be read from Host Actions. Phones broadcast a random
address that changes every few minutes, and this key is the only thing that can tie one of those
back to a known host — what presence detection needs. Take it to Home Assistant or a second ESP32,
which has to do the detecting, since that job and this component both want to own the Bluetooth
controller. Shown only when asked for, kept out of backups, and refused to other websites. -
The web remote can be popped out into a window of its own, so it stays in reach while you
scroll the page or work in another app, and pinned back where it was afterwards. The window holds
the remote and nothing else, sized to it and resized whenever a host switch brings a style of a
different shape. On a Chromium browser reaching the device over https it can be kept above your
other windows; elsewhere it opens as an ordinary one.
The same view can be opened directly at/ble_keyboard#remoteand bookmarked as a remote-only page. -
A remote style that draws its own body loses the card from behind it once popped out, so what
floats in the window is the shape, shadow and taper it defines rather than a slab inside a slab.
In the page it keeps its card like the sections around it, and a style that draws no body of its
own keeps one everywhere. -
The web remote can now look different on each host. Pick a style per host slot in the new
Remote Style panel and the remote re-skins as you switch machines — five shapes alongside the full
one, from a compact media strip to a full set-top remote with a number pad, colour keys and a
circular nav ring, in a dark and a light body. Styles are stored on the
device, so they follow the host rather than the browser. Export one, edit the JSON, and import it
back to build your own; six fit on the device. -
More remote buttons, and buttons can carry your own label. The remote gains Menu, Exit, Guide,
TV, Voice, Subtitles and a full number pad as real keys, plus sixteen spares that send nothing
until you give them a per-host override — for app-launcher keys and anything else with no standard
code worth guessing. A style can now write a button as["spare1","Netflix"]to put its own text on the key,
so an imported layout reads the way the remote it came from does. -
A remote style can now look like the remote, not just carry its keys. New circular navigation
ring and one-piece volume/channel rocker sections, per-button colour and size, inverted light keys,
and body shaping through gradients, the full border-radius grammar and an optional taper. Enough
for a style to read as the device it belongs to rather than a generic slab. -
The Home Assistant remote card draws the same styles as the web page. Pick one in the card
editor, or let it follow whatever style the device has for the active host so switching hosts
re-skins the card too — that needs the newremote_styletext sensor. A style you made yourself
can be pasted into the card, where it joins the style list under its own name. The card's layout
now comes from the firmware's own definitions rather than a second hand-kept copy. -
Remote keys can now fire Home Assistant actions — a new action prefix asks HA to run
one of its own actions over the native API, so a key remapped in Host Actions can drive
an IR blaster, a script, or a scene, from the HA remote card and the web remote alike.
Off by default behind a new YAML opt-in, and additionally gated by HA's own per-device
permission; Host Actions and Macros gain a ready-to-edit preset once enabled.
Fixed
- Sharing a device with another Bluetooth component now fails loudly instead of quietly. Adding
a tracker or proxy alongside the keyboard used to compile and boot with nothing in the log, then
starve whichever one lost the race for the radio. The keyboard now checks whether Bluetooth is
already running, says which component to move to another board, and stops rather than half-working. - The web page asks the device for a lot less, so it stops resetting connections. The position
finder polled several times a second whatever was on screen; it now stops when its section is
hidden and slows right down while the map is locked. Any page in the background stops polling
until it is looked at again, and the browser no longer asks for a favicon the device never had. A
page and a popped-out remote together now make fewer requests than the page alone used to. - Removing a button from the remote no longer moves the others. The remaining buttons closed the
gap, so hiding OK pulled the D-pad arrows out of position; a removed button now leaves its place
empty. A row or section with nothing left visible still collapses.