From 4523aa2826747d939b4387cb5903a800fb155a61 Mon Sep 17 00:00:00 2001 From: Markus Ressel Date: Tue, 1 Jan 2019 13:41:20 +0100 Subject: [PATCH] RaspyRFM platform documentation (#7779) * added documentation * added logo * review fixes * review fixes * added ha_iot_class * review fix * :pencil2: Spelling & Grammar tweaks * review fixes --- source/_components/switch.raspyrfm.markdown | 122 ++++++++++++++++++ .../images/supported_brands/seegelsysteme.png | Bin 0 -> 31175 bytes 2 files changed, 122 insertions(+) create mode 100644 source/_components/switch.raspyrfm.markdown create mode 100644 source/images/supported_brands/seegelsysteme.png diff --git a/source/_components/switch.raspyrfm.markdown b/source/_components/switch.raspyrfm.markdown new file mode 100644 index 00000000000..b9f3beb3af8 --- /dev/null +++ b/source/_components/switch.raspyrfm.markdown @@ -0,0 +1,122 @@ +--- +layout: page +title: "RaspyRFM Switch" +description: "Instructions on how to integrate RaspyRFM switches into Home Assistant." +date: 2018-12-08 +sidebar: true +comments: false +sharing: true +footer: true +logo: seegelsysteme.png +ha_category: Switch +ha_release: 0.85 +ha_iot_class: "Assumed State" +--- + +The `raspyrfm` component adds support for cheap RC 433 MHz outlets via one of the supported gateways. + +Initially, this component 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 though like this [ConnAir emulator](https://github.com/Phunkafizer/RaspyRFM/blob/master/connair.py) 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 component like the Intertechno [ITGW-433 LAN Gateway](https://www.intertechno24.de/LAN-Gateway/Gateway-ITGW-433.html) + + +```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 +host: + 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: dict +{% endconfiguration %} + +### {% linkable_title 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. + +### {% linkable_title Channel configuration %} + +Depending on the control unit the channel config 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. + +### {% linkable_title 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. + +

+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. +

+ +### {% linkable_title 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 +``` diff --git a/source/images/supported_brands/seegelsysteme.png b/source/images/supported_brands/seegelsysteme.png new file mode 100644 index 0000000000000000000000000000000000000000..a7340495446c2c72ba6c98480177aace3909f75a GIT binary patch literal 31175 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