synched remote repos

Signed-off-by: Kai Kreuzer <kai@openhab.org>
pull/51/head
Kai Kreuzer 2016-07-25 16:00:47 +02:00
parent 2504f2018d
commit fb8728aeb2
12 changed files with 613 additions and 428 deletions

View File

@ -19,14 +19,16 @@ keba,Keba,"This binding integrates the [Keba KeContact EV Charging Stations](htt
kostalinverter,Kostal inverter,"Scrapes the web interface of the inverter for the metrics of the supported channels below."
lutron,Lutron,"This binding integrates with [Lutron](http://www.lutron.com) light control systems."
max,MAX!,"This is the binding for the [eQ-3 MAX! Home Solution](http://www.eq-3.de/)."
meteostick,Meteostick,"This is the binding for the [Meteostick](http://www.smartbedded.com/wiki/index.php/Meteostick) weather receiver dongle. This is an RF receiver that can receive data directly from Davis weather devices (and others)"
milight,Milight,"The openHAB2 Milight binding allows to send commands to multiple Milight bridges."
netatmo,Netatmo,"The Netatmo binding integrates the following Netatmo products :"
network,Network,"This binding integrates a way to check whether a device is currently available on the network and the required ping time."
onkyo,Onkyo,"This binding integrates the Onkyo AV receivers."
opensprinkler,OpenSprinkler,"This binding allows allows basic control of the OpenSprinkler and OpenSprinkler PI (Plus) devices. Stations can be controlled to be turned on or off and rain sensor state can be read."
orvibo,Orvibo,"This binding integrates Orvibo devices that communicate using UDP. Primarily this was designed for S20 Wifi Sockets but other products using the same protocol may be implemented in future."
pioneeravr,PioneerAVR Configuration,"The binding can auto-discover the Pioneer AVRs present on your local network. The auto-discovery is enabled by default. To disable it, you can create a file in the services directory called pioneeravr.cfg with the following content:"
pulseaudio,Pulseaudio,"This binding integrates pulseaudio devices."
rfxcom,RFXCOM,"This binding integrates large number of sensors and actuators from several different manufactures throug the [RFXCOM transceivers](http://www.rfxcom.com)."
rfxcom,RFXCOM,"This binding integrates large number of sensors and actuators from several different manufactures through [RFXCOM transceivers](http://www.rfxcom.com)."
rme,RME,"This binding integrates the RME RainManager rain water pump and management system"
samsungtv,Samsung TV,"This binding integrates the [Samsung TV's](http://www.samsung.com)."
smaenergymeter,SMA Energy Meter,"This Binding is used to display the measured values of a SMA Energy Meter device. It shows purchased and grid feed-in power and energy."

