home-assistant.io/source/_integrations/raspyrfm.markdown

124 lines
3.9 KiB
Markdown

---
title: RaspyRFM
description: Instructions on how to integrate RaspyRFM switches into Home Assistant.
ha_category:
- Switch
ha_release: 0.85
ha_iot_class: Assumed State
ha_domain: raspyrfm
ha_platforms:
- switch
ha_integration_type: integration
---
The `raspyrfm` integration adds support for cheap RC 433 MHz outlets via one of the supported gateways.
Initially, this integration was created to support the Simple Solutions `ConnAir` gateway which has been discontinued. There are custom alternatives that reimplemented the protocol used by the ConnAir gateway like this [ConnAir emulator](https://github.com/Phunkafizer/RaspyRFM#connairpy) which can be used in conjunction with the [RaspyRFM-II](https://www.seegel-systeme.de/produkt/raspyrfm-ii) RC module for a Raspberry Pi.
Other vendors of 433 MHz RC outlets have also created gateways that use a very similar protocol and can also be used with this integration like the Intertechno [ITGW-433 LAN Gateway](https://www.intertechno24.de/LAN-Gateway/Gateway-ITGW-433.html).
## Configuration
```yaml
# Example configuration.yaml entry
switch:
platform: raspyrfm
switches:
- controlunit_manufacturer: Intertechno
controlunit_model: CMR 1000
channel_config: # Note that keys used here vary between control units
master: A
slave: 1
```
{% configuration %}
gateway_manufacturer:
description: Manufacturer of the gateway.
required: false
default: Seegel Systeme
type: string
gateway_model:
description: Model of the gateway.
required: false
default: RaspyRFM
type: string
host:
description: Host of the gateway.
required: false
default: 127.0.0.1
type: string
port:
description: Port of the gateway.
required: false
default: Depends on the gateway model.
type: integer
switches:
description: List of switches that can be controlled with this gateway.
required: true
type: list
keys:
name:
description: Name for the device.
required: false
default: Unnamed Device
type: string
controlunit_manufacturer:
description: Manufacturer of the control unit.
required: true
type: string
controlunit_model:
description: Model of the control unit.
required: true
type: string
channel_config:
description: Channel configuration of the control unit. The exact keys needed depend on the control unit manufacturer and model.
required: true
type: map
{% endconfiguration %}
## Device support
Have a look at the underlying library [raspyrfm-client](https://github.com/markusressel/raspyrfm-client) to check what gateways and control units (outlets) are supported.
## Channel configuration
Depending on the control unit the channel configuration can have varying formats. Have a look at the underlying library [raspyrfm-client](https://github.com/markusressel/raspyrfm-client) to find out about a specific model.
## Switch state
Initially, the state of a switch is unknown. When the switch is turned on or off (via frontend) the state is known and will be shown in the frontend.
<div class='note warning'>
Note that due to the way those cheap RC units work it is **not possible to query their current state**. Therefore the only way to preserve a consistent state within Home Assistant is to only use Home Assistant as the controller.
</div>
## Full example
```yaml
switch:
platform: raspyrfm
gateway_manufacturer: Seegel Systeme
gateway_model: RaspyRFM
host: 127.0.0.1 # Optional
port: 49880 # Optional
switches:
- name: My Switch
controlunit_manufacturer: Intertechno
controlunit_model: CMR 1000
channel_config:
master: A
slave: 1
- name: My other Switch
controlunit_manufacturer: Brennenstuhl
controlunit_model: RCS 1000 N Comfort
channel_config:
1: 1
2: 1
3: 1
4: 1
5: 1
CH: A
```