Skip to content

v1.8.0 ESPHome BLE Keyboard

Latest

Choose a tag to compare

@markusg1234 markusg1234 released this 12 Aug 14:13
· 36 commits to main since this release

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#remote and 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 new remote_style text 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.