mirror of
https://github.com/dtwardow/homebridge-multi-tap-switch.git
synced 2026-11-02 05:18:30 +00:00
74 lines
4.2 KiB
Markdown
74 lines
4.2 KiB
Markdown
<p>
|
|
<img src="https://github.com/homebridge/branding/blob/latest/logos/homebridge-color-round-stylized.png" width="150" alt="Homebridge">
|
|
</p>
|
|
|
|
# Homebridge Multi-Tap-Switch
|
|
|
|
This plugin provides a switch, which can be triggered multiple times to trigger different actions.
|
|
|
|
Actions could be everything, which can be configured within **Automations**.
|
|
|
|
## How it works?
|
|
|
|
The plugin provides a virtual **switch** which can be triggered manually (which doesn't really make sense) or
|
|
by **Automations**. A configurable set of **programmable** switches will than be used to
|
|
trigger scenes and/or devices (like for i.e. motion or contact sensors).
|
|
|
|
Each time the switch is triggered ```ON``` - what can be done multiple times without reset - the **stateless** switches
|
|
are triggered one after the other.
|
|
The switch is reset after a configurable timeout to start from the first **programmable** switch again.
|
|
|
|
## Installation
|
|
|
|
Either install this plugin through [Homebridge Config UI X](https://github.com/oznu/homebridge-config-ui-x)
|
|
or manually by following these instructions:
|
|
|
|
1. Install Homebridge (follow [the instructions](https://github.com/homebridge/homebridge/wiki)).
|
|
2. Install this plugin by running `npm install -g homebridge-multitap-switch`.
|
|
3. Add this plugin to the Homebridge `config.json` (as described in the next section)
|
|
|
|
## Configuration
|
|
|
|
The configuration allows the user to add multiple **Multi-Tap-Switches**. The following parameters are available:
|
|
|
|
| Option | Default Value | Characteristic (runtime configuration) | Description |
|
|
|-------------------------------------|----------------|----------------------------------------|-------------------------------------------------------------------------------------------|
|
|
| `name` | MultiTapSwitch | | Name of the Platform Accessory (primarily shown in logs) |
|
|
| `devices[]` | | | Array of configured devices |
|
|
| `devices[].name` | | | Name of the switch |
|
|
| `devices[] .numberConfiguredScenes` | 5 | `Configured Scenes` | Number of **stateless** switches (cannot be changed during runtime) |
|
|
| `devices[] .triggerTimeout` | 10 | `Trigger Timeout` | Seconds, after which the switch is reset (starting from the first **programmable** switch |
|
|
| `devices[] .resetAfterSwitchOff` | false | | Reset the switch (like after timeout), when it is turned ```OFF```. |
|
|
| `devices[] .logging` | false | | Logging of switch/trigger actions. |
|
|
|
|
The parameter ```triggerTimeout``` can be changed in the configuration during runtime. So, this is just the initial value.
|
|
|
|
The parameter ```numberConfiguredScenes``` just defines how many **programmable** switches are available (currently, there is no limit). The number of
|
|
really **used** switches can configured during runtime, between 0 and the configured number.
|
|
|
|
> **NOTE:** Additional parameters (also called **Characteristics**) can only be configured via 3rd-party HomeKit apps, but not in the basic Home App!
|
|
|
|
So, an example **platform** plugin config will look as follows:
|
|
|
|
````
|
|
{
|
|
"platform": "MultiTapSwitch",
|
|
"name": "MTSwitch",
|
|
"devices": [
|
|
{
|
|
"name": "MTSwitch 1",
|
|
"numberConfiguredScenes": 5,
|
|
"triggerTimeout": 10,
|
|
"resetAfterSwitchOff": true,
|
|
"logging": true
|
|
}
|
|
]
|
|
}
|
|
````
|
|
|
|
## Contribution
|
|
|
|
Contributions are always welcome. You can also use the code for own projects and adapt it to your specific needs.
|
|
|
|
If you find any bugs or have ideas for optimizations or new features, feel free.
|