Skip to content

Ctrlable/buttons-machine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

141 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Buttons Machine

Buttons Machine is a custom integration for Ctrlable Pro (Ctrlable's professional smart-home platform). It maps the physical buttons on your keypads to actions and drives each keypad's LED indicators so they reflect the real state of your system.

Program every button visually in a clean visual sidebar panel — no processor re-programming required. Pick what each button does, bind its LED to the lights it controls, and Buttons Machine handles the dispatch and feedback inside Ctrlable Pro.


Supported Keypads

Keypads are grouped by the backend/transport that talks to them. Each backend is a separately licensed module (see Licensing).

Module Transport Keypads Notes
Lutron Leap/Caséta LEAP protocol SeeTouch, Hybrid SeeTouch, Sunnata, Hybrid Sunnata, Alisse/Alisée, Palladiom, Tabletop, Pico remotes Lutron Caséta and RA2 Select systems.
Lutron LIP LIP protocol SeeTouch, Palladiom, Pico, Tabletop and similar QS keypads Lutron Homeworks QS / RadioRA systems. Native hold and double-tap supported. Engraved button labels and raise/lower are auto-detected from the processor database.
Eaton RFWC5 Z-Wave via zwave-js-ui (MQTT) Eaton/Cooper RFWC5 / RFWDC 5-button scene keypad Reliable press on/off decoding and LED sync from the keypad's pushed indicator, rapid multi-button handling, cover-cycle support, and self-healing gateway discovery.
Zooz ZEN35 / ZEN32 Z-Wave (zwave_js) Zooz ZEN35 and ZEN32 scene controllers Central Scene button events with per-button LED indicators (Indicator CC) and configurable LED colours.

Features

Every button is configured individually in the visual programming panel.

Action Types

Action What it does
Stateful Scene Toggles a Stateful Scenes switch (activate / revert) as a radio group; the LED mirrors the switch's real "is the scene active" state.
Scene Activates a plain scene with no state tracking.
Automation Triggers an automation.
Script Runs a script.
Entity Toggle Toggles an entity, with Room Mode / Scene Mode LED logic.
Cover Cycle Cycles a cover: open → stop → close → stop (reverses after a stop).
Dim Cycle Continuously ramps a light up/down until it hits the limit or you press again — a hold-to-dim feel via presses (Quick / Smooth / Paced / Custom speed). On the RFWC5, an optional Always-fast mode makes every press instant and poll-free (trading the LED status) for keypads installed far from the Z-Wave controller.
Dim Sequence Steps a light through preset levels: 100% → 75% → 50% → 25% → off.
Raise / Lower Ramps lights or shades up or down.
None Leaves the button unassigned.

Programming Panel

A tabbed, responsive UI (desktop, tablet, mobile):

  • Shared Programs — define a button program once and link it to buttons across any number of keypads; edit it in one place and every linked button updates (e.g. a "Welcome" scene shared across three entrances).
  • Copy / Paste — right-click a button or a keypad to copy its programming and paste it (all / programming only / names only) onto another.
  • Bulk add — discover and add multiple keypads at once.

LED Feedback

  • Auto-discovers each keypad's LED entities and binds them to buttons.
  • Room mode vs Scene mode LED behavior.
  • Invert option per LED.
  • Per-light target brightness and color temperature, auto-clamped to each light's supported range.

Button Behaviors

  • Hold-to-Dim — hold a button to ramp brightness.
  • Double-Tap and Hold blocks for secondary actions.
  • Configurable fade and delay timing.

Programming Panel

A sidebar panel in Ctrlable Pro at the URL path /buttons-machine, where you configure every keypad, button, action, and LED binding.


Installation

  1. In HACS, add this repository as a custom repository and install Buttons Machine.
  2. Restart Ctrlable Pro.
  3. Add your keypads via Settings → Devices & Services (or the "+" button in the Buttons Machine panel).
  4. Open the Buttons Machine panel's License dialog and apply a valid license for each module you use.

Configuration

All configuration happens in the Buttons Machine sidebar panel (/buttons-machine):

  1. Select a keypad. Its buttons and discovered LED entities appear automatically.
  2. For each button, choose an action type and its target (scene, script, entities, etc.).
  3. Bind the button's LED, set Room vs Scene mode, and configure any per-light brightness or color-temperature targets.
  4. Add optional Hold, Double-Tap, or Hold-to-Dim behavior and adjust fade/delay timing.

For LIP keypads, engraved button labels and raise/lower buttons are auto-detected from the processor database, so most of the layout is filled in for you.


Licensing

Buttons Machine uses per-module licensing through portal.ctrlable.com. Each backend module is licensed separately:

  • Lutron Leap/Caséta
  • Lutron LIP
  • Eaton RFWC5
  • Zooz ZEN35 / ZEN32

A valid, instance-bound license is required for each module in use. Apply licenses from the License dialog in the Buttons Machine panel.

Existing legacy Lutron licenses continue to cover both Caséta and LIP.


By Ctrlable

Buttons Machine is built and maintained by Ctrlable and runs on Ctrlable Pro.

About

Keypad Programming made easy

Resources

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages