Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 24 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,27 @@
# Changelog

## v1.0.0
All notable changes to this project will be documented in this file.

* Initial release
The format is based on [Keep a Changelog](https://keepachangelog.com/),
and this project adheres to [Semantic Versioning](https://semver.org/).

## [Unreleased]

## [1.0.0] - 2026-06-27

### Added

- USB Funk-Stick connection and automatic USB device detection
- Schellenberg motor pairing via radio (ROLLODRIVE, ROLLOPOWER, Funk-Rollladenmotoren)
- Manual "already-paired" device entry without radio pairing
- Bidirectional motor support with event-based position tracking and calibration
- Timed (non-bidirectional) motor support with wall-clock-based position tracking
- Separate open-time and close-time calibration for both motor types
- Position control (0–100%) for calibrated motors
- Signal filter: ignore unknown device signals toggle
- LED switch entity for USB stick LED control
- Stick status sensors (connection status, firmware version, mode)
- HACS-compatible via zip_release delivery

[unreleased]: https://github.com/hrabbach/ha-schellenberg-usb-plus/compare/v1.0.0...HEAD
[1.0.0]: https://github.com/hrabbach/ha-schellenberg-usb-plus/releases/tag/v1.0.0
4 changes: 3 additions & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
MIT License

Copyright (c) 2025 Scott Downing
Copyright (c) 2024-2025 Scott Downing
Copyright (c) 2026 ohlmannmichael-ai
Copyright (c) 2026 Holger Rabbach

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
28 changes: 14 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
# schellenberg_usb Home Assistant Component
# Schellenberg USB+ — Home Assistant Integration

[![GitHub Release](https://img.shields.io/github/release/hrabbach/schellenberg_usb.svg)](https://github.com/hrabbach/schellenberg_usb/releases)
[![License](https://img.shields.io/github/license/hrabbach/schellenberg_usb.svg)](https://github.com/hrabbach/schellenberg_usb/blob/main/LICENSE)
![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/hrabbach/schellenberg_usb/build-test.yaml)
[![GitHub Release](https://img.shields.io/github/release/hrabbach/ha-schellenberg-usb-plus.svg)](https://github.com/hrabbach/ha-schellenberg-usb-plus/releases)
[![License](https://img.shields.io/github/license/hrabbach/ha-schellenberg-usb-plus.svg)](https://github.com/hrabbach/ha-schellenberg-usb-plus/blob/main/LICENSE)
![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/hrabbach/ha-schellenberg-usb-plus/build-test.yaml)

> Maintained fork of [GimpArm/schellenberg_usb](https://github.com/GimpArm/schellenberg_usb), building on
> [ohlmannmichael-ai/schellenberg_usb](https://github.com/ohlmannmichael-ai/schellenberg_usb), which introduced
> calibration persistence. Thanks to both for their work.
> Based on the original work by [Scott Downing (GimpArm)](https://github.com/GimpArm/schellenberg_usb),
> with calibration persistence introduced by
> [ohlmannmichael-ai](https://github.com/ohlmannmichael-ai/schellenberg_usb).

Home Assistant component that interfaces with the [Schellenberg Usb Funk-Stick](https://www.schellenberg.de/smart-home-produkte/smart-home-steuerzentralen/funk-stick/21009/).

> [!WARNING]
> This integration is not affiliated with Schellenberg, the developers take no responsibility for anything that happens to
> your devices because of this library.

![Schellenberg](https://raw.githubusercontent.com/hrabbach/schellenberg_usb/main/images/schellenberg-logo.png)
![Schellenberg](https://raw.githubusercontent.com/hrabbach/ha-schellenberg-usb-plus/main/images/schellenberg-logo.png)

## Features

Expand All @@ -27,10 +27,10 @@ Home Assistant component that interfaces with the [Schellenberg Usb Funk-Stick](

#### Option 1: Via HACS

[![Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.](https://my.home-assistant.io/badges/hacs_repository.svg)](https://my.home-assistant.io/redirect/hacs_repository/?owner=hrabbach&repository=schellenberg_usb&category=integration)
[![Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.](https://my.home-assistant.io/badges/hacs_repository.svg)](https://my.home-assistant.io/redirect/hacs_repository/?owner=hrabbach&repository=ha-schellenberg-usb-plus&category=integration)

Make sure you have HACS installed. If you don't, run `wget -O - https://get.hacs.xyz | bash -` in HA.
Choose Integrations under HACS. Click the '+' button on the bottom of the page, search for "schellenberg usb", choose it, and click install in HACS.
Choose Integrations under HACS. Click the '+' button on the bottom of the page, search for "Schellenberg USB+", choose it, and click install in HACS.

#### Option 2: Manual
Clone this repository or download the source code as a zip file and add/merge the `custom_components/` folder with its contents in your configuration directory.
Expand All @@ -43,14 +43,14 @@ In order for the newly added integration to be loaded, HA needs to be restarted.
In HA, go to Configuration > Integrations.
In the bottom right corner, click on the big button with a '+'.

If the component is properly installed, you should be able to find 'Schellenberg USB' in the list. You might need to clear you browser cache for the integration to show up.
If the component is properly installed, you should be able to find 'Schellenberg USB+' in the list. You might need to clear you browser cache for the integration to show up.

Select it, and the schellenberg usb integration is ready for use.
Select it, and the Schellenberg USB+ integration is ready for use.

### Step 4: Pair your devices

1. In Home Assistant, go to **Settings > Devices & Services**
2. Find the **Schellenberg USB** integration and click on it
2. Find the **Schellenberg USB+** integration and click on it
3. Click the **+** button or select **Pair device** from the menu
4. Put your blind motor into pairing mode (see [Device Pairing Instructions](#device-pairing-instructions))
5. Once pairing is successful, provide a friendly name for your blind
Expand Down Expand Up @@ -151,7 +151,7 @@ You select the motor type once, when adding the device. A timed motor requires a
If a motor is already paired (for example it responds to an existing Schellenberg remote) you can add it to Home Assistant without triggering the radio-pairing procedure:

1. In Home Assistant, go to **Settings > Devices & Services**.
2. Find the **Schellenberg USB** integration and click on it.
2. Find the **Schellenberg USB+** integration and click on it.
3. Click the **+** button to add a device.
4. When the menu appears, choose **Add manually**.
5. Enter the motor's **device enum** — a two-character hex value (e.g. `10`, `11`, `1A`) that identifies the device on the radio bus.
Expand Down
8 changes: 4 additions & 4 deletions custom_components/schellenberg_usb/manifest.json
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
{
"domain": "schellenberg_usb",
"name": "Schellenberg USB (hrabbach fork)",
"name": "Schellenberg USB+",
"codeowners": ["@hrabbach"],
"config_flow": true,
"documentation": "https://github.com/hrabbach/schellenberg_usb",
"documentation": "https://github.com/hrabbach/ha-schellenberg-usb-plus",
"homeassistant": "2024.11.0",
"integration_type": "hub",
"iot_class": "local_push",
"issue_tracker": "https://github.com/hrabbach/schellenberg_usb/issues",
"issue_tracker": "https://github.com/hrabbach/ha-schellenberg-usb-plus/issues",
"requirements": ["pyserial-asyncio-fast==0.16"],
"usb": [
{
Expand All @@ -16,5 +16,5 @@
"manufacturer": "van ooijen"
}
],
"version": "1.3.3"
"version": "1.0.0"
}
4 changes: 2 additions & 2 deletions docs/DEVELOPMENT.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ fundamental platform constraint.
## Getting the Repo

```bash
git clone https://github.com/hrabbach/schellenberg_usb.git
cd schellenberg_usb
git clone https://github.com/hrabbach/ha-schellenberg-usb-plus.git
cd ha-schellenberg-usb-plus
```

## Dual Venv Setup (Critical)
Expand Down
2 changes: 1 addition & 1 deletion hacs.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"name": "Schellenberg USB (hrabbach fork)",
"name": "Schellenberg USB+",
"content_in_root": false,
"homeassistant": "2025.1.0",
"zip_release": true,
Expand Down