Update README and add HACS support files (#25)

* Enhance README with badges and installation details

Updated README to include badges, installation steps, and device options for AirSend integration.

* Update hacs.json

include content_in_root
delete iot_class thats not a hacs.json but manifest.json property

* Remove install script

Remove install script — installation is now handled via HACS or manual copy
This commit is contained in:
Daniel Moindrot
2026-06-04 14:01:53 +02:00
committed by GitHub
parent d31e77d1cf
commit b688219e1a
3 changed files with 118 additions and 145 deletions
+106 -48
View File
@@ -1,67 +1,125 @@
<img align="left" width="80" src="https://raw.githubusercontent.com/devmel/hass_airsend/master/icons/icon.png" alt="App icon">
[![airsend](https://img.shields.io/github/release/devmel/hass_airsend/all.svg?style=plastic&label=Current%20release)](https://github.com/devmel/hass_airsend) [![hacs_badge](https://img.shields.io/badge/HACS-Default-41BDF5.svg?style=plastic)](https://github.com/hacs/integration) [![downloads](https://img.shields.io/github/downloads/devmel/hass_airsend/total?style=plastic&label=Total%20downloads)](https://github.com/devmel/hass_airsend)
# AirSend for Home Assistant
# AirSend
This is a Home Assistant integration for AirSend boxes, which can capture and control more than 350 equipements (Remote Switchs, Lights, Shutters, Gate... ) from 50 brands (Dio, Faac, Nice, Somfy...) by RF433 or RF868 radio commands.
Component for sending radio commands through the AirSend (RF433) or AirSend duo (RF433 & RF868).
### Supported boxes
- [AirSend](https://devmel.com/fr/airsend.html) (RF433)
- [AirSend Duo](https://devmel.com/fr/airsend-duo.html) (RF433 & RF868)
## Installation Steps
1. **Add Repository**:
- [![Open your Home Assistant instance and show the add add-on repository dialog with a specific repository URL pre-filled.](https://my.home-assistant.io/badges/supervisor_add_addon_repository.svg)](https://my.home-assistant.io/redirect/supervisor_add_addon_repository/?repository_url=https%3A%2F%2Fgithub.com%2Fdevmel%2Fhass_airsend-addon)
- Click on "Add repository" to include the necessary repository for the addon installation or follow [hass_airsend-addon](https://github.com/devmel/hass_airsend-addon)
Each AirSend device is represented as a proper **Home Assistant device** with its associated entities (cover, switch, button, light, sensor).
2. **Place the `airsend.yaml` File**:
- Go to `airsend.cloud -> import/export -> Export`
- Select your devices, for local connection, select `spurl`
- Click `Export YAML` to save the airsend.yaml
- In the `config` folder of Home Assistant, place the `airsend.yaml` file.
- Edit the file and add these lines
```yaml
devices:
...
AirSend Box:
## Requirements
### 1. Install the AirSend addon
[![Add AirSend addon repository](https://my.home-assistant.io/badges/supervisor_add_addon_repository.svg)](https://my.home-assistant.io/redirect/supervisor_add_addon_repository/?repository_url=https%3A%2F%2Fgithub.com%2Fdevmel%2Fhass_airsend-addon)
Install and start the **AirSend** addon.
### 2. Create `airsend.yaml`
Export your devices from [airsend.cloud](https://airsend.cloud) → Import/Export → Export YAML (select `spurl` for local connection).
Place the exported `airsend.yaml` in your `/config` folder.
Add your AirSend local connection string to `secrets.yaml`:
```yaml
spurl: sp://**************@[fe80::xxxx:xxxx:xxxx:xxxx]?gw=0&rhost=192.168.xxx.xxx
```
Example `airsend.yaml`:
```yaml
devices:
AirSend box:
type: 0
spurl: !secret spurl
sensors: true
```
sensors: true # enables temperature and illuminance sensors
bind: 1
refresh: 300
3. **Edit the `secrets.yaml` File**:
- Add a line to the `secrets.yaml` file with the AirSend - Local IP - / - Password - (and IPv4 address).
- If you know the IPv4 address, the line should look like this:
```yaml
spurl: sp://**************@[fe80::xxxx:xxxx:xxxx:xxxx]?gw=0&rhost=192.168.xxx.xxx
```
This applies also if you want to **ensure local connection** and **no reliance on any cloud / internet access** to control your devices, cf. the Information section below.
Volet salon:
id: 12345
type: 4098
apiKey: !secret apiKey
spurl: !secret spurl
channel:
id: 25455
source: 94311
- or this if you don't know the IPv4 address :
```yaml
spurl: sp://**************@[fe80::xxxx:xxxx:xxxx:xxxx]?gw=1
```
- Replace `**************` with the AirSend Password, `fe80::xxxx:xxxx:xxxx:xxxx` with AirSend Local IP and `192.168.xxx.xxx` with the AirSend IPv4 address.
Lumiere pergola:
id: 65838
type: 4100 # dimmable light
apiKey: !secret apiKey
spurl: !secret spurl
wait: true
channel:
id: 26848
source: 1442421508
```
4. **Install the Custom Component**:
- In the Home Assistant terminal, run the following command to install the component:
```bash
wget -q -O - https://raw.githubusercontent.com/devmel/hass_airsend/master/install | bash -
```
## Installation
5. **Restart Home Assistant and the AirSend Addon**:
- Restart Home Assistant.
- Restart the AirSend addon.
### Manual installation (until the repository is available in HACS)
6. **Configure the Integration**:
- Navigate to Settings -> Devices & services -> + Add Integration.
- Search for and select AirSend.
- Select the rooms associated with your devices to complete the setup.
1. Download the latest release from [GitHub releases](https://github.com/devmel/hass_airsend/releases).
2. Copy the `custom_components/airsend` directory into your `custom_components` folder.
3. Restart Home Assistant.
4. Go to **Settings → Integrations → Add integration** and search for `AirSend`.
These steps will integrate AirSend with Home Assistant, allowing you to manage and automate AirSend-related tasks through the Home Assistant interface.
### HACS (recommended)
1. Ensure [HACS](https://hacs.xyz) is installed.
2. Search for `AirSend` in HACS and install it, or use the button below.
3. Restart Home Assistant.
4. Go to **Settings → Integrations → Add integration** and search for `AirSend`.
[![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=Devmel&repository=hass_airsend)
## Information
- This requires the execution of [hass_airsend-addon](https://github.com/devmel/hass_airsend-addon), if it is not on the same machine it is possible to add the field `internal_url: http://x.x.x.x:33863/` in airsend.conf
- For **local** connection, the AirSend IPv4 address is **required**, you can find it in your router or [Airsend App for Windows](https://apps.microsoft.com/detail/9nblggh40m8w). If you **DO NOT** provide `?gw=0&rhost=...` then you may face unexpected **HTTP/500** status code or **HTTP/262** status code at Home Assistant level.
## Configuration
After the integration added, the internal URL of the addon will be auto-detected. Confirm and your devices will appear automatically.
To reload devices after modifying `airsend.yaml`, use the **Reconfigure** option on the integration.
## Device options reference
| Option | Description |
|--------|-------------|
| `type` | Device type (see table above) |
| `id` | AirSend cloud device ID |
| `apiKey` | AirSend cloud API key |
| `spurl` | Local connection string |
| `channel` | RF channel definition (`id`, `source`, `mac`, `seed`) |
| `wait` | Wait for RF confirmation before returning (`true`/`false`) |
| `sensors` | Enable temperature and illuminance sensors for AirSend box (`true`/`false`) |
| `bind` | Channel ID to bind for incoming RF messages |
| `refresh` | Poll interval in seconds (default: 300) |
## Informations
This integration requires the [AirSend addon](https://github.com/devmel/hass_airsend-addon) to communicate with your AirSend hardware locally.
For local connection, the AirSend IPv4 address is required, you can find it in your router or [Airsend App for Windows](https://apps.microsoft.com/detail/9nblggh40m8w).
If you `DO NOT` provide ?gw=0&rhost=... then you may face unexpected `HTTP/500` status code or `HTTP/262` status code at Home Assistant level.
## Supported device types
| Type | Value | Description |
|------|-------|-------------|
| AirSend box | `0` | The AirSend hardware box (state, temperature, illuminance) |
| Sensor | `1` | Generic RF sensor |
| Cover | `4098` | Roller shutter, blind (open/close/stop) |
| Cover with position | `4099` | Roller shutter with position control (0-100%) |
| Switch | `4097` | On/Off switch |
| Button | `4096` | Single-action button (toggle) |
| Light | `4100` | Dimmable light (0-100%) |
## Preview
<img src="https://raw.githubusercontent.com/devmel/hass_airsend/master/img/screenshot.png" height="200"/>
![Screenshot](https://raw.githubusercontent.com/devmel/hass_airsend/master/img/screenshot.png)
+1 -1
View File
@@ -1,5 +1,5 @@
{
"name": "AirSend",
"render_readme": true,
"iot_class": "Cloud Polling"
"content_in_root": false
}
-85
View File
@@ -1,85 +0,0 @@
#!/bin/bash
# wget -q -O - https://raw.githubusercontent.com/devmel/hass_airsend/master/install | bash -
set -e
RED_COLOR='\033[0;31m'
GREEN_COLOR='\033[0;32m'
GREEN_YELLOW='\033[1;33m'
NO_COLOR='\033[0m'
declare haPath
declare -a paths=(
"$PWD"
"$PWD/config"
"/config"
"$HOME/.homeassistant/"
"/usr/share/hassio/homeassistant/"
)
function info () { echo -e "${GREEN_COLOR}INFO: $1${NO_COLOR}";}
function warn () { echo -e "${GREEN_YELLOW}WARN: $1${NO_COLOR}";}
function error () { echo -e "${RED_COLOR}ERROR: $1${NO_COLOR}"; if [ "$2" != "false" ]; then exit 1;fi; }
function checkRequirement () {
if [ -z "$(command -v "$1")" ]; then
error "'$1' is not installed"
fi
}
checkRequirement "wget"
checkRequirement "unzip"
info "Trying to find the correct directory..."
for path in "${paths[@]}"; do
if [ -n "$haPath" ]; then
break
fi
if [ -f "$path/home-assistant.log" ]; then
haPath="$path"
else
if [ -d "$path/.storage" ] && [ -f "$path/configuration.yaml" ]; then
haPath="$path"
fi
fi
done
if [ -n "$haPath" ]; then
info "Found Home Assistant configuration directory at '$haPath'"
cd "$haPath" || error "Could not change path to $haPath"
if [ ! -d "$haPath/custom_components" ]; then
info "Creating custom_components directory..."
mkdir "$haPath/custom_components"
fi
info "Changing to the custom_components directory..."
cd "$haPath/custom_components" || error "Could not change path to $haPath/custom_components"
info "Downloading AirSend Home Assistant Component"
wget "https://github.com/devmel/hass_airsend/releases/download/latest/hass_airsend.zip"
if [ -d "$haPath/custom_components/hass_airsend" ]; then
warn "airsend directory already exist, cleaning up..."
rm -R "$haPath/custom_components/hass_airsend"
fi
info "Creating airsend directory..."
mkdir "$haPath/custom_components/airsend"
info "Unpacking hass_airsend..."
unzip "$haPath/custom_components/hass_airsend.zip" -d "$haPath/custom_components/airsend" >/dev/null 2>&1
info "Removing hass_airsend zip file..."
rm "$haPath/custom_components/hass_airsend.zip"
info "Installation complete."
echo
info "Remember to add configuration and restart Home Assistant"
else
echo
error "Could not find the directory for Home Assistant" false
echo "Manually change the directory to the root of your Home Assistant configuration"
echo "With the user that is running Home Assistant"
echo "and run the script again"
exit 1
fi