Skip to content

Commit

Permalink
Merge 4599fd7 into af25730
Browse files Browse the repository at this point in the history
  • Loading branch information
marvin-w committed Jan 15, 2019
2 parents af25730 + 4599fd7 commit 48f3ee1
Show file tree
Hide file tree
Showing 23 changed files with 1,120 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .gitignore
@@ -1,7 +1,10 @@
*.pyc
docs/_site/
docs/vendor/
htmlcov
build/
dist/
Gemfile.lock
xknx.egg-info/
.cache
.tox
Expand Down
2 changes: 2 additions & 0 deletions docs/.bundle/config
@@ -0,0 +1,2 @@
---
BUNDLE_PATH: "vendor/bundle"
4 changes: 4 additions & 0 deletions docs/Gemfile
@@ -0,0 +1,4 @@
gem "jekyll"
gem "jekyll-theme-minimal"

source 'https://rubygems.org'
27 changes: 27 additions & 0 deletions docs/Makefile
@@ -0,0 +1,27 @@
all:
@echo "Jekyll website for xknx.io"
@echo ""
@echo "Preparations:"
@echo ""
@echo "bundle install"
@echo ""
@echo "Available targets"
@echo ""
@echo "build - build website"
@echo ""
@echo "serve - start webservice on localhost: http://localhost:4000/"
@echo ""
@echo "clean"

install:
bundle install

build:
bundle exec jekyll build

serve:
bundle exec jekyll serve

clean:
bundle exec jekyll clean

15 changes: 15 additions & 0 deletions docs/README.md
@@ -0,0 +1,15 @@
# XKNX website

This is the source for the [XKNX website](http://xknx.io).

# Site preview

Run

```bash
bundle exec jekyll build
bundle exec jekyll serve

```

and open [http://127.0.0.1:4000](http://127.0.0.1:4000)
18 changes: 18 additions & 0 deletions docs/_config.yml
@@ -0,0 +1,18 @@
title: XKNX
description: A KNX library written in Python

meta:
title: XKNX - A Python KNX library
keywords: KNX,KNX/IP,EIB,Home Automation,Home Assistant
description: XKNX is a KNX library in Python. Helps you to control KNX devices like Lights, Shutters, Covers, Switches, Outlets, Thermostats via python scripts.
robots: index,follow,noarchive,noodp
google-site-verification: Z_FsKIe3iX8aXRXZG8NUgqOr3d41c5k9cBGccgKOvwM

theme: jekyll-theme-minimal

show_downloads: true

xknx:
zip_url: "https://github.com/XKNX/xknx/archive/master.zip"
tar_url: "https://github.com/XKNX/xknx/archive/master.tar.gz"
repository_url: "http://github.com/XKNX/xknx"
69 changes: 69 additions & 0 deletions docs/_layouts/default.html
@@ -0,0 +1,69 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<title>{{site.meta.title}}</title>

<meta name="keywords" content="{{site.meta.keywords}}" />
<meta name="description" content="{{site.meta.description}}" />
<meta name="robots" content="{{site.meta.robots}}" />
<meta name="google-site-verification" content="{{site.meta.google-site-verification}}" />

<link rel="stylesheet" href="{{ '/assets/css/style.css?v=' | append: site.github.build_revision | relative_url }}">
<meta name="viewport" content="width=device-width">
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body>
<div class="wrapper">
<header>
<a href="/"><img src="/assets/img/xknx-inverted.png" alt="{{ site.title}}" border="0"></a>
<!--<h1><a href="/">{{ site.title}}</a></h1>-->
<p>{{ site.description}}</p>

<!--
{% if site.github.is_project_page %}
<p class="view"><a href="{{ site.github.repository_url }}">View the Project on GitHub <small>{{ github_name }}</small></a></p>
{% endif %}
{% if site.github.is_user_page %}
<p class="view"><a href="{{ site.github.owner_url }}">View My GitHub Profile</a></p>
{% endif %}-->

{% if site.show_downloads %}
<ul>
<li><a href="{{ site.xknx.zip_url }}">Download <strong>ZIP File</strong></a></li>
<li><a href="{{ site.xknx.tar_url }}">Download <strong>TAR Ball</strong></a></li>
<li><a href="{{ site.xknx.repository_url }}">View On <strong>GitHub</strong></a></li>
</ul>
{% endif %}
<p><a href="/introduction">Introduction</a></p>
<p><a href="/changelog">Changelog</a></p>
<p><a href="/xknx">XKNX Object</a></p>
<p><a href="/light">Lights / Dimmer</a></p>
<p><a href="/cover">Cover</a></p>
<p><a href="/switch">Switches</a></p>
<p><a href="/time">Time</a></p>
<p><a href="/sensor">Sensors</a></p>
<p><a href="/binary_sensor">Binary Sensors</a></p>
<p><a href="/climate">HVAC</a></p>
<p><a href="/configuration">Configuration</a></p>
<p/>
<p><a href="/home_assistant">Home Assistant Plugin</a></p>
</header>

<section>

{{ content }}

</section>
<footer>
</footer>
</div>
<script src="{{ '/assets/js/scale.fix.js' | relative_url }}"></script>


</body>
</html>
6 changes: 6 additions & 0 deletions docs/assets/css/style.scss
@@ -0,0 +1,6 @@
---
---


@import "{{ site.theme }}";
header { position: relative; }
Binary file added docs/assets/img/xknx-inverted.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/img/xknx.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
91 changes: 91 additions & 0 deletions docs/binary_sensor.md
@@ -0,0 +1,91 @@
---
layout: default
---

Binary Sensor
=============

Binary sensors which have either the state "on" or "off". Binary sensors could be e.g. a switch in the wall (the thing you press on when switching on the light) or a motion detector.

Switches are mainly intended to act on input, which means to execute so called `Actions`. An action can be the switching of an outlet or light or the moving of a cover.

The logic within switches can further handle if a button is pressed once or twice - and trigger different actions. Use the attribute `counter` for this purpose.

## [](#header-2)Overview

```python
binarysensor = BinarySensor(xknx, 'TestInput', group_address='1/2/3', device_class='motion')
```

* `xknx` is the XKNX object.
* `name` is the name of the object.
* `group_address` is the KNX group address of the sensor device.
* `device_class` may be used to store the type of sensor, e.g. "motion" for motion detectors.

## [](#header-2)Example

```python
outlet = Outlet(xknx, 'TestOutlet', group_address='1/2/3')
xknx.devices.devices.append(outlet)

binarysensor = BinarySensor(xknx, 'TestInput', group_address='1/2/3')
action_on = Action(
xknx,
hook='on',
target='TestOutlet',
method='on')
binarysensor.actions.append(action_on)
action_off = Action(
xknx,
hook='off',
target='TestOutlet',
method='off')
binarysensor.actions.append(action_off)
xknx.devices.add(binarysensor)
```

## [](#header-2)Configuration via **xknx.yaml**

Binary sensor objects are usually configured via [`xknx.yaml`](/configuration):

```yaml
groups:

binary_sensor:
Livingroom.Switch_1:
group_address: "1/2/7"
actions:
- {target: Livingroom.Outlet_1, method: "on"}
- {target: Livingroom.Outlet_2, method: "on"}

Livingroom.Switch_2:
group_address: "1/2/8"
actions:
- {target: Livingroom.Outlet_1, method: "off"}
- {target: Livingroom.Outlet_2, method: "off"}

Livingroom.Switch_3:
group_address: "1/2/5"
actions:
- {target: Livingroom.Shutter_1, method: up}
# Only executed if the button was switched twice:
- {counter: 2, target: Livingroom.Shutter_1, method: short_up}

Livingroom.Switch_4:
group_address: "1/2/6"
actions:
- {target: Livingroom.Shutter_1, method: down}
# Only executed if the button was switched twice:
- {counter: 2, target: Livingroom.Shutter_1, method: short_down}


switch:
Livingroom.Outlet_1: {group_address: '1/3/1'}
Livingroom.Outlet_2: {group_address: '1/3/2'}

cover:
Livingroom.Shutter_1: {group_address_long: 3171, group_address_short: 3172, group_address_position_state: 3173, group_address_position: 3174, travelling_time_down: 51, travelling_time_up: 61}
```



10 changes: 10 additions & 0 deletions docs/changelog.md
@@ -0,0 +1,10 @@
---
layout: default
---

Changelog
=========

Changelog moved [here](https://github.com/XKNX/xknx/blob/master/changelog.md).


49 changes: 49 additions & 0 deletions docs/climate.md
@@ -0,0 +1,49 @@
---
layout: default
---

# [](#header-1)HVAC/Climate controls

## [](#header-2)Overview

Climate are representations of KNX HVAC/Climate controls.

## [](#header-2)Example

```python
climate = Climate(
xknx,
'TestClimate',
group_address_temperature='1/2/2',
group_address_setpoint='1/2/3',
group_address_operation_mode='1/2/4')

# Setting basis setpoint to 23 degrees.
await climate.set_setpoint(23)))
# Reading climate device
await climate.sync()
print("Current temperature: ", climate.temperature)
```

## [](#header-2)Configuration via **xknx.yaml**

Switches are usually configured via [`xknx.yaml`](/configuration):

```yaml
groups:
climate:
Children.Climate: {group_address_temperature: '1/7/2', group_address_setpoint: '1/7/3', group_address_target_temperature: '1/7/4'}
Office.Climate: {group_address_temperature: '1/7/5', group_address_operation_mode: '1/7/6'}
Attic.Climate: {group_address_temperature: '1/7/7', group_address_operation_mode_protection: '1/7/8', group_address_operation_mode_night: '1/7/9', group_address_operation_mode_comfort: '1/7/10'}
```

* **group_address_temperature** KNX address of current room temperature
* **group_address_setpoint** KNX address of basis setpoint.
* **group_address_target_temperature** KNX address for reading the target temperature from KNX bus.
* **group_address_operation_mode** KNX address for operation mode.

* **group_address_operation_mode_protection** KNX address for switching on/off frost/heat protection mode.
* **group_address_operation_mode_night** KNX address for switching on/off night nmode.
* **group_address_operation_mode_comfort** KNX address for switching on/off comfort mode.

`group_address_operation_mode_protection` / `group_address_operation_mode_night` / `group_address_operation_mode_comfort` are not necessary if `group_address_operation_mode` was specified.

0 comments on commit 48f3ee1

Please sign in to comment.