1 id label description
19 kostalinverter Kostal inverter Scrapes the web interface of the inverter for the metrics of the supported channels below.
20 lutron Lutron This binding integrates with [Lutron](http://www.lutron.com) light control systems.
21 max MAX! This is the binding for the [eQ-3 MAX! Home Solution](http://www.eq-3.de/).
22 meteostick Meteostick This is the binding for the [Meteostick](http://www.smartbedded.com/wiki/index.php/Meteostick) weather receiver dongle. This is an RF receiver that can receive data directly from Davis weather devices (and others)
23 milight Milight The openHAB2 Milight binding allows to send commands to multiple Milight bridges.
24 netatmo Netatmo The Netatmo binding integrates the following Netatmo products :
25 network Network This binding integrates a way to check whether a device is currently available on the network and the required ping time.
26 onkyo Onkyo This binding integrates the Onkyo AV receivers.
27 opensprinkler OpenSprinkler This binding allows allows basic control of the OpenSprinkler and OpenSprinkler PI (Plus) devices. Stations can be controlled to be turned on or off and rain sensor state can be read.
28 orvibo Orvibo This binding integrates Orvibo devices that communicate using UDP. Primarily this was designed for S20 Wifi Sockets but other products using the same protocol may be implemented in future.
29 pioneeravr PioneerAVR Configuration The binding can auto-discover the Pioneer AVRs present on your local network. The auto-discovery is enabled by default. To disable it, you can create a file in the services directory called pioneeravr.cfg with the following content:
30 pulseaudio Pulseaudio This binding integrates pulseaudio devices.
31 rfxcom RFXCOM This binding integrates large number of sensors and actuators from several different manufactures throug the [RFXCOM transceivers](http://www.rfxcom.com). This binding integrates large number of sensors and actuators from several different manufactures through [RFXCOM transceivers](http://www.rfxcom.com).
32 rme RME This binding integrates the RME RainManager rain water pump and management system
33 samsungtv Samsung TV This binding integrates the [Samsung TV's](http://www.samsung.com).
34 smaenergymeter SMA Energy Meter This Binding is used to display the measured values of a SMA Energy Meter device. It shows purchased and grid feed-in power and energy.

@ -1 +1 @@
Subproject commit 3f794c6b455678bbab89f85ecae2a22357eb2608
Subproject commit c98df168c5cd7fc258397fc3ae9f1f85d14a877d

@ -1 +1 @@
Subproject commit 6187457d8a846459f60f5604e1881ac3a4d8d551
Subproject commit 438ac348e5b1aa4d09e6dea4caa86941ccbfc82d

@ -1 +1 @@
Subproject commit 894a0e185f99c8ca238ff0b00192472e86f27e54
Subproject commit 53c5318bb9c80890ac91fc889cd0f8e28f87b898

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

@ -12,12 +12,15 @@ The integration happens through the digitalSTROM-Server, which acts as a gateway
**Note:** All was tested with digitalSTROM-Server firmware version 1.9.3 to 1.10.3.
![various_digitalSTROM_clamps](doc/DS-Clamps.jpg)
## Supported Things
### digitalSTROM-Server
The digitalSTROM-Server is required for accessing any other digitalSTROM-Devices. It acts like a *"bridge"*.
### digitalSTROM-Devices
At this point almost all available **GE**, **SW** and **GR** digitalSTROM-Devices with an set output-mode, unequal *disabled* or *PWM*, are supported by this binding.
For that there are identically named thing types. Only the *GR* type has a channel (shade), which cannot be changed. The other two types adds their channels dynamically affected by the set color-group and output-mode. They also automatically change or add the channels, if the color-group or output-mode has changed through the dSS-web-configuration or the configured sensor priorities of the thing has changed.
@ -38,6 +41,7 @@ The following table shows all tested digitalSTROM-Devices with their output-mode
| SW-ZWS200 | switch, powersave, wipe | black, yellow |
### digitalSTROM-Scenes
Furthermore the digitalSTROM-Scene concept is part of the digitalSTROM-Binding. This scenes are implemented as virtual things. The difference scene thing types are list in the following table.
| Thing-Type-ID | Label | Description |
@ -58,21 +62,26 @@ Furthermore the digitalSTROM-Scene concept is part of the digitalSTROM-Binding.
If you only want to discover one of the thing types, you can start a discovery scan on the thing type you wish have discovered. You can use the command line command, e.g.: ``smarthome:discovery start digitalstrom:namedScene`` to start the scan. What thing types this binding supports please have a look at **Supported Things**.
## digitalSTROM-Scenes
### General
The device scene configuration will be saved persistently to the things to update the device state faster. For that each scene configuration of each device has to read out first, because of the digitalSTROM-rule 9 that requires a waiting period of one minute, that take some time so that at the first start a scene call can be take some time to read it out and update the device state. To read it out faster only the discovered or called scenes will be red out.
**Note:**
Because the digitalSTROM-Server can't inform the binding about save scene events at this time, the persistently saved scene configurations can't be updated. The current troubleshooting to read out the new scene configuration after a save scene action at the digitalSTROM-Server is the following:
1. delete the thing to delete the persistently saved scene configuration
2. restart the server to delete the temporary saved scene configuration
3. add the thing again to red out the scene configuration again.
## Thing Configuration
### digitalSTROM-Server:
### digitalSTROM-Server
The digitalSTROM-Server thing has the following configuration parameter groups *Connection configuration*, *Server information* and *General configurations*.
#### Connection configuration:
#### Connection configuration
If the digitalSTROM-Server isnt found automatically, e.g. because the server isnt placed at the local network or the mDNS-service is deactivated, you have to insert the network address or URL and the authentication data manually through the graphical user interface or type it into the \*.thing with textual configuration.
| Parameter Label | Parameter ID | Description | Required | Advanced
@ -82,7 +91,7 @@ The digitalSTROM-Server thing has the following configuration parameter groups *
| Password | password | Password of a registered user to authenticate to the digitalSTROM-Server. | user name and password or Application-Token | false |
| Application-Token | applicationToken | The Application-Token to authenticate to the digitalSTROM-Server. | user name and password or Application-Token| false |
#### Server information:
#### Server information
The group parameters *Server information* only includes informative parameters, which have no special functionality.
@ -92,9 +101,8 @@ The digitalSTROM-Server thing has the following configuration parameter groups *
| dSID | dSID | The unique identifier of a digitalSTOM-server. | false| false |
| digitalSTROM-Installation name | dsName | The user defined name of the digitalSTROM-Installation. | false | false | false |
#### General configuration:
Here you can set general binding configuration parameters, which shown in following table:
| Parameter Label | Parameter ID| Description | Required | Advanced | default
@ -105,14 +113,17 @@ The digitalSTROM-Server thing has the following configuration parameter groups *
| Wait time sensor reading | sensorWaitTime| Waiting time between the evaluation of the sensor values and the reading of the scenes in seconds. **ATTENTION:** digitalSTROM rule 8 and 9 require a waiting period of 1 minute. Values less than 60 seconds could affect the digitalSTROM system. | false | true | 60 |
At the thing file, a manual configuration looks e.g. like
```
Bridge digitalstrom:dssBridge:dssBridge1 [ ipAddress="dss.local.", userName="dssadmin", password=“dssadmin", sensorDataUpdateIntervall="180"]
```
### digitalSTROM-Devices:
### digitalSTROM-Devices
The digitalSTROM-Device things have the following configuration parameter groups *Device information* and *Sensor setup*.
#### Device information
Each digitalSTROM-Device needs the device ID named dSID as configuration parameter. The device ID is printed as serial number at the digitalSTOM-Device and can also be found within the web-interface of the digitalSTROM-Server.
Furthermore a supported digitalSTROM-Device has only informative parameter at this point.
The following table shows all parameters:
@ -130,6 +141,7 @@ The following table shows all parameters:
| Functional color group | funcColorGroup | The current digitalSTROM-Device functional color group e.g. yellow = light. | false | false |
#### Sensor setup
The GE and SW digitalSTROM-Devices have usually sensors to capture power consumption data. So these devices have the following parameters to read them out.
| Parameter Label | Parameter ID| Description | Required | Advanced | Default |
@ -139,6 +151,7 @@ The GE and SW digitalSTROM-Devices have usually sensors to capture power consump
| Output current refresh priority | outputCurrentRefreshPriority | Sets the refresh priority for the output current sensor value. Can be never, low priority, medium priority or high priority. | false | false | never |
### digitalSTROM-Scenes
The digitalSTROM-Scenes can be defined with following parameters.
| Parameter Label | Parameter ID| Description | Required | Advanced |
@ -184,10 +197,13 @@ All devices support some of the following channels:
| scene | Switch | The scene channel allows to call or undo a scene from digitalSTROM. | Scene |
**Notes:**
*Channels with accepted command type increase and decrease:*
* digitalSTROM will only evaluate increase and decrease commands, if a scene was called before which turn the device on.
*Blinds:*
* Increase, decrease and up, down commands of the shade channel changes the angle in digitalSTROM, too. If you want to set only the position, you have to set the value directly.
* To protect the slats digitalSTROM changes the position by setting the angle, too, if the position is very high or low. So if you want to see the correct position, you have to send a refresh or stop command, if the blind is ready.

View File

@ -35,9 +35,7 @@ The _server_ bridge thing requires the following configuration parameters:
| Parameter Label | Parameter ID | Description | Required | Default |
|--------------------------|-----------------|---------------------------------------------------------|----------|---------|
| Freebox Network Address | ipAddress | The IP address / FQDN of the Freebox Server (can include port number).| false | mafreebox.freebox.fr |
| API base URL | apiBaseUrl | The base URL to use the Freebox Server API. | false | /api/ |
| API version | apiVersion | The Freebox Server API version. | false | 3.0 |
| Freebox Network Address | fqdn | The IP address / FQDN of the Freebox Server (can include port number).| false | mafreebox.freebox.fr |
| Application token | appToken | Token generated by the Freebox Server. | false | |
| Refresh Interval | refreshInterval | The refresh interval in seconds which is used to poll given Freebox Server.| false | 30 |
@ -160,7 +158,7 @@ Bridge freebox:server:fb "Freebox Revolution" [ appToken="xxxxxxxxxxxxxxxxxxxxxx
Here is another example overwritting default configuration parameters:
```
Bridge freebox:server:fb "Freebox Revolution" [ ipAddress="192.168.0.254", appToken="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", refreshInterval=20 ] {
Bridge freebox:server:fb "Freebox Revolution" [ fqdn="192.168.0.254", appToken="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", refreshInterval=20 ] {
Thing phone Phone "Phone" [ refreshPhoneInterval=10, refreshPhoneCallsInterval=120 ]
Thing net_device tv1 "TV living room" [ macAddress="XX:XX:XX:XX:XX:XX" ]
Thing net_interface tv2 "TV bedroom" [ ipAddress="192.168.0.100" ]

View File

@ -0,0 +1,81 @@
---
layout: documentation
---
{% include base.html %}
# Meteostick Binding
This is the binding for the [Meteostick](http://www.smartbedded.com/wiki/index.php/Meteostick) weather receiver dongle. This is an RF receiver that can receive data directly from Davis weather devices (and others)
## Supported Things
This binding support 2 different things types
| Thing | Type | Description |
|----------------------|--------|-----------------------------------|
| meteostick_bridge | Bridge | This is the Meteostick USB stick |
| meteostick_davis_iss | Thing | This is the Davis Vue ISS |
## Binding Configuration
The Meteostick things need to be manually added - there is no discovery in the Meteostick binding.
First add and configure the Meteostick bridge - the port and frequency band for your region need to be set.
Next add the sensor and configure the channel number.
## Thing Configuration
### meteostick_bridge Configuration Options
| Option | Description |
|--------|----------------------------------------------------------------------------|
| port | Sets the serial port to be used for the stick |
| mode | Sets the operating mode 0 = USA, 1 = Europe, 2 = Australia. 3 = FineOffset |
### meteostick_davis_iss Configuration Options
| Option | Description |
|---------|-------------------------------------------|
| channel | Sets the RF channel used for this sensor |
## Channels
### Meteostick
| Channel Type ID | Item Type | Description |
|------------------|------------------------|--------------|
| pressure | Number | Air pressure |
| indoor-temperature | Number | Indoor temperature |
### Davis ISS
| Channel Type ID | Item Type | Description |
|------------------|------------------------|--------------|
| outdoor-temperature | Number | Outside temperature |
| humidity | Number | Humidity |
| wind-direction | Number | Wind direction |
| wind-speed | Number | Wind speed |
| rain-raw | Number | Raw rain counter from the tipping bucket sensor |
| rain-currenthour | Number | The rainfall in the last 60 minutes |
| rain-lasthour | Number | The rainfall in the previous hour |
| solar-power | Number | Solar power from the sensor station |
| signal-strength | Number | Received signal strength |
| low-battery | Number | Low battery warning |
#### Rainfall
There are three channels associated with rainfall. The raw counter from the tipping bucket is provided, the rainfall
in the last 60 minutes is updated on each received rainfall and provides the past 60 minutes of rainfall. The rainfall
in the previous hour is the rainfall for each hour of the day and is updated on the hour.
## Full Example
Things can be defined in the .thing file as follows
```
meteostick:meteostick_bridge:receiver [ port="/dev/tty.usbserial-AI02XA60" mode="1" ]
meteostick:meteostick_davis_iss:iss (meteostick:meteostick_bridge:receiver) [ channel=1 ]
```

View File

@ -0,0 +1,88 @@
---
layout: documentation
---
{% include base.html %}
# Onkyo Binding
This binding integrates the Onkyo AV receivers.
## Introduction
Binding should be compatible with Onkyo AV receivers which support ISCP (Integra Serial Control Protocol) over Ethernet (eISCP).
## Supported Things
This binding supports only one thing: The Onkyo AV Receiver
## Discovery
This binding can discover the supported Onkyo AV Receivers. At the moment only the following models are supported:
* TX-NR535
## Binding Configuration
The binding can auto-discover the Onkyo AVRs present on your local network. The auto-discovery is enabled by default. To disable it, you can create a file in the services directory called onkyo.cfg with the following content:
```
org.openhab.onkyo:enableAutoDiscovery=false
```
This configuration parameter only controls the Onkyo AVR auto-discovery process, not the openHAB auto-discovery. Moreover, if the openHAB auto-discovery is disabled, the Onkyo AVR auto-discovery is disabled too.
## Thing Configuration
The Onkyo AVR thing requires the ip address and the port to access it on.
In the thing file, this looks e.g. like
```
onkyo:onkyoAV:myOnkyo [ipAddress="192.168.1.100", port="60128"]
##Channels
The Onkyo AVR supports the following channels:
| Channel Type ID | Item Type | Description |
|-------------------------|--------------|--------------|
| power | Switch | Power on/off your device |
| mute | Switch | Mute/unmute your device |
| input | Number | The input for the AVR |
| volume | Dimmer | Volume of your device |
| control | Player | Control the Zone Player, e.g. play/pause/next/previous/ffward/rewind (available if playing from Network or USB)|
| title | String | Title of the current song (available if playing from Network or USB)|
| album | String | Album name of the current song (available if playing from Network or USB)|
| artist | String | Artist name of the current song (available if playing from Network or USB)|
| currentPlayingTime | String | Current playing time of the current song (available if playing from Network or USB)|
| listenmode | Number | Current listening mode e.g. Stero, 5.1ch Surround,..|
##Input Source Mapping
Here after are the ID values of the input sources:
* 00: DVR/VCR
* 01: SATELLITE/CABLE
* 02: GAME
* 03: AUX
* 04: GAME
* 05: PC
* 16: BLURAY/DVD
* 32: TAPE1
* 33: TAPE2
* 34: PHONO
* 35: CD
* 36: FM
* 37: AM
* 38: TUNER
* 39: MUSICSERVER
* 40: INTERETRADIO
* 41: USB
* 42: USB_BACK
* 43: NETWORK
* 45: AIRPLAY
* 48: MULTICH
* 50: SIRIUS

View File

@ -6,9 +6,9 @@ layout: documentation
# RFXCOM Binding
This binding integrates large number of sensors and actuators from several different manufactures throug the [RFXCOM transceivers](http://www.rfxcom.com).
This binding integrates large number of sensors and actuators from several different manufactures through [RFXCOM transceivers](http://www.rfxcom.com).
RFXCOM transceivers supports RF 433 Mhz protocols like:
RFXCOM transceivers support RF 433 Mhz protocols like:
* HomeEasy
* Cresta
* X10
@ -18,14 +18,14 @@ RFXCOM transceivers supports RF 433 Mhz protocols like:
* PT2262
* Oregon etc.
See RFXtrx User Guide for the complete list of supported sensors and devices from [RFXCOM](http://www.rfxcom.com) and firmware update announcements.
See the RFXtrx User Guide from [RFXCOM](http://www.rfxcom.com) for the complete list of supported sensors and devices as well as firmware update announcements.
## Supported Things
Binding should support RFXtrx433E and RFXtrx315 transceivers and RFXrec433 receiver as bridge for accessing different sensors and actuators.
This binding supports the RFXtrx433E and RFXtrx315 transceivers and the RFXrec433 receiver as bridges for accessing different sensors and actuators.
RFXCOM binding currently supports following packet types:
This binding currently supports following packet types:
* Blinds1
* Curtain1
@ -65,11 +65,11 @@ FTDI driver can be enabled by the following command
sudo kextunload -b com.apple.driver.AppleUSBFTDI
```
If you meet any problems with JD2XX or you don't want to disable FTDI driver on OS X, you can also configure RFXCOM transceivers/receivers manually.
If you have any problems with JD2XX or you don't want to disable FTDI driver on OS X, you can also configure RFXCOM transceivers/receivers manually.
After bridge is configured and transceiver receives message from any sensor and actuator, device is put in the Inbox. Because RFXCOM communication is one way protocol, receiver actuators can't be discovered automatically.
After the bridge is configured and the transceiver receives a message from any sensor or actuator, the device is put in the Inbox. Because RFXCOM communication is a one way protocol, receiver actuators can't be discovered automatically.
Both bridges and sensor/actuators are easy to configure from the Paper UI. However, a manual configuration looks (thing file) e.g. like
Both bridges and sensor/actuators are easy to configure from the Paper UI. However, you can configure things manually in the thing file, for example:
```
Bridge rfxcom:bridge:usb0 [ serialPort="/dev/tty.usbserial-06VVEG1Y" ] {
@ -79,28 +79,28 @@ Bridge rfxcom:bridge:usb0 [ serialPort="/dev/tty.usbserial-06VVEG1Y" ] {
## Channels
Currently supported channels:
This binding currently supports following channels:
| Channel Type ID | Item Type | Description |
|-----------------|------------------------|--------------|
| batterylevel | Number | Battery level. |
| command | Switch | Command channel. |
| contact | Contact | Contact channel. |
| dimminglevel | Dimmer | Dimming level channel. |
| mood | Number | Mood channel. |
| humidity | Number | Relative humidity level in percentages. |
| humiditystatus | String | Current humidity status. |
| instantamp | Number | Instant current in Amperes. |
| instantpower | Number | Instant power consumption in Watts. |
| status | String | Status channel. |
| setpoint | Number | Requested temperature. |
| mood | Number | Mood channel. |
| motion | Switch | Motion detection sensor state. |
| rainrate | Number | Rain fall rate in millimeters per hour. |
| raintotal | Number | Total rain in millimeters. |
| shutter | Rollershutter | Shutter channel. |
| instantpower | Number | Instant power consumption in Watts. |
| totalusage | Number | Used energy in Watt hours. |
| instantamp | Number | Instant current in Amperes. |
| totalamphours | Number | Used "energy" in ampere-hours. |
| temperature | Number | Current temperature in degree Celsius. |
| humidity | Number | Relative humidity level in percentages. |
| humiditystatus | String | Current humidity status. |
| signallevel | Number | Received signal strength level. |
| batterylevel | Number | Battery level. |
| windspeed | Number | Average wind speed in meters per second. |
| temperature | Number | Current temperature in degree Celsius. |
| totalusage | Number | Used energy in Watt hours. |
| totalamphours | Number | Used "energy" in ampere-hours. |
| winddirection | Number | Wind direction in degrees. |
| windspeed | Number | Average wind speed in meters per second. |

View File

@ -8,379 +8,379 @@ layout: documentation
This is a modernized version of the original icon set of openHAB 1.<br/><br/>
![alarm](icons/alarm.png)
![attic](icons/attic.png)
![baby_1](icons/baby_1.png)
![baby_2](icons/baby_2.png)
![baby_3](icons/baby_3.png)
![baby_4](icons/baby_4.png)
![baby_5](icons/baby_5.png)
![baby_6](icons/baby_6.png)
![bath](icons/bath.png)
![battery-0](icons/battery-0.png)
![battery-10](icons/battery-10.png)
![battery-100](icons/battery-100.png)
![battery-20](icons/battery-20.png)
![battery-30](icons/battery-30.png)
![battery-40](icons/battery-40.png)
![battery-50](icons/battery-50.png)
![battery-60](icons/battery-60.png)
![battery-70](icons/battery-70.png)
![battery-80](icons/battery-80.png)
![battery-90](icons/battery-90.png)
![battery](icons/battery.png)
![bedroom](icons/bedroom.png)
![bedroom_blue](icons/bedroom_blue.png)
![bedroom_orange](icons/bedroom_orange.png)
![bedroom_red](icons/bedroom_red.png)
![blinds-0](icons/blinds-0.png)
![blinds-10](icons/blinds-10.png)
![blinds-100](icons/blinds-100.png)
![blinds-20](icons/blinds-20.png)
![blinds-30](icons/blinds-30.png)
![blinds-40](icons/blinds-40.png)
![blinds-50](icons/blinds-50.png)
![blinds-60](icons/blinds-60.png)
![blinds-70](icons/blinds-70.png)
![blinds-80](icons/blinds-80.png)
![blinds-90](icons/blinds-90.png)
![blinds](icons/blinds.png)
![bluetooth](icons/bluetooth.png)
![boiler_viessmann](icons/boiler_viessmann.png)
![boy_1](icons/boy_1.png)
![boy_2](icons/boy_2.png)
![boy_3](icons/boy_3.png)
![boy_4](icons/boy_4.png)
![boy_5](icons/boy_5.png)
![boy_6](icons/boy_6.png)
![calendar](icons/calendar.png)
![camera](icons/camera.png)
![carbondioxide](icons/carbondioxide.png)
![cellar](icons/cellar.png)
![chart](icons/chart.png)
![cinema](icons/cinema.png)
![cinemascreen-0](icons/cinemascreen-0.png)
![cinemascreen-10](icons/cinemascreen-10.png)
![cinemascreen-100](icons/cinemascreen-100.png)
![cinemascreen-20](icons/cinemascreen-20.png)
![cinemascreen-30](icons/cinemascreen-30.png)
![cinemascreen-40](icons/cinemascreen-40.png)
![cinemascreen-50](icons/cinemascreen-50.png)
![cinemascreen-60](icons/cinemascreen-60.png)
![cinemascreen-70](icons/cinemascreen-70.png)
![cinemascreen-80](icons/cinemascreen-80.png)
![cinemascreen-90](icons/cinemascreen-90.png)
![cinemascreen](icons/cinemascreen.png)
![cistern-0](icons/cistern-0.png)
![cistern-10](icons/cistern-10.png)
![cistern-100](icons/cistern-100.png)
![cistern-20](icons/cistern-20.png)
![cistern-30](icons/cistern-30.png)
![cistern-40](icons/cistern-40.png)
![cistern-50](icons/cistern-50.png)
![cistern-60](icons/cistern-60.png)
![cistern-70](icons/cistern-70.png)
![cistern-80](icons/cistern-80.png)
![cistern-90](icons/cistern-90.png)
![cistern](icons/cistern.png)
![climate-on](icons/climate-on.png)
![climate](icons/climate.png)
![clock-on](icons/clock-on.png)
![clock](icons/clock.png)
![colorlight](icons/colorlight.png)
![colorwheel](icons/colorwheel.png)
![contact-ajar](icons/contact-ajar.png)
![contact-closed](icons/contact-closed.png)
![contact-open](icons/contact-open.png)
![contact](icons/contact.png)
![corridor](icons/corridor.png)
![dimmablelight-0](icons/dimmablelight-0.png)
![dimmablelight-10](icons/dimmablelight-10.png)
![dimmablelight-100](icons/dimmablelight-100.png)
![dimmablelight-20](icons/dimmablelight-20.png)
![dimmablelight-30](icons/dimmablelight-30.png)
![dimmablelight-40](icons/dimmablelight-40.png)
![dimmablelight-50](icons/dimmablelight-50.png)
![dimmablelight-60](icons/dimmablelight-60.png)
![dimmablelight-70](icons/dimmablelight-70.png)
![dimmablelight-80](icons/dimmablelight-80.png)
![dimmablelight-90](icons/dimmablelight-90.png)
![dimmablelight](icons/dimmablelight.png)
![door-closed](icons/door-closed.png)
![door-open](icons/door-open.png)
![door](icons/door.png)
![dryer-0](icons/dryer-0.png)
![dryer-1](icons/dryer-1.png)
![dryer-2](icons/dryer-2.png)
![dryer-3](icons/dryer-3.png)
![dryer-4](icons/dryer-4.png)
![dryer-5](icons/dryer-5.png)
![dryer](icons/dryer.png)
![energy](icons/energy.png)
![error](icons/error.png)
![fan](icons/fan.png)
![fan_box](icons/fan_box.png)
![fan_ceiling](icons/fan_ceiling.png)
![faucet](icons/faucet.png)
![fire-off](icons/fire-off.png)
![fire-on](icons/fire-on.png)
![fire](icons/fire.png)
![firstfloor](icons/firstfloor.png)
![flow](icons/flow.png)
![flowpipe](icons/flowpipe.png)
![frontdoor-closed](icons/frontdoor-closed.png)
![frontdoor-open](icons/frontdoor-open.png)
![frontdoor](icons/frontdoor.png)
![garage](icons/garage.png)
![garage_detached](icons/garage_detached.png)
![garage_detached_selected](icons/garage_detached_selected.png)
![garagedoor-0](icons/garagedoor-0.png)
![garagedoor-10](icons/garagedoor-10.png)
![garagedoor-100](icons/garagedoor-100.png)
![garagedoor-20](icons/garagedoor-20.png)
![garagedoor-30](icons/garagedoor-30.png)
![garagedoor-40](icons/garagedoor-40.png)
![garagedoor-50](icons/garagedoor-50.png)
![garagedoor-60](icons/garagedoor-60.png)
![garagedoor-70](icons/garagedoor-70.png)
![garagedoor-80](icons/garagedoor-80.png)
![garagedoor-90](icons/garagedoor-90.png)
![garagedoor-ajar](icons/garagedoor-ajar.png)
![garagedoor-closed](icons/garagedoor-closed.png)
![garagedoor-open](icons/garagedoor-open.png)
![garagedoor](icons/garagedoor.png)
![garden](icons/garden.png)
![gas](icons/gas.png)
![girl_1](icons/girl_1.png)
![girl_2](icons/girl_2.png)
![girl_3](icons/girl_3.png)
![girl_4](icons/girl_4.png)
![girl_5](icons/girl_5.png)
![girl_6](icons/girl_6.png)
![grass](icons/grass.png)
![greenhouse](icons/greenhouse.png)
![groundfloor](icons/groundfloor.png)
![group](icons/group.png)
![heating-0](icons/heating-0.png)
![heating-100](icons/heating-100.png)
![heating-20](icons/heating-20.png)
![heating-40](icons/heating-40.png)
![heating-60](icons/heating-60.png)
![heating-80](icons/heating-80.png)
![heating-off](icons/heating-off.png)
![heating-on](icons/heating-on.png)
![heating](icons/heating.png)
![house](icons/house.png)
![humidity-0](icons/humidity-0.png)
![humidity-10](icons/humidity-10.png)
![humidity-100](icons/humidity-100.png)
![humidity-20](icons/humidity-20.png)
![humidity-30](icons/humidity-30.png)
![humidity-40](icons/humidity-40.png)
![humidity-50](icons/humidity-50.png)
![humidity-60](icons/humidity-60.png)
![humidity-70](icons/humidity-70.png)
![humidity-80](icons/humidity-80.png)
![humidity-90](icons/humidity-90.png)
![humidity](icons/humidity.png)
![incline](icons/incline.png)
![keyring](icons/keyring.png)
![kitchen](icons/kitchen.png)
![light-off](icons/light-off.png)
![light-on](icons/light-on.png)
![light](icons/light.png)
![line-decline](icons/line-decline.png)
![line-incline](icons/line-incline.png)
![line-stagnation](icons/line-stagnation.png)
![line](icons/line.png)
![lock-closed](icons/lock-closed.png)
![lock-open](icons/lock-open.png)
![lock](icons/lock.png)
![man_1](icons/man_1.png)
![man_2](icons/man_2.png)
![man_3](icons/man_3.png)
![man_4](icons/man_4.png)
![man_5](icons/man_5.png)
![man_6](icons/man_6.png)
![microphone](icons/microphone.png)
![moon](icons/moon.png)
![motion](icons/motion.png)
![movecontrol](icons/movecontrol.png)
![network-off](icons/network-off.png)
![network-on](icons/network-on.png)
![network](icons/network.png)
![niveau](icons/niveau.png)
![office](icons/office.png)
![oil](icons/oil.png)
![outdoorlight](icons/outdoorlight.png)
![pantry](icons/pantry.png)
![parents-off](icons/parents-off.png)
![parents_1_1](icons/parents_1_1.png)
![parents_1_2](icons/parents_1_2.png)
![parents_1_3](icons/parents_1_3.png)
![parents_1_4](icons/parents_1_4.png)
![parents_1_5](icons/parents_1_5.png)
![parents_1_6](icons/parents_1_6.png)
![parents_2_1](icons/parents_2_1.png)
![parents_2_2](icons/parents_2_2.png)
![parents_2_3](icons/parents_2_3.png)
![parents_2_4](icons/parents_2_4.png)
![parents_2_5](icons/parents_2_5.png)
![parents_2_6](icons/parents_2_6.png)
![parents_3_1](icons/parents_3_1.png)
![parents_3_2](icons/parents_3_2.png)
![parents_3_3](icons/parents_3_3.png)
![parents_3_4](icons/parents_3_4.png)
![parents_3_5](icons/parents_3_5.png)
![parents_3_6](icons/parents_3_6.png)
![parents_4_1](icons/parents_4_1.png)
![parents_4_2](icons/parents_4_2.png)
![parents_4_3](icons/parents_4_3.png)
![parents_4_4](icons/parents_4_4.png)
![parents_4_5](icons/parents_4_5.png)
![parents_4_6](icons/parents_4_6.png)
![parents_5_1](icons/parents_5_1.png)
![parents_5_2](icons/parents_5_2.png)
![parents_5_3](icons/parents_5_3.png)
![parents_5_4](icons/parents_5_4.png)
![parents_5_5](icons/parents_5_5.png)
![parents_5_6](icons/parents_5_6.png)
![parents_6_1](icons/parents_6_1.png)
![parents_6_2](icons/parents_6_2.png)
![parents_6_3](icons/parents_6_3.png)
![parents_6_4](icons/parents_6_4.png)
![parents_6_5](icons/parents_6_5.png)
![parents_6_6](icons/parents_6_6.png)
![party](icons/party.png)
![pie](icons/pie.png)
![piggybank](icons/piggybank.png)
![player](icons/player.png)
![poweroutlet-au](icons/poweroutlet-au.png)
![poweroutlet-eu](icons/poweroutlet-eu.png)
![poweroutlet-off](icons/poweroutlet-off.png)
![poweroutlet-on](icons/poweroutlet-on.png)
![poweroutlet-uk](icons/poweroutlet-uk.png)
![poweroutlet-us](icons/poweroutlet-us.png)
![poweroutlet](icons/poweroutlet.png)
![present-off](icons/present-off.png)
![present](icons/present.png)
![pressure](icons/pressure.png)
![projector_benq](icons/projector_benq.png)
![pump](icons/pump.png)
![qualityofservice-0](icons/qualityofservice-0.png)
![qualityofservice-1](icons/qualityofservice-1.png)
![qualityofservice-2](icons/qualityofservice-2.png)
![qualityofservice-3](icons/qualityofservice-3.png)
![qualityofservice-4](icons/qualityofservice-4.png)
![qualityofservice](icons/qualityofservice.png)
![radiator](icons/radiator.png)
![rain](icons/rain.png)
![receiver-off](icons/receiver-off.png)
![receiver-on](icons/receiver-on.png)
![receiver](icons/receiver.png)
![recorder](icons/recorder.png)
![returnpipe](icons/returnpipe.png)
![rgb](icons/rgb.png)
![rollershutter-0](icons/rollershutter-0.png)
![rollershutter-10](icons/rollershutter-10.png)
![rollershutter-100](icons/rollershutter-100.png)
![rollershutter-20](icons/rollershutter-20.png)
![rollershutter-30](icons/rollershutter-30.png)
![rollershutter-40](icons/rollershutter-40.png)
![rollershutter-50](icons/rollershutter-50.png)
![rollershutter-60](icons/rollershutter-60.png)
![rollershutter-70](icons/rollershutter-70.png)
![rollershutter-80](icons/rollershutter-80.png)
![rollershutter-90](icons/rollershutter-90.png)
![rollershutter](icons/rollershutter.png)
![settings](icons/settings.png)
![sewerage-0](icons/sewerage-0.png)
![sewerage-10](icons/sewerage-10.png)
![sewerage-100](icons/sewerage-100.png)
![sewerage-20](icons/sewerage-20.png)
![sewerage-30](icons/sewerage-30.png)
![sewerage-40](icons/sewerage-40.png)
![sewerage-50](icons/sewerage-50.png)
![sewerage-60](icons/sewerage-60.png)
![sewerage-70](icons/sewerage-70.png)
![sewerage-80](icons/sewerage-80.png)
![sewerage-90](icons/sewerage-90.png)
![sewerage](icons/sewerage.png)
![shield-0](icons/shield-0.png)
![shield-1](icons/shield-1.png)
![shield](icons/shield.png)
![signal-0](icons/signal-0.png)
![signal-1](icons/signal-1.png)
![signal-2](icons/signal-2.png)
![signal-3](icons/signal-3.png)
![signal-4](icons/signal-4.png)
![signal](icons/signal.png)
![siren-off](icons/siren-off.png)
![siren-on](icons/siren-on.png)
![siren](icons/siren.png)
![slider-0](icons/slider-0.png)
![slider-10](icons/slider-10.png)
![slider-100](icons/slider-100.png)
![slider-20](icons/slider-20.png)
![slider-30](icons/slider-30.png)
![slider-40](icons/slider-40.png)
![slider-50](icons/slider-50.png)
![slider-60](icons/slider-60.png)
![slider-70](icons/slider-70.png)
![slider-80](icons/slider-80.png)
![slider-90](icons/slider-90.png)
![slider](icons/slider.png)
![smiley](icons/smiley.png)
![smoke](icons/smoke.png)
![sofa](icons/sofa.png)
![softener](icons/softener.png)
![solarplant](icons/solarplant.png)
![soundvolume-0](icons/soundvolume-0.png)
![soundvolume-100](icons/soundvolume-100.png)
![soundvolume-33](icons/soundvolume-33.png)
![soundvolume-66](icons/soundvolume-66.png)
![soundvolume](icons/soundvolume.png)
![soundvolume_mute](icons/soundvolume_mute.png)
![status](icons/status.png)
![suitcase](icons/suitcase.png)
![sun](icons/sun.png)
![sun_clouds](icons/sun_clouds.png)
![sunrise](icons/sunrise.png)
![sunset](icons/sunset.png)
![switch-off](icons/switch-off.png)
![switch-on](icons/switch-on.png)
![switch](icons/switch.png)
![television-off](icons/television-off.png)
![television-on](icons/television-on.png)
![television](icons/television.png)
![temperature](icons/temperature.png)
![temperature_cold](icons/temperature_cold.png)
![temperature_hot](icons/temperature_hot.png)
![terrace](icons/terrace.png)
![text](icons/text.png)
![toilet](icons/toilet.png)
![vacation](icons/vacation.png)
![video](icons/video.png)
![wallswitch-off](icons/wallswitch-off.png)
![wallswitch-on](icons/wallswitch-on.png)
![wallswitch](icons/wallswitch.png)
![wardrobe](icons/wardrobe.png)
![washingmachine](icons/washingmachine.png)
![washingmachine_2-0](icons/washingmachine_2-0.png)
![washingmachine_2-1](icons/washingmachine_2-1.png)
![washingmachine_2-2](icons/washingmachine_2-2.png)
![washingmachine_2-3](icons/washingmachine_2-3.png)
![washingmachine_2](icons/washingmachine_2.png)
![water](icons/water.png)
![wind](icons/wind.png)
![window-ajar](icons/window-ajar.png)
![window-closed](icons/window-closed.png)
![window-open](icons/window-open.png)
![window](icons/window.png)
![woman_1](icons/woman_1.png)
![woman_2](icons/woman_2.png)
![woman_3](icons/woman_3.png)
![woman_4](icons/woman_4.png)
![woman_5](icons/woman_5.png)
![woman_6](icons/woman_6.png)
![zoom](icons/zoom.png)
![alarm](icons/alarm.png "alarm")
![attic](icons/attic.png "attic")
![baby_1](icons/baby_1.png "baby_1")
![baby_2](icons/baby_2.png "baby_2")
![baby_3](icons/baby_3.png "baby_3")
![baby_4](icons/baby_4.png "baby_4")
![baby_5](icons/baby_5.png "baby_5")
![baby_6](icons/baby_6.png "baby_6")
![bath](icons/bath.png "bath")
![battery-0](icons/battery-0.png "battery-0")
![battery-10](icons/battery-10.png "battery-10")
![battery-100](icons/battery-100.png "battery-100")
![battery-20](icons/battery-20.png "battery-20")
![battery-30](icons/battery-30.png "battery-30")
![battery-40](icons/battery-40.png "battery-40")
![battery-50](icons/battery-50.png "battery-50")
![battery-60](icons/battery-60.png "battery-60")
![battery-70](icons/battery-70.png "battery-70")
![battery-80](icons/battery-80.png "battery-80")
![battery-90](icons/battery-90.png "battery-90")
![battery](icons/battery.png "battery")
![bedroom](icons/bedroom.png "bedroom")
![bedroom_blue](icons/bedroom_blue.png "bedroom_blue")
![bedroom_orange](icons/bedroom_orange.png "bedroom_orange")
![bedroom_red](icons/bedroom_red.png "bedroom_red")
![blinds-0](icons/blinds-0.png "blinds-0")
![blinds-10](icons/blinds-10.png "blinds-10")
![blinds-100](icons/blinds-100.png "blinds-100")
![blinds-20](icons/blinds-20.png "blinds-20")
![blinds-30](icons/blinds-30.png "blinds-30")
![blinds-40](icons/blinds-40.png "blinds-40")
![blinds-50](icons/blinds-50.png "blinds-50")
![blinds-60](icons/blinds-60.png "blinds-60")
![blinds-70](icons/blinds-70.png "blinds-70")
![blinds-80](icons/blinds-80.png "blinds-80")
![blinds-90](icons/blinds-90.png "blinds-90")
![blinds](icons/blinds.png "blinds")
![bluetooth](icons/bluetooth.png "bluetooth")
![boiler_viessmann](icons/boiler_viessmann.png "boiler_viessmann")
![boy_1](icons/boy_1.png "boy_1")
![boy_2](icons/boy_2.png "boy_2")
![boy_3](icons/boy_3.png "boy_3")
![boy_4](icons/boy_4.png "boy_4")
![boy_5](icons/boy_5.png "boy_5")
![boy_6](icons/boy_6.png "boy_6")
![calendar](icons/calendar.png "calendar")
![camera](icons/camera.png "camera")
![carbondioxide](icons/carbondioxide.png "carbondioxide")
![cellar](icons/cellar.png "cellar")
![chart](icons/chart.png "chart")
![cinema](icons/cinema.png "cinema")
![cinemascreen-0](icons/cinemascreen-0.png "cinemascreen-0")
![cinemascreen-10](icons/cinemascreen-10.png "cinemascreen-10")
![cinemascreen-100](icons/cinemascreen-100.png "cinemascreen-100")
![cinemascreen-20](icons/cinemascreen-20.png "cinemascreen-20")
![cinemascreen-30](icons/cinemascreen-30.png "cinemascreen-30")
![cinemascreen-40](icons/cinemascreen-40.png "cinemascreen-40")
![cinemascreen-50](icons/cinemascreen-50.png "cinemascreen-50")
![cinemascreen-60](icons/cinemascreen-60.png "cinemascreen-60")
![cinemascreen-70](icons/cinemascreen-70.png "cinemascreen-70")
![cinemascreen-80](icons/cinemascreen-80.png "cinemascreen-80")
![cinemascreen-90](icons/cinemascreen-90.png "cinemascreen-90")
![cinemascreen](icons/cinemascreen.png "cinemascreen")
![cistern-0](icons/cistern-0.png "cistern-0")
![cistern-10](icons/cistern-10.png "cistern-10")
![cistern-100](icons/cistern-100.png "cistern-100")
![cistern-20](icons/cistern-20.png "cistern-20")
![cistern-30](icons/cistern-30.png "cistern-30")
![cistern-40](icons/cistern-40.png "cistern-40")
![cistern-50](icons/cistern-50.png "cistern-50")
![cistern-60](icons/cistern-60.png "cistern-60")
![cistern-70](icons/cistern-70.png "cistern-70")
![cistern-80](icons/cistern-80.png "cistern-80")
![cistern-90](icons/cistern-90.png "cistern-90")
![cistern](icons/cistern.png "cistern")
![climate-on](icons/climate-on.png "climate-on")
![climate](icons/climate.png "climate")
![clock-on](icons/clock-on.png "clock-on")
![clock](icons/clock.png "clock")
![colorlight](icons/colorlight.png "colorlight")
![colorwheel](icons/colorwheel.png "colorwheel")
![contact-ajar](icons/contact-ajar.png "contact-ajar")
![contact-closed](icons/contact-closed.png "contact-closed")
![contact-open](icons/contact-open.png "contact-open")
![contact](icons/contact.png "contact")
![corridor](icons/corridor.png "corridor")
![dimmablelight-0](icons/dimmablelight-0.png "dimmablelight-0")
![dimmablelight-10](icons/dimmablelight-10.png "dimmablelight-10")
![dimmablelight-100](icons/dimmablelight-100.png "dimmablelight-100")
![dimmablelight-20](icons/dimmablelight-20.png "dimmablelight-20")
![dimmablelight-30](icons/dimmablelight-30.png "dimmablelight-30")
![dimmablelight-40](icons/dimmablelight-40.png "dimmablelight-40")
![dimmablelight-50](icons/dimmablelight-50.png "dimmablelight-50")
![dimmablelight-60](icons/dimmablelight-60.png "dimmablelight-60")
![dimmablelight-70](icons/dimmablelight-70.png "dimmablelight-70")
![dimmablelight-80](icons/dimmablelight-80.png "dimmablelight-80")
![dimmablelight-90](icons/dimmablelight-90.png "dimmablelight-90")
![dimmablelight](icons/dimmablelight.png "dimmablelight")
![door-closed](icons/door-closed.png "door-closed")
![door-open](icons/door-open.png "door-open")
![door](icons/door.png "door")
![dryer-0](icons/dryer-0.png "dryer-0")
![dryer-1](icons/dryer-1.png "dryer-1")
![dryer-2](icons/dryer-2.png "dryer-2")
![dryer-3](icons/dryer-3.png "dryer-3")
![dryer-4](icons/dryer-4.png "dryer-4")
![dryer-5](icons/dryer-5.png "dryer-5")
![dryer](icons/dryer.png "dryer")
![energy](icons/energy.png "energy")
![error](icons/error.png "error")
![fan](icons/fan.png "fan")
![fan_box](icons/fan_box.png "fan_box")
![fan_ceiling](icons/fan_ceiling.png "fan_ceiling")
![faucet](icons/faucet.png "faucet")
![fire-off](icons/fire-off.png "fire-off")
![fire-on](icons/fire-on.png "fire-on")
![fire](icons/fire.png "fire")
![firstfloor](icons/firstfloor.png "firstfloor")
![flow](icons/flow.png "flow")
![flowpipe](icons/flowpipe.png "flowpipe")
![frontdoor-closed](icons/frontdoor-closed.png "frontdoor-closed")
![frontdoor-open](icons/frontdoor-open.png "frontdoor-open")
![frontdoor](icons/frontdoor.png "frontdoor")
![garage](icons/garage.png "garage")
![garage_detached](icons/garage_detached.png "garage_detached")
![garage_detached_selected](icons/garage_detached_selected.png "garage_detached_selected")
![garagedoor-0](icons/garagedoor-0.png "garagedoor-0")
![garagedoor-10](icons/garagedoor-10.png "garagedoor-10")
![garagedoor-100](icons/garagedoor-100.png "garagedoor-100")
![garagedoor-20](icons/garagedoor-20.png "garagedoor-20")
![garagedoor-30](icons/garagedoor-30.png "garagedoor-30")
![garagedoor-40](icons/garagedoor-40.png "garagedoor-40")
![garagedoor-50](icons/garagedoor-50.png "garagedoor-50")
![garagedoor-60](icons/garagedoor-60.png "garagedoor-60")
![garagedoor-70](icons/garagedoor-70.png "garagedoor-70")
![garagedoor-80](icons/garagedoor-80.png "garagedoor-80")
![garagedoor-90](icons/garagedoor-90.png "garagedoor-90")
![garagedoor-ajar](icons/garagedoor-ajar.png "garagedoor-ajar")
![garagedoor-closed](icons/garagedoor-closed.png "garagedoor-closed")
![garagedoor-open](icons/garagedoor-open.png "garagedoor-open")
![garagedoor](icons/garagedoor.png "garagedoor")
![garden](icons/garden.png "garden")
![gas](icons/gas.png "gas")
![girl_1](icons/girl_1.png "girl_1")
![girl_2](icons/girl_2.png "girl_2")
![girl_3](icons/girl_3.png "girl_3")
![girl_4](icons/girl_4.png "girl_4")
![girl_5](icons/girl_5.png "girl_5")
![girl_6](icons/girl_6.png "girl_6")
![grass](icons/grass.png "grass")
![greenhouse](icons/greenhouse.png "greenhouse")
![groundfloor](icons/groundfloor.png "groundfloor")
![group](icons/group.png "group")
![heating-0](icons/heating-0.png "heating-0")
![heating-100](icons/heating-100.png "heating-100")
![heating-20](icons/heating-20.png "heating-20")
![heating-40](icons/heating-40.png "heating-40")
![heating-60](icons/heating-60.png "heating-60")
![heating-80](icons/heating-80.png "heating-80")
![heating-off](icons/heating-off.png "heating-off")
![heating-on](icons/heating-on.png "heating-on")
![heating](icons/heating.png "heating")
![house](icons/house.png "house")
![humidity-0](icons/humidity-0.png "humidity-0")
![humidity-10](icons/humidity-10.png "humidity-10")
![humidity-100](icons/humidity-100.png "humidity-100")
![humidity-20](icons/humidity-20.png "humidity-20")
![humidity-30](icons/humidity-30.png "humidity-30")
![humidity-40](icons/humidity-40.png "humidity-40")
![humidity-50](icons/humidity-50.png "humidity-50")
![humidity-60](icons/humidity-60.png "humidity-60")
![humidity-70](icons/humidity-70.png "humidity-70")
![humidity-80](icons/humidity-80.png "humidity-80")
![humidity-90](icons/humidity-90.png "humidity-90")
![humidity](icons/humidity.png "humidity")
![incline](icons/incline.png "incline")
![keyring](icons/keyring.png "keyring")
![kitchen](icons/kitchen.png "kitchen")
![light-off](icons/light-off.png "light-off")
![light-on](icons/light-on.png "light-on")
![light](icons/light.png "light")
![line-decline](icons/line-decline.png "line-decline")
![line-incline](icons/line-incline.png "line-incline")
![line-stagnation](icons/line-stagnation.png "line-stagnation")
![line](icons/line.png "line")
![lock-closed](icons/lock-closed.png "lock-closed")
![lock-open](icons/lock-open.png "lock-open")
![lock](icons/lock.png "lock")
![man_1](icons/man_1.png "man_1")
![man_2](icons/man_2.png "man_2")
![man_3](icons/man_3.png "man_3")
![man_4](icons/man_4.png "man_4")
![man_5](icons/man_5.png "man_5")
![man_6](icons/man_6.png "man_6")
![microphone](icons/microphone.png "microphone")
![moon](icons/moon.png "moon")
![motion](icons/motion.png "motion")
![movecontrol](icons/movecontrol.png "movecontrol")
![network-off](icons/network-off.png "network-off")
![network-on](icons/network-on.png "network-on")
![network](icons/network.png "network")
![niveau](icons/niveau.png "niveau")
![office](icons/office.png "office")
![oil](icons/oil.png "oil")
![outdoorlight](icons/outdoorlight.png "outdoorlight")
![pantry](icons/pantry.png "pantry")
![parents-off](icons/parents-off.png "parents-off")
![parents_1_1](icons/parents_1_1.png "parents_1_1")
![parents_1_2](icons/parents_1_2.png "parents_1_2")
![parents_1_3](icons/parents_1_3.png "parents_1_3")
![parents_1_4](icons/parents_1_4.png "parents_1_4")
![parents_1_5](icons/parents_1_5.png "parents_1_5")
![parents_1_6](icons/parents_1_6.png "parents_1_6")
![parents_2_1](icons/parents_2_1.png "parents_2_1")
![parents_2_2](icons/parents_2_2.png "parents_2_2")
![parents_2_3](icons/parents_2_3.png "parents_2_3")
![parents_2_4](icons/parents_2_4.png "parents_2_4")
![parents_2_5](icons/parents_2_5.png "parents_2_5")
![parents_2_6](icons/parents_2_6.png "parents_2_6")
![parents_3_1](icons/parents_3_1.png "parents_3_1")
![parents_3_2](icons/parents_3_2.png "parents_3_2")
![parents_3_3](icons/parents_3_3.png "parents_3_3")
![parents_3_4](icons/parents_3_4.png "parents_3_4")
![parents_3_5](icons/parents_3_5.png "parents_3_5")
![parents_3_6](icons/parents_3_6.png "parents_3_6")
![parents_4_1](icons/parents_4_1.png "parents_4_1")
![parents_4_2](icons/parents_4_2.png "parents_4_2")
![parents_4_3](icons/parents_4_3.png "parents_4_3")
![parents_4_4](icons/parents_4_4.png "parents_4_4")
![parents_4_5](icons/parents_4_5.png "parents_4_5")
![parents_4_6](icons/parents_4_6.png "parents_4_6")
![parents_5_1](icons/parents_5_1.png "parents_5_1")
![parents_5_2](icons/parents_5_2.png "parents_5_2")
![parents_5_3](icons/parents_5_3.png "parents_5_3")
![parents_5_4](icons/parents_5_4.png "parents_5_4")
![parents_5_5](icons/parents_5_5.png "parents_5_5")
![parents_5_6](icons/parents_5_6.png "parents_5_6")
![parents_6_1](icons/parents_6_1.png "parents_6_1")
![parents_6_2](icons/parents_6_2.png "parents_6_2")
![parents_6_3](icons/parents_6_3.png "parents_6_3")
![parents_6_4](icons/parents_6_4.png "parents_6_4")
![parents_6_5](icons/parents_6_5.png "parents_6_5")
![parents_6_6](icons/parents_6_6.png "parents_6_6")
![party](icons/party.png "party")
![pie](icons/pie.png "pie")
![piggybank](icons/piggybank.png "piggybank")
![player](icons/player.png "player")
![poweroutlet-au](icons/poweroutlet-au.png "poweroutlet-au")
![poweroutlet-eu](icons/poweroutlet-eu.png "poweroutlet-eu")
![poweroutlet-off](icons/poweroutlet-off.png "poweroutlet-off")
![poweroutlet-on](icons/poweroutlet-on.png "poweroutlet-on")
![poweroutlet-uk](icons/poweroutlet-uk.png "poweroutlet-uk")
![poweroutlet-us](icons/poweroutlet-us.png "poweroutlet-us")
![poweroutlet](icons/poweroutlet.png "poweroutlet")
![present-off](icons/present-off.png "present-off")
![present](icons/present.png "present")
![pressure](icons/pressure.png "pressure")
![projector_benq](icons/projector_benq.png "projector_benq")
![pump](icons/pump.png "pump")
![qualityofservice-0](icons/qualityofservice-0.png "qualityofservice-0")
![qualityofservice-1](icons/qualityofservice-1.png "qualityofservice-1")
![qualityofservice-2](icons/qualityofservice-2.png "qualityofservice-2")
![qualityofservice-3](icons/qualityofservice-3.png "qualityofservice-3")
![qualityofservice-4](icons/qualityofservice-4.png "qualityofservice-4")
![qualityofservice](icons/qualityofservice.png "qualityofservice")
![radiator](icons/radiator.png "radiator")
![rain](icons/rain.png "rain")
![receiver-off](icons/receiver-off.png "receiver-off")
![receiver-on](icons/receiver-on.png "receiver-on")
![receiver](icons/receiver.png "receiver")
![recorder](icons/recorder.png "recorder")
![returnpipe](icons/returnpipe.png "returnpipe")
![rgb](icons/rgb.png "rgb")
![rollershutter-0](icons/rollershutter-0.png "rollershutter-0")
![rollershutter-10](icons/rollershutter-10.png "rollershutter-10")
![rollershutter-100](icons/rollershutter-100.png "rollershutter-100")
![rollershutter-20](icons/rollershutter-20.png "rollershutter-20")
![rollershutter-30](icons/rollershutter-30.png "rollershutter-30")
![rollershutter-40](icons/rollershutter-40.png "rollershutter-40")
![rollershutter-50](icons/rollershutter-50.png "rollershutter-50")
![rollershutter-60](icons/rollershutter-60.png "rollershutter-60")
![rollershutter-70](icons/rollershutter-70.png "rollershutter-70")
![rollershutter-80](icons/rollershutter-80.png "rollershutter-80")
![rollershutter-90](icons/rollershutter-90.png "rollershutter-90")
![rollershutter](icons/rollershutter.png "rollershutter")
![settings](icons/settings.png "settings")
![sewerage-0](icons/sewerage-0.png "sewerage-0")
![sewerage-10](icons/sewerage-10.png "sewerage-10")
![sewerage-100](icons/sewerage-100.png "sewerage-100")
![sewerage-20](icons/sewerage-20.png "sewerage-20")
![sewerage-30](icons/sewerage-30.png "sewerage-30")
![sewerage-40](icons/sewerage-40.png "sewerage-40")
![sewerage-50](icons/sewerage-50.png "sewerage-50")
![sewerage-60](icons/sewerage-60.png "sewerage-60")
![sewerage-70](icons/sewerage-70.png "sewerage-70")
![sewerage-80](icons/sewerage-80.png "sewerage-80")
![sewerage-90](icons/sewerage-90.png "sewerage-90")
![sewerage](icons/sewerage.png "sewerage")
![shield-0](icons/shield-0.png "shield-0")
![shield-1](icons/shield-1.png "shield-1")
![shield](icons/shield.png "shield")
![signal-0](icons/signal-0.png "signal-0")
![signal-1](icons/signal-1.png "signal-1")
![signal-2](icons/signal-2.png "signal-2")
![signal-3](icons/signal-3.png "signal-3")
![signal-4](icons/signal-4.png "signal-4")
![signal](icons/signal.png "signal")
![siren-off](icons/siren-off.png "siren-off")
![siren-on](icons/siren-on.png "siren-on")
![siren](icons/siren.png "siren")
![slider-0](icons/slider-0.png "slider-0")
![slider-10](icons/slider-10.png "slider-10")
![slider-100](icons/slider-100.png "slider-100")
![slider-20](icons/slider-20.png "slider-20")
![slider-30](icons/slider-30.png "slider-30")
![slider-40](icons/slider-40.png "slider-40")
![slider-50](icons/slider-50.png "slider-50")
![slider-60](icons/slider-60.png "slider-60")
![slider-70](icons/slider-70.png "slider-70")
![slider-80](icons/slider-80.png "slider-80")
![slider-90](icons/slider-90.png "slider-90")
![slider](icons/slider.png "slider")
![smiley](icons/smiley.png "smiley")
![smoke](icons/smoke.png "smoke")
![sofa](icons/sofa.png "sofa")
![softener](icons/softener.png "softener")
![solarplant](icons/solarplant.png "solarplant")
![soundvolume-0](icons/soundvolume-0.png "soundvolume-0")
![soundvolume-100](icons/soundvolume-100.png "soundvolume-100")
![soundvolume-33](icons/soundvolume-33.png "soundvolume-33")
![soundvolume-66](icons/soundvolume-66.png "soundvolume-66")
![soundvolume](icons/soundvolume.png "soundvolume")
![soundvolume_mute](icons/soundvolume_mute.png "soundvolume_mute")
![status](icons/status.png "status")
![suitcase](icons/suitcase.png "suitcase")
![sun](icons/sun.png "sun")
![sun_clouds](icons/sun_clouds.png "sun_clouds")
![sunrise](icons/sunrise.png "sunrise")
![sunset](icons/sunset.png "sunset")
![switch-off](icons/switch-off.png "switch-off")
![switch-on](icons/switch-on.png "switch-on")
![switch](icons/switch.png "switch")
![television-off](icons/television-off.png "television-off")
![television-on](icons/television-on.png "television-on")
![television](icons/television.png "television")
![temperature](icons/temperature.png "temperature")
![temperature_cold](icons/temperature_cold.png "temperature_cold")
![temperature_hot](icons/temperature_hot.png "temperature_hot")
![terrace](icons/terrace.png "terrace")
![text](icons/text.png "text")
![toilet](icons/toilet.png "toilet")
![vacation](icons/vacation.png "vacation")
![video](icons/video.png "video")
![wallswitch-off](icons/wallswitch-off.png "wallswitch-off")
![wallswitch-on](icons/wallswitch-on.png "wallswitch-on")
![wallswitch](icons/wallswitch.png "wallswitch")
![wardrobe](icons/wardrobe.png "wardrobe")
![washingmachine](icons/washingmachine.png "washingmachine")
![washingmachine_2-0](icons/washingmachine_2-0.png "washingmachine_2-0")
![washingmachine_2-1](icons/washingmachine_2-1.png "washingmachine_2-1")
![washingmachine_2-2](icons/washingmachine_2-2.png "washingmachine_2-2")
![washingmachine_2-3](icons/washingmachine_2-3.png "washingmachine_2-3")
![washingmachine_2](icons/washingmachine_2.png "washingmachine_2")
![water](icons/water.png "water")
![wind](icons/wind.png "wind")
![window-ajar](icons/window-ajar.png "window-ajar")
![window-closed](icons/window-closed.png "window-closed")
![window-open](icons/window-open.png "window-open")
![window](icons/window.png "window")
![woman_1](icons/woman_1.png "woman_1")
![woman_2](icons/woman_2.png "woman_2")
![woman_3](icons/woman_3.png "woman_3")
![woman_4](icons/woman_4.png "woman_4")
![woman_5](icons/woman_5.png "woman_5")
![woman_6](icons/woman_6.png "woman_6")
![zoom](icons/zoom.png "zoom")

View File

@ -47,7 +47,7 @@ Note that this list also serves as a checklist for code reviews on pull requests
## D. Runtime Behavior
14. Overridden methods from abstract classes or interfaces are expected to return fast unless otherwise stated in their JavaDoc. Expensive operations should therefore rather be scheduled as a job.
1. Creation of threads must be avoided. Instead, resort into using existing schedulers which use pre-configured thread pools. If there is no suitable scheduler available, start a discussion in the forum about it rather than creating a thread by yourself.
1. Overridden methods from abstract classes or interfaces are expected to return fast unless otherwise stated in their JavaDoc. Expensive operations should therefore rather be scheduled as a job.
1. Creation of threads must be avoided. Instead, resort into using existing schedulers which use pre-configured thread pools. If there is no suitable scheduler available, start a discussion in the forum about it rather than creating a thread by yourself. For periodically executed jobs that do not require a fixed rate [scheduleWithFixedDelay](http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ScheduledExecutorService.html#scheduleWithFixedDelay(java.lang.Runnable,%20long,%20long,%20java.util.concurrent.TimeUnit)) should be preferred over [scheduleAtFixedRate](http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ScheduledExecutorService.html#scheduleAtFixedRate(java.lang.Runnable,%20long,%20long,%20java.util.concurrent.TimeUnit)).
1. Bundles need to cleanly start and stop without throwing exceptions or malfunctioning. This can be tested by manually starting and stopping the bundle from the console (```stop <bundle-id>``` resp. ```start <bundle-id>```).
1. Bundles must not require any substantial CPU time. Test this e.g. using "top" or VisualVM and compare CPU utilization with your bundle stopped vs. started.