Skip to content

Commit 65d5be6

Browse files
committed
Initial release v1.0.0
HACS-compatible repository structure with README, LICENSE, and GitHub Actions validation workflow.
0 parents  commit 65d5be6

25 files changed

Lines changed: 2938 additions & 0 deletions

.github/workflows/validate.yaml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
name: Validate
2+
3+
on:
4+
push:
5+
pull_request:
6+
schedule:
7+
- cron: "0 0 * * *"
8+
workflow_dispatch:
9+
10+
permissions: {}
11+
12+
jobs:
13+
validate-hacs:
14+
runs-on: "ubuntu-latest"
15+
steps:
16+
- uses: "actions/checkout@v4"
17+
- name: HACS validation
18+
uses: "hacs/action@main"
19+
with:
20+
category: "integration"

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2026 thecodingdad
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
# SIGNALduino
2+
3+
Home Assistant integration for SIGNALduino RF receiver/transmitter hardware. Supports SOMFY RTS protocol for controlling blinds, shutters, and other RF devices via serial connection.
4+
5+
[![hacs_badge](https://img.shields.io/badge/HACS-Default-41BDF5.svg)](https://github.com/hacs/integration)
6+
[![GitHub Release](https://img.shields.io/github/v/release/thecodingdad/ha-signalduino)](https://github.com/thecodingdad/ha-signalduino/releases)
7+
8+
## Features
9+
10+
- Control SOMFY RTS blinds and shutters via SIGNALduino hardware
11+
- Position tracking via drive time calculation
12+
- Serial connection with automatic reconnection (5, 10, 30, 60s backoff)
13+
- Local push-based architecture (event-driven)
14+
- Configurable drive times, signal repeats, and encryption keys
15+
- Invertible position reporting
16+
- Support for all SOMFY RTS commands: MY, STOP, UP, DOWN, PROG, WIND_SUN, WIND_ONLY
17+
18+
## Prerequisites
19+
20+
- Home Assistant 2024.1.0 or newer
21+
- SIGNALduino hardware connected via serial port (e.g. /dev/ttyUSB0)
22+
23+
## Installation
24+
25+
### HACS (Recommended)
26+
27+
1. Open HACS in your Home Assistant instance
28+
2. Click "Explore & Download Repositories"
29+
3. Search for "SIGNALduino"
30+
4. Click "Download"
31+
5. Restart Home Assistant
32+
33+
### Manual Installation
34+
35+
1. Download the latest release from [GitHub Releases](https://github.com/thecodingdad/ha-signalduino/releases)
36+
2. Copy the `custom_components/signalduino` folder to your Home Assistant `config/custom_components/` directory
37+
3. Restart Home Assistant
38+
39+
## Configuration
40+
41+
### Setup
42+
43+
1. Go to **Settings** -> **Devices & Services**
44+
2. Click **Add Integration**
45+
3. Search for "SIGNALduino"
46+
4. Follow the setup wizard
47+
48+
### Integration Options
49+
50+
| Option | Type | Default | Description |
51+
|--------|------|---------|-------------|
52+
| `serial_port` | string | required | Serial device path |
53+
54+
### Per-Device Options (via Options Flow)
55+
56+
| Option | Type | Default | Description |
57+
|--------|------|---------|-------------|
58+
| `name` | string | required | Device name |
59+
| `address` | string | required | SOMFY address (6-char hex) |
60+
| `model` | select | -- | `somfyshutter` or `somfyblinds` |
61+
| `drive_time_up` | integer | 20 | Drive time up in seconds |
62+
| `drive_time_down` | integer | 22 | Drive time down in seconds |
63+
| `signal_repeats` | integer | 6 | Number of RF signal repeats |
64+
| `encryption_key` | string | optional | Fixed encryption key |
65+
| `invert_position` | boolean | false | Invert position reporting |
66+
67+
## Entities
68+
69+
The integration creates the following entities for each configured device.
70+
71+
### Covers
72+
73+
| Cover | Description |
74+
|-------|-------------|
75+
| Blind/Shutter | Control with position tracking based on configured drive times |
76+
77+
### Buttons
78+
79+
| Button | Description |
80+
|--------|-------------|
81+
| Custom RF Command | Send custom RF commands to the device |
82+
83+
### Sensors
84+
85+
| Sensor | Description |
86+
|--------|-------------|
87+
| Signal Strength | RF signal strength indicator |
88+
| Device State | Current state of the device |
89+
90+
### Switches
91+
92+
| Switch | Description |
93+
|--------|-------------|
94+
| RF Relay | RF relay control for the device |
95+
96+
### Numbers
97+
98+
| Number | Description |
99+
|--------|-------------|
100+
| Numeric Control | Numeric control inputs for the device |
101+
102+
## Supported SOMFY RTS Commands
103+
104+
| Command | Description |
105+
|---------|-------------|
106+
| MY | Move to favorite position |
107+
| STOP | Stop current movement |
108+
| UP | Open blind/shutter |
109+
| DOWN | Close blind/shutter |
110+
| PROG | Enter programming mode |
111+
| WIND_SUN | Wind and sun sensor mode |
112+
| WIND_ONLY | Wind only sensor mode |
113+
114+
## Multilanguage Support
115+
116+
This integration supports English and German.
117+
118+
## License
119+
120+
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

0 commit comments

Comments
 (0)