Skip to content

[Feature request] hardware mute and intercom control for physical buttons #991

Closed

Description

@meiser79

Describe the feature

Context: I run Kiosk Satellite on an Amazon Echo Dot 2nd gen (custom ROM) with my own plugin that drives the LED ring. The device has physical buttons: a mute button that toggles a hardware latch which cuts the microphones, and other buttons that I'd like to use for the intercom. The pieces below would let a plugin and the Gestures page cover these devices completely.

1. Plugin SDK: allow setting the wake word mute

Plugins can already read the mute state (getWakeWordState, wakeword.state → muted), but there is no way to set it. I'd like a host.control command, for example:

Command Arguments and behavior
setWakeWordMuted {muted: boolean}. Mute or unmute wake word detection, the same user-facing mute that the Home Assistant mute switch controls. Returns the resulting state

Use case: The Echo Dot's mute button cuts the microphones in hardware. My plugin can read that latch, but to keep KS in sync it currently has to fire gesture triggers that call a Home Assistant service to toggle the kiosk's own mute switch. That round trip fails while Home Assistant is unreachable and adds latency. With a direct command, the plugin could keep KS muted while the hardware is muted, without depending on HA.

I understand internal voice suppression is excluded on purpose. This request is only for the user-facing mute that is already exposed as a switch in Home Assistant.

2. Gestures: add "Accept intercom call" and "Decline intercom call"

Please add two gesture actions:

  • Accept intercom call: answers the currently ringing incoming intercom call.
  • Decline intercom call: rejects the currently ringing incoming intercom call.

Both should do nothing when no call is ringing.

Use case: Combined with plugin gesture triggers, these would let physical buttons (or claps, corner taps, etc.) answer and reject calls on devices without a usable touchscreen.

3. Hangup button: also accept a ringing intercom call

Today the hangup button ends an active intercom call. Please extend it so that pressing it while an incoming call is ringing accepts the call. Ideally this is configurable, for example:

Hangup button while ringing: Accept / Decline / Ignore (current behavior)

Use case: On a device with a single dedicated call button, one button could then handle the whole call: press to answer, press again to hang up.

Thanks a lot for Kiosk Satellite and the plugin SDK!

Use case

see above

Devices this matters on

any devices

Activity

  1. jxlarrea commented on Oct 14, 2026

    @jxlarrea
    Owner

    All three are in and will ship in the next release.

    1. Wake word mute for plugins

    Plugins with host.control can call setWakeWordMuted with {muted: boolean}. It's the same mute as the Voice Satellite Mute switch in Home Assistant and it returns the muted state it set. With Voice Satellite running in the app, Kiosk Satellite sets it directly, so it works while Home Assistant is unreachable. getWakeWordState now also includes muted, so your plugin can read the current state on startup without waiting for a wakeword.state event.

    2. Accept intercom call and Decline intercom call gestures

    Both are on the Gestures page. They answer or decline the call ringing on the kiosk and do nothing when nothing is ringing, so you can map them to your plugin triggers.

    3. Hang up button while ringing

    Under Intercom > Talk, a new Hang up button while ringing setting shows once Hang up call when pressing this button is set to a button. It has three choices:

    • Accept answers the ringing call. The next press hangs up, so one button handles the whole call.
    • Decline declines the ringing call.
    • Ignore is the default and keeps the current behavior.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions