From 3e7143c1bd36a8aae6c28110a7f4453f3108b660 Mon Sep 17 00:00:00 2001 From: majuss Date: Sun, 11 Nov 2018 13:13:59 +0000 Subject: [PATCH] Adds documentation for Lupusec alarm control panel (#6601) * Adds documentation for Lupusec alarm control panel * Fixes to the example conf * :arrow_up: Updates ha_release * Adds back minimal example * clarified default scan_interval; improved speeling * updated version, small fixes * description of component fixed --- .../alarm_control_panel.lupusec.markdown | 18 +++++++ .../binary_sensor.lupusec.markdown | 20 +++++++ source/_components/lupusec.markdown | 51 ++++++++++++++++++ source/_components/switch.lupusec.markdown | 20 +++++++ source/images/supported_brands/lupusec.jpg | Bin 0 -> 17621 bytes 5 files changed, 109 insertions(+) create mode 100644 source/_components/alarm_control_panel.lupusec.markdown create mode 100644 source/_components/binary_sensor.lupusec.markdown create mode 100644 source/_components/lupusec.markdown create mode 100644 source/_components/switch.lupusec.markdown create mode 100644 source/images/supported_brands/lupusec.jpg diff --git a/source/_components/alarm_control_panel.lupusec.markdown b/source/_components/alarm_control_panel.lupusec.markdown new file mode 100644 index 00000000000..432a7da93ae --- /dev/null +++ b/source/_components/alarm_control_panel.lupusec.markdown @@ -0,0 +1,18 @@ +--- +layout: page +title: "Lupusec Alarm Control Panel" +description: "Instructions on how to setup the Lupusec Alarm control panel within Home Assistant." +date: 2018-10-03 16:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: lupusec.jpg +ha_category: Alarm +ha_release: 0.83 +ha_iot_class: "Local Polling" +--- + +The `LUPUS-Electronics` security control panel platform allows you to control your [Lupusec](https://www.lupus-electronics.de) devices. + +The requirement is that you have setup your [Lupusec component](/components/lupusec/). The alarm control panel is automatically added to your hass UI. \ No newline at end of file diff --git a/source/_components/binary_sensor.lupusec.markdown b/source/_components/binary_sensor.lupusec.markdown new file mode 100644 index 00000000000..4367bde3b0d --- /dev/null +++ b/source/_components/binary_sensor.lupusec.markdown @@ -0,0 +1,20 @@ +--- +layout: page +title: "Lupusec Binary Sensor" +description: "Instructions on how to integrate Lupusec binary sensors into Home Assistant." +date: 2018-10-03 16:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: lupusec.jpg +ha_category: Binary Sensor +ha_release: 0.83 +ha_iot_class: "Local Polling" +--- + +The `LUPUS-Electronics` security control panel platform allows you to control your [Lupusec](https://www.lupus-electronics.de) devices. + +This component will add `door contacts` and `window contacts` to your home-assistant setup + +For the sensors to work you have to setup your [Lupusec component](/components/lupusec/). \ No newline at end of file diff --git a/source/_components/lupusec.markdown b/source/_components/lupusec.markdown new file mode 100644 index 00000000000..d26b74319ea --- /dev/null +++ b/source/_components/lupusec.markdown @@ -0,0 +1,51 @@ +--- +layout: page +title: "Lupus Electronics Home Security" +description: "Instructions on integrating Lupusec home security with Home Assistant." +date: 2018-10-03 16:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: lupusec.jpg +ha_category: Hub +ha_release: 0.83 +ha_iot_class: "Local Polling" +--- + +The `Lupusec` component allows the user to integrate their Lupusec alarm control panel and ultimately all connected sensors and other devices. For more information about the LUPUS-Electronics security system please visit their [website](https://www.lupus-electronics.de). + +The following devices are supported by the underlying `lupupy` python library and integrated into hass. + +- [Alarm Control Panel](/components/alarm_control_panel.lupusec/): Displays the alarm status and controls arming, disarming and home modus. +- [Binary Sensor](/components/binary_sensor.lupusec/): Displays the status of binary sensors. Currently only Door and window sensors are supported. +- [Switch](/components/switch.lupusec/): Turn off and on your Lupus power switches. + +To use Lupusec devices in your installation, add the following `lupusec` section to your `configuration.yaml` file: + +```yaml +# Example configuration.yaml entry +lupusec: + username: YOUR_USERNAME + password: YOUR_PASSWORD + ip_address: 192.168.178.35 +``` + +{% configuration %} +username: + description: The login username of your Lupusec alarm panel. + required: true + type: string +password: + description: The login password of your Lupusec alarm panel. + required: true + type: string +ip_address: + description: The IP-address of your Lupusec alarm panel. + required: true + type: string +name: + description: Name for your Lupusec panel. + required: false + type: string +{% endconfiguration %} \ No newline at end of file diff --git a/source/_components/switch.lupusec.markdown b/source/_components/switch.lupusec.markdown new file mode 100644 index 00000000000..f526e35da2a --- /dev/null +++ b/source/_components/switch.lupusec.markdown @@ -0,0 +1,20 @@ +--- +layout: page +title: "Lupusec Switch" +description: "Instructions on how to integrate Lupusec switches into Home Assistant." +date: 2018-10-03 16:00 +sidebar: true +comments: false +sharing: true +footer: true +logo: lupusec.jpg +ha_category: Switch +ha_release: 0.83 +ha_iot_class: "Local Polling" +--- + +The `LUPUS-Electronics` security control panel platform allows you to control your [Lupusec](https://www.lupus-electronics.de) devices. + +This component will automatically add `Power Switches` configured in your Lupusec control panel. + +For the switches to work you have to setup your [Lupusec component](/components/lupusec/). diff --git a/source/images/supported_brands/lupusec.jpg b/source/images/supported_brands/lupusec.jpg new file mode 100644 index 0000000000000000000000000000000000000000..003f29e4db903ab4366d4269d9d4156a5e6a0c31 GIT binary patch literal 17621 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