# homebridge-selve

> Selve Remote Shutter Support for Homebridge: https://github.com/homebridge/homebridge

Latest version **3.0.0** (published 2026-09-21) · MIT license · 0 weekly downloads

## Install

```sh
npm install homebridge-selve
pnpm add homebridge-selve
yarn add homebridge-selve
bun add homebridge-selve
```

## Health

**Score 60/100 (C)** — status: active.

Positive: esm support; no vulnerabilities; has provenance; recently updated.

Warnings: low downloads; no types.

## Facts

| | |
|---|---|
| Version | 3.0.0 |
| Published | 2026-09-21 |
| First published | 2019-03-11 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | ESM + CommonJS |
| Node | ^22.12.0 \|\| ^24.0.0 \|\| ^26.0.0 |
| Dependencies | 2 |
| Unpacked size | 64.8 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Provenance | attested (GitHub Actions) |
| Author | Thorben Fohlmeister <thorben@fohlmeister.com> |
| Maintainers | thfo, cojoj |
| Keywords | homebridge-plugin, selve, shutter, rollershutter, homebridge |

## Links

- npm: https://www.npmjs.com/package/homebridge-selve
- Repository: https://github.com/tfohlmeister/homebridge-selve
- Issues: https://github.com/tfohlmeister/homebridge-selve/issues
- npm.io page: https://npm.io/package/homebridge-selve

## Dependencies (2)

- [serialport](https://npm.io/package/serialport.md) ^13.0.0
- [fast-xml-parser](https://npm.io/package/fast-xml-parser.md) ^5.11.1

## Alternatives

- [@sindresorhus/slugify](https://npm.io/package/@sindresorhus/slugify.md) — 3.7M weekly downloads
- [solid-js](https://npm.io/package/solid-js.md) — 2.7M weekly downloads
- [expo-glass-effect](https://npm.io/package/expo-glass-effect.md) — 2.5M weekly downloads
- [nanoassert](https://npm.io/package/nanoassert.md) — 780.8K weekly downloads
- [@ffmpeg/ffmpeg](https://npm.io/package/@ffmpeg/ffmpeg.md) — 529.5K weekly downloads

## Recent versions

- 3.0.0 (latest) — 2026-09-21
- 2.2.4 — 2022-09-26
- 2.2.3 — 2022-06-16
- 2.2.2 — 2021-10-28
- 2.2.1 — 2020-11-17
- 2.2.0 — 2020-10-28
- 2.1.1 — 2020-08-16
- 2.1.0 — 2020-08-16
- 2.0.0 — 2020-07-22
- 1.1.1 — 2020-07-20
- 1.0.2 — 2020-05-02
- 1.0.0 — 2020-04-27
- 0.2.8 — 2020-04-06
- 0.2.7 — 2020-04-06
- 0.2.6 — 2020-04-06
- … 7 more at https://npm.io/package/homebridge-selve/versions

## README

# Selve Roller Shutter Accessory
[![Compatibility](https://github.com/tfohlmeister/homebridge-selve/actions/workflows/ci.yml/badge.svg)](https://github.com/tfohlmeister/homebridge-selve/actions/workflows/ci.yml)
[![CodeQL](https://github.com/tfohlmeister/homebridge-selve/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/tfohlmeister/homebridge-selve/actions/workflows/codeql-analysis.yml)

Exposes up to 64 roller shutters using a Selve USB-RF module paired with Selve Commeo receivers.

Version 3 supports Homebridge `^1.8.0 || ^2.0.0` and Node.js `^22.12.0 || ^24.0.0 || ^26.0.0`. Node.js 26 requires Homebridge 2.3 or newer. Older Node.js and Homebridge versions are no longer supported, and the plugin now uses ES modules.

When upgrading, back up your Homebridge configuration and keep the existing shutter names and device IDs to preserve your HomeKit setup.

## Maintenance
The 2023 deprecation notice has been lifted and the project is open for contributions again. I moved my own setup to [Home Assistant](https://home-assistant.io) and no longer run the plugin day to day, so maintenance is handed over to contributors who do. Issues and pull requests are welcome.


## Setup
1. Pair roller shutters and USB-RF Gateway using the official Selve tools
2. Once paired, use [Homebridge Config UI X](https://github.com/oznu/homebridge-config-ui-x) to setup your config and skip the following steps.
3. Manual setup: Update your `config.json` and add "Selve" as a new platform. Make sure you set the `usbPort` to the corresponding path of the usb dongle on your system (typically something like `/dev/ttyUSB0` on Linux machines). Also make sure the system user running homebridge has read and write access to this device.
4. Add as many `shutters` to the config as you have. Each shutter has a `name`, a `device` (the same ActorID (0-63) that was used in the tools app during pairing), and optional parameters to show virtual buttons for intermediate positions.

**Example config.json:**

```JSON
"platforms": [
  {
    "name": "Selve",
    "platform": "selve",
    "usbPort": "/dev/ttyUSB0",
    "shutters": [
        {
            "name": "Livingroom",
            "device": 4
        }
    ]
  }
]
```

### Add virtual buttons to move to saved intermediate positions (optional)

You can add up to two virtual buttons to move your shutters to predefined, saved intermediate positions (position 1 or 2). At the moment this plugin can't detect whether the current position is an intermediate position or not, so it simply turns off the virtual button immediately after turning it on and triggering the command.

To add the buttons, simply add `showIntermediate1` and/or `showIntermediate2` to the config:

```JSON
"platforms": [
  {
    "name": "Selve",
    "platform": "selve",
    "usbPort": "/dev/ttyUSB0",
    "shutters": [
        {
            "name": "Livingroom",
            "device": 4,
            "showIntermediate1": true,
            "showIntermediate2": true
        }
    ]
  }
]
```

### Add a virtual button to stop any movement (optional)

You can add another virtual button for stopping any current movement. Simply add `showStop` to any shutter in your config, in the same style as above.
```JSON
...
"showStop": true,
...

```


## Plugin Development

Use the Node.js 24 LTS version in `.node-version` and the pnpm version declared in `package.json`.

```sh
pnpm install --frozen-lockfile
pnpm check
```

`pnpm watch` uses `.homebridge-dev/config.json`. Give this test bridge a separate identity and stop other instances using the same USB gateway.
Build an installable package with `pnpm build && pnpm pack`.

See [CONTRIBUTING.md](CONTRIBUTING.md) for the compatibility matrix, coverage,
dependency maintenance and the staged release process.

---
_Source: https://npm.io/package/homebridge-selve · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
