updated generated content

Signed-off-by: Kai Kreuzer <kai@openhab.org>
pull/600/head
Kai Kreuzer 2017-12-22 08:08:32 +01:00
parent 0c1331cbf1
commit d67a7d816d
No known key found for this signature in database
GPG Key ID: 5110767B6248D3C0
35 changed files with 1425 additions and 867 deletions

View File

@ -27,7 +27,7 @@ As described in the Telegram Bot API, this is the manual procedure needed in ord
1. Create the destination chat and get the chatId 1. Create the destination chat and get the chatId
* Open a new chat with your new Bot and post a message on the chat * Open a new chat with your new Bot and post a message on the chat
* Open a browser and invoke `https://api.telegram.org/bot<token>/getUpdates` (where `<token>` is the authentication token previously obtained) * Open a browser and invoke `https://api.telegram.org/bot<token>/getUpdates` (where `<token>` is the authentication token previously obtained)
* Look at the JSON result and write down the value of `result[0].message.from.id`. That is the chatId. * Look at the JSON result and write down the value of `result[0].message.chat.id`. That is the chatId.
## Configuration ## Configuration

View File

@ -16,7 +16,8 @@ install: auto
# digitalSTROM Binding # digitalSTROM Binding
This binding integrates the [digitalSTROM-System](http://www.digitalstrom.de/). This binding integrates the [digitalSTROM-System](http://www.digitalstrom.de/).
The integration happens through the digitalSTROM-Server, which acts as a gateway to connect the digitalSTROM-Devices. The digitalSTROM-Server communicates through the digitalSTROM-Meters with the digitalSTROM-Devices, which are directly connected to the power-line. The integration happens through the digitalSTROM-Server, which acts as a gateway to connect the digitalSTROM-Devices.
The digitalSTROM-Server communicates through the digitalSTROM-Meters with the digitalSTROM-Devices, which are directly connected to the power-line.
**Note:** All was tested with digitalSTROM-Server firmware version 1.9.3 to 1.10.3. **Note:** All was tested with digitalSTROM-Server firmware version 1.9.3 to 1.10.3.
@ -30,60 +31,69 @@ The digitalSTROM-Server is required for accessing any other digitalSTROM-Devices
### digitalSTROM-Devices ### digitalSTROM-Devices
At this point almost all available **GE**, **SW** and **GR** digitalSTROM-Devices with a set output-mode, unequal *disabled* or *PWM*, are supported by this binding. At this point almost all available **GE**, **SW**, **GR** and **BL** digitalSTROM-Devices with a set output-mode, unequal *disabled*, are supported by this binding. Furthermore sensor devices like the **dS-iSens200** and **SW-devices** with binary-inputs are supported.
For that there are identically named thing types. Only the *GR* type has a channel (shade), which cannot be changed. The other two types add 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 have changed. Last but not least the **circuit** (dS-Meter) is supported, too. They will provide the power consumption and electric meter as channels.
The following table shows all tested digitalSTROM-Devices with their output-modes. For that there are identically named thing types. Only the *GR* type has a channel (shade), which cannot be changed. The other types add 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.
- The following table shows all tested digitalSTROM-Devices with their output-modes.
| HW-Type | Output-Mode | Tested color group | | HW-Type | Output-Mode | Tested color group |
|-----------------|------------------------|--------------|----------------- |------------- | |-----------------|------------------------|--------------|
| GE-KL200 | switched | yellow | | GE-KL200 | switched | yellow |
| GE-KM200 | switched, dimmed | yellow | | GE-KM200 | switched, dimmed | yellow |
| GE-TKM210 | switched, dimmed | yellow | | GE-TKM210 | switched, dimmed | yellow |
| GE-SDM200 | switched, dimmed | yellow | | GE-SDM200 | switched, dimmed | yellow |
| GE-UMV200 | 1-10V dimmed | yellow | | GE-UMV200 | 1-10V dimmed | yellow |
| GR-KL200 | standard output-mode | grey | | GR-KL200 | standard output-mode | grey |
| GR-KL210 | standard output-mode| grey | | GR-KL210 | standard output-mode| grey |
| GR-KL220 | standard output-mode | grey | | GR-KL220 | standard output-mode | grey |
| SW-KL200 | switch, powersave, wipe | black, yellow | | SW-KL200 | switch, powersave, wipe | black, yellow |
| SW-UMR200 | single switched, combined switch, combined 2 stage switch, combined 3 stage switch | yellow , black | | SW-UMR200 | single switched, combined switch, combined 2 stage switch, combined 3 stage switch | yellow , black |
| SW-ZWS200 | switch, powersave, wipe | black, yellow | | SW-ZWS200 | switch, powersave, wipe | black, yellow |
| BL-KM200 | switch, pwm | blue |
- Binary-inputs were tested with SW-UMR200.
- Sensor channels were tested with dS-iSens200 and power sensor with all other supported devices, which are listed in the table above.
### digitalSTROM-Scenes ### digitalSTROM-Scenes
Furthermore the digitalSTROM-Scene concept is part of the digitalSTROM-Binding. These scenes are implemented as virtual things. The different scene thing types are listed in the following table. Furthermore the digitalSTROM-Scene concept is part of the digitalSTROM-Binding.
These scenes are implemented as virtual things.
The different scene thing types are listed in the following table.
| Thing-Type-ID | Label | Description | | Thing-Type-ID | Label | Description |
|-----------------|------------------------|--------------|----------------- |------------- | |-----------------|------------------------|--------------|
| appScene | Apartment-Scene | Represents a digitalSTROM Apartment-Scene. | | appScene | Apartment-Scene | Represents a digitalSTROM Apartment-Scene. |
| zoneScene | Zone-Scene | Represents a digitalSTROM Zone-Scene. | | zoneScene | Zone-Scene | Represents a digitalSTROM Zone-Scene. |
| groupScene | Group-Scene | Represents a digitalSTROM Group-Scene. | | groupScene | Group-Scene | Represents a digitalSTROM Group-Scene. |
| namedScene | Named-Scene | Represents a digitalSTROM Scene, which has a user-defined name. | | namedScene | Named-Scene | Represents a digitalSTROM Scene, which has a user-defined name. |
### digitalSTROM-Zone-Temperature-Control
Last but not least, the digitalSTROM-Zone-Temperature-Control is also supported, if a zone-temerature-control is configured, as thing-type **zone_temperature_control**.
The difference between the digitalSTROM-heating-control-app is, that there are no operation-modes, like *comfort* or *eco*. You can directly set the target temperature, in case *pid-control* is configured, otherwise you can set the value in percent of heating valves at the zone.
The needed channels will be added automatically, as it is also the case for the devices.
## Discovery ## Discovery
The digitalSTROM-Server is discovered by mDNS or *dss.local.* at the local network. Once the server is added as a thing, you have to set a user name and password or insert a valid Application-Token to authenticate with the server. If the binding is authorized, it automatically reads all supported devices, that are set up on the digitalSTROM-System and puts them into the *inbox*. The digitalSTROM-Server is discovered by mDNS or *dss.local.* at the local network.
Once the server is added as a thing, you have to set a user name and password or insert a valid application-token to authenticate with the server.
If the binding is authorized, it automatically reads all supported devices, the dS-Meters and temperature controlled configured zones, that are set up on the digitalSTROM-System, and puts them into the *inbox*.
digitalSTROM-Scenes can be discovered, too. The background scene-discovery is deactivated by default to not flood the inbox. Otherwise it will discover so many scenes, that it can be difficult to find the searched devices. digitalSTROM-Scenes can be discovered, too.
The background scene-discovery is deactivated by default to not flood the inbox.
Otherwise it will discover so many scenes, that it can be difficult to find the searched devices.
Discoverable scenes are all user named scenes, group scenes that are reachable by local push-buttons, zone scenes and apartment scenes. The discovery also will discover all called scenes, if they aren't automatically discovered yet. Discoverable scenes are all user named scenes, group scenes that are reachable by local push-buttons, zone scenes and apartment scenes.
The discovery also will discover all called scenes, if they aren't automatically discovered yet.
Temperature control scenes, like *eco* will be ignored, so they cannot be discovered.
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. To find out what thing types this binding supports please have a look at the **Supported Things** section. If you only want to discover one of the thing types, you can start a discovery scan on the thing type you want to have discovered.
You can use the command line command, e.g.: ``smarthome:discovery start digitalstrom:namedScene`` to start the scan.
Which thing types this binding supports, please have a look at **Supported Things**.
## digitalSTROM-Scenes ## Thing Configuration and Properties
### 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 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 read 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 read out the scene configuration again.
## Thing Configuration
### digitalSTROM-Server ### digitalSTROM-Server
@ -92,10 +102,11 @@ The digitalSTROM-Server thing has the following configuration parameter groups:
#### 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. 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.
If you use your user name and password for authentication and there is already a token for this application, it will be automatically retrieved from the digitalSTROM-Server, otherwise a new application-token will be generated.
| Parameter Label | Parameter ID | Description | Required | Advanced | Parameter Label | Parameter ID | Description | Required | Advanced
|-----------------|------------------------|--------------|----------------- |------------- | |--------------|------------|--------------------------------|----------------- |------------- |
| Network address | ipAddress | Network address of the digitalSTROM-Server.| true | false | | Network address | dSSAddress | Network address of the digitalSTROM-Server.| true | false |
| User name | userName | Name of a registered user to authenticate to the digitalSTROM-Server.| user name and password or Application-Token | false | | User name | userName | Name of a registered user to authenticate to the digitalSTROM-Server.| user name and password or Application-Token | false |
| Password | password | Password of a registered user to authenticate to the digitalSTROM-Server. | user name and password or Application-Token | false | | 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 | | Application-Token | applicationToken | The Application-Token to authenticate to the digitalSTROM-Server. | user name and password or Application-Token| false |
@ -105,17 +116,16 @@ If the digitalSTROM-Server isnt found automatically, e.g. because the server
The parameter group *Server information* only includes informative parameters, which have no special functionality. The parameter group *Server information* only includes informative parameters, which have no special functionality.
| Parameter Label | Parameter ID| Description | Required | Advanced | Parameter Label | Parameter ID | Description | Required | Advanced
|-----------------|------------------------|--------------|----------------- |------------- | |-----------------|-------------|--------------------------|---------- |------------- |
| dSID | dSID | The unique identifier of a digitalSTOM-server. | false| false | | dSID | dSID | The unique identifier of a digitalSTROM-server. | false| false |
| digitalSTROM-Installation name | dsName | The user defined name of the digitalSTROM-Installation. | false | false | false |
#### General configuration: #### General configuration:
Here you can set general binding configuration parameters, which are shown in following table: Here you can set general binding configuration parameters, which are shown in following table:
| Parameter Label | Parameter ID| Description | Required | Advanced | default | Parameter Label | Parameter ID| Description | Required | Advanced | default
|-----------------|------------------------|--------------|----------------- |------------- | ----------------- | |-----------------|------------------|-----------------------------------------|---------------- |------------- | ----------------- |
| Sensor update interval | sensorDataUpdateInterval | Sets the seconds after the digitalSTROM-Device sensor data will be updated. If the priority is higher than 'never'. | false | false | 60 | | Sensor update interval | sensorDataUpdateInterval | Sets the seconds after the digitalSTROM-Device sensor data will be updated. If the priority is higher than 'never'. | false | false | 60 |
| Total power update interval | totalPowerUpdateInterval | Sets the interval in seconds, after the digitalSTROM total power consumption and total electric meter sensor data will be updated. | false | false | 30 | | Total power update interval | totalPowerUpdateInterval | Sets the interval in seconds, after the digitalSTROM total power consumption and total electric meter sensor data will be updated. | false | false | 30 |
| Days to be slaked trash bin devices | defaultTrashBinDeleateTime| Sets the days after the temporary saved digitalSTROM-Device configuration from not reachable digitalSTROM-Devices get permanently deleted. | false | false | 7 | | Days to be slaked trash bin devices | defaultTrashBinDeleateTime| Sets the days after the temporary saved digitalSTROM-Device configuration from not reachable digitalSTROM-Devices get permanently deleted. | false | false | 7 |
@ -124,88 +134,260 @@ Here you can set general binding configuration parameters, which are shown in fo
At the thing file, a manual configuration looks e.g. like At the thing file, a manual configuration looks e.g. like
``` ```
Bridge digitalstrom:dssBridge:dssBridge1 [ ipAddress="dss.local.", userName="dssadmin", password=“dssadmin", sensorDataUpdateIntervall="180"] Bridge digitalstrom:dssBridge:dssBridge1 [ dSSAddress="dss.local.", userName="dssadmin", password="dssadmin", sensorDataUpdateInterval=180]
``` ```
#### Properties
In addition to the configuration the digitalSTROM-Server has the following properties.
| Property-Name | Description |
| ------------- | ----------- |
| serverCert | The SSL-Certificate of the digitalSTROM-Server. |
| dS-Installation-Name | The digitalSTROM-System installation name. |
| version | The digitalSTROM-Server-Application version. |
| distroVersion | The digitalSTROM-Server firmware version. |
| Hardware | The digitalSTROM-Server hardware identifier. |
| Revision | The digitalSTROM-Server hardware revision number. |
| Serial | The digitalSTROM-Server hardware serial number. |
| Ethernet | The digitalSTROM-Server IEEE mac address. |
| MachineID | The digitalSTROM-Server unique id. |
| Kernel | The digitalSTROM-Server linux kernel release string. |
### digitalSTROM-Devices ### digitalSTROM-Devices
The digitalSTROM-Device things have the following configuration parameter groups *Device information* and *Sensor setup*. The digitalSTROM-Device things have the following configuration parameter groups *Device information* and *Sensor setup*.
#### Device information #### Device information
Each digitalSTROM-Device needs the device ID named dSID as a configuration parameter. The device ID is printed as a serial number at the digitalSTOM-Device and can also be found within the web-interface of the digitalSTROM-Server. Each digitalSTROM-Device needs the device ID named dSID as configuration parameter.
Furthermore a supported digitalSTROM-Device has only informative parameter at this point. The device ID is printed as serial number at the digitalSTROM-Device and can also be found within the web-interface of the digitalSTROM-Server.
The following table shows all parameters: The following table shows the parameter:
| Parameter Label | Parameter ID| Description | Required | Advanced | Parameter Label | Parameter ID| Description | Required | Advanced
|-----------------|------------------------|--------------|----------------- |------------- | |-----------------|------------------------|--------------|----------------- |------------- |
| ID | dSID| The unique identifier of a digitalSTOM-device. | true | false | | ID | dSID| The unique identifier of a digitalSTORM-device. | true | false |
| UID | dSUID | The unique identifier of a digitalSTOM-device with virtual devices. | false | false |
| Name | deviceName | The name of a digitalSTROM-Device. | false | false |
| Meter dSID | meterDSID | Identifier of the meter to which the device is connected. | false | false |
| Device hardware type | hwInfo | The hardware type from this digitalSTROM-Device. | false | false |
| Zone ID | zoneID |The digitalSTROM-Device is part of this zone. | false | false |
| Group ID's | groups | The digitalSTROM-Device is part of this user-defined or functional groups. | false | false |
| Output mode | output mode | The current digitalSTROM-Device output mode e.g. 22 = dimmable. | false | false |
| Functional color group | funcColorGroup | The current digitalSTROM-Device functional color group e.g. yellow = light. | false | false |
#### Sensor setup #### Sensor setup
The GE and SW digitalSTROM-Devices usually have sensors to capture power consumption data. So these devices have the following parameters to read them out. The GE, BL and SW digitalSTROM-Devices usually have 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 | | Parameter Label | Parameter ID| Description | Required | Advanced | Default |
|-----------------|------------------------|--------------|----------------- |------------- | -----------| |-----------------|--------------------|-----------------------------|----------------- |------------- | -----------|
| Active power refresh priority | activePowerRefreshPriority | Sets the refresh priority for the active power sensor value. Can be never, low priority, medium priority or high priority. | false | false | never | | Active power refresh priority | activePowerRefreshPriority | Sets the refresh priority for the active power sensor value. Can be never, low priority, medium priority or high priority. | false | false | never |
| Electric meter refresh priority | electricMeterRefreshPriority | Sets the refresh priority for the electric meter sensor value. Can be never, low priority, medium priority or high priority. | false | false | never | | Electric meter refresh priority | electricMeterRefreshPriority | Sets the refresh priority for the electric meter sensor value. Can be never, low priority, medium priority or high priority. | false | false | never |
| 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 | | 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 |
#### Properties
Furthermore a supported digitalSTROM-Device has some informative properties.
The following table shows all informative properties:
| Property-Name | Description |
| ------------- | ------------------------------------- |
|dSUID | The unique identifier of a digitalSTORM-device with virtual devices. |
| deviceName | he name of a digitalSTROM-Device. |
| meterDSID | Identifier of the meter to which the device is connected. |
| hwInfo | The hardware type from this digitalSTROM-Device. |
| zoneID |The digitalSTROM-Device is part of this zone. |
| groups | The digitalSTROM-Device is part of this user-defined or functional groups. |
| output mode | The current digitalSTROM-Device output mode e.g. 22 = dimmable. |
| funcColorGroup | The current digitalSTROM-Device functional color group e.g. yellow = light. |
The device scene configurations will also be persisted in the properties. There are in the format:
| Property-Name | Description |
| ------------- | ------------------------------------- |
| scene[sceneID] | {Scene: [sceneID], dontcare: [don't care flag], localPrio: [local prio flag], specialMode: [special mode flag]}(0..1), {sceneValue: [scene value], sceneAngle: [scene angle]}(0..1) |
### digitalSTROM-Meter
A digitalSTROM-Meter needs, like the digitalSTROM-Devices, only the unique digitalSTROM device ID named dSID as configuration parameter, which has the same parameters, so please have a look at the point *Device information*.
#### Properties
In contrast to the digitalSTROM-Device there are other informal properties. The following table shows the available properties:
| Property-Name | Description |
| ------------- | ------------------------------------- |
| hwName | The hardware name of the digitalSTROM-Meter |
| swVersion | The software version of the digitalSTROM-Meter |
| apiVersion | The api version of the digitalSTROM-Meter |
| dspSwVersion | The dsp software version of the digitalSTROM-Meter |
| dSUID | The dSUID of the digitalSTROM-Meter |
| deviceName | The user defined name of the digitalSTROM-Meter |
| armSwVersion | The arm software version of the digitalSTROM-Meter |
| hwVersion | The hardware version of the digitalSTROM-Meter |
### digitalSTROM-Zone-Temperature-Control
The thing type of a digitalSTROM-Zone-Temperature-Control is **zone_temperature_control**.
As configuration only the zone ID or the zone name, to identify the controlled zone, is needed.
| Parameter Label | Parameter ID| Description | Required | Advanced |
|-----------------|------------------------|----------------------------------|----------------- |------------- |
| Zone ID or name | zoneID | The zone id or zone name of the temperature controlled zone. | true | false |
#### Properties
| Property-Name | Description |
| ------------- | ------------------------------------- |
| controlMode | The currently configured control mode. |
| controlDSUID | The dSID of the meter or service that runs the control algorithm. |
| controlState | The currently configured control state. |
### digitalSTROM-Scenes ### digitalSTROM-Scenes
The digitalSTROM-Scenes can be defined with following parameters. The digitalSTROM-Scenes can be defined with following parameters.
| Parameter Label | Parameter ID| Description | Required | Advanced | | Parameter Label | Parameter ID| Description | Required | Advanced |
|-----------------|------------------------|--------------|----------------- |------------- | |-----------------|------------------------|----------------------------------|----------------- |------------- |
| Scene name | sceneName | The name of a digitalSTROM scene. | false | false |
| Zone ID or name | zoneID | The zone ID or zone name of the called scene. 0 or empty is broadcast to all. | false | false | | Zone ID or name | zoneID | The zone ID or zone name of the called scene. 0 or empty is broadcast to all. | false | false |
| Group ID or name | groupID | The group ID or group name of the called scene. 0 or empty is broadcast to all. | false | false | | Group ID or name | groupID | The group ID or group name of the called scene. 0 or empty is broadcast to all. | false | false |
| Scene ID or name | sceneID |The call scene ID or scene name, e.g. preset 1 for scene ID 5. Callable scenes are from 0 to 126. | false | false | | Scene ID or name | sceneID |The call scene ID or scene name, e.g. preset 1 for scene ID 5. Callable scenes are from 0 to 126. | false | false |
The Scene-Thing-Type *Named-Scene* and *Group-Scene* have all parameters. The *Apartment-Scene* only has the parameters *Scene name* and *Scene ID* an the *Zone-Scene* has all parameters without *Group ID or name*. The Scene-Thing-Type *Named-Scene* and *Group-Scene* have all parameters.
The *Apartment-Scene* only has the parameters *Scene name* and *Scene ID* an the *Zone-Scene* has all parameters without *Group ID or name*.
Usually the discovery works reliably, so that a manual configuration is not needed.
### Textual configuration examples
Usually the discovery works reliable, so that a manual configuration is not needed.
However, at the thing file, a manual configuration looks e.g. like However, at the thing file, a manual configuration looks e.g. like
``` #### digitalSTROM-Devices
Thing digitalstrom:GE:GE-KM200 [ dSID="´3504175fe0000000000043d4", activePowerRefreshPriority="low", electricMeterRefreshPriority=“medium", outputCurrentRefreshPriority="high"]
Thing digitalstrom:GR:GR-KM200 [ dSID="3504175fe0000000000043d5"] ```
Thing digitalstrom:GE:GE-KM200 (digitalstrom:dssBridge:myDssBridge) [ dSID="3504175fe0000000000043d4", activePowerRefreshPriority="low", electricMeterRefreshPriority=“medium", outputCurrentRefreshPriority="high"]
Thing digitalstrom:GR:GR-KL200 (digitalstrom:dssBridge:myDssBridge) [ dSID="3504175fe0000000000043d5"]
```
#### digitalSTROM-Meters
```
Thing digitalstrom:circuit:circuit (digitalstrom:dssBridge:myDssBridge) [ dSID="3504175fe0000000000043d5"]
```
#### digitalSTROM-Zone-Temperature-Control
```
Thing digitalstrom:zone_temperature_control:zone_temperature_control3 (digitalstrom:dssBridge:myDssBridge) [ zoneID="3"]
```
#### digitalSTROM-Group-Scene
```
Thing digitalstrom:groupScene:preset1 (digitalstrom:dssBridge:myDssBridge) [ zoneID="3", groupID="1", sceneID="5"]
``` ```
## Channels ## Channels
All devices support some of the following channels: All devices support some of the following channels:
| Channel Type ID | Item Type | Description | supported device type | ### Output-Channels
|-----------------|------------------------|--------------|----------------- |------------- |
| brightness| Dimmer | The brightness channel allows to dimm a light device. | GE, SW |
| lightSwitch | Switch | The light switch channel allows to turn a light device on or off. | GE, SW |
| combined2StageSwitch | String| The 2 stage light switch channel allows to turn both light devices on or off or switch only 1 of the both light devices on or off. | SW-UMR200 |
| combined3StageSwitch | String | The 3 stage light switch channel allows to turn both light devices on or off or switch both light devices separated from each other on or off. | SW-UMR200 |
| shade | Rollershutter | The shade control channel allows to control shade device e.g. a roller shutter or awnings. | GR |
| shadeAngle | Dimmer | The slat control channel allows to control the relative slat position in percent of blinds. | GR |
| generalDimm | Dimmer | The device power control channel allows to control the power of a device e.g. a ceiling fan. | SW |
| generalSwitch | Switch | The device switch channel allows to turn a device on or off e.g. a HIFI-System. | SW |
| generalCombined3StageSwitch | String | The 2 stage device switch channel allows to turn both relays of the device on or off or switch only 1 of the both relais on or off. | SW-UMR200 |
| generalCombined3StageSwitch | String | The 3 stage device channel allows to turn both relays of the device on or off or switch both relais of the device separated from each other on or off. | SW-UMR200 |
| activePower | Number | The active power channel indicates the current active power in watt (W) of the device. | GE, SW |
| outputCurrent | Number | The output current channel indicates the current output current in ampere (A) of the device. | GE, SW |
| electricMeter | Number | The electric meter channel indicates the current electric meter value in kilowatts hours (kWh) of the device. | GE, SW |
| totalActivePower | | The total power consumption channel indicates the current consumption power in watt (W) of all connected circuits to the digitalSTROM-System. | dssBridge |
| totalElectricMeter | Number | The total electric meter channel indicates the current electric meter value in killowatt hours of all connected circuits to the digitalSTROM-System. | dssBridge |
| scene | Switch | The scene channel allows to call or undo a scene from digitalSTROM. | Scene |
**Notes:** digitalSTROM-Devices with an activated output mode.
| Channel Type ID | Item Type | Description | supported device type |
|-------|---------|------------------------------------|----------------- |
| light_dimmer | Dimmer | The *light_dimm* channel allows to dimm a light device. | GE, SW |
| light_switch | Switch | The *light_switch* channel allows to turn a light device on or off. | GE, SW |
| light_2_stage | String| The *light_2_stage* channel allows to turn both light devices on or off or switch only 1 of the both light device on or off. | SW-UMR200 |
| light_3_stage | String | The *light_3_stage* channel allows to turn both light devices on or off or switch both light devices separated from each other on or off. | SW-UMR200 |
| shade | Rollershutter | The *shade* channel allows to control shade device e.g. a roller shutter or awnings. | GR |
| shade_angle | Dimmer | The *shade_angle* channel allows to control the relative slat position in percent of blinds. | GR |
| general_dimmer | Dimmer | The *general_dimmer* channel allows to control the power of a device e.g. a ceiling fan. | SW |
| general_switch | Switch | The *general_switch* channel allows to turn a device on or off e.g. a HIFI-System. | SW |
| general_2_stage | String | The *general_2_stage* channel allows to turn both relais of the device on or off or switch only 1 of the both relais on or off. | SW-UMR200 |
| general_3_stage | String | The *general_3_stage* channel allows to turn both relais of the device on or off or switch both relais of the device separated from each other on or off. | SW-UMR200 |
| heating_switch | Switch | The *heating_switch* channel allows to turn a heating device on or off. | BL |
| heating_dimmer | Dimmer | The *heating_switch* channel allows to control the value in percent of heating valve. | BL |
digitalSTROM-Zone-Temperature-Controlled
| Channel Type ID | Item Type | Description |
|-------|---------|------------------------------------|
| heating_temperature_controled | Number | The *heating_temperature_controled* channel allows to set a target temperature of a zone. |
| heating_dimmer | Dimmer | The *heating_switch* channel allows to control the value in percent of heating valve. |
### Sensor-Channels
digitalSTROM-Devices which have sensors data.
| Channel Type ID | Item Type | Description | supported device type |
|-------|---------|------------------------------------|----------------- |
| active_power | Number | This channel indicates the current active power in watt (W) of the device." | GE, SW, BL |
| output_current | Number | This channel indicates the current output current in milliamper (mA) of the device." | GE, SW, BL |
| electric_meter | Number | This channel indicates the current electric meter value in killowatts hours (kWh) of the device. | GE, SW, BL |
| temperature_indoors | Number | This channel indicates the current temperature indoors in Celsius (°C) of the device. | dS-iSens200 |
| temperature_outdoors | Number | This channel indicates the current temperature outdoors in Celsius (°C) of the device. | --- |
| brightness_indoors | Number | This channel indicates the current brightness indoors in Lux (Lx) of the device. | --- |
| brightness_outdoors | Number | This channel indicates the current brightness outdoors in Lux (Lx) of the device. | --- |
| relative_humidity_indoors | Number | This channel indicates the current relative humidity indoors in percent of the device. | dS-iSens200 |
| relative_humidity_outdoors | Number | This channel indicates the current relative humidity outdoors in percent of the device. | --- |
| air_pressure | Number | This channel indicates the current relative humidity outdoors in hectopscal (hPa bzw. mbar) of the device. | --- |
| wind_speed | Number | This channel indicates the current wind speed in m/s of the device. | --- |
| wind_direction | Number | This channel indicates the current wind direction in degree of the device. | --- |
| precipitation | Number | This channel indicates the current precipitation in milliliter per square meter of the device. | --- |
| carbon_dioxide | Number | This channel indicates the current carbon dioxide in parts per million of the device. | --- |
| sound_pressure_level | Number | This channel indicates the current carbon dioxide in Dezibel (dB) of the device. | --- |
| room_temperation_set_point | Number | This channel indicates the current room temperation set point in Celsius (°C) of the device. | --- |
| room_temperation_control_variable | Number | This channel indicates the current room temperation control variable in Celsius (°C) of the device. | --- |
*If no supported device type is at the table, digitalSTROM currently does not offer a device, which support this type of sensor.
### Binary-Input-Channels
digitalSTROM-Devices which are able to set a binary-input sensor like SW-UMR200 or SW-AKM200.
| Channel Type ID | Item Type | Description | supported device type |
|-------|---------|------------------------------------|----------------- |
| binary_input_presence | Switch | Will be activated, if a presence is detected. | SW |
| binary_input_brightness | Switch | Will be activated, if the brightness is higher than a setted value. | SW |
| binary_input_presence_in_darkness | Switch | Will be activated, if a presence is detected. Sensor has a integrated twilight sensor. | SW |
| binary_input_twilight | Switch | Will be activated by twilight. | SW |
| binary_input_motion | Switch | Will be activated, if a motion is detected. | SW |
| binary_input_motion_in_darkness | Switch | Will be activated, if a motion is detected. Sensor has a integrated twilight sensor. | SW |
| binary_input_smoke | Switch | Will be activated, if smoke is detected. | SW |
| binary_input_wind_strenght_above_limit | Switch | Will be activated, if wind strength is above a user adjusted limit. | SW |
| binary_input_rain | Switch | Will be activated, if rain is detected. | SW |
| binary_input_sun_radiation | Switch | Will be activated, if the sun light is above threshold. | SW |
| binary_input_temperation_below_limit | Switch | Will be activated, if the temperature is below a limit. | SW |
| binary_input_battery_status_is_low | Switch | Will be activated, if the battery status is low. | SW |
| binary_input_window_is_open | Switch | Will be activated, if a window is open. | SW |
| binary_input_door_is_open | Switch | Will be activated, if a door is open. | SW |
| binary_input_window_is_tilted | Switch | Will be activated, if a window is tilted. | SW |
| binary_input_garage_door_is_open | Switch | Will be activated, if a garage door is open. | SW |
| binary_input_sun_protection | Switch | Will be activated, if the sun light is too heavy. | SW |
| binary_input_frost | Switch | Will be activated by frost. | SW |
| binary_input_heating_operation_on_off | Switch | Will be activated, if heating operation is on, otherwise it will be deactivated. | SW |
| binary_input_change_over_heating_cooling | Switch | Will be activated, if heating is activated, otherwise cooling is activated. | SW |
### Metering-Channels
The digitalSTROM-Meters
| Channel Type ID | Item Type | Description | supported device type |
|-------|---------|------------------------------------|----------------- |
| consumption_Wh | Number | The *consumption_Wh* channel indicates the current power consumption in watt (W) of the circuit. | circuit |
| energy_Wh | Number | The *energy_Wh* channel indicates the current electric meter value in killowatt hours of the circuit. | circuit |
The digitalSTROM-Server
| Channel Type ID | Item Type | Description | supported device type |
|-------|---------|------------------------------------|----------------- |
| total_consumption_Wh | Number | The *total_consumption_Wh* channel indicates the current consumption power in watt (W) of all connected circuits to the digitalSTROM-System. | dssBridge |
| total_energy_Wh | Number | The *total_energy_Wh* channel indicates the current electric meter value in killowatt hours of all connected circuits to the digitalSTROM-System. | dssBridge |
### Scenes
| Channel Type ID | Item Type | Description | supported device type |
|-------|---------|------------------------------------|----------------- |
| scene | Switch | The scene channel allows to call or undo a scene from digitalSTROM. | all scene-types |
**Notes: **
*Channels with accepted command type increase and decrease:* *Channels with accepted command type increase and decrease:*
@ -218,54 +400,163 @@ All devices support some of the following channels:
## Full Example ## Full Example
demo.things: ### demo.things:
``` ```
Bridge digitalstrom:dssBridge:1 [ ipAddress="dss.local.", userName="dssadmin", password="dssadmin", sensorDataUpdateIntervall=180] { Bridge digitalstrom:dssBridge:dSS [ dSSAddress="urlOfMyDss", userName="dssadmin", password="mySecretPassword", sensorDataUpdateInterval=180] {
GE GE-KM200 [ dSID="3504175fe0000000000043d4", ActivePowerRefreshPriority="low", ElectricMeterRefreshPriority="medium", OutputCurrentRefreshPriority="high"] GE GE-KM-200 [ dSID="3504175fe000000000010db9", activePowerRefreshPriority="low", electricMeterRefreshPriority="medium", outputCurrentRefreshPriority="high"]
GR GR-KM200 [ dSID="3504175fe0000000000043d5"] SW SW-ZWS-200 [ dSID="3504175fe0000000000651c0"]
namedScene scene1 [zoneID="0", groupID="0", sceneID="5"] SW SW-UMR-200 [ dSID="302ed89f43f00ec0000a1034"]
dSiSens200 dS-iSens200 [ dSID="302ed89f43f026800003543d"]
zoneTemperatureControl zoneTemperatureControl [ zoneID="livingroom"]
GR GR-KL220 [ dSID="3504175fe0000000000651c1" ]
namedScene Scene1 [ zoneID="5", groupID="1", sceneID="5"]
circuit circuit1 [ dSID="3504175fe0000010000004e4" ]
GR GR-KL200 [ dSID="3504175fe0000000000651c1" ]
} }
``` ```
demo.items: ### demo.items:
``` ```
Dimmer Brightness { channel="digitalstrom:GE:GE-KM200-1:brightness" } //dSS
Number ActivePower { channel="digitalstrom:GE:GE-KM200-1:activePower" } Number TotalActivePower { channel="digitalstrom:dssBridge:dSS:total_consumption_wh" }
Number OutputCurrent { channel="digitalstrom:GE:GE-KM200-1:outputCurrent" } Number TotalElectricMeter { channel="digitalstrom:dssBridge:dSS:total_energy_wh" }
Number ElectricMeter { channel="digitalstrom:GE:GE-KM200-1:electricMeter" }
Number TotalActivePower { channel="digitalstrom:dssBridge:dssBridge1:totalActivePower" } //circuit (circuit1)
Number TotalElectricMeter { channel="digitalstrom:dssBridge:dssBridge1:totalElectricMeter" } Number TotalActivePowerDsm { channel="digitalstrom:circuit:dSS:circuit1:energy_wh" }
Number TotalElectricMeterDsm { channel="digitalstrom:circuit:dSS:circuit1:consumption_wh" }
//Light (KM-200)
Dimmer Brightness { channel="digitalstrom:GE:dSS:GE-KM-200:light_dimmer" }
Number ActivePower { channel="digitalstrom:GE:dSS:GE-KM-200:active_power" }
Number OutputCurrent { channel="digitalstrom:GE:dSS:GE-KM-200:output_current" }
Number ElectricMeter { channel="digitalstrom:GE:dSS:GE-KM-200:electric_meter" }
Rollershutter Shade { channel="digitalstrom:GR:GR-KM200-1:shade" } //Device
Switch DeviceSwitch { channel="digitalstrom:SW:dSS:SW-ZWS-200:general_switch" }
Switch Scene { channel="digitalstrom:namedScene:scene1:scene" } //Rollershutter (GR-KL200)
Rollershutter Shutter { channel="digitalstrom:GR:GR-KL200:shade" }
//Blind (GR-KL220)
Rollershutter BlindPosition { channel="digitalstrom:GR:GR-KL210:shade" }
Dimmer BlindAngle { channel="digitalstrom:GR:GR-KL210:shade_angle" }
//Scene (Scene1)
Switch Scene { channel="digitalstrom:namedScene:dSS:Scene1:scene" }
//binary input device (SW-UMR-200)
Switch SensorSwitch { channel="digitalstrom:SW:dSS:SW-UMR-200:binary_input_change_over_heating_cooling" }
//indoor climate (dSiSens200)
Number TempIndoor { channel="digitalstrom:dSiSens200:dSS:dS-iSens200:temperature_indoors" }
Number HumidityIndoor { channel="digitalstrom:dSiSens200:dSS:dS-iSens200:relative_humidity_indoors" }
//target temperature (zoneTemperatureControl)
Number Temperature { channel="digitalstrom:zoneTemperatureControl:dSS:zoneTemperatureControl:heating_temperature_controlled" }
``` ```
demo.sitemap: ### demo.sitemap:
``` ```
sitemap demo label="Main Menu" sitemap demo label="Main Menu"
{ {
Frame { Frame label="System" {
Slider item=Brightness Frame label="digitalSTROM-Server"{
Switch item=Brightness Text item=TotalActivePower
Text item=ActivePower Text item=TotalElectricMeter
Text item=OutputCurrent
Text item=ElectricMeter
} }
Frame {
Text item=TotalActivePower Frame label="digitalSTROM-Meter"{
Text item=TotalElectricMeter Text item=TotalActivePowerDsm
Text item=TotalElectricMeterDsm
} }
Frame { }
Switch item=Scene
Frame label="Climate" {
Frame label="heating/cooling"{
Switch item=SensorSwitch
} }
Frame {
Slider item=Shade Frame label="iSens200"{
Text item=TempIndoor
Text item=HumidityIndoor
} }
Frame label="Target temperature"{
Slider item=Temperature
Text item=Temperature
}
}
Frame label="Shade"{
Frame label="Rollerschutter"{
Slider item=Shade
Text item=Shade
}
Frame label="Blind"{
Slider item=BlindPosition
Slider item=BlindAngle
}
}
Frame label="Scenes"{
Frame label="TV scene"{
Switch item=Scene
}
}
Frame label="HiFi" {
Frame label="TV light"{
Slider item=Brightness
Switch item=Brightness
Text item=ActivePower
Text item=OutputCurrent
Text item=ElectricMeter
}
Frame label="TV"{
Switch item=DeviceSwitch
}
}
} }
``` ```
## General-Informations
### digitalSTROM-Scenes
The device scene configuration will be saved persistently to the thing properties, if the thing is not textual configured (because textual configured things will not be persisted), to update the device state faster.
For that each scene configuration of each device has to be 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 read 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 read out the scene configuration again.
### Initial state of digitalSTROM-Scenes and devices
To get the device and scene state after a server start or restart, the binding uses the last called group scenes of digitalSTROM.
Because of that there are two things to be observed:
1. If a device status has changed through a device scene or a directly set output value, the status is maybe not correct.
2. If the last called group scene was not read out yet, it can takes some time until the status will be updated.
### Textual configuration notice
If you configure your system with textual configuration files, like *\*.thing*, there is one things you have to consider.
* The feature of the persisting of scene-configurations, to get the scene-configurations after a restart faster (see *digitalSTROM-Scenes* above), will not support textural configured things, because the properties cannot be persist in this case.
### Rule specific notice
If you want to create a rule, which uses things of the digitalSTROM-Binding, there are also two things you have to consider.
1. If the rule contains several digitalSTROM-Devices, which can be summarized in a digitalSTROM-Scene, e.g. some lights in a zone, please use a equivalent supported scene. That will significantly reduce the communication to the digitalSTROM-Server, increases performance and does not bypass the digitalSTROM state-machine.
2. If you implement your own temperature control algorithm for a zone/room, e.g. because you want to use other temperature sensors, and call more than one digitalSTROM-BL-KM200, please use the *zone_temperature_control* for valve value control. The *zone_temperature_control* for valve value control will call all digitalSTROM-BL-KM200 with one command and increases the performance. To get the needed channel at the *zone_temperature_control* you have to choose a control mode unequal to *pid-controlled* for the affected zone at the digitalSTROM-heating-control-app.

View File

@ -62,10 +62,12 @@ Bridge lirc:bridge:local [ host="192.168.1.120", port="9001" ] {
``` ```
Bridge: Bridge:
* **host**: IP address or hostname of the LIRC server. Defaults to localhost * **host**: IP address or hostname of the LIRC server. Defaults to localhost
* **port**: The port number the LIRC server is listening on. Defaults to 8765 * **port**: The port number the LIRC server is listening on. Defaults to 8765
Remote: Remote:
* **remote**: The name of the remote as known by LIRC * **remote**: The name of the remote as known by LIRC
### Items ### Items

View File

@ -15,9 +15,10 @@ install: auto
# Nest Binding # Nest Binding
The Nest binding integrates devices by [Nest](https://nest.com) using the [Nest API](https://developers.nest.com/documentation/cloud/get-started) (REST). The Nest binding integrates devices by [Nest](https://nest.com) using the [Nest API](https://developers.nest.com/documentation/cloud/get-started) (REST).
Because the Nest API runs on Nest's servers a connection with the Internet is required for sending and receiving information. The binding uses HTTPS to connect to the Nest API using ports 443 and 9553. Make sure outbound connections to these ports are not blocked by a firewall. Because the Nest API runs on Nest's servers a connection with the Internet is required for sending and receiving information.
The binding uses HTTPS to connect to the Nest API using ports 443 and 9553. Make sure outbound connections to these ports are not blocked by a firewall.
## Supported Things ## Supported Things
@ -33,26 +34,35 @@ The table below lists the Nest binding thing types:
## Authorization ## Authorization
The Nest API uses OAuth for authorization. Therefor the binding needs some authorization parameters before it can access your Nest account via the Nest API. The Nest API uses OAuth for authorization.
Therefor the binding needs some authorization parameters before it can access your Nest account via the Nest API.
To get these authorization parameters you first need to sign up as a [Nest Developer](https://developer.nest.com) and [register a new Product](https://developer.nest.com/products/new) (free and instant). To get these authorization parameters you first need to sign up as a [Nest Developer](https://developer.nest.com) and [register a new Product](https://developer.nest.com/products/new) (free and instant).
While registering a new Product (on the Product Details page) make sure to: While registering a new Product (on the Product Details page) make sure to:
* Leave both "OAuth Redirect URI" fields empty to enable PIN-based authorization. * Leave both "OAuth Redirect URI" fields empty to enable PIN-based authorization.
* Grant all the permissions you intend to use. When in doubt, enable the permission because the binding needs to be reauthorized when permissions change at a later time. * Grant all the permissions you intend to use. When in doubt, enable the permission because the binding needs to be reauthorized when permissions change at a later time.
After creating the Product, your browser shows the Product Overview page. This page contains the **Product ID** and **Product Secret** authorization parameters that are used by the binding. Take note of both parameters or keep this page open in a browser tab. Now copy and paste the "Authorization URL" in a new browser tab. Accept the permissions and you will be presented the **Pincode** authorization parameter that is also used by the binding. After creating the Product, your browser shows the Product Overview page.
This page contains the **Product ID** and **Product Secret** authorization parameters that are used by the binding.
Take note of both parameters or keep this page open in a browser tab.
Now copy and paste the "Authorization URL" in a new browser tab.
Accept the permissions and you will be presented the **Pincode** authorization parameter that is also used by the binding.
You can return to the Product Overview page at a later time by opening the [Products](https://console.developers.nest.com/products) page and selecting your Product. You can return to the Product Overview page at a later time by opening the [Products](https://console.developers.nest.com/products) page and selecting your Product.
## Discovery ## Discovery
The binding will discover all Nest Things from your account when you add and configure a "Nest Account" Thing. See the Authorization paragraph above for details on how to obtain the Product ID, Product Secret and Pincode configuration parameters. The binding will discover all Nest Things from your account when you add and configure a "Nest Account" Thing.
See the Authorization paragraph above for details on how to obtain the Product ID, Product Secret and Pincode configuration parameters.
Once the binding has successfully authorized with the Nest API, it obtains an Access Token using the Pincode. The configured Pincode is cleared because it can only be used once. The obtained Access Token is saved as an advanced configuration parameter of the "Nest Account". Once the binding has successfully authorized with the Nest API, it obtains an Access Token using the Pincode.
The configured Pincode is cleared because it can only be used once.
The obtained Access Token is saved as an advanced configuration parameter of the "Nest Account".
You can reuse an Access Token for authorization but not the Pincode. A new Pincode can again be generated via the "Authorization URL" (see Authorization paragraph). You can reuse an Access Token for authorization but not the Pincode.
A new Pincode can again be generated via the "Authorization URL" (see Authorization paragraph).
## Channels ## Channels
@ -125,17 +135,19 @@ The account Thing Type does not have any channels.
| sunlight_correction_enabled | Switch | If sunlight correction is enabled | R | | sunlight_correction_enabled | Switch | If sunlight correction is enabled | R |
| using_emergency_heat | Switch | If the system is currently using emergency heat | R | | using_emergency_heat | Switch | If the system is currently using emergency heat | R |
Note that the Nest API rounds Thermostat values so they will differ from what shows up in the Nest App. The Nest API applies the following rounding: Note that the Nest API rounds Thermostat values so they will differ from what shows up in the Nest App.
The Nest API applies the following rounding:
* degrees Celsius to 0.5 degrees * degrees Celsius to 0.5 degrees
* degrees Fahrenheit to whole degrees * degrees Fahrenheit to whole degrees
* humidity to 5% * humidity to 5%
## Full Example ## Example
You can use the discovery functionality of the binding to obtain the deviceId and structureId values for defining Nest things in files. You can use the discovery functionality of the binding to obtain the deviceId and structureId values for defining Nest things in files.
Another way to get the deviceId and structureId values is by querying the Nest API yourself. First [obtain an Access Token](https://developers.nest.com/documentation/cloud/sample-code-auth) (or use the Access Token obtained by the binding). Then use it with one of the [API Read Examples](https://developers.nest.com/documentation/cloud/how-to-read-data). Another way to get the deviceId and structureId values is by querying the Nest API yourself. First [obtain an Access Token](https://developers.nest.com/documentation/cloud/sample-code-auth) (or use the Access Token obtained by the binding).
Then use it with one of the [API Read Examples](https://developers.nest.com/documentation/cloud/how-to-read-data).
### demo.things: ### demo.things:
@ -208,10 +220,9 @@ String Home_TZ "Time Zone [%s]"
## Known Issues ## Known Issues
1. The binding uses Celsius as unit for all Themostat temperature channels. 1. The binding uses Celsius as unit for all Themostat temperature channels.
2. Deletion of devices or structures from the connected Nest account is currently not properly handled. The channel and online states of affected Things keep their last known values. 2. Deletion of devices or structures from the connected Nest account is currently not properly handled. The channel and online states of affected Things keep their last known values.
## Attribution ## Attribution
This documentation contains parts written by John Cocula which were copied from the 1.0 Nest binding. This documentation contains parts written by John Cocula which were copied from the 1.0 Nest binding.

View File

@ -14,16 +14,17 @@ install: auto
{% include base.html %} {% include base.html %}
# Netatmo Binding # Netatmo Binding
The Netatmo binding integrates the following Netatmo products: The Netatmo binding integrates the following Netatmo products:
- *Personal Weather Station*. Reports temperature, humidity, air pressure, carbon dioxide concentration in the air, as well as the ambient noise level. - *Personal Weather Station*. Reports temperature, humidity, air pressure, carbon dioxide concentration in the air, as well as the ambient noise level.
- *Thermostat*. Reports ambient temperature, allow to check target temperature, consult and change furnace heating status. - *Thermostat*. Reports ambient temperature, allow to check target temperature, consult and change furnace heating status.
See http://www.netatmo.com/ for details on their product. See http://www.netatmo.com/ for details on their product.
## Binding Configuration ## Binding Configuration
The binding has no configuration options itself, all configuration is done at 'Things' level but before, you'll have to grant openHab to access Netatmo API. Here is the procedure: The binding has no configuration options itself, all configuration is done at 'Things' level but before, you'll have to grant openHab to access Netatmo API. Here is the procedure:
### 1. Application Creation ### 1. Application Creation
@ -36,24 +37,47 @@ The variables you'll need to get to setup the binding are:
* `<CLIENT_SECRET>` A token provided along with the `<CLIENT_ID>`. * `<CLIENT_SECRET>` A token provided along with the `<CLIENT_ID>`.
* `<USERNAME>` The username you use to connect to the Netatmo API (usually your mail address). * `<USERNAME>` The username you use to connect to the Netatmo API (usually your mail address).
* `<PASSWORD>` The password attached to the above username. * `<PASSWORD>` The password attached to the above username.
## 2. Bridge and Things Configuration ## 2. Bridge and Things Configuration
Once you'll get needed informations from the Netatmo API, you'll be able to configure bridge and things. Once you'll get needed informations from the Netatmo API, you'll be able to configure bridge and things.
E.g. E.g.
``` ```
Bridge netatmo:netatmoapi:home [ clientId="<CLIENT_ID>", clientSecret="<CLIENT_SECRET>", username = "<USERNAME>", password = "<PASSWORD>", readStation=true|false, readHealthyHomeCoach=true|false, readThermostat=true|false] { Bridge netatmo:netatmoapi:home [ clientId="<CLIENT_ID>", clientSecret="<CLIENT_SECRET>", username = "<USERNAME>", password = "<PASSWORD>", readStation=true|false, readHealthyHomeCoach=true|false, readThermostat=true|false, readWelcome=true|false] {
Thing NAMain inside [ equipmentId="aa:aa:aa:aa:aa:aa", [refreshInterval=60000] ] Thing NAMain inside [ id="aa:aa:aa:aa:aa:aa" ]
Thing NAModule1 outside [ equipmentId="yy:yy:yy:yy:yy:yy", parentId="aa:aa:aa:aa:aa:aa" ] Thing NAModule1 outside [ id="yy:yy:yy:yy:yy:yy", parentId="aa:aa:aa:aa:aa:aa" ]
Thing NHC homecoach [ equipmentId="cc:cc:cc:cc:cc:cc", [refreshInterval=60000] ] Thing NHC homecoach [ id="cc:cc:cc:cc:cc:cc", [refreshInterval=60000] ]
Thing NAPlug plugtherm [ equipmentId="bb:bb:bb:bb:bb:bb", [refreshInterval=60000] ] Thing NAPlug plugtherm [ id="bb:bb:bb:bb:bb:bb", [refreshInterval=60000] ]
Thing NATherm1 thermostat [ equipmentId="xx:xx:xx:xx:xx:xx", parentId="bb:bb:bb:bb:bb:bb" ] Thing NATherm1 thermostat [ id="xx:xx:xx:xx:xx:xx", parentId="bb:bb:bb:bb:bb:bb" ]
Thing NAWelcomeHome home [ id="58yyacaaexxxebca99x999x", refreshInterval=600000 ]
Thing NACamera camera [ id="cc:cc:cc:cc:cc:cc", parentId="58yyacaaexxxebca99x999x" ]
Thing NAWelcomePerson sysadmin [ id="aaaaaaaa-bbbb-cccc-eeee-zzzzzzzzzzzz", parentId="58yyacaaexxxebca99x999x" ]
... ...
} }
``` ```
### Webhook
For Welcome or Presence Camera, Netatmo servers can send push notifications to the Netatmo Binding by using a callback URL.
The webhook URL is setup at bridge level using "Webhook Address" parameter. You'll define here public way to access your OH2 server:
```
http(s)://xx.yy.zz.ww:8080
```
Your Netatmo App will be configured automatically by the bridge to the endpoint :
```
http(s)://xx.yy.zz.ww:8080/netatmo/camera
```
Please be aware of Netatmo own limits regarding webhook usage that lead to a 24h ban-time when webhook does not answer 5 times.
### Configure Things ### Configure Things
The IDs for the modules can be extracted from the developer documentation on the netatmo site. The IDs for the modules can be extracted from the developer documentation on the netatmo site.
@ -61,7 +85,7 @@ First login with your user. Then some examples of the documentation contain the
`main_device` is the ID of the "main device", the indoor sensor. This is equal to the MAC address of the Netatmo. `main_device` is the ID of the "main device", the indoor sensor. This is equal to the MAC address of the Netatmo.
The other modules you can recognize by "module_name" and then note the "_id" which you need later. The other modules you can recognize by "module_name" and then note the "\_id" which you need later.
**Another way to get the IDs is to calculate them:** **Another way to get the IDs is to calculate them:**
@ -76,21 +100,28 @@ split the rest into three parts of two characters and append with a colon as del
For example your serial number "h00bcdc" should end up as "02:00:00:00:bc:dc". For example your serial number "h00bcdc" should end up as "02:00:00:00:bc:dc".
## Discovery ## Discovery
If you don't manually create things in the *.things file, the Netatmo Binding is able to discover automatically all depending modules and devices from Netatmo website. If you don't manually create things in the *.things file, the Netatmo Binding is able to discover automatically all depending modules and devices from Netatmo website.
## Channels ## Channels
### Weather Station Main Indoor Device ### Weather Station Main Indoor Device
#### Configuration
Weather station does not need any refreshInterval setting. Based on a standard update period of 10mn by Netatmo systems - it will auto adapt to stick closest as possible to last data availability.
Example item for the **indoor module**: Example item for the **indoor module**:
``` ```
Number Netatmo_Indoor_CO2 "CO2" <carbondioxide> { channel = "netatmo:NAMain:home:inside:Co2" } Number Netatmo_Indoor_CO2 "CO2" <carbondioxide> { channel = "netatmo:NAMain:home:inside:Co2" }
``` ```
**Supported types for the indoor module:** **Supported channels for the indoor module:**
* Temperature * Temperature
* TemperatureTrend * TemperatureTrend
@ -112,7 +143,8 @@ Number Netatmo_Indoor_CO2 "CO2" <carbondioxide> { channel = "netatmo:NAMain:home
* MaxTemp * MaxTemp
* DateMinTemp * DateMinTemp
* DateMaxTemp * DateMaxTemp
### Weather Station Outdoor module ### Weather Station Outdoor module
Example item for the **outdoor module** Example item for the **outdoor module**
@ -121,18 +153,18 @@ Example item for the **outdoor module**
Number Netatmo_Outdoor_Temperature "Temperature" { channel = "netatmo:NAModule1:home:outside:Temperature" } Number Netatmo_Outdoor_Temperature "Temperature" { channel = "netatmo:NAModule1:home:outside:Temperature" }
``` ```
**Supported types for the outdoor module:** **Supported channels for the outdoor module:**
* Temperature * Temperature
* TemperatureTrend * TemperatureTrend
* Humidity * Humidity
* RfStatus * RfStatus
* BatteryVP * BatteryVP
* TimeStamp
* Humidex * Humidex
* HeatIndex * HeatIndex
* Dewpoint * Dewpoint
* DewpointDepression * DewpointDepression
* TimeStamp
* LastMessage * LastMessage
* LowBattery * LowBattery
* MinTemp * MinTemp
@ -140,6 +172,7 @@ Number Netatmo_Outdoor_Temperature "Temperature" { channel = "netatmo:NAModule1:
* DateMinTemp * DateMinTemp
* DateMaxTemp * DateMaxTemp
### Weather Station Additional Indoor module ### Weather Station Additional Indoor module
Example item for the **indoor module** Example item for the **indoor module**
@ -148,7 +181,7 @@ Example item for the **indoor module**
Number Netatmo_Indoor2_Temperature "Temperature" { channel = "netatmo:NAModule4:home:insidesupp:Temperature" } Number Netatmo_Indoor2_Temperature "Temperature" { channel = "netatmo:NAModule4:home:insidesupp:Temperature" }
``` ```
**Supported types for the additional indoor module:** **Supported channels for the additional indoor module:**
* Temperature * Temperature
* TemperatureTrend * TemperatureTrend
@ -156,11 +189,11 @@ Number Netatmo_Indoor2_Temperature "Temperature" { channel = "netatmo:NAModule4:
* Co2 * Co2
* RfStatus * RfStatus
* BatteryVP * BatteryVP
* TimeStamp
* Humidex * Humidex
* HeatIndex * HeatIndex
* Dewpoint * Dewpoint
* DewpointDepression * DewpointDepression
* TimeStamp
* LastMessage * LastMessage
* LowBattery * LowBattery
* MinTemp * MinTemp
@ -168,19 +201,21 @@ Number Netatmo_Indoor2_Temperature "Temperature" { channel = "netatmo:NAModule4:
* DateMinTemp * DateMinTemp
* DateMaxTemp * DateMaxTemp
### Rain
### Rain Gauge
Example item for the **rain gauge** Example item for the **rain gauge**
``` ```
Number Netatmo_Rain_Current "Rain [%.1f mm]" { channel = "netatmo:NAModule3:home:rain:Rain" } Number Netatmo_Rain_Current "Rain [%.1f mm]" { channel = "netatmo:NAModule3:home:rain:Rain" }
``` ```
**Supported types for the rain guage:** **Supported channels for the rain guage:**
* Rain * Rain
* Rain1 * Rain1
* Rain24 * Rain24
* TimeStamp
* RfStatus * RfStatus
* BatteryVP * BatteryVP
* LastMessage * LastMessage
@ -194,7 +229,7 @@ Example item for the **wind module**:
Number Netatmo_Wind_Strength "Wind Strength [%.0f KPH]" { channel = "netatmo:NAModule2:home:wind:WindStrength" } Number Netatmo_Wind_Strength "Wind Strength [%.0f KPH]" { channel = "netatmo:NAModule2:home:wind:WindStrength" }
``` ```
**Supported types for the wind module:** **Supported channels for the wind module:**
* WindStrength * WindStrength
* WindAngle * WindAngle
@ -202,6 +237,7 @@ Number Netatmo_Wind_Strength "Wind Strength [%.0f KPH]" { channel = "netatmo:NAM
* GustAngle * GustAngle
* LastMessage * LastMessage
* LowBattery * LowBattery
* TimeStamp
* RfStatus * RfStatus
* BatteryVP * BatteryVP
@ -213,7 +249,7 @@ Example item for the **Healthy Home Coach**:
String Netatmo_LivingRoom_HomeCoach_HealthIndex "Climate" { channel = "netatmo:NHC:home:livingroom:HealthIndex" } String Netatmo_LivingRoom_HomeCoach_HealthIndex "Climate" { channel = "netatmo:NHC:home:livingroom:HealthIndex" }
``` ```
**Supported types for the healthy home coach device:** **Supported channels for the healthy home coach device:**
* HealthIndex * HealthIndex
* Temperature * Temperature
@ -233,9 +269,10 @@ String Netatmo_LivingRoom_HomeCoach_HealthIndex "Climate" { channel = "netatmo:N
* DateMinTemp * DateMinTemp
* DateMaxTemp * DateMaxTemp
### Thermostat Relay Device ### Thermostat Relay Device
**Supported types for the thermostat relay device:** **Supported channels for the thermostat relay device:**
* LastStatusStore * LastStatusStore
* WifiStatus * WifiStatus
@ -244,9 +281,10 @@ String Netatmo_LivingRoom_HomeCoach_HealthIndex "Climate" { channel = "netatmo:N
* LastPlugSeen * LastPlugSeen
* LastBilan * LastBilan
### Thermostat Module ### Thermostat Module
**Supported types for the thermostat module:** **Supported channels for the thermostat module:**
* Temperature * Temperature
* SetpointTemperature * SetpointTemperature
@ -255,8 +293,68 @@ String Netatmo_LivingRoom_HomeCoach_HealthIndex "Climate" { channel = "netatmo:N
* BoilerOff * BoilerOff
* TimeStamp * TimeStamp
### Welcome Home
This part of the binding will require basic read_camera and access_camera scopes. write_camera will only be needed to changed some channels from within OH2 (detailed below).
**Supported channels for the Home thing:**
* welcomeHomeCity
* welcomeHomeCountry
* welcomeHomeTimezone
* welcomeHomePersonCount
* welcomeHomeUnknownCount
* welcomeEventType
* welcomeEventTime
* welcomeEventCameraId
* welcomeEventPersonId
* welcomeEventVideoStatus
* welcomeEventIsArrival
* welcomeEventMessage
* welcomeEventSubType
* welcomeEventSnapshot : picture of the last event, if it applies.
* welcomeEventSnapshotURL : if the last event (depending upon event type) in the home lead a a snapshot picture, it will be available here.
* welcomeEventVideoURL : the last event (depending upon event type) in the home lead a a snapshot picture, the corresponding videoo will be available here.
### Welcome Camera
**Supported channels for the Camera thing:**
* welcomeCameraStatus
* welcomeCameraSdStatus
* welcomeCameraAlimStatus
* welcomeCameraIsLocal : indicates wether the camera is on the same network than the openHab Netatmo Binding
* welcomeCameraLivePicture : current image snapshot
* welcomeCameraLivePictureUrl : url of the current image
* welcomeCameraLiveStreamUrl : url of the feed for live video
### Welcome Person
Netatmo API distinguishes two kinds of persons:
* Known persons : have been identified by the camera and you have defined a name for those.
* Unknown persons : identified by the camera, but no name defined.
Person things are automatically created in discovery process for all known persons.
**Supported channels for the Person thing:**
* welcomePersonLastSeen
* welcomePersonAtHome. Indicates if this person is known to be at home or not. Modifying this value from OH2 requires the "write_camera" in the Netatmo App scope. Warning : while setting person away is fine, the contrary does not seem supported officialy by Netatmo API.
* welcomePersonAvatarUrl
* welcomePersonAvatar
* welcomePersonLastEventMessage
* welcomePersonLastEventTime
* welcomePersonLastEvent
* welcomePersonLastEventUrl
# Configuration Examples # Configuration Examples
## transform/netatmo_unit_en.map ## transform/netatmo_unit_en.map
``` ```
@ -264,6 +362,7 @@ String Netatmo_LivingRoom_HomeCoach_HealthIndex "Climate" { channel = "netatmo:N
1=Imperial 1=Imperial
``` ```
## transform/netatmo_pressureunit.map ## transform/netatmo_pressureunit.map
``` ```
@ -272,6 +371,7 @@ String Netatmo_LivingRoom_HomeCoach_HealthIndex "Climate" { channel = "netatmo:N
2=mmHg 2=mmHg
``` ```
## transform/netatmo_windunit.map ## transform/netatmo_windunit.map
``` ```
@ -282,17 +382,19 @@ String Netatmo_LivingRoom_HomeCoach_HealthIndex "Climate" { channel = "netatmo:N
4=Knot 4=Knot
``` ```
## things/netatmo.things ## things/netatmo.things
``` ```
// Bridge configuration: // Bridge configuration:
Bridge netatmo:netatmoapi:home "Netatmo API" [ clientId="*********", clientSecret="**********", username = "me@example.com", password = "******", readStation=true, readThermostat=false] { Bridge netatmo:netatmoapi:home "Netatmo API" [ clientId="*********", clientSecret="**********", username = "me@example.com", password = "******", readStation=true, readThermostat=false] {
// Thing configuration: // Thing configuration:
Thing netatmo:NAMain:home:inside "Netatmo Inside" [ equipmentId="aa:aa:aa:aa:aa:aa" ] Thing netatmo:NAMain:home:inside "Netatmo Inside" [ id="aa:aa:aa:aa:aa:aa" ]
Thing netatmo:NAModule1:home:outside "Netatmo Outside" [ equipmentId="bb:bb:bb:bb:bb:bb", parentId="aa:aa:aa:aa:aa:aa" ] Thing netatmo:NAModule1:home:outside "Netatmo Outside" [ id="bb:bb:bb:bb:bb:bb", parentId="aa:aa:aa:aa:aa:aa" ]
} }
``` ```
## items/netatmo.items ## items/netatmo.items
``` ```
@ -330,6 +432,7 @@ DateTime Netatmo_Outdoor_TimeStamp "TimeStamp [%1$td.%1$tm.%1$tY %1$tH:%1
DateTime Netatmo_Outdoor_LastMessage "LastMessage [%1$td.%1$tm.%1$tY %1$tH:%1$tM]" <text> { channel = "netatmo:NAModule1:home:outside:LastMessage" } DateTime Netatmo_Outdoor_LastMessage "LastMessage [%1$td.%1$tm.%1$tY %1$tH:%1$tM]" <text> { channel = "netatmo:NAModule1:home:outside:LastMessage" }
``` ```
## sitemaps/netatmo.sitemap ## sitemaps/netatmo.sitemap
``` ```
@ -371,8 +474,10 @@ sitemap netatmo label="Netatmo"
} }
``` ```
# Common problems # Common problems
## Missing Certificate Authority ## Missing Certificate Authority
This version of the binding has been modified to avoid the need to impoort StartCom certificate in the local JDK certificate store. This version of the binding has been modified to avoid the need to impoort StartCom certificate in the local JDK certificate store.
@ -427,19 +532,20 @@ If it's set correctly then you should see something similar to:
Now try and rerun the keytool command. If you didn't get errors, you should be good to go [source](http://jinahya.wordpress.com/2013/04/28/installing-the-startcom-ca-certifcate-into-the-local-jdk/). Now try and rerun the keytool command. If you didn't get errors, you should be good to go [source](http://jinahya.wordpress.com/2013/04/28/installing-the-startcom-ca-certifcate-into-the-local-jdk/).
Alternative approach if above solution does not work: Alternative approach if above solution does not work:
``` ```
sudo keytool -delete -alias StartCom-Root-CA -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit sudo keytool -delete -alias StartCom-Root-CA -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit
``` ```
Download the certificate from https://api.netatmo.net to `$JAVA_HOME/jre/lib/security/` and save it as api.netatmo.net.crt (X.509 / PEM). Download the certificate from https://api.netatmo.net to `$JAVA_HOME/jre/lib/security/` and save it as api.netatmo.net.crt (X.509 / PEM).
``` ```
sudo $JAVA_HOME/bin/keytool -import -keystore $JAVA_HOME/jre/lib/security/cacerts -alias StartCom-Root-CA -file api.netatmo.net.crt sudo $JAVA_HOME/bin/keytool -import -keystore $JAVA_HOME/jre/lib/security/cacerts -alias StartCom-Root-CA -file api.netatmo.net.crt
``` ```
The password is "changeit". The password is "changeit".
# Sample data # Sample data
If you want to evaluate this binding but have not got a Netatmo station yourself If you want to evaluate this binding but have not got a Netatmo station yourself
@ -447,16 +553,19 @@ yet, you can add the Netatmo office in Paris to your account:
http://www.netatmo.com/en-US/addguest/index/TIQ3797dtfOmgpqUcct3/70:ee:50:00:02:20 http://www.netatmo.com/en-US/addguest/index/TIQ3797dtfOmgpqUcct3/70:ee:50:00:02:20
# Icons # Icons
The following icons are used by original Netatmo web app: The following icons are used by original Netatmo web app:
## Modules ## Modules
- http://my.netatmo.com/img/my/app/module_int.png - http://my.netatmo.com/img/my/app/module_int.png
- http://my.netatmo.com/img/my/app/module_ext.png - http://my.netatmo.com/img/my/app/module_ext.png
- http://my.netatmo.com/img/my/app/module_rain.png - http://my.netatmo.com/img/my/app/module_rain.png
## Battery status ## Battery status
- http://my.netatmo.com/img/my/app/battery_verylow.png - http://my.netatmo.com/img/my/app/battery_verylow.png
@ -465,6 +574,7 @@ The following icons are used by original Netatmo web app:
- http://my.netatmo.com/img/my/app/battery_high.png - http://my.netatmo.com/img/my/app/battery_high.png
- http://my.netatmo.com/img/my/app/battery_full.png - http://my.netatmo.com/img/my/app/battery_full.png
## Signal status ## Signal status
- http://my.netatmo.com/img/my/app/signal_verylow.png - http://my.netatmo.com/img/my/app/signal_verylow.png
@ -473,6 +583,7 @@ The following icons are used by original Netatmo web app:
- http://my.netatmo.com/img/my/app/signal_high.png - http://my.netatmo.com/img/my/app/signal_high.png
- http://my.netatmo.com/img/my/app/signal_full.png - http://my.netatmo.com/img/my/app/signal_full.png
## Wifi status ## Wifi status
- http://my.netatmo.com/img/my/app/wifi_low.png - http://my.netatmo.com/img/my/app/wifi_low.png

View File

@ -21,10 +21,10 @@ This happens by either using [ping](https://en.wikipedia.org/wiki/Ping_%28networ
You can use the following configuration options: You can use the following configuration options:
- **allowSystemPings:** Use the external ICMP ping program of the operating system, instead of the Java ping. Useful if the devices cannot be reached by Java ping. Default is true. - **allowSystemPings:** Use the external ICMP ping program of the operating system, instead of the Java ping. Useful if the devices cannot be reached by Java ping. Default is true.
- **allowDHCPlisten:** If devices leave and reenter a network, they usually request their last IPv4 address by using DHCP requests. If we listen for those messages, we can make the status update more "real-time" and do not have to wait for the next refresh cycle. Default is true. - **allowDHCPlisten:** If devices leave and reenter a network, they usually request their last IPv4 address by using DHCP requests. If we listen for those messages, we can make the status update more "real-time" and do not have to wait for the next refresh cycle. Default is true.
- **arpPingToolPath:** If your arp ping tool is not called arping and cannot be found in the PATH environment, you can configure the absolute path here. Default is "arping". - **arpPingToolPath:** If your arp ping tool is not called arping and cannot be found in the PATH environment, you can configure the absolute path here. Default is "arping".
- **cacheDeviceStateTimeInMS:** The result of a device presence detection is cached for a small amount of time. Set this time here in milliseconds. Be aware that no new pings will be issued within this time frame, even if explicitly requested. Default is 2000. - **cacheDeviceStateTimeInMS:** The result of a device presence detection is cached for a small amount of time. Set this time here in milliseconds. Be aware that no new pings will be issued within this time frame, even if explicitly requested. Default is 2000.
Create a file *org.openHAB.binding.network.cfg* in your openHAB/etc directory and use the above options like this: Create a file *org.openHAB.binding.network.cfg* in your openHAB/etc directory and use the above options like this:
@ -34,12 +34,13 @@ allowSystemPings=false
## Supported Things ## Supported Things
- **pingdevice:** Detects device presence by using icmp pings, arp pings and dhcp packet sniffing. - **pingdevice:** Detects device presence by using icmp pings, arp pings and dhcp packet sniffing.
- **servicedevice:** Detects device presence by scanning for a specific open tcp port. - **servicedevice:** Detects device presence by scanning for a specific open tcp port.
## Discovery ## Discovery
Auto discovery can be used to scan the local network for **pingdevice** things by sending a ping to every IP on the network. Some network tools will identify this as a network intruder alarm, therefore automatic background discovery is disabled and a manual scan needs to be issued. Auto discovery can be used to scan the local network for **pingdevice** things by sending a ping to every IP on the network.
Some network tools will identify this as a network intruder alarm, therefore automatic background discovery is disabled and a manual scan needs to be issued.
Please note: things discovered by the network binding will be provided with a time to live (TTL) and will automatically disappear from the Inbox after 10 minutes. Please note: things discovered by the network binding will be provided with a time to live (TTL) and will automatically disappear from the Inbox after 10 minutes.
@ -55,34 +56,45 @@ network:servicedevice:important_server [ hostname="192.168.0.62", port=1234 ]
Use the following options for a **network:pingdevice**: Use the following options for a **network:pingdevice**:
- **hostname:** IP address or hostname of the device - **hostname:** IP address or hostname of the device
- **retry:** After how many refresh interval cycles shall the device be assumed as offline. Default is 1. - **retry:** After how many refresh interval cycles shall the device be assumed as offline. Default is 1.
- **timeout:** How long shall the ping wait for an answer (in milliseconds. Default: `5000` = 5 seconds) - **timeout:** How long shall the ping wait for an answer (in milliseconds. Default: `5000` = 5 seconds)
- **refreshInterval:** How often shall the device be checked (in milliseconds. Default: `60000` = one minute) - **refreshInterval:** How often shall the device be checked (in milliseconds. Default: `60000` = one minute)
Use the following additional options for a **network:servicedevice**: Use the following additional options for a **network:servicedevice**:
- **port:** Must not be 0. The destination port needs to be a TCP service. - **port:** Must not be 0. The destination port needs to be a TCP service.
## Presence detection - Configure target device ## Presence detection - Configure target device
You may need to configure devices to be reachable. A device may not answer ping requests by default. This is the case with Windows 10 equipped systems or Android and iOS devices in deep sleep mode. You may need to configure devices to be reachable.
A device may not answer ping requests by default.
This is the case with Windows 10 equipped systems or Android and iOS devices in deep sleep mode.
### Respond to pings on Windows 10+ ### Respond to pings on Windows 10+
Pings on windows 10 are usually blocked by the internal firewall. You need to allow "Echo Request for ICMPv4" to allow your windows to respond to pings. Pings on windows 10 are usually blocked by the internal firewall.
You need to allow "Echo Request for ICMPv4" to allow your windows to respond to pings.
### Android and iOS devices ### Android and iOS devices
Because mobile devices put themselves in a deep sleep mode after some inactivity, they do not react to normal ICMP pings. Configure ARP ping to realize presence detection for those devices. This only works if your devices have WIFI enabled, have been configured to use your home WIFI network, and have the option "Disable wifi in standby" disabled (default). An almost immediate presence detection for phones and tables, if they (re)join the home Wifi network, is to use DHCP listen. Because mobile devices put themselves in a deep sleep mode after some inactivity, they do not react to normal ICMP pings.
Configure ARP ping to realize presence detection for those devices.
This only works if your devices have WIFI enabled, have been configured to use your home WIFI network, and have the option "Disable wifi in standby" disabled (default).
An almost immediate presence detection for phones and tables, if they (re)join the home Wifi network, is to use DHCP listen.
### iPhones, iPads ### iPhones, iPads
Apple iOS devices are usually in a deep sleep mode and do not respond to ARP pings under all conditions, but to Bonjour service discovery messages (UDP port 5353). Therefore first a Bonjour message is send, before the ARP presence detection is performed. The binding automatically figures out if the target device is an iOS device. You can check if the binding has correctly recognised your device by having a look at the *uses_ios_wakeup* property of your thing. An almost immediate presence detection for phones and tables, if they (re)join the home Wifi network, is to use DHCP listen. Apple iOS devices are usually in a deep sleep mode and do not respond to ARP pings under all conditions, but to Bonjour service discovery messages (UDP port 5353).
Therefore first a Bonjour message is send, before the ARP presence detection is performed.
The binding automatically figures out if the target device is an iOS device.
You can check if the binding has correctly recognised your device by having a look at the *uses_ios_wakeup* property of your thing.
An almost immediate presence detection for phones and tables, if they (re)join the home Wifi network, is to use DHCP listen.
### Use open TCP ports ### Use open TCP ports
Many devices provide services on TCP ports (web-frontends, streaming servers, ...), which you can use to confirm there presence in the network. Most operating systems have options to list open ports. Many devices provide services on TCP ports (web-frontends, streaming servers, ...), which you can use to confirm there presence in the network.
Most operating systems have options to list open ports.
On a linux-based system, you may use *nmap* to discover all open TCP ports on the device with the specified IP address: On a linux-based system, you may use *nmap* to discover all open TCP ports on the device with the specified IP address:
``` ```
@ -117,23 +129,25 @@ Because we use external tools for some of the presence detection mechanism or ne
For arp pings to work, you need a separate tool, called "arping". For arp pings to work, you need a separate tool, called "arping".
On Linux there exists three different tools: On Linux there exists three different tools:
* arp-scan (not yet supported by this binding) * arp-scan (not yet supported by this binding)
* arping of the ip-utils (Ubuntu/Debian: `apt-get install iputils-arping`) * arping of the ip-utils (Ubuntu/Debian: `apt-get install iputils-arping`)
* arping by Thomas Habets (Ubuntu/Debian: `apt-get install arping`) * arping by Thomas Habets (Ubuntu/Debian: `apt-get install arping`)
arping by Thomas Habets runs on Windows and MacOS as well. arping by Thomas Habets runs on Windows and MacOS as well.
Make sure the tool is available in $PATH (%PATH% respectively on Windows) or in the same path as the openHAB executable. Make sure the tool is available in $PATH (%PATH% respectively on Windows) or in the same path as the openHAB executable.
On Linux and MacOS you might need elevated access permissions, for instance by making the executable a suid executable (`chmod u+s /usr/sbin/arping`). Just test the executable on the command line, if `sudo` is required, you need to grant elevated permissions. On Linux and MacOS you might need elevated access permissions, for instance by making the executable a suid executable (`chmod u+s /usr/sbin/arping`).
Just test the executable on the command line, if `sudo` is required, you need to grant elevated permissions.
### DHCP Listen ### DHCP Listen
If devices leave and reenter a network, they usually request their last IPv4 address by using DHCP requests. If we listen for those messages, we can make the status update more "real-time" and do not have to wait for the next refresh cycle. If devices leave and reenter a network, they usually request their last IPv4 address by using DHCP requests.
If we listen for those messages, we can make the status update more "real-time" and do not have to wait for the next refresh cycle.
Some operating systems such as Linux restrict applications to only use ports >= 1024 without elevated privileges. Some operating systems such as Linux restrict applications to only use ports >= 1024 without elevated privileges.
If the binding is not able to use port 67 (DHCP), because of such a restriction or because the same system is used If the binding is not able to use port 67 (DHCP), because of such a restriction or because the same system is used as a DHCP server, port 6767 will be used instead.
as a DHCP server, port 6767 will be used instead. Check the property *dhcp_state* on your thing for such a hint. You need to establish a port forwarding in this case: Check the property *dhcp_state* on your thing for such a hint. You need to establish a port forwarding in this case:
```shell ```shell
sysctl -w net.ipv4.ip_forward=1 sysctl -w net.ipv4.ip_forward=1
@ -159,7 +173,7 @@ Things support the following channels:
| lastseen | DateTime | The last seen date/time of the device in question. May be 1. Jan 1970 if no time is known. | | lastseen | DateTime | The last seen date/time of the device in question. May be 1. Jan 1970 if no time is known. |
| latency | Number | This channel indicates the ping latency in milliseconds. May be 0 if no time is known. | | latency | Number | This channel indicates the ping latency in milliseconds. May be 0 if no time is known. |
## Full Example ## Example
demo.things: demo.things:

View File

@ -17,8 +17,10 @@ install: auto
The Niko Home Control binding integrates with a [Niko Home Control](http://www.nikohomecontrol.be/) system through a Niko Home Control IP-interface. The Niko Home Control binding integrates with a [Niko Home Control](http://www.nikohomecontrol.be/) system through a Niko Home Control IP-interface.
The binding has been tested with a Niko Home Control IP-interface (550-00508). This IP-interface provides access on the LAN. The binding does The binding has been tested with a Niko Home Control IP-interface (550-00508).
not require a Niko Home Control Gateway (550-00580), but does work with it in the LAN. It will not make a remote connection. This IP-interface provides access on the LAN.
The binding does not require a Niko Home Control Gateway (550-00580), but does work with it in the LAN.
It will not make a remote connection.
It has also been confirmed to work with the Niko Home Control Connected Controller (550-00003). It has also been confirmed to work with the Niko Home Control Connected Controller (550-00003).
The binding exposes all actions from the Niko Home Control System that can be triggered from the smartphone/tablet interface, as defined in the Niko Home Control programming software. The binding exposes all actions from the Niko Home Control System that can be triggered from the smartphone/tablet interface, as defined in the Niko Home Control programming software.
@ -33,26 +35,33 @@ Connected to a bridge, the Niko Home Control Binding supports on/off actions (e.
## Binding Configuration ## Binding Configuration
The bridge representing the Niko Home Control IP-interface needs to be added first in the things file or through Paper UI. A bridge can be auto-discovered or created manually. No bridge configuration is required when using auto-discovery. The bridge representing the Niko Home Control IP-interface needs to be added first in the things file or through Paper UI.
A bridge can be auto-discovered or created manually.
No bridge configuration is required when using auto-discovery.
The IP-address and port can be set when manually creating the bridge. The IP-address and port can be set when manually creating the bridge.
If the IP-address is set, no attempt will be made to discover the correct IP-address. You are responsible to force a fixed IP address on the Niko Home Control IP-interface through settings in your DHCP server. If the IP-address is set, no attempt will be made to discover the correct IP-address.
ou are responsible to force a fixed IP address on the Niko Home Control IP-interface through settings in your DHCP server.
The port is set to 8000 by default and should match the port used by the Niko Home Control IP-interface. The port is set to 8000 by default and should match the port used by the Niko Home Control IP-interface.
An optional refresh interval will be used to restart the bridge at regular intervals (every 300 minutes by default). Restarting the bridge at regular times improves the connection stability and avoids loss of connection. It can be turned off completely. An optional refresh interval will be used to restart the bridge at regular intervals (every 300 minutes by default).
Restarting the bridge at regular times improves the connection stability and avoids loss of connection. It can be turned off completely.
## Discovery ## Discovery
A discovery scan will first discover the Niko Home Control IP-interface in the network as a bridge. Default parameters will be used. Note that this may fail to find the correct Niko Home Control IP-interface when there are multiple IP-interfaces in the network. A discovery scan will first discover the Niko Home Control IP-interface in the network as a bridge.
Default parameters will be used.
Note that this may fail to find the correct Niko Home Control IP-interface when there are multiple IP-interfaces in the network.
When the Niko Home Control bridge is added as a thing, from the discovery inbox or manually, system information will be read from the Niko Home Control Controller and will be put in the bridge properties, visible through Paper UI. When the Niko Home Control bridge is added as a thing, from the discovery inbox or manually, system information will be read from the Niko Home Control Controller and will be put in the bridge properties, visible through Paper UI.
Subsequently, all defined actions that can be triggered from a smartphone/tablet in the Niko Home Control system will be discovered and put in the inbox. Subsequently, all defined actions that can be triggered from a smartphone/tablet in the Niko Home Control system will be discovered and put in the inbox.
It is possible to trigger a manual scan for things on the Niko Home Control bridge. It is possible to trigger a manual scan for things on the Niko Home Control bridge.
If the Niko Home Control system has locations configured, these will be copied to thing locations and grouped as such in PaperUI. Locations can subsequently be changed through the thing location paramter in PaperUI. If the Niko Home Control system has locations configured, these will be copied to thing locations and grouped as such in PaperUI.
Locations can subsequently be changed through the thing location paramter in PaperUI.
## Thing Configuration ## Thing Configuration
@ -67,7 +76,9 @@ Bridge nikohomecontrol:bridge:<bridgeId> [ addr="<IP-address of IP-interface>",
`bridgeId` can have any value. `bridgeId` can have any value.
`addr` is the fixed Niko Home Control IP-interface address and is required. `port` will be the port used to connect and is 8000 by default. `refresh` is the interval to restart the communication in minutes (300 by default), if 0 or omitted the connection will not restart at regular intervals. `addr` is the fixed Niko Home Control IP-interface address and is required.
`port` will be the port used to connect and is 8000 by default.
`refresh` is the interval to restart the communication in minutes (300 by default), if 0 or omitted the connection will not restart at regular intervals.
The thing configuration for the actions has the following syntax: The thing configuration for the actions has the following syntax:
@ -83,7 +94,7 @@ or nested in the bridge configuration:
<thing type> <thingId> "Label" @ "Location" [ actionId=<Niko Home Control action ID>, <thing type> <thingId> "Label" @ "Location" [ actionId=<Niko Home Control action ID>,
step=<dimmer increase/decrease step value> ] step=<dimmer increase/decrease step value> ]
``` ```
The following thing types are valid for configuration: The following thing types are valid for configuration:
``` ```
@ -96,30 +107,39 @@ onOff, dimmer, blind
`@ "Location"` is optional, and represents the location of the thing. Auto-discovery would have assigned a value automatically. `@ "Location"` is optional, and represents the location of the thing. Auto-discovery would have assigned a value automatically.
The `actionId` parameter is the unique ip Interface Object ID (`ipInterfaceObjectId`) as automatically assigned in the Niko Home Control Controller when programming the Niko Home Control system using the Niko Home Control programming software. It is not directly visible in the Niko Home Control programming or user software, but will be detected and automatically set by openHAB discovery. For textual configuration, you can be manually retrieve it from the content of the .nhcp configuration file created by the programming software. Open the file with an unzip tool to read it's content. The `actionId` parameter is the unique ip Interface Object ID (`ipInterfaceObjectId`) as automatically assigned in the Niko Home Control Controller when programming the Niko Home Control system using the Niko Home Control programming software.
It is not directly visible in the Niko Home Control programming or user software, but will be detected and automatically set by openHAB discovery.
For textual configuration, you can be manually retrieve it from the content of the .nhcp configuration file created by the programming software.
Open the file with an unzip tool to read it's content.
The `step` parameter is only available for dimmers. It sets a step value for dimmer increase/decrease actions. The parameter is optional and set to 10 by default. The `step` parameter is only available for dimmers.
It sets a step value for dimmer increase/decrease actions. The parameter is optional and set to 10 by default.
## Channels ## Channels
For thing type `onOff` the supported channel is `switch`. OnOff command types are supported. For thing type `onOff` the supported channel is `switch`.
OnOff command types are supported.
For thing type `dimmer` the supported channel is `brightness`. OnOff, IncreaseDecrease and Percent command types are supported. Note that sending an ON command will switch the dimmer to the value stored when last turning the dimmer off, or 100% depending on the configuration in the Niko Home Control Controller. This can be changed with the Niko Home Control programming software. For thing type `dimmer` the supported channel is `brightness`.
OnOff, IncreaseDecrease and Percent command types are supported.
Note that sending an ON command will switch the dimmer to the value stored when last turning the dimmer off, or 100% depending on the configuration in the Niko Home Control Controller.
This can be changed with the Niko Home Control programming software.
For thing type `blind` the supported channel is `rollershutter`. UpDown, StopMove and Percent command types are supported. For thing type `blind` the supported channel is `rollershutter`. UpDown, StopMove and Percent command types are supported.
The bridge has two trigger channels `alarm` and `notice`. It can be used as a trigger to rules. The event message is the alarm or notice text coming from Niko Home Control. The bridge has two trigger channels `alarm` and `notice`.
It can be used as a trigger to rules. The event message is the alarm or notice text coming from Niko Home Control.
## Limitations ## Limitations
The binding has been tested with a Niko Home Control IP-interface (550-00508) and the Niko Home Control Connected Controller (550-00003). The binding has been tested with a Niko Home Control IP-interface (550-00508) and the Niko Home Control Connected Controller (550-00003).
The action events implemented are limited to onOff, dimmer and rollershutter or blinds. Other actions have not been implemented. The action events implemented are limited to onOff, dimmer and rollershutter or blinds.
Other actions have not been implemented.
It is not possible to tilt the slats of venetian blinds. It is not possible to tilt the slats of venetian blinds.
Beyond action events, the Niko Home Control communication also supports thermostats, electricity usage data and alarms. This has not been implemented. Beyond action events, the Niko Home Control communication also supports thermostats, electricity usage data and alarms.
This has not been implemented.
## Example ## Example

View File

@ -47,6 +47,7 @@ The ntp binding has two channels:
* `dateTime` which provides the data in a dateTime type * `dateTime` which provides the data in a dateTime type
* `string` which provides the data in a string type. The string channel can be configured with the formatting of the date & time. This also allows proper representation of timezones other than the java machine default one. * `string` which provides the data in a string type. The string channel can be configured with the formatting of the date & time. This also allows proper representation of timezones other than the java machine default one.
See the [java documentation](http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html) for the detailed information on the formatting See the [java documentation](http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html) for the detailed information on the formatting
@ -63,5 +64,4 @@ Items:
``` ```
DateTime Date "Date [%1$tA, %1$td.%1$tm.%1$tY %1$tH:%1$tM]" { channel="ntp:ntp:demo:dateTime" } DateTime Date "Date [%1$tA, %1$td.%1$tm.%1$tY %1$tH:%1$tM]" { channel="ntp:ntp:demo:dateTime" }
``` ```

View File

@ -3,7 +3,7 @@ id: oceanic
label: Oceanic label: Oceanic
title: Oceanic - Bindings title: Oceanic - Bindings
type: binding type: binding
description: "This binding integrates the Oceanic water softener and management system (www.oceanic.be). The binding supports the Limex IQ and Limex Pro water softeners. The Oceanic systems are also distributed by Syr in Germany (www.syr.de). In order to integrate the Limex into openHAB, the optional CAN-Serial gateway has to be installed" description: "This binding integrates the Oceanic water softener and management system (www.oceanic.be)."
since: 2x since: 2x
logo: images/addons/oceanic.png logo: images/addons/oceanic.png
install: auto install: auto
@ -15,7 +15,10 @@ install: auto
# Oceanic Binding # Oceanic Binding
This binding integrates the Oceanic water softener and management system (www.oceanic.be). The binding supports the Limex IQ and Limex Pro water softeners. The Oceanic systems are also distributed by Syr in Germany (www.syr.de). In order to integrate the Limex into openHAB, the optional CAN-Serial gateway has to be installed This binding integrates the Oceanic water softener and management system (www.oceanic.be).
The binding supports the Limex IQ and Limex Pro water softeners.
The Oceanic systems are also distributed by Syr in Germany (www.syr.de).
In order to integrate the Limex into openHAB, the optional CAN-Serial gateway has to be installed.
## Supported Things ## Supported Things
@ -29,31 +32,30 @@ The Thing configuration requires the name of the serial port that is used to con
All devices support the following channels (non-exhaustive): All devices support the following channels (non-exhaustive):
| Channel Type ID | Item Type | Description | | Channel Type ID | Item Type | Description | | |
|-----------------|------------------------|--------------|----------------- |------------- | |--------------------------------------|-----------|-----------------------------------------------------------------|---|---|
| alarm | String | Current alarm description, if any| | alarm | String | Current alarm description, if any | | |
| alert | String | Current alert description, if any, to notify a shortage of salt | | alert | String | Current alert description, if any, to notify a shortage of salt | | |
| totalflow | Number | Current flow in l/min | | totalflow | Number | Current flow in l/min | | |
| maxflow | Number | Maximum flow recorded, in l/min | | maxflow | Number | Maximum flow recorded, in l/min | | |
| reserve | Number | Water reserve in l before regeneration has to start | | reserve | Number | Water reserve in l before regeneration has to start | | |
| cycle | String | Indicates the stage of the regeneration cycle | | cycle | String | Indicates the stage of the regeneration cycle | | |
| endofcycle | String | Indicates the time to the end of the current cycle | | endofcycle | String | Indicates the time to the end of the current cycle | | |
| endofgeneration | String | Indicates the time to the end of the current generation | | endofgeneration | String | Indicates the time to the end of the current generation | | |
| inlethardness | Number | Water hardness at the inlet | | inlethardness | Number | Water hardness at the inlet | | |
| outlethardness | Number | Water hardness at the outlet | | outlethardness | Number | Water hardness at the outlet | | |
| salt | String | Volume of salt remaining, in kg | | salt | String | Volume of salt remaining, in kg | | |
| consumption(today)(currentweek)(...) | String | Water consumption, in l, for that period | | consumption(today)(currentweek)(...) | String | Water consumption, in l, for that period | | |
| regeneratenow | Switch | Start an immediate regeneration | | regeneratenow | Switch | Start an immediate regeneration | | |
| regeneratelater | Switch | Start a delayed regeneration | | regeneratelater | Switch | Start a delayed regeneration | | |
| lastgeneration | DateTime | Date and Time of the last regeneration cycle | | lastgeneration | DateTime | Date and Time of the last regeneration cycle | | |
| pressure | Number | Water pressure, in bar | | pressure | Number | Water pressure, in bar | | |
| minpressure | Number | Minimum water pressure recorded, in bar | | minpressure | Number | Minimum water pressure recorded, in bar | | |
| maxpressure | Number | Maximum water pressure recorded, in bar | | maxpressure | Number | Maximum water pressure recorded, in bar | | |
| normalregenerations | Number | Number of regenerations completed | | normalregenerations | Number | Number of regenerations completed | | |
| serviceregenerations | Number | Number of service regenerations completed | | serviceregenerations | Number | Number of service regenerations completed | | |
| incompleteregenerations | Number | Number of incomplete regenerations | | incompleteregenerations | Number | Number of incomplete regenerations | | |
| allregenerations | Number | Number of all regenerations | | allregenerations | Number | Number of all regenerations | | |
## Full Example ## Full Example
@ -94,16 +96,21 @@ Number oceanicConsLastWk "volume last week is [%d]"(oceanic) {channel="oceanic:s
## Known issues ## Known issues
The Oceanic binding makes use of the nrjavaserial library. There is a known issue (https://github.com/NeuronRobotics/nrjavaserial/issues/96) that requires a workaround on some types of systems The Oceanic binding makes use of the nrjavaserial library.
There is a known issue (<https://github.com/NeuronRobotics/nrjavaserial/issues/96>) that requires a workaround on some types of systems.
On Ubuntu 17.10 nrjavaserial seems to return only HEX 00 characters through the InputStream of the SerialPort. The solution is to implement a workaround with socat and pipe the data from the Serial Port to a pseudo tty, which has to be manipulated in a CommPortIdentifier.PORT_RAW manner. On Ubuntu 17.10 nrjavaserial seems to return only HEX 00 characters through the InputStream of the SerialPort.
The solution is to implement a workaround with socat and pipe the data from the Serial Port to a pseudo tty, which has to be manipulated in a CommPortIdentifier.PORT_RAW manner.
/usr/bin/socat -v /dev/ttyUSB0,raw,echo=0 pty,link=/dev/ttyS1,raw,echo=0 ```
/usr/bin/socat -v /dev/ttyUSB0,raw,echo=0 pty,link=/dev/ttyS1,raw,echo=0
```
The workaround can be implemented using a systemd system manager script, for example: The workaround can be implemented using a systemd system manager script, for example:
```
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target
[Service] [Service]
#Type=forking #Type=forking
ExecStart=/usr/bin/socat -v /dev/ttyUSB0,raw,echo=0 pty,link=/dev/ttyS1,raw,echo=0 ExecStart=/usr/bin/socat -v /dev/ttyUSB0,raw,echo=0 pty,link=/dev/ttyS1,raw,echo=0
@ -111,11 +118,15 @@ The workaround can be implemented using a systemd system manager script, for exa
User=root User=root
Restart=always Restart=always
RestartSec=10 RestartSec=10
```
However, in order to fix permissions at the OS level, one has to issue following commands However, in order to fix permissions at the OS level, one has to issue following commands
```
sudo useradd -G dialout openhab sudo useradd -G dialout openhab
sudo chgrp dialout /dev/ttyS1 sudo chgrp dialout /dev/ttyS1
sudo chmod 777 /dev/ttyS1 sudo chmod 777 /dev/ttyS1
```
in order to make /dev/ttyS1 accessible by the 'openhab' system user (that is used to start up the openHAB runtime), and to make the tty both readable and writable. Alternatively, these commands can be executed through a script that is attached to the systemd system manager script In order to make /dev/ttyS1 accessible by the 'openhab' system user (that is used to start up the openHAB runtime), and to make the tty both readable and writable.
Alternatively, these commands can be executed through a script that is attached to the systemd system manager script.

View File

@ -19,7 +19,8 @@ install: auto
## Preparation ## Preparation
You'll need to obtain an API key from the transit provider you want to load data from. Different providers of the service have different policies, so you'll have to figure this part out for each [deployment](https://github.com/OneBusAway/onebusaway/wiki/OneBusAway-Deployments). You'll need to obtain an API key from the transit provider you want to load data from.
Different providers of the service have different policies, so you'll have to figure this part out for each [deployment](https://github.com/OneBusAway/onebusaway/wiki/OneBusAway-Deployments).
## Supported Things ## Supported Things
@ -29,10 +30,11 @@ This binding supports route arrival and departure times for all stops provided f
The following configuration options are available for the API binding: The following configuration options are available for the API binding:
| Parameter | Name | Description | Required | | Parameter | Name | Description | Required |
|-----------|------|-------------|----------| |-------------|------------|-------------------------------------------------------------------------------------|----------|
| `apiKey` | API Key | The API key given to you by a transit provider for their deployment. | yes | | `apiKey` | API Key | The API key given to you by a transit provider for their deployment. | yes |
| `apiServer` | API Server | The domain name of the deployment to talk to, e.g. `api.pugetsound.onebusaway.org`. | yes | | `apiServer` | API Server | The domain name of the deployment to talk to, e.g. `api.pugetsound.onebusaway.org`. | yes |
The following configuration options are available for the Stop binding (which requires an API binding): The following configuration options are available for the Stop binding (which requires an API binding):
@ -45,20 +47,22 @@ The following configuration options are available for the Stop binding (which re
The following configuration options are available for a Route (which requires a Stop binding): The following configuration options are available for a Route (which requires a Stop binding):
| Parameter | Name | Description | Required | | Parameter | Name | Description | Required |
|-----------|------|-------------|----------| |-----------|----------|---------------------------------------------------------------------|----------|
| `routeId` | Route ID | The OneBusAway ID of the route to obtain data for, e.g. `1_102574`. | yes | | `routeId` | Route ID | The OneBusAway ID of the route to obtain data for, e.g. `1_102574`. | yes |
## Channels ## Channels
The Route Thing supports the following state channels: The Route Thing supports the following state channels:
| Channel Type ID | Channel Kind | Item Type | Description | | Channel Type ID | Channel Kind | Item Type | Description |
|-----------------|--------------|-----------|-------------| |------------------|--------------|-----------|----------------------------------------------------------------------------------------------------------|
| arrival | state | DateTime | The arrival time of a Route at a Stop. | | arrival | state | DateTime | The arrival time of a Route at a Stop. |
| departure | state | DateTime | The departure time of a Route at a Stop. | | departure | state | DateTime | The departure time of a Route at a Stop. |
| update | state | DateTime | The last time this data was updated (per the data provider, not the last time OpenHAB updated the data). | | update | state | DateTime | The last time this data was updated (per the data provider, not the last time OpenHAB updated the data). |
| arrivalDeparture | trigger | DateTime | Triggered when a Route arrives or departs a Stop. | | arrivalDeparture | trigger | DateTime | Triggered when a Route arrives or departs a Stop. |
### Channel Configurations ### Channel Configurations

View File

@ -29,42 +29,45 @@ This binding supports only one thing: The Onkyo AV Receiver. All supported Onky
This binding can discover the supported Onkyo AV Receivers. At the moment only the following models are supported: This binding can discover the supported Onkyo AV Receivers. At the moment only the following models are supported:
- TX-NR414 - TX-NR414
- TX-NR509 - TX-NR509
- TX-NR515 - TX-NR515
- TX-NR525 - TX-NR525
- TX-NR535 - TX-NR535
- TX-NR555 - TX-NR555
- TX-NR535 - TX-NR535
- TX-NR616 - TX-NR616
- TX-NR626 - TX-NR626
- TX-NR636 - TX-NR636
- TX-NR646 - TX-NR646
- TX-NR656 - TX-NR656
- TX-NR717 - TX-NR717
- TX-NR727 - TX-NR727
- TX-NR737 - TX-NR737
- TX-NR747 - TX-NR747
- TX-NR818 - TX-NR818
- TX-NR828 - TX-NR828
- TX-NR838 - TX-NR838
## Binding Configuration ## 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: 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:
```text ```text
org.openhab.onkyo:enableAutoDiscovery=false 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. 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.
The binding has the following configuration options, which can be set for "binding:onkyo": The binding has the following configuration options, which can be set for "binding:onkyo":
| Parameter | Name | Description | Required | | Parameter | Name | Description | Required |
|-------------|--------------|--------------------------------------------------------------------------|----------| |-------------|--------------|--------------------------------------------------------------------------|----------|
| callbackUrl | Callback URL | URL to use for playing notification sounds, e.g. http://192.168.0.2:8080 | no | | callbackUrl | Callback URL | URL to use for playing notification sounds, e.g. <http://192.168.0.2:8080> | no |
## Thing Configuration ## Thing Configuration
@ -92,7 +95,8 @@ Optionally you can specify the refresh interval by refreshInterval parameter.
onkyo:onkyoAVR:avr-livingroom [ipAddress="192.168.1.100", port=60128, refreshInterval=30] onkyo:onkyoAVR:avr-livingroom [ipAddress="192.168.1.100", port=60128, refreshInterval=30]
``` ```
Maximum volume level can also be configured by volumeLimit parameter. This prevent setting receiver volume level too high, which could damage your speakers or receiver. Maximum volume level can also be configured by volumeLimit parameter.
This prevent setting receiver volume level too high, which could damage your speakers or receiver.
```text ```text
onkyo:onkyoAVR:avr-livingroom [ipAddress="192.168.1.100", port=60128, volumeLimit=50] onkyo:onkyoAVR:avr-livingroom [ipAddress="192.168.1.100", port=60128, volumeLimit=50]
@ -128,7 +132,7 @@ The Onkyo AVR supports the following channels (some channels are model specific)
| player#albumArt | Image | Image of the current album art of the current song | | player#albumArt | Image | Image of the current album art of the current song |
| player#albumArtUrl | String | Url to the current album art of the current song | | player#albumArtUrl | String | Url to the current album art of the current song |
| netmenu#title | String | Title of the current NET service | | netmenu#title | String | Title of the current NET service |
| netmenu#control | String | Control the USB/Net Menu, e.g. Up/Down/Select/Back/PageUp/PageDown/Select[0-9] | | netmenu#control | String | Control the USB/Net Menu, e.g. Up/Down/Select/Back/PageUp/PageDown/Select&lsqb0-9&rsqb |
| netmenu#selection | Number | The number of the currently selected USB/Net Menu entry (0-9) | | netmenu#selection | Number | The number of the currently selected USB/Net Menu entry (0-9) |
| netmenu#item0 | String | The text of USB/Net Menu entry 0 | | netmenu#item0 | String | The text of USB/Net Menu entry 0 |
| netmenu#item1 | String | The text of USB/Net Menu entry 1 | | netmenu#item1 | String | The text of USB/Net Menu entry 1 |
@ -141,33 +145,32 @@ The Onkyo AVR supports the following channels (some channels are model specific)
| netmenu#item8 | String | The text of USB/Net Menu entry 8 | | netmenu#item8 | String | The text of USB/Net Menu entry 8 |
| netmenu#item9 | String | The text of USB/Net Menu entry 9 | | netmenu#item9 | String | The text of USB/Net Menu entry 9 |
## Input Source Mapping ## Input Source Mapping
Here after are the ID values of the input sources: Here after are the ID values of the input sources:
- 00: DVR/VCR - 00: DVR/VCR
- 01: SATELLITE/CABLE - 01: SATELLITE/CABLE
- 02: GAME - 02: GAME
- 03: AUX - 03: AUX
- 04: GAME - 04: GAME
- 05: PC - 05: PC
- 16: BLURAY/DVD - 16: BLURAY/DVD
- 32: TAPE1 - 32: TAPE1
- 33: TAPE2 - 33: TAPE2
- 34: PHONO - 34: PHONO
- 35: CD - 35: CD
- 36: FM - 36: FM
- 37: AM - 37: AM
- 38: TUNER - 38: TUNER
- 39: MUSICSERVER - 39: MUSICSERVER
- 40: INTERNETRADIO - 40: INTERNETRADIO
- 41: USB - 41: USB
- 42: USB_BACK - 42: USB_BACK
- 43: NETWORK - 43: NETWORK
- 45: AIRPLAY - 45: AIRPLAY
- 48: MULTICH - 48: MULTICH
- 50: SIRIUS - 50: SIRIUS
## Item Configuration ## Item Configuration
@ -259,4 +262,4 @@ sitemap demo label="Onkyo AVR"
## Audio Support ## Audio Support
All supported Onkyo AVRs are registered as an audio sink in the framework. All supported Onkyo AVRs are registered as an audio sink in the framework.
Audio streams are sent to the `playuri` channel. Audio streams are sent to the `playuri` channel.

View File

@ -3,7 +3,7 @@ id: opensprinkler
label: OpenSprinkler label: OpenSprinkler
title: OpenSprinkler - Bindings title: OpenSprinkler - Bindings
type: binding type: binding
description: "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." description: "This binding allows allows basic control of the OpenSprinkler and OpenSprinkler PI (Plus) devices."
since: 2x since: 2x
logo: images/addons/opensprinkler.png logo: images/addons/opensprinkler.png
install: auto install: auto
@ -15,16 +15,18 @@ install: auto
# OpenSprinkler Binding # OpenSprinkler Binding
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. 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.
## Supported Things ## Supported Things
* OpenSprinkler using the HTTP API access on the network. * OpenSprinkler using the HTTP API access on the network.
* OpenSprinkler PI (Plus) through the GPIO when openHAB is installed on the same Raspberry Pi used in the OpenSprinkler PI. * OpenSprinkler PI (Plus) through the GPIO when openHAB is installed on the same Raspberry Pi used in the OpenSprinkler PI.
## Discovery ## Discovery
* OpenSprinkler devices can be manually discovered by sending a request to every IP on the network. Discovery needs to be run manually as this is a brute force method of finding devices that can saturate network or device available bandwidth. * OpenSprinkler devices can be manually discovered by sending a request to every IP on the network.
Discovery needs to be run manually as this is a brute force method of finding devices that can saturate network or device available bandwidth.
## Thing Configuration ## Thing Configuration
@ -34,10 +36,10 @@ OpenSprinkler
opensprinkler:http:1 [ hostname="127.0.0.1", port=80, password="opendoor", refresh=60 ] opensprinkler:http:1 [ hostname="127.0.0.1", port=80, password="opendoor", refresh=60 ]
``` ```
- hostname: Hostname or IP address of the OpenSprinkler HTTP API. - hostname: Hostname or IP address of the OpenSprinkler HTTP API.
- port: Port the OpenSprinkler device is listening on. Usually 80. - port: Port the OpenSprinkler device is listening on. Usually 80.
- password: Admin password of the API. Factory default is: opendoor - password: Admin password of the API. Factory default is: opendoor
- refresh: Number of seconds in between refreshing the Thing state with the API. - refresh: Number of seconds in between refreshing the Thing state with the API.
OpenSprinkler PI OpenSprinkler PI
@ -45,71 +47,72 @@ OpenSprinkler PI
opensprinkler:pi:1 [ stations=8, refresh=60 ] opensprinkler:pi:1 [ stations=8, refresh=60 ]
``` ```
- stations: Number of stations to control. - stations: Number of stations to control.
- refresh: Number of seconds in between refreshing the Thing state with the API. - refresh: Number of seconds in between refreshing the Thing state with the API.
## Channels ## Channels
The following channels are supported by all devices. The following channels are supported by all devices.
| Channel Type ID | Item Type | | Description | | Channel Type ID | Item Type | | Description |
|-----------------|-----------|---|-------------|----------------- |------------- | |-----------------|-----------|----|---------------------------------------------------------|
| station01 | Switch | RW | This channel indicates whether station 01 is on or off. | | station01 | Switch | RW | This channel indicates whether station 01 is on or off. |
| station02 | Switch | RW | This channel indicates whether station 02 is on or off. | | station02 | Switch | RW | This channel indicates whether station 02 is on or off. |
| station03 | Switch | RW | This channel indicates whether station 03 is on or off. | | station03 | Switch | RW | This channel indicates whether station 03 is on or off. |
| station04 | Switch | RW | This channel indicates whether station 04 is on or off. | | station04 | Switch | RW | This channel indicates whether station 04 is on or off. |
| station05 | Switch | RW | This channel indicates whether station 05 is on or off. | | station05 | Switch | RW | This channel indicates whether station 05 is on or off. |
| station06 | Switch | RW | This channel indicates whether station 06 is on or off. | | station06 | Switch | RW | This channel indicates whether station 06 is on or off. |
| station07 | Switch | RW | This channel indicates whether station 07 is on or off. | | station07 | Switch | RW | This channel indicates whether station 07 is on or off. |
| station08 | Switch | RW | This channel indicates whether station 08 is on or off. | | station08 | Switch | RW | This channel indicates whether station 08 is on or off. |
| station09 | Switch | RW | This channel indicates whether station 09 is on or off. | | station09 | Switch | RW | This channel indicates whether station 09 is on or off. |
| station10 | Switch | RW | This channel indicates whether station 10 is on or off. | | station10 | Switch | RW | This channel indicates whether station 10 is on or off. |
| station11 | Switch | RW | This channel indicates whether station 11 is on or off. | | station11 | Switch | RW | This channel indicates whether station 11 is on or off. |
| station12 | Switch | RW | This channel indicates whether station 12 is on or off. | | station12 | Switch | RW | This channel indicates whether station 12 is on or off. |
| station13 | Switch | RW | This channel indicates whether station 13 is on or off. | | station13 | Switch | RW | This channel indicates whether station 13 is on or off. |
| station14 | Switch | RW | This channel indicates whether station 14 is on or off. | | station14 | Switch | RW | This channel indicates whether station 14 is on or off. |
| station15 | Switch | RW | This channel indicates whether station 15 is on or off. | | station15 | Switch | RW | This channel indicates whether station 15 is on or off. |
| station16 | Switch | RW | This channel indicates whether station 16 is on or off. | | station16 | Switch | RW | This channel indicates whether station 16 is on or off. |
| station17 | Switch | RW | This channel indicates whether station 17 is on or off. | | station17 | Switch | RW | This channel indicates whether station 17 is on or off. |
| station18 | Switch | RW | This channel indicates whether station 18 is on or off. | | station18 | Switch | RW | This channel indicates whether station 18 is on or off. |
| station19 | Switch | RW | This channel indicates whether station 19 is on or off. | | station19 | Switch | RW | This channel indicates whether station 19 is on or off. |
| station20 | Switch | RW | This channel indicates whether station 20 is on or off. | | station20 | Switch | RW | This channel indicates whether station 20 is on or off. |
| station21 | Switch | RW | This channel indicates whether station 21 is on or off. | | station21 | Switch | RW | This channel indicates whether station 21 is on or off. |
| station22 | Switch | RW | This channel indicates whether station 22 is on or off. | | station22 | Switch | RW | This channel indicates whether station 22 is on or off. |
| station23 | Switch | RW | This channel indicates whether station 23 is on or off. | | station23 | Switch | RW | This channel indicates whether station 23 is on or off. |
| station24 | Switch | RW | This channel indicates whether station 24 is on or off. | | station24 | Switch | RW | This channel indicates whether station 24 is on or off. |
| station25 | Switch | RW | This channel indicates whether station 25 is on or off. | | station25 | Switch | RW | This channel indicates whether station 25 is on or off. |
| station26 | Switch | RW | This channel indicates whether station 26 is on or off. | | station26 | Switch | RW | This channel indicates whether station 26 is on or off. |
| station27 | Switch | RW | This channel indicates whether station 27 is on or off. | | station27 | Switch | RW | This channel indicates whether station 27 is on or off. |
| station28 | Switch | RW | This channel indicates whether station 28 is on or off. | | station28 | Switch | RW | This channel indicates whether station 28 is on or off. |
| station29 | Switch | RW | This channel indicates whether station 29 is on or off. | | station29 | Switch | RW | This channel indicates whether station 29 is on or off. |
| station30 | Switch | RW | This channel indicates whether station 30 is on or off. | | station30 | Switch | RW | This channel indicates whether station 30 is on or off. |
| station31 | Switch | RW | This channel indicates whether station 31 is on or off. | | station31 | Switch | RW | This channel indicates whether station 31 is on or off. |
| station32 | Switch | RW | This channel indicates whether station 32 is on or off. | | station32 | Switch | RW | This channel indicates whether station 32 is on or off. |
| station33 | Switch | RW | This channel indicates whether station 33 is on or off. | | station33 | Switch | RW | This channel indicates whether station 33 is on or off. |
| station34 | Switch | RW | This channel indicates whether station 34 is on or off. | | station34 | Switch | RW | This channel indicates whether station 34 is on or off. |
| station35 | Switch | RW | This channel indicates whether station 35 is on or off. | | station35 | Switch | RW | This channel indicates whether station 35 is on or off. |
| station36 | Switch | RW | This channel indicates whether station 36 is on or off. | | station36 | Switch | RW | This channel indicates whether station 36 is on or off. |
| station37 | Switch | RW | This channel indicates whether station 37 is on or off. | | station37 | Switch | RW | This channel indicates whether station 37 is on or off. |
| station38 | Switch | RW | This channel indicates whether station 38 is on or off. | | station38 | Switch | RW | This channel indicates whether station 38 is on or off. |
| station39 | Switch | RW | This channel indicates whether station 39 is on or off. | | station39 | Switch | RW | This channel indicates whether station 39 is on or off. |
| station40 | Switch | RW | This channel indicates whether station 40 is on or off. | | station40 | Switch | RW | This channel indicates whether station 40 is on or off. |
| station41 | Switch | RW | This channel indicates whether station 41 is on or off. | | station41 | Switch | RW | This channel indicates whether station 41 is on or off. |
| station42 | Switch | RW | This channel indicates whether station 42 is on or off. | | station42 | Switch | RW | This channel indicates whether station 42 is on or off. |
| station43 | Switch | RW | This channel indicates whether station 43 is on or off. | | station43 | Switch | RW | This channel indicates whether station 43 is on or off. |
| station44 | Switch | RW | This channel indicates whether station 44 is on or off. | | station44 | Switch | RW | This channel indicates whether station 44 is on or off. |
| station45 | Switch | RW | This channel indicates whether station 45 is on or off. | | station45 | Switch | RW | This channel indicates whether station 45 is on or off. |
| station46 | Switch | RW | This channel indicates whether station 46 is on or off. | | station46 | Switch | RW | This channel indicates whether station 46 is on or off. |
| station47 | Switch | RW | This channel indicates whether station 47 is on or off. | | station47 | Switch | RW | This channel indicates whether station 47 is on or off. |
| station48 | Switch | RW | This channel indicates whether station 48 is on or off. | | station48 | Switch | RW | This channel indicates whether station 48 is on or off. |
The following are only support by the OpenSprinkler using the HTTP API interface. The following are only support by the OpenSprinkler using the HTTP API interface.
| Channel Type ID | Item Type | | Description | | Channel Type ID | Item Type | | Description |
|-----------------|-----------|---|-------------|----------------- |------------- | |-----------------|-----------|----|-----------------------------------------------------------------------|
| rainsensor | Switch | RO | This channel indicates whether rain is detected by the device or not. | | rainsensor | Switch | RO | This channel indicates whether rain is detected by the device or not. |
## Full Example ## Example
demo.Things: demo.Things:

View File

@ -3,7 +3,7 @@ id: orvibo
label: Orvibo label: Orvibo
title: Orvibo - Bindings title: Orvibo - Bindings
type: binding type: binding
description: "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." description: "This binding integrates Orvibo devices that communicate using UDP."
since: 2x since: 2x
logo: images/addons/orvibo.png logo: images/addons/orvibo.png
install: auto install: auto
@ -15,11 +15,12 @@ install: auto
# Orvibo Binding # Orvibo Binding
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. 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.
## Supported Things ## Supported Things
* S20 Wifi Sockets * S20 Wifi Sockets
## Discovery ## Discovery
@ -32,10 +33,8 @@ This binding does not require any special configuration.
## Thing Configuration ## Thing Configuration
This is optional, it is recommended to let the binding discover and add Orvibo devices. This is optional, it is recommended to let the binding discover and add Orvibo devices.
To manually configure an S20 Thing you must specify its deviceId (MAC address).
To manually configure an S20 Thing you must specify its deviceId (MAC address). In the thing file, this looks like:
In the thing file, this looks e.g. like
``` ```
Thing orvibo:s20:mysocket [ deviceId="AABBCCDDEEFF"] Thing orvibo:s20:mysocket [ deviceId="AABBCCDDEEFF"]
@ -45,11 +44,9 @@ Thing orvibo:s20:mysocket [ deviceId="AABBCCDDEEFF"]
### S20: ### S20:
|Channel | Description | Example | | Channel | Description | Example |
|------- | -------- | ---- | |---------|-------------------------------|---------------------------|
|power | Current power state of switch | orvibo:s20:mysocket:power | | power | Current power state of switch | orvibo:s20:mysocket:power |
## Items: ## Items:
@ -59,13 +56,13 @@ Switch MySwitch "Switch state [%s]" { channel="orvibo:s20:mysocket
## Example Sitemap ## Example Sitemap
Using the above things channels and items Using the above things channels and items
Sitemap: Sitemap:
``` ```
sitemap demo label="Main Menu" { sitemap demo label="Main Menu" {
Frame { Frame {
Switch item=MySwitch Switch item=MySwitch
} }
} }
``` ```

View File

@ -3,7 +3,7 @@ id: pioneeravr
label: PioneerAVR Configuration label: PioneerAVR Configuration
title: PioneerAVR Configuration - Bindings title: PioneerAVR Configuration - Bindings
type: binding type: binding
description: "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:" description: "The binding can auto-discover the Pioneer AVRs present on your local network."
since: 2x since: 2x
logo: images/addons/pioneeravr.png logo: images/addons/pioneeravr.png
install: auto install: auto
@ -17,15 +17,17 @@ install: auto
## Binding configuration ## Binding 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: 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:
``` ```
#Put your configuration here #Put your configuration here
org.openhab.pioneeravr:enableAutoDiscovery=false org.openhab.pioneeravr:enableAutoDiscovery=false
``` ```
This configuration parameter only control the PioneerAVR auto-discovery process, not the openHAB auto-discovery. Moreover, This configuration parameter only control the PioneerAVR auto-discovery process, not the openHAB auto-discovery.
if the openHAB auto-discovery is disabled, the PioneerAVR auto-discovery is disabled too. Moreover, if the openHAB auto-discovery is disabled, the PioneerAVR auto-discovery is disabled too.
##Thing configuration ##Thing configuration
@ -36,13 +38,13 @@ The binding can control AVRs through the local network (ipAvr/ipAvrUnsupported t
Configuration of ipAvr/ipAvrUnsupported: Configuration of ipAvr/ipAvrUnsupported:
* address: the hostname/ipAddress of the AVR on the local network. (mandatory) * address: the hostname/ipAddress of the AVR on the local network. (mandatory)
* tcpPort: the port number to use to connect to the AVR. (optional, default to 23) * tcpPort: the port number to use to connect to the AVR. (optional, default to 23)
Configuration of serialAvr: Configuration of serialAvr:
* serialPort: the name of the serial port on your computer. (mandatory) * serialPort: the name of the serial port on your computer. (mandatory)
Example: Example:
@ -54,43 +56,42 @@ pioneeravr:serialAvr:vsx921Serial [ serialPort="COM9" ]
## Channels ## Channels
* power: power On/Off the AVR. Receive power events. * power: power On/Off the AVR. Receive power events.
* volumeDimmer: Increase/Decrease the volume on the AVR or set the volume as %. Receive volume change events (in %). * volumeDimmer: Increase/Decrease the volume on the AVR or set the volume as %. Receive volume change events (in %).
* volumeDb: Set the volume of the AVR in dB (from -80.0 to 12 with 0.5 dB steps). Receive volume change events (in dB). * volumeDb: Set the volume of the AVR in dB (from -80.0 to 12 with 0.5 dB steps). Receive volume change events (in dB).
* mute: Mute/Unmute the AVR. Receive mute events. * mute: Mute/Unmute the AVR. Receive mute events.
* setInputSource: Set the input source of the AVR. See input source mapping for more details. Receive source input change events with the input source ID. * setInputSource: Set the input source of the AVR. See input source mapping for more details. Receive source input change events with the input source ID.
* displayInformation: Receive display events. Reflect the display on the AVR front panel. * displayInformation: Receive display events. Reflect the display on the AVR front panel.
##Input Source Mapping ##Input Source Mapping
Here after are the ID values of the input sources: Here after are the ID values of the input sources:
* 04: DVD * 04: DVD
* 25: BD * 25: BD
* 05: TV/SAT * 05: TV/SAT
* 15: DVR/BDR * 15: DVR/BDR
* 10: VIDEO 1(VIDEO) * 10: VIDEO 1(VIDEO)
* 14: VIDEO 2 * 14: VIDEO 2
* 19: HDMI 1 * 19: HDMI 1
* 20: HDMI 2 * 20: HDMI 2
* 21: HDMI 3 * 21: HDMI 3
* 22: HDMI 4 * 22: HDMI 4
* 23: HDMI 5 * 23: HDMI 5
* 26: HOME MEDIA GALLERY(Internet Radio) * 26: HOME MEDIA GALLERY(Internet Radio)
* 17: iPod/USB * 17: iPod/USB
* 18: XM RADIO * 18: XM RADIO
* 01: CD * 01: CD
* 03: CD-R/TAPE * 03: CD-R/TAPE
* 02: TUNER * 02: TUNER
* 00: PHONO * 00: PHONO
* 12: MULTI CH IN * 12: MULTI CH IN
* 33: ADAPTER PORT * 33: ADAPTER PORT
* 27: SIRIUS * 27: SIRIUS
* 31: HDMI (cyclic) * 31: HDMI (cyclic)
## Example
## Full example
*demo.Things: *demo.Things:
@ -117,7 +118,7 @@ sitemap demo label="Main Menu"
{ {
Frame label="Pioneer AVR" { Frame label="Pioneer AVR" {
Switch item=vsx921PowerSwitch Switch item=vsx921PowerSwitch
Switch item=vsx921MuteSwitch mappings=[ON="Mute", OFF="Un-Mute"] Switch item=vsx921MuteSwitch mappings=[ON="Mute", OFF="Un-Mute"]
Slider item=vsx921VolumeDimmer Slider item=vsx921VolumeDimmer
Setpoint item=vsx921VolumeNumber minValue="-80" maxValue="12" step="0.5" Setpoint item=vsx921VolumeNumber minValue="-80" maxValue="12" step="0.5"
Switch item=vsx921InputSourceSet mappings=[04="DVD", 15="DVR/BDR", 25="BD"] Switch item=vsx921InputSourceSet mappings=[04="DVD", 15="DVR/BDR", 25="BD"]
@ -125,6 +126,3 @@ sitemap demo label="Main Menu"
} }
} }
``` ```

View File

@ -21,7 +21,6 @@ Users should use the Plugwise [Source](https://www.plugwise.com/source) software
Currently only "V2" of the Plugwise protocol is supported. It is adviced that users of the binding upgrade their devices to the latest firmware using the Plugwise Source software. Currently only "V2" of the Plugwise protocol is supported. It is adviced that users of the binding upgrade their devices to the latest firmware using the Plugwise Source software.
## Supported Things ## Supported Things
The binding supports the following Plugwise devices: The binding supports the following Plugwise devices:
@ -36,17 +35,22 @@ The binding supports the following Plugwise devices:
| [Stick](https://www.plugwise.com/home-start) | A ZigBee USB controller that openHAB uses to communicate with the Circle+ | stick | | [Stick](https://www.plugwise.com/home-start) | A ZigBee USB controller that openHAB uses to communicate with the Circle+ | stick |
| [Switch](https://www.plugwise.com/products/appliances-and-lighting/energy-meters-and-switches/switch) | A wireless wall switch | switch | | [Switch](https://www.plugwise.com/products/appliances-and-lighting/energy-meters-and-switches/switch) | A wireless wall switch | switch |
## Discovery ## Discovery
Automatic device discovery runs every 3 minutes which can be sped up by starting a manual discovery. The Stick is automatically discovered on unused serial ports. All Circle, Circle+ and Stealth devices are discovered immediately after adding the Stick. Battery powered devices like the Scan, Sense and Switch are discovered when they are awake. The Scan and Sense can be woken by pressing the "Wake" button. The Switch is detected when it is awake after switching the left or right button. Automatic device discovery runs every 3 minutes which can be sped up by starting a manual discovery.
The Stick is automatically discovered on unused serial ports.
All Circle, Circle+ and Stealth devices are discovered immediately after adding the Stick. Battery powered devices like the Scan, Sense and Switch are discovered when they are awake.
The Scan and Sense can be woken by pressing the "Wake" button.
The Switch is detected when it is awake after switching the left or right button.
## Thing Configuration ## Thing Configuration
### MAC addresses ### MAC addresses
The MAC addresses are stickered to the back of Plugwise devices. The binding uses full MAC addresses i.e. also the fine print on the sticker. If you don't want to get off your chair, climb up ladders and unplug devices all across your home, causing all sorts of havoc; you can also find them in Source. Open `Settings > Appliances`. Then double click on an appliance. Click on the little Circle icon to the right of the short Address to see the details of a module and the full MAC address. The MAC addresses are stickered to the back of Plugwise devices.
The binding uses full MAC addresses i.e. also the fine print on the sticker.
If you don't want to get off your chair, climb up ladders and unplug devices all across your home, causing all sorts of havoc; you can also find them in Source. Open `Settings > Appliances`. Then double click on an appliance.
Click on the little Circle icon to the right of the short Address to see the details of a module and the full MAC address.
Similarly the MAC addresses of the Scan, Sense and Switch can also be obtained from the Appliances screen by double clicking them in the `Sensors and other modules` list. Similarly the MAC addresses of the Scan, Sense and Switch can also be obtained from the Appliances screen by double clicking them in the `Sensors and other modules` list.
@ -57,8 +61,11 @@ Similarly the MAC addresses of the Scan, Sense and Switch can also be obtained f
| serialPort | X | /dev/ttyUSB0 | The serial port of the Stick, e.g. "/dev/ttyUSB0" for Linux or "COM1" for Windows | | serialPort | X | /dev/ttyUSB0 | The serial port of the Stick, e.g. "/dev/ttyUSB0" for Linux or "COM1" for Windows |
| messageWaitTime | | 150 | The time to wait between messages sent on the ZigBee network (in ms) | | messageWaitTime | | 150 | The time to wait between messages sent on the ZigBee network (in ms) |
To determine the serial port in Linux, insert the Stick, then execute the `dmesg` command.
To determine the serial port in Linux, insert the Stick, then execute the `dmesg` command. The last few lines of the output will contain the USB port of the Stick (e.g. `/dev/ttyUSB0`). In Windows the Device Manager lists it in the `Ports (COM & LPT)` section. On some Linux distributions (e.g. Raspbian) an OS restart may be required before the Stick is properly configured. To access the serial port of the Stick on Linux, the user running openHAB needs to be part of the 'dialout' group. E.g. for the user 'openhab' issue the following command: `sudo adduser openhab dialout`. The last few lines of the output will contain the USB port of the Stick (e.g. `/dev/ttyUSB0`).
In Windows the Device Manager lists it in the `Ports (COM & LPT)` section.
On some Linux distributions (e.g. Raspbian) an OS restart may be required before the Stick is properly configured.
To access the serial port of the Stick on Linux, the user running openHAB needs to be part of the 'dialout' group. E.g. for the user 'openhab' issue the following command: `sudo adduser openhab dialout`.
### Circle(+), Stealth ### Circle(+), Stealth
@ -70,6 +77,7 @@ To determine the serial port in Linux, insert the Stick, then execute the `dmesg
| measurementInterval | | 60 | The energy measurement interval (in minutes) (5 to 60) | | measurementInterval | | 60 | The energy measurement interval (in minutes) (5 to 60) |
| temporarilyNotInNetwork | | false | Stops searching for an unplugged device on the ZigBee network traffic (true or false) | | temporarilyNotInNetwork | | false | Stops searching for an unplugged device on the ZigBee network traffic (true or false) |
### Scan ### Scan
| Configuration Parameter | Required | Default | Description | | Configuration Parameter | Required | Default | Description |
@ -81,6 +89,7 @@ To determine the serial port in Linux, insert the Stick, then execute the `dmesg
| wakeupInterval | | 1440 | The interval in which the Scan wakes up at least once (in minutes) (5 to 1440) | | wakeupInterval | | 1440 | The interval in which the Scan wakes up at least once (in minutes) (5 to 1440) |
| wakeupDuration | | 10 | The number of seconds the Scan stays awake after it woke up (10 to 120) | | wakeupDuration | | 10 | The number of seconds the Scan stays awake after it woke up (10 to 120) |
### Sense ### Sense
| Configuration Parameter | Required | Default | Description | | Configuration Parameter | Required | Default | Description |
@ -96,6 +105,7 @@ To determine the serial port in Linux, insert the Stick, then execute the `dmesg
| wakeupInterval | | 1440 | The interval in which the Sense wakes up at least once (in minutes) (5 to 1440) | | wakeupInterval | | 1440 | The interval in which the Sense wakes up at least once (in minutes) (5 to 1440) |
| wakeupDuration | | 10 | The number of seconds the Sense stays awake after it woke up (10 to 120) | | wakeupDuration | | 10 | The number of seconds the Sense stays awake after it woke up (10 to 120) |
### Switch ### Switch
| Configuration Parameter | Required | Default | Description | | Configuration Parameter | Required | Default | Description |
@ -122,8 +132,7 @@ To determine the serial port in Linux, insert the Stick, then execute the `dmesg
| temperature | Number | Current temperature (°C) | sense | | temperature | Number | Current temperature (°C) | sense |
| triggered | Switch | Most recent switch action initiated by the device. When daylight override is disabled on a Scan this corresponds one to one with motion detection | scan, sense | | triggered | Switch | Most recent switch action initiated by the device. When daylight override is disabled on a Scan this corresponds one to one with motion detection | scan, sense |
## Example
## Full Example
demo.things demo.things

View File

@ -21,38 +21,34 @@ This binding integrates pulseaudio devices.
The Pulseaudio bridge is required as a "bridge" for accessing any other Pulseaudio devices. The Pulseaudio bridge is required as a "bridge" for accessing any other Pulseaudio devices.
You need a running pulseaudio server whith module module-cli-protocol-tcp loaded and accessible by the server You need a running pulseaudio server whith module module-cli-protocol-tcp loaded and accessible by the server which runs your openHAB instance. The following pulseaudio devices are supported:
which runs your openHAB instance. The following pulseaudio devices are supported:
* Sink
* Source
* Sink-Input
* Source-Output
* Combined-Sink
* Sink
* Source
* Sink-Input
* Source-Output
* Combined-Sink
## Discovery ## Discovery
The Pulseaudio bridge is discovered through mDNS in the local network. The Pulseaudio bridge is discovered through mDNS in the local network.
## Thing Configuration ## Thing Configuration
The Pulseaudio bridge requires the ip address (or a hostname) and a port (default: 4712) as a configuration value in order for the binding to know where to access it. The Pulseaudio bridge requires the ip address (or a hostname) and a port (default: 4712) as a configuration value in order for the binding to know where to access it.
## Channels ## Channels
All devices support some of the following channels: All devices support some of the following channels:
| Channel Type ID | Item Type | Description | | Channel Type ID | Item Type | Description |
|-----------------|------------------------|--------------|----------------- |------------- | |-----------------|-----------|-------------------------------------------------------------------------|
| volume | Dimmer | Volume of an audio device in percent | | volume | Dimmer | Volume of an audio device in percent |
| mute | Switch | Mutes the device | | mute | Switch | Mutes the device |
| state | String | Current state of the device (suspended, idle, running, corked, drained) | | state | String | Current state of the device (suspended, idle, running, corked, drained) |
| slaves | String | Slave sinks of a combined sink | | slaves | String | Slave sinks of a combined sink |
| routeToSink | String | Shows the sink a sink-input is currently routed to | | routeToSink | String | Shows the sink a sink-input is currently routed to |
<!--ToDO - needs an example. It was left with the "## Full Example header, but everything after that was blank..."
## Full Example ## Full Example
-->
t.b.d.

View File

@ -331,6 +331,31 @@ A Chime device.
* ENVIVO - Envivo * ENVIVO - Envivo
### current - RFXCOM Current Sensor
A Current sensing device.
#### Channels
| Name | Channel Type | Item Type | Remarks |
|--------------|-------------------------------------|-----------|------------------|
| channel1Amps | [instantamp](#channels) | Number | |
| channel2Amps | [instantamp](#channels) | Number | |
| channel3Amps | [instantamp](#channels) | Number | |
| signalLevel | [system.signal-strength](#channels) | Number | |
| batteryLevel | [system.battery-level](#channels) | Number | |
| lowBattery | [system.low-battery](#channels) | Switch | |
#### Configuration Options
* deviceId - Device Id
* Sensor Id. Example 5693
* subType - Sub Type
* Specifies device sub type.
* ELEC1 - OWL - CM113
### currentenergy - RFXCOM CurrentEnergy Actuator ### currentenergy - RFXCOM CurrentEnergy Actuator
A CurrentEnergy device. A CurrentEnergy device.

View File

@ -19,7 +19,8 @@ This binding integrates the [Samsung TV's](http://www.samsung.com).
## Supported Things ## Supported Things
Samsung TV C (2010), D (2011), E (2012) and F (2013) models should be supported. Because Samsung does not publish any documentation about the TV's UPnP interface, there could be differences between different TV models, which could lead to mismatch problems. Samsung TV C (2010), D (2011), E (2012) and F (2013) models should be supported.
Because Samsung does not publish any documentation about the TV's UPnP interface, there could be differences between different TV models, which could lead to mismatch problems.
Tested TV models: Tested TV models:
@ -40,7 +41,9 @@ The binding does not require any special configuration.
## Thing Configuration ## Thing Configuration
The Samsung TV Thing requires the host name and port address as a configuration value in order for the binding to know how to access it. Samsung TV publish several UPnP devices and hostname is used to recognize those UPnP devices. Port address is used for remote control emulation protocol. Additionally, a refresh interval can be configured in milliseconds to specify how often TV resources are polled. The Samsung TV Thing requires the host name and port address as a configuration value in order for the binding to know how to access it. Samsung TV publish several UPnP devices and hostname is used to recognize those UPnP devices.
Port address is used for remote control emulation protocol.
Additionally, a refresh interval can be configured in milliseconds to specify how often TV resources are polled.
E.g. E.g.
@ -50,7 +53,7 @@ Thing samsungtv:tv:livingroom [ hostName="192.168.1.10", port=55000, refreshInte
## Channels ## Channels
TV's support the following channels: TVs support the following channels:
| Channel Type ID | Item Type | Description | | Channel Type ID | Item Type | Description |
|------------------|-----------|---------------------------------------------------------------------------------------------------------| |------------------|-----------|---------------------------------------------------------------------------------------------------------|

View File

@ -20,8 +20,8 @@ Citizen Science Toolkit.
## Prerequisites ## Prerequisites
The API server uses Letsencrypt certificates. Therefore, one needs to either import the Letsencrypt The API server uses Letsencrypt certificates.
root certificates into the local keystore (see the description in the Therefore, one needs to either import the Letsencrypt root certificates into the local keystore (see the description in the
[netatmo addon](http://docs.openhab.org/addons/bindings/netatmo/readme.html)). [netatmo addon](http://docs.openhab.org/addons/bindings/netatmo/readme.html)).
Another way would be to simply update the JDK to at least JDK 1.8.0_111 Another way would be to simply update the JDK to at least JDK 1.8.0_111
@ -31,7 +31,8 @@ This binding supports a generic "senseBox" API endpoint which is a representatio
## Discovery ## Discovery
This binding provides no discovery. The desired senseBox must be configured manually or via a things file. This binding provides no discovery.
The desired senseBox must be configured manually or via a things file.
## Binding configuration ## Binding configuration
@ -39,9 +40,8 @@ The binding has no configuration options itself, all configuration is done at 'T
## Thing configuration ## Thing configuration
The senseBox thing requires the box Id (which can be obtained on the map) and an interval in seconds The senseBox thing requires the box Id (which can be obtained on the map) and an interval in seconds for the API polling.
for the API polling. The senseBox support team wrote in an email that polling even every five minutes The senseBox support team wrote in an email that polling even every five minutes is still o.k., therefore the minimum is hardcoded to be 300 seconds.
is still o.k., therefore the minimum is hardcoded to be 300 seconds.
``` ```
Thing sensebox:box:home [ senseBoxId = "foothesmurfingbar", refreshInterval = 600 ] Thing sensebox:box:home [ senseBoxId = "foothesmurfingbar", refreshInterval = 600 ]
@ -52,27 +52,27 @@ Thing sensebox:box:home [ senseBoxId = "foothesmurfingbar", refreshInterval = 60
In the table is shown more detailed information about each Channel type. In the table is shown more detailed information about each Channel type.
The binding introduces the following channels: The binding introduces the following channels:
| Channel ID | Channel Description | Supported item type | Advanced | | Channel ID | Channel Description | Supported item type | Advanced |
|-------------------------------------------------|--------------------------------------------------------------|---------------------|----------| |-------------------------------------------------|-------------------------------------------------------------|---------------------|----------|
| descriptors#location | Location of the box | Point | False | | descriptors#location | Location of the box | Point | False |
| measurements#uvIntensity | Intensity of Ultraviolet radiation | Number | False | | measurements#uvIntensity | Intensity of Ultraviolet radiation | Number | False |
| measurements#luminance | Illuminance | Number | False | | measurements#luminance | Illuminance | Number | False |
| measurements#pressure | Air pressure | Number | False | | measurements#pressure | Air pressure | Number | False |
| measurements#humidity | Humidity | Number | False | | measurements#humidity | Humidity | Number | False |
| measurements#temperature | Temperature | Number | False | | measurements#temperature | Temperature | Number | False |
| measurements#particulateMatter2dot5 | Particulate Matter 2.5 µm in diameter | Number | False | | measurements#particulateMatter2dot5 | Particulate Matter 2.5 µm in diameter | Number | False |
| measurements#particulateMatter10 | Temperature Matter 10 µm in diameter | Number | False | | measurements#particulateMatter10 | Temperature Matter 10 µm in diameter | Number | False |
| lastReported#uvIntensityLastReported | The timestamp when uv radiation intensity was last reported | DateTime | True | | lastReported#uvIntensityLastReported | The timestamp when uv radiation intensity was last reported | DateTime | True |
| lastReported#luminanceLastReported | The timestamp when illuminance was last reported | DateTime | True | | lastReported#luminanceLastReported | The timestamp when illuminance was last reported | DateTime | True |
| lastReported#pressureLastReported | The timestamp when pressure was last reported | DateTime | True | | lastReported#pressureLastReported | The timestamp when pressure was last reported | DateTime | True |
| lastReported#humidityLastReported | The timestamp when humidity was last reported | DateTime | True | | lastReported#humidityLastReported | The timestamp when humidity was last reported | DateTime | True |
| lastReported#temperatureLastReported | The timestamp when temperature was last reported | DateTime | True | | lastReported#temperatureLastReported | The timestamp when temperature was last reported | DateTime | True |
| lastReported#particulateMatter2dot5LastReported | The timestamp when particulate matter 2.5 was last reported | DateTime | True | | lastReported#particulateMatter2dot5LastReported | The timestamp when particulate matter 2.5 was last reported | DateTime | True |
| lastReported#particulateMatter10LastReported | The timestamp when particulate matter 10 was last reported | DateTime | True | | lastReported#particulateMatter10LastReported | The timestamp when particulate matter 10 was last reported | DateTime | True |
The channels starting with "descriptors" are defined on the API server. Channels starting with "descriptors" are defined on the API server.
## Full example ## Example
sensebox.things: sensebox.things:
@ -111,9 +111,9 @@ sitemap sensebox label="SenseBox Zugspitze" {
## senseBox API ## senseBox API
* https://docs.opensensemap.org/ * <https://docs.opensensemap.org/>
* https://docs.opensensemap.org/#api-Boxes-findBox * <https://docs.opensensemap.org/#api-Boxes-findBox>
* https://docs.opensensemap.org/#api-Measurements-getMeasurements * <https://docs.opensensemap.org/#api-Measurements-getMeasurements>
* https://api.opensensemap.org/boxes/:boxId * <https://api.opensensemap.org/boxes/:boxId>
* https://api.opensensemap.org/boxes/:senseBoxId/sensors * <https://api.opensensemap.org/boxes/:senseBoxId/sensors>

View File

@ -19,8 +19,8 @@ This binding integrates the Silvercrest Wifi Socket SWS-A1 sold by Lidl and the
## Supported Things ## Supported Things
- Silvercrest Wifi Socket SWS-A1 - [(Owner Manual)](http://www.lidl-service.com/static/118127777/103043_FI.pdf) -- Tested with firmware version: 1.41, 1.60, 1.70 - Silvercrest Wifi Socket SWS-A1 - [(Owner Manual)](http://www.lidl-service.com/static/118127777/103043_FI.pdf) -- Tested with firmware version: 1.41, 1.60, 1.70
- EasyHome Wifi Socket DIS-124 (https://www.aldi-sued.de/de/infos/aldi-sued-a-bis-z/s/serviceportal/ergebnisliste/sis/si/wifi-steckdose/) - EasyHome Wifi Socket DIS-124 <https://www.aldi-sued.de/de/infos/aldi-sued-a-bis-z/s/serviceportal/ergebnisliste/sis/si/wifi-steckdose/>
## Discovery ## Discovery
@ -37,13 +37,12 @@ To configure a Wifi Socket manually the mac address and the vendor is required.
Wifi Socket thing parameters: Wifi Socket thing parameters:
| Parameter ID | Parameter Type | Mandatory | Description | Default | | Parameter ID | Parameter Type | Mandatory | Description | Default |
|------------------|------------------|-------------|---------------------------------------------------------------------------------|-------------------| |----------------|----------------|-----------|-------------------------------------------------------------------------------|------------------|
| macAddress | text | true | The socket MAC address | | | macAddress | text | true | The socket MAC address | |
| hostAddress | text | false | The socket Host address. The binding is capable to discover the host address. | | | hostAddress | text | false | The socket Host address. The binding is capable to discover the host address. | |
| updateInterval | integer | false | Update time interval in seconds to request the status of the socket. | 60 | | updateInterval | integer | false | Update time interval in seconds to request the status of the socket. | 60 |
| vendor | option | true | The vendor of the system ("Aldi_EasyHome" or "Lidl_Silvercrest") | Lidl_Silvercrest | | vendor | option | true | The vendor of the system ("Aldi_EasyHome" or "Lidl_Silvercrest") | Lidl_Silvercrest |
E.g. E.g.
@ -55,6 +54,6 @@ Thing silvercrestwifisocket:wifiSocket:lamp [ macAddress="ACCF23343C50", vendor=
The Silvercrest Wifi Socket support the following channel: The Silvercrest Wifi Socket support the following channel:
| Channel Type ID | Item Type | Description | | Channel Type ID | Item Type | Description |
|-----------------|------------------------|--------------| |-----------------|-----------|---------------------|
| switch | Switch | Wifi Socket Switch. | | switch | Switch | Wifi Socket Switch. |

View File

@ -19,15 +19,21 @@ This binding integrates with the SleepIQ system from Select Comfort for Sleep Nu
## Introduction ## Introduction
SleepIQ is a service provided by Select Comfort and sold as an option for Sleep Number beds. The system collects data about the bed (including individual air chamber data for dual chamber beds). This information includes whether or not a sleeper is in bed, the current sleep number setting, the pressure of the air chamber, and it's link status. This data can then be analyzed for any number of purposes, including improving sleep. SleepIQ is a service provided by Select Comfort and sold as an option for Sleep Number beds.
The system collects data about the bed (including individual air chamber data for dual chamber beds).
This information includes whether or not a sleeper is in bed, the current sleep number setting, the pressure of the air chamber, and it's link status.
This data can then be analyzed for any number of purposes, including improving sleep.
## Supported Things ## Supported Things
The SleepIQ cloud service acts as the bridge. Each SleepIQ-enabled bed (regardless of the number of air chambers) is a thing. Currently, only dual-chamber beds are supported by this binding. The SleepIQ cloud service acts as the bridge.
Each SleepIQ-enabled bed (regardless of the number of air chambers) is a Thing.
Currently, only dual-chamber beds are supported by this binding.
## Discovery ## Discovery
The SleepIQ cloud thing must be added manually with the username and password used to register with the service. After that, beds are discovered automatically by querying the service. The SleepIQ cloud thing must be added manually with the username and password used to register with the service.
After that, beds are discovered automatically by querying the service.
## Binding Configuration ## Binding Configuration
@ -37,7 +43,8 @@ The binding requires no special configuration.
### Bridge (Thing ID: "cloud") ### Bridge (Thing ID: "cloud")
The bridge requires a username and a password. Optionally, you can also specify a polling interval. The bridge requires a username and a password.
Optionally, you can also specify a polling interval.
To enable verbose logging of HTTP requests and responses regarding the cloud service, enable DEBUG level logging on ```SleepIQCloudHandler```. To enable verbose logging of HTTP requests and responses regarding the cloud service, enable DEBUG level logging on ```SleepIQCloudHandler```.
@ -61,7 +68,7 @@ Each bed requires a bed ID as defined by the SleepIQ service.
Bridge sleepiq:cloud:1 [ username="name@example.com", password="password", pollingInterval=60, logging=false ] Bridge sleepiq:cloud:1 [ username="name@example.com", password="password", pollingInterval=60, logging=false ]
{ {
Thing dualBed master [ bedId="-9999999999999999999" ] Thing dualBed master [ bedId="-9999999999999999999" ]
Thing dualBed guest [ bedId="-8888888888888888888" ] Thing dualBed guest [ bedId="-8888888888888888888" ]
} }
``` ```

View File

@ -3,7 +3,7 @@ id: smaenergymeter
label: SMA Energy Meter label: SMA Energy Meter
title: SMA Energy Meter - Bindings title: SMA Energy Meter - Bindings
type: binding type: binding
description: "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." description: "This Binding is used to display the measured values of a SMA Energy Meter device."
since: 2x since: 2x
logo: images/addons/smaenergymeter.png logo: images/addons/smaenergymeter.png
install: auto install: auto
@ -15,7 +15,8 @@ install: auto
# SMA Energy Meter Binding # SMA Energy Meter Binding
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. 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.
## Supported Things ## Supported Things
@ -31,14 +32,15 @@ No binding configuration required.
## Thing Configuration ## Thing Configuration
Usually no manual configuration is required, as the multicast IP address and the port remain on their factory set values. Optionally, a refresh interval (in seconds) can be defined. Usually no manual configuration is required, as the multicast IP address and the port remain on their factory set values.
Optionally, a refresh interval (in seconds) can be defined.
## Channels ## Channels
- **powerIn** Purchased power [W] - **powerIn** Purchased power &lsqb;W&rsqb;
- **powerOut** Grid feed-in power [W] - **powerOut** Grid feed-in power &lsqb;W&rsqb;
- **energyIn** Purchased energy [kWh] - **energyIn** Purchased energy &lsqb;kWh&rsqb;
- **energyOut** Grid feed-in energy [kWh] - **energyOut** Grid feed-in energy &lsqb;kWh&rsqb;
## Full example ## Full example

View File

@ -19,19 +19,28 @@ This binding integrates the [Logitech Media Server](http://www.mysqueezebox.com)
## Introduction ## Introduction
Slim Devices was established in 2000, and was first known for its SlimServer used for streaming music, but launched a hardware player named SliMP3 able to play these streams in 2001. Although the first player was fairly simple only supporting wired Ethernet and MP3 natively, it was followed two years later by a slightly more advanced player which was renamed to Squeezebox. Other versions followed, gradually adding native support for additional file formats, Wi-Fi-support, gradually adding larger and more advanced displays as well as a version targeting audiophile users. Support for playing music from external streaming platforms such as Pandora, Napster, Last.fm and Sirius were also added. The devices in general have two operating modes; either standalone where the device connects to an internet streaming service directly, or to a local computer running the Logitech Media Server or a network-attached storage device. Both the server software and large parts of the firmware on the most recent players are released under open source licenses. Slim Devices was established in 2000, and was first known for its SlimServer used for streaming music, but launched a hardware player named SliMP3 able to play these streams in 2001.
Although the first player was fairly simple only supporting wired Ethernet and MP3 natively, it was followed two years later by a slightly more advanced player which was renamed to Squeezebox.
Other versions followed, gradually adding native support for additional file formats, Wi-Fi-support, gradually adding larger and more advanced displays as well as a version targeting audiophile users.
Support for playing music from external streaming platforms such as Pandora, Napster, Last.fm and Sirius were also added.
The devices in general have two operating modes; either standalone where the device connects to an internet streaming service directly, or to a local computer running the Logitech Media Server or a network-attached storage device.
Both the server software and large parts of the firmware on the most recent players are released under open source licenses.
In 2006, Slim Devices was acquired by Logitech for $20 million USD. Logitech continued the development of the player until they announced in August 2012 that it would be discontinued. Given the cross-platform nature of the server and software client, some users have ensured the continued use of the platform by utilizing the Raspberry Pi as dedicated Squeezebox device (both client and server). In 2006, Slim Devices was acquired by Logitech for $20 million USD.
Logitech continued the development of the player until they announced in August 2012 that it would be discontinued.
Given the cross-platform nature of the server and software client, some users have ensured the continued use of the platform by utilizing the Raspberry Pi as dedicated Squeezebox device (both client and server).
Taken from: [Wiki](http://en.wikipedia.org/wiki/Squeezebox_%28network_music_player%29) Taken from: [Wiki](http://en.wikipedia.org/wiki/Squeezebox_%28network_music_player%29)
## Supported Things ## Supported Things
At least one Squeeze Server is required to act as a bridge for Squeeze players on the network. Squeeze players may be official Logitech products or other players like [Squeeze Lites](https://code.google.com/p/squeezelite/). At least one Squeeze Server is required to act as a bridge for Squeeze players on the network.
Squeeze players may be official Logitech products or other players like [Squeeze Lites](https://code.google.com/p/squeezelite/).
## Discovery ## Discovery
A Squeeze Server is discovered through UPnP in the local network. Once it is added as a Thing the Squeeze Server bridge will discover Squeeze Players automatically. A Squeeze Server is discovered through UPnP in the local network.
Once it is added as a Thing the Squeeze Server bridge will discover Squeeze Players automatically.
## Binding Configuration ## Binding Configuration
@ -39,7 +48,8 @@ The binding requires no special configuration
## Thing Configuration ## Thing Configuration
The Squeeze Server bridge requires the ip address, web port, and cli port to access it on. If Squeeze Server authentication is enabled, the userId and password also are required. The Squeeze Server bridge requires the ip address, web port, and cli port to access it on.
If Squeeze Server authentication is enabled, the userId and password also are required.
Squeeze Players are identified by their MAC address. Squeeze Players are identified by their MAC address.
In the thing file, this looks e.g. like In the thing file, this looks e.g. like
@ -63,37 +73,39 @@ Bridge squeezebox:squeezeboxserver:myServer [ ipAddress="192.168.1.10", webport=
All devices support some of the following channels: All devices support some of the following channels:
| Channel Type ID | Item Type | Description | | Channel Type ID | Item Type | Description | | |
|-------------------------|------------------------|--------------|----------------- |------------- | |-------------------------|-----------|----------------------------------------------------------------------------------------|----------------------|---|
| power | Switch | Power on/off your device | | power | Switch | Power on/off your device | | |
| mute | Switch | Mute/unmute your device | | mute | Switch | Mute/unmute your device | | |
| volume | Dimmer | Volume of your device | | volume | Dimmer | Volume of your device | | |
| stop | Switch | Stop the current title| | stop | Switch | Stop the current title | | |
| control | Player | Control the Zone Player, e.g. play/pause/next/previous/ffward/rewind| | control | Player | Control the Zone Player, e.g. play/pause/next/previous/ffward/rewind | | |
| stream | String | Play the given HTTP or file stream (file:// or http://)| | stream | String | Play the given HTTP or file stream (file:// or http://) | | |
| sync | String | Add another player to your device for synchronized playback (other player mac address)| | sync | String | Add another player to your device for synchronized playback (other player mac address) | | |
| playListIndex | Number | Playlist Index| | playListIndex | Number | Playlist Index | | |
| currentPlayingTime| | Number | Current Playing Time| | currentPlayingTime | | Number | Current Playing Time | |
| currentPlaylistShuffle | Number | Current playlist shuffle mode (0 No Shuffle, 1 Shuffle Songs, 2 Shuffle Albums)| | currentPlaylistShuffle | Number | Current playlist shuffle mode (0 No Shuffle, 1 Shuffle Songs, 2 Shuffle Albums) | | |
| currentPlaylistRepeat | Number | Current playlist repeat Mode (0 No Repeat, 1 Repeat Song, 2 Repeat Playlist)| | currentPlaylistRepeat | Number | Current playlist repeat Mode (0 No Repeat, 1 Repeat Song, 2 Repeat Playlist) | | |
| title | String | Title of the current song | | title | String | Title of the current song | | |
| remotetitle | String | Remote Title (Radio) of the current song| | remotetitle | String | Remote Title (Radio) of the current song | | |
| album | String | Album name of the current song| | album | String | Album name of the current song | | |
| artist | String | Artist name of the current song| | artist | String | Artist name of the current song | | |
| year | String | Release year of the current song| | year | String | Release year of the current song | | |
| genre | String | Genre name of the current song| | genre | String | Genre name of the current song | | |
| coverartdata | Image | Image data of cover art of the current song| | coverartdata | Image | Image data of cover art of the current song | | |
| ircode | String | Received IR code| | ircode | String | Received IR code | | |
| numberPlaylistTracks | Number | Number of playlist tracks| | numberPlaylistTracks | Number | Number of playlist tracks | | |
| notificationSoundVolume | Dimmer | Volume for playing notifications| | notificationSoundVolume | Dimmer | Volume for playing notifications | | |
## Notifications ## Notifications
### How To Set Up ### How To Set Up
Squeeze Players can be set up as audio sinks in openHAB. Please follow the [openHAB multimedia documentation](http://docs.openhab.org/configuration/multimedia.html) for setup guidance. Squeeze Players can be set up as audio sinks in openHAB.
Please follow the [openHAB multimedia documentation](http://docs.openhab.org/configuration/multimedia.html) for setup guidance.
You can create an item and sitemap entry in order to set the notification volume independently from the Squeeze Player's current volume setting. If the notification volume is not specified, it will use the Player's current volume setting. You can create an item and sitemap entry in order to set the notification volume independently from the Squeeze Player's current volume setting.
If the notification volume is not specified, it will use the Player's current volume setting.
Item for setting notification volume. Item for setting notification volume.
@ -137,6 +149,6 @@ end
### Known Issues ### Known Issues
- There are some versions of squeezelite that will not correctly play very short duration mp3 files. Versions of squeezelite after v1.7 and before v1.8.6 will not play very short duration mp3 files reliably. For example, if you're using piCorePlayer (which uses squeezelite), please check your version of squeezelite if you're having trouble playing notifications. This bug has been fixed in squeezelite version 1.8.6-985, which is included in piCorePlayer version 3.20. - There are some versions of squeezelite that will not correctly play very short duration mp3 files. Versions of squeezelite after v1.7 and before v1.8.6 will not play very short duration mp3 files reliably. For example, if you're using piCorePlayer (which uses squeezelite), please check your version of squeezelite if you're having trouble playing notifications. This bug has been fixed in squeezelite version 1.8.6-985, which is included in piCorePlayer version 3.20.
- When streaming from a remote service (such as Pandora or Spotify), after the notification plays, the Squeezebox Server starts playing a new track, instead of picking up from where it left off on the currently playing track. - When streaming from a remote service (such as Pandora or Spotify), after the notification plays, the Squeezebox Server starts playing a new track, instead of picking up from where it left off on the currently playing track.

View File

@ -17,7 +17,7 @@ install: auto
This binding integrates the possibility to download and interpret Synop messages. This binding integrates the possibility to download and interpret Synop messages.
## Binding Configuration ## Binding Configuration
The binding has no configuration options itself, all configuration is done at 'Things' level. The binding has no configuration options itself, all configuration is done at 'Things' level.
## Supported Things ## Supported Things
@ -26,7 +26,8 @@ There is exactly one supported thing, which represents a Synop message. It has t
## Thing Configuration ## Thing Configuration
Besides the Synop Station Number (as ```synopID``` as a [StationID](http://www.ogimet.com/gsynop_nav.phtml.en) string), the second configuration parameter is ```refreshInterval``` which defines the refresh interval in minutes. Synop message are typically updated every hour. Besides the Synop Station Number (as ```synopID``` as a [StationID](http://www.ogimet.com/gsynop_nav.phtml.en) string), the second configuration parameter is ```refreshInterval``` which defines the refresh interval in minutes.
Synop message are typically updated every hour.
## Channels ## Channels
@ -47,13 +48,13 @@ The weather information that is retrieved is available as these channels:
| attenuation-factor* | Number | Cloud layer attenuation factor | | attenuation-factor* | Number | Cloud layer attenuation factor |
| time-utc | DateTime | Observation time of the Synop message | | time-utc | DateTime | Observation time of the Synop message |
* ”cloud attenuation factor” (Kc) as defined by Kasten and Czeplak (1980) * ”cloud attenuation factor” (Kc) as defined by Kasten and Czeplak (1980)
## Example ## Example
### Things ### Things
Here is an example of thing definition : Here is an example of thing definition :
``` ```
synopanalyzer:synopanalyzer:orly [ stationId="07149"] synopanalyzer:synopanalyzer:orly [ stationId="07149"]
@ -70,4 +71,3 @@ Number Synop_Wind_Speed "Wind Speed [%.2f m/s]" <wind> { channel = "synopanalyze
Number Synop_Octa "Octa [%d]/8" { channel = "synopanalyzer:synopanalyzer:trappes:octa"} Number Synop_Octa "Octa [%d]/8" { channel = "synopanalyzer:synopanalyzer:trappes:octa"}
DateTime Synop_time "Observation Time [%1$ta %1$tR]" <clock> { channel = "synopanalyzer:synopanalyzer:trappes:time-utc"} DateTime Synop_time "Observation Time [%1$ta %1$tR]" <clock> { channel = "synopanalyzer:synopanalyzer:trappes:time-utc"}
``` ```

View File

@ -16,39 +16,43 @@ install: auto
System information Binding provides operating system and hardware information including: System information Binding provides operating system and hardware information including:
- Operating system name, version and manufacturer; - Operating system name, version and manufacturer;
- CPU average recent load and load for last 1, 5, 15 minutes, name, description, number of physical and logical cores, running threads number, system uptime; - CPU average recent load and load for last 1, 5, 15 minutes, name, description, number of physical and logical cores, running threads number, system uptime;
- Free, total and available memory; - Free, total and available memory;
- Free, total and available swap memory; - Free, total and available swap memory;
- Hard drive name, model and serial number; - Hard drive name, model and serial number;
- Free, total, available storage space and storage type (NTSFS, FAT32 ..); - Free, total, available storage space and storage type (NTSFS, FAT32 ..);
- Battery information - estimated remaining time, capacity, name; - Battery information - estimated remaining time, capacity, name;
- Sensors information - CPU voltage and temperature, fan speeds; - Sensors information - CPU voltage and temperature, fan speeds;
- Display information; - Display information;
- Network IP,name and adapter name, mac, data sent and received, packets sent and received; - Network IP,name and adapter name, mac, data sent and received, packets sent and received;
- Process information - size of RAM memory used, CPU load, process name, path, number of threads. - Process information - size of RAM memory used, CPU load, process name, path, number of threads.
The binding uses [OSHI](https://github.com/oshi/oshi) API to access this information regardless of the underlying platform and does not need any native parts. The binding uses [OSHI](https://github.com/oshi/oshi) API to access this information regardless of the underlying platform and does not need any native parts.
## Supported Things ## Supported Things
The binding supports only one thing type - **computer**. This thing represents a system with one storage volume, one display device and one network adapter. The binding supports only one thing type - **computer**. This thing represents a system with one storage volume, one display device and one network adapter.
The thing has the following properties: The thing has the following properties:
- `cpu_logicalCores` - Number of CPU logical cores - `cpu_logicalCores` - Number of CPU logical cores
- `cpu_physicalCores` - Number of CPU physical cores - `cpu_physicalCores` - Number of CPU physical cores
- `os_manufacturer` - The manufacturer of the operating system - `os_manufacturer` - The manufacturer of the operating system
- `os_version` - The version of the operating system - `os_version` - The version of the operating system
- `os_family` - The family of the operating system - `os_family` - The family of the operating system
If multiple storage or display devices support is needed, new thing type has to be defined. This is workaround until [this issue] (https://github.com/eclipse/smarthome/issues/588) is resolved and it is possible to add dynamically channels to DSL defined thing. If multiple storage or display devices support is needed, new thing type has to be defined.
This is workaround until [this issue] (https://github.com/eclipse/smarthome/issues/588) is resolved and it is possible to add dynamically channels to DSL defined thing.
## Discovery ## Discovery
The discovery service implementation tries to resolve the computer name. If the resolving process fails, the computer name is set to "Unknown". In both cases it creates a Discovery Result with thing type **computer**. The discovery service implementation tries to resolve the computer name.
If the resolving process fails, the computer name is set to "Unknown".
In both cases it creates a Discovery Result with thing type **computer**.
When [this issue] (https://github.com/eclipse/smarthome/issues/1118) is resolved it will be possible to implement creation of dynamic channels (e.g. the binding will scan how much storage devices are present and create channel groups for them). At the moment this is not supported. When [this issue] (https://github.com/eclipse/smarthome/issues/1118) is resolved it will be possible to implement creation of dynamic channels (e.g. the binding will scan how much storage devices are present and create channel groups for them).
At the moment this is not supported.
## Binding configuration ## Binding configuration
@ -60,104 +64,111 @@ The configuration of the Thing gives the user the possibility to update channels
The thing has two configuration parameters: The thing has two configuration parameters:
* **interval_high** - refresh interval in seconds for channels with 'High' priority configuration. Default value is 1 s. * **interval_high** - refresh interval in seconds for channels with 'High' priority configuration. Default value is 1 s.
* **interval_medium** - refresh interval in seconds for channels with 'Medium' priority configuration. Default value is 60s. * **interval_medium** - refresh interval in seconds for channels with 'Medium' priority configuration. Default value is 60s.
That means that by default configuration: That means that by default configuration:
* channels with priority set to 'High' are updated every second * channels with priority set to 'High' are updated every second
* channels with priority set to 'Medium' - every minute * channels with priority set to 'Medium' - every minute
* channels with priority set to 'Low' only at initializing or at Refresh command. * channels with priority set to 'Low' only at initializing or at Refresh command.
For more info see [channel configuration](#channel-configuration) For more info see [channel configuration](#channel-configuration)
## Channels ## Channels
The binding support several channel group. Each channel group, contains one or more channels. In the list below, you can find, how are channel group and channels id`s related. The binding support several channel group. Each channel group, contains one or more channels.
In the list below, you can find, how are channel group and channels id`s related.
**thing** `computer` **thing** `computer`
* **group** `memory` * **group** `memory`
**channel** `available, total, used, availablePercent, usedPercent` **channel** `available, total, used, availablePercent, usedPercent`
* **group** `swap` * **group** `swap`
**channel** `available, total, used, availablePercent, usedPercent` **channel** `available, total, used, availablePercent, usedPercent`
* **group** `storage` (deviceIndex) * **group** `storage` (deviceIndex)
**channel** `available, total, used, availablePercent, usedPercent, name, description, type` **channel** `available, total, used, availablePercent, usedPercent, name, description, type`
* **group** `drive` (deviceIndex) * **group** `drive` (deviceIndex)
**channel** `name, model, serial` **channel** `name, model, serial`
* **group** `display` (deviceIndex) * **group** `display` (deviceIndex)
**channel** `information` **channel** `information`
* **group** `battery` (deviceIndex) * **group** `battery` (deviceIndex)
**channel** `name, remainingCapacity, remainingTime` **channel** `name, remainingCapacity, remainingTime`
* **group** `cpu` * **group** `cpu`
**channel** `name, description, load, load1, load5, load15, uptime` **channel** `name, description, load, load1, load5, load15, uptime`
* **group** `sensors` * **group** `sensors`
**channel** `cpuTemp, cpuVoltage, fanSpeed` **channel** `cpuTemp, cpuVoltage, fanSpeed`
* **group** `network` (deviceIndex) * **group** `network` (deviceIndex)
**channel** `ip, mac, networkDisplayName, networkName, packetsSent, packetsReceived, dataSent, dataReceived` **channel** `ip, mac, networkDisplayName, networkName, packetsSent, packetsReceived, dataSent, dataReceived`
* **group** `process` (pid) * **group** `process` (pid)
**channel** `load, used, name, threads, path` **channel** `load, used, name, threads, path`
The groups marked with "deviceIndex" may have device index attached to the Channel Group. The groups marked with "deviceIndex" may have device index attached to the Channel Group.
- channel ::= chnanel_group & (deviceIndex) & # channel_id - channel ::= chnanel_group & (deviceIndex) & # channel_id
- deviceIndex ::= number > 0 - deviceIndex ::= number > 0
- (e.g. *storage1#available*) - (e.g. *storage1#available*)
The group `process` is using a configuration parameter "pid" instead of "deviceIndex". This makes possible to changed the tracked process at runtime.
The binding uses this index to get information about a specific device from a list of devices.
(e.g on a single computer could be installed several local disks with names C:\, D:\, E:\ - the first will have deviceIndex=0, the second deviceIndex=1 ant etc). If device with this index is not existing, the binding will display an error message on the console.
Unfortunately this feature can't be used at the moment without manually adding these new channel groups to the thing description (located in ESH-INF/thing/computer.xml).
In the table is shown more detailed information about each Channel type. The group `process` is using a configuration parameter "pid" instead of "deviceIndex".
This makes possible to changed the tracked process at runtime.
The binding uses this index to get information about a specific device from a list of devices (e.g on a single computer could be installed several local disks with names C:\, D:\, E:\ - the first will have deviceIndex=0, the second deviceIndex=1 ant etc).
If device with this index is not existing, the binding will display an error message on the console.
Unfortunately this feature can't be used at the moment without manually adding these new channel groups to the thing description (located in ESH-INF/thing/computer.xml).
The table shows more detailed information about each Channel type.
The binding introduces the following channels: The binding introduces the following channels:
| Channel ID | Channel Description | Supported item type | Default priority | Advanced | | Channel ID | Channel Description | Supported item type | Default priority | Advanced |
| ------------- | ------------- |------------|----------|----------| |--------------------|------------------------------------------------------------------|---------------------|------------------|----------|
| load | Recent load in percents | Number | High | False | | load | Recent load in percents | Number | High | False |
| load1 | Load for the last 1 minute | Number | Medium | True | | load1 | Load for the last 1 minute | Number | Medium | True |
| load5 | Load for the last 5 minutes | Number | Medium | True | | load5 | Load for the last 5 minutes | Number | Medium | True |
| load15 | Load for the last 15 minutes | Number | Medium | True | | load15 | Load for the last 15 minutes | Number | Medium | True |
| threads | Number of threads currently running | Number | Medium | True | | threads | Number of threads currently running | Number | Medium | True |
| uptime | System uptime (time after start) in minutes | Number | Medium | True | | uptime | System uptime (time after start) in minutes | Number | Medium | True |
| name | Name of the device | String | Low | False | | name | Name of the device | String | Low | False |
| available | Available size in MB | Number | High | False | | available | Available size in MB | Number | High | False |
| used | Used size in MB | Number | High | False | | used | Used size in MB | Number | High | False |
| total | Total size in MB | Number | Low | False | | total | Total size in MB | Number | Low | False |
| availablePercent | Available size in % | Number | High | False | | availablePercent | Available size in % | Number | High | False |
| usedPercent | Used size in % | Number | High | False | | usedPercent | Used size in % | Number | High | False |
| model | The model of the device | String | Low | True | | model | The model of the device | String | Low | True |
| serial | The serial number of the device | String | Low | True | | serial | The serial number of the device | String | Low | True |
| description | Description of the device | String | Low | True | | description | Description of the device | String | Low | True |
| type | Storage type | String | Low | True | | type | Storage type | String | Low | True |
| cpuTemp | CPU Temperature in Celsius degrees | Number | High | True | | cpuTemp | CPU Temperature in Celsius degrees | Number | High | True |
| cpuVoltage | CPU Voltage in V | Number | Medium | True | | cpuVoltage | CPU Voltage in V | Number | Medium | True |
| fanSpeed | Fan speed in rpm | Number | Medium | True | | fanSpeed | Fan speed in rpm | Number | Medium | True |
| remainingTime | Remaining time in minutes | Number | Medium | False | | remainingTime | Remaining time in minutes | Number | Medium | False |
| remainingCapacity | Remaining capacity in percents | Number | Medium | False | | remainingCapacity | Remaining capacity in percents | Number | Medium | False |
| information | Product, manufacturer, SN, width and height of the display in cm | String | Low | True | | information | Product, manufacturer, SN, width and height of the display in cm | String | Low | True |
| ip | Host IP address of the network | String | Low | False | | ip | Host IP address of the network | String | Low | False |
| mac | MAC address | String | Low | True | | mac | MAC address | String | Low | True |
| networkName | The name of the network | String | Low | False | | networkName | The name of the network | String | Low | False |
| networkDisplayName | The display name of the network | String | Low | False | | networkDisplayName | The display name of the network | String | Low | False |
| packetsSent | Number of packets sent | Number | Medium | True | | packetsSent | Number of packets sent | Number | Medium | True |
| packetsReceived | Number of packets received | Number | Medium | True | | packetsReceived | Number of packets received | Number | Medium | True |
| dataSent | Data sent in MB | Number | Medium | True | | dataSent | Data sent in MB | Number | Medium | True |
| dataReceived | Data received in MB | Number | Medium | True | | dataReceived | Data received in MB | Number | Medium | True |
## Channel configuration ## Channel configuration
All channels can change its configuration parameters at runtime. The binding will trigger the necessary changes (reduce or increase the refresh time, change channel priority or the process that is being tracked). All channels can change its configuration parameters at runtime.
The binding will trigger the necessary changes (reduce or increase the refresh time, change channel priority or the process that is being tracked).
Each of the channels has a default configuration parameter - priority. It has the following options: Each of the channels has a default configuration parameter - priority.
It has the following options:
- **High**
- **Medium**
- **Low**
Channels from group ''process'' have additional configuration parameter - PID (Process identifier).
This parameter is used as 'deviceIndex' and defines which process is tracked from the channel.
This makes the channels from this groups very flexible - they can change its PID dynamically.
- **High**
- **Medium**
- **Low**
Channels from group ''process'' have additional configuration parameter - PID (Process identifier). This parameter is used as 'deviceIndex' and defines which process is tracked from the channel. This makes the channels from this groups very flexible - they can change its PID dynamically.
Parameter PID has a default value 0 - this is the PID of the System Idle process in Windows OS. Parameter PID has a default value 0 - this is the PID of the System Idle process in Windows OS.
## Reporting issues ## Reporting issues
@ -166,7 +177,9 @@ As already mentioned this binding depends heavily on the [OSHI](https://github.c
Take a look at the console for an ERROR log message. Take a look at the console for an ERROR log message.
If you find an issue with a support for a specific hardware or software architecture please take a look at the [OSHI issues](https://github.com/oshi/oshi/issues), your problem might have be already reported and solved! Feel free to open a new issue there with the log message and the and information about your software or hardware configuration. If you find an issue with a support for a specific hardware or software architecture please take a look at the [OSHI issues](https://github.com/oshi/oshi/issues).
Your problem might have be already reported and solved!
Feel free to open a new issue there with the log message and the and information about your software or hardware configuration.
After the issue is resolved the binding has to be [updated](#updating-this-binding). After the issue is resolved the binding has to be [updated](#updating-this-binding).
@ -174,21 +187,21 @@ For a general problem with the binding report the issue directly to openHAB.
## Updating this binding ## Updating this binding
OSHI project has a good support and regularly updates the library with fixes to issues and new features. OSHI project has a good support and regularly updates the library with fixes to issues and new features.
In order to update the version used in the binding, follow these easy steps: In order to update the version used in the binding, follow these easy steps:
- Go to the [OSHI github repo](https://github.com/oshi/oshi) and download the newest version available of the module oshi-core or download the jar from the [Maven Central](http://search.maven.org/#search%7Cga%7C1%7Coshi-). Check if the versions of the OSHI dependencies as well (jna and jna-platform) are changed; - Go to the [OSHI github repo](https://github.com/oshi/oshi) and download the newest version available of the module oshi-core or download the jar from the [Maven Central](http://search.maven.org/#search%7Cga%7C1%7Coshi-). Check if the versions of the OSHI dependencies as well (jna and jna-platform) are changed;
- Replace the jars in lib folder; - Replace the jars in lib folder;
- Modify the .classpath file with the new versions of the jars; - Modify the .classpath file with the new versions of the jars;
- Modify the header Bundle-ClassPath in the META-INF/MANIFEST.MF. - Modify the header Bundle-ClassPath in the META-INF/MANIFEST.MF.
## Full example ## Example
Things: Things:
``` ```
systeminfo:computer:work [interval_high=3, interval_medium=60] systeminfo:computer:work [interval_high=3, interval_medium=60]
``` ```
Items: Items:
@ -207,7 +220,7 @@ Number Network_PacketsRecevied { channel="systeminfo:computer:work:network#p
/* CPU information*/ /* CPU information*/
String CPU_Name { channel="systeminfo:computer:work:cpu#name" } String CPU_Name { channel="systeminfo:computer:work:cpu#name" }
String CPU_Description { channel="systeminfo:computer:work:cpu#description" } String CPU_Description { channel="systeminfo:computer:work:cpu#description" }
Number CPU_Load { channel="systeminfo:computer:work:cpu#load"} Number CPU_Load { channel="systeminfo:computer:work:cpu#load"}
Number CPU_Load1 { channel="systeminfo:computer:work:cpu#load1" } Number CPU_Load1 { channel="systeminfo:computer:work:cpu#load1" }
Number CPU_Load5 { channel="systeminfo:computer:work:cpu#load5" } Number CPU_Load5 { channel="systeminfo:computer:work:cpu#load5" }
Number CPU_Load15 { channel="systeminfo:computer:work:cpu#load15" } Number CPU_Load15 { channel="systeminfo:computer:work:cpu#load15" }

View File

@ -3,7 +3,7 @@ id: tankerkoenig
label: Tankerkönig label: Tankerkönig
title: Tankerkönig - Bindings title: Tankerkönig - Bindings
type: binding type: binding
description: "The binding uses the Tankerkönig API (https://www.tankerkoenig.de) for collecting gas price data of german gas stations." description: "The binding uses the Tankerkönig API <https://www.tankerkoenig.de> for collecting gas price data of german gas stations."
since: 2x since: 2x
logo: images/addons/tankerkoenig.png logo: images/addons/tankerkoenig.png
install: auto install: auto
@ -15,15 +15,17 @@ install: auto
# Tankerkönig Binding # Tankerkönig Binding
The binding uses the Tankerkönig API (https://www.tankerkoenig.de) for collecting gas price data of german gas stations. The binding uses the Tankerkönig API <https://www.tankerkoenig.de> for collecting gas price data of german gas stations.
Special thanks to the creators of Tankerkönig for providing an easy way to get data from the [MTS-K] (Markttransparenzstelle für Kraftstoffe). Special thanks to the creators of Tankerkönig for providing an easy way to get data from the &lsqb;MTS-K&rsqb; (Markttransparenzstelle für Kraftstoffe).
Tankerkönig is providing this service for free, however they request to prevent overloading of their server by reducing the number of web-requests. This binding handles those requests (minimum Refresh Interval is 10 minutes, a webserver does handle a maximum of 10 stations). Tankerkönig is providing this service for free, however they request to prevent overloading of their server by reducing the number of web-requests.
This binding handles those requests (minimum Refresh Interval is 10 minutes, a webserver does handle a maximum of 10 stations).
The data will be updated for each Station individually after the initialization and after each Refresh Interval for all (open) stations (Note: changing the Webservice will cause the Refresh Interval to restart). The data will be updated for each Station individually after the initialization and after each Refresh Interval for all (open) stations (Note: changing the Webservice will cause the Refresh Interval to restart).
Additionally one may select the mode Opening-Times in which only those Stations get polled which are actually open. For a correct usage of opening times the binding needs the information if the actual day is a holiday. Additionally one may select the mode Opening-Times in which only those Stations get polled which are actually open.
For a correct usage of opening times the binding needs the information if the actual day is a holiday.
Note: Note:
While using the mode Opening-Times the channel "station_open" will NOT show "close" because during such times no update is being requested from that Station! While using the mode Opening-Times the channel "station_open" will NOT show "close" because during such times no update is being requested from that Station!
## Preparation ## Preparation
@ -33,12 +35,14 @@ In order to use this binding one needs to prepare:
-a personal API-Key -a personal API-Key
Demand free Tankerkönig API key from: https://creativecommons.tankerkoenig.de/ Select the tab "API-Key". Request a free Tankerkönig API key from: <https://creativecommons.tankerkoenig.de/> Select the tab "API-Key".
-LocationIDs of the selected gas stations -LocationIDs of the selected gas stations
Search for the gas station IDs here: https://creativecommons.tankerkoenig.de/configurator/index.html Search for the gas station IDs here: <https://creativecommons.tankerkoenig.de/configurator/index.html>
Drag the red marker on the map to the rough location of desired gas stations. Select the gas stations and click "Tankstellen übernehmen" on the right. This will download a file holding the location IDs. For example: a7cdd9cf-b467-4aac-8eab-d662f082511e Drag the red marker on the map to the rough location of desired gas stations.
Select the gas stations and click "Tankstellen übernehmen" on the right.
This will download a file holding the location IDs. For example: a7cdd9cf-b467-4aac-8eab-d662f082511e
## Supported Things ## Supported Things
@ -50,7 +54,8 @@ This binding supports:
## Discovery ## Discovery
The binding provides no discovery. The desired Webservice and Stations must be configured manually or via a things file. The binding provides no discovery.
The desired Webservice and Stations must be configured manually or via a things file.
## Binding configuration ## Binding configuration
@ -58,24 +63,24 @@ The binding has no configuration options itself, all configuration is done at 'B
## Thing configuration ## Thing configuration
The Webservice (bridge) needs to be configured with the personal API-Key, the desired Refresh Interval (the time interval between price-updates, default 60 minutes, minimum 10 minutes) and the Opening-Times mode selection (in this mode price-updates are only requested from stations that are actually open). The Webservice (bridge) needs to be configured with the personal API-Key, the desired Refresh Interval (the time interval between price-updates, default 60 minutes, minimum 10 minutes) and the Opening-Times mode selection (in this mode price-updates are only requested from stations that are actually open).
A single Webservice can handle up to 10 Stations. A single Webservice can handle up to 10 Stations.
Each Station needs to be configured with a LocationID and the Webservice to which it is linked. Each Station needs to be configured with a LocationID and the Webservice to which it is linked.
## Channels ## Channels
The binding introduces the channel holiday for the Webservice and the channels e10, e5 ,diesel and station_open for the Stations: The binding introduces the channel holiday for the Webservice and the channels e10, e5 ,diesel and station_open for the Stations:
| Channel ID | Channel Description | Supported item type | Advanced | | Channel ID | Channel Description | Supported item type | Advanced |
|-------------------------------------------------|--------------------------------------------------------------|---------------------|----------| |--------------|---------------------------------------|---------------------|----------|
| holiday | ON if today is a holiday | Switch | False | | holiday | ON if today is a holiday | Switch | False |
| e10 | price of e10 | Number | False | | e10 | price of e10 | Number | False |
| e5 | price of e5 | Number | False | | e5 | price of e5 | Number | False |
| diesel | price of diesel | Number | False | | diesel | price of diesel | Number | False |
| station_open | reported opening-state of the station | Contact | False | | station_open | reported opening-state of the station | Contact | False |
## Full example ## Example
Note: All apikeys and locationids are only examples! Note: All apikeys and locationids are only examples!
@ -104,15 +109,18 @@ Number Diesel_2 "Diesel [%.3f €]" { channel="tankerkoenig:station:WebserviceNa
-The Webservice stays OFFLINE -The Webservice stays OFFLINE
If only a Webservice is configured, it will remain OFFLINE until a Station is configured as well. Each Station schedules a daily job to update detail-data, on completion of that job the Station and the Webservice will change to ONLINE. If only a Webservice is configured, it will remain OFFLINE until a Station is configured as well.
Each Station schedules a daily job to update detail-data, on completion of that job the Station and the Webservice will change to ONLINE.
The further price-updates for all Stations are scheduled by the Webservice using the Refresh Interval. The further price-updates for all Stations are scheduled by the Webservice using the Refresh Interval.
-The Station(s) and Webservice stay OFFLINE -The Station(s) and Webservice stay OFFLINE
Set the logging level for the binding to DEBUG (Karaf-Console command: "log:set DEBUG org.openhab.binding.tankerkoenig". Create a new Station (in order to start the "initialize" routine). Check the openhab.log for entries like: Set the logging level for the binding to DEBUG (Karaf-Console command: "log:set DEBUG org.openhab.binding.tankerkoenig".
Create a new Station (in order to start the "initialize" routine).
Check the openhab.log for entries like:
``` ```
2017-06-25 16:02:12.679 [DEBUG] [ig.internal.data.TankerkoenigService] - getTankerkoenigDetailResult IOException: 2017-06-25 16:02:12.679 [DEBUG] [ig.internal.data.TankerkoenigService] - getTankerkoenigDetailResult IOException:
java.io.IOException: java.util.concurrent.ExecutionException: javax.net.ssl.SSLHandshakeException: General SSLEngine problem java.io.IOException: java.util.concurrent.ExecutionException: javax.net.ssl.SSLHandshakeException: General SSLEngine problem
...... ......
``` ```
@ -126,25 +134,28 @@ keytool -import -keystore cacerts -alias startssl -file ca.crt
``` ```
The required password is "changeit". The required password is "changeit".
-The Station(s) and Webservice go to OFFLINE after being ONLINE -The Station(s) and Webservice go to OFFLINE after being ONLINE
The web-request to Tankerkönig did either return a failure or no valid response was received (which could be caused by a banned API-key). In both cases the Webservice and the Station(s) go OFFLINE. If the Tankerkönig return indicates an error a descriptive message (in German) is added next to the OFFLINE which will be displayed on the Webservice and Station(s) pages on PaperUI. The web-request to Tankerkönig did either return a failure or no valid response was received (which could be caused by a banned API-key).
In both cases the Webservice and the Station(s) go OFFLINE.
If the Tankerkönig return indicates an error a descriptive message (in German) is added next to the OFFLINE which will be displayed on the Webservice and Station(s) pages on PaperUI.
On the next receipt of a valid message Webservice and Station(s) will go ONLINE again. On the next receipt of a valid message Webservice and Station(s) will go ONLINE again.
The scheduled polling of price-data is canceled in case of no valid response. The scheduled polling of price-data is canceled in case of no valid response.
Users should check the log for any reports to solve the reason for the OFFLINE status. In order to restart the polling a change of the Webservice has to be saved (for example a change in the Refresh Interval). Users should check the log for any reports to solve the reason for the OFFLINE status.
In order to restart the polling a change of the Webservice has to be saved (for example a change in the Refresh Interval).
Note: If the API-key is banned by Tankerkönig, the reason has to be cleared with Tankerkönig! Note: If the API-key is banned by Tankerkönig, the reason has to be cleared with Tankerkönig!
-How to set the switch item for the channel holiday? -How to set the switch item for the channel holiday?
The correct usage of opening times needs the information if the actual day is a holiday. The binding expects a switch item linked to the Webservice channel holiday. The correct usage of opening times needs the information if the actual day is a holiday.
This switch can be set either manually (only suggested for testing!), by a rule [openHAB1-addons rules] or by the usage of the CALDAV binding with a calendar. The binding expects a switch item linked to the Webservice channel holiday.
This switch can be set either manually (only suggested for testing!), by a rule &lsqb;openHAB1-addons rules&rsqb; or by the usage of the CALDAV binding with a calendar.
## Tankerkönig API ## Tankerkönig API
* https://creativecommons.tankerkoenig.de/ (sorry, only available in german) * <https://creativecommons.tankerkoenig.de/> (sorry, only available in German)
[MTS-K]: <https://www.bundeskartellamt.de/DE/Wirtschaftsbereiche/Mineral%C3%B6l/MTS-Kraftstoffe/Verbraucher/verbraucher_node.html>
[openhab1-addons rules]: <https://github.com/openhab/openhab1-addons/wiki/Samples-Rules#how-to-calculate-public-holidays>
* &lsqb;MTS-K&rsqb;: <https://www.bundeskartellamt.de/DE/Wirtschaftsbereiche/Mineral%C3%B6l/MTS-Kraftstoffe/Verbraucher/verbraucher_node.html>
* &lsqb;openhab1-addons rules&rsqb;: <https://github.com/openhab/openhab1-addons/wiki/Samples-Rules#how-to-calculate-public-holidays>

View File

@ -17,8 +17,8 @@ install: auto
This is an openHAB binding for Tellstick devices produced by Telldus, a Swedish company based in Lund. This is an openHAB binding for Tellstick devices produced by Telldus, a Swedish company based in Lund.
The original Tellstick focused on controlling 433 MHz devices like switches, dimmers and reading sensors from different brands. <br> The original Tellstick focused on controlling 433 MHz devices like switches, dimmers and reading sensors from different brands.
Many of the supported devices are cheaper and "low-end" and support have been made by reverse engineer the transmission protocols. <br> Many of the supported devices are cheaper and "low-end" and support have been made by reverse engineer the transmission protocols.
All of these 433 MHz devices is one-way, so some versions of the Tellstick monitoring the air to keep the state of all devices. All of these 433 MHz devices is one-way, so some versions of the Tellstick monitoring the air to keep the state of all devices.
The latest versions have also implemented Z-Wave as transmission protocol which open up for more robust transmission due two-ways communication. The latest versions have also implemented Z-Wave as transmission protocol which open up for more robust transmission due two-ways communication.
@ -31,43 +31,52 @@ The latest versions have also implemented Z-Wave as transmission protocol which
This binding supports the following thing types: This binding supports the following thing types:
* *Dimmable Device* - Usually for controlling lamps. `dimmer` * *Dimmable Device* - Usually for controlling lamps. `dimmer`
* *Switchable Device* - On/Off only could be lamps or other electronic equipment. `switch` * *Switchable Device* - On/Off only could be lamps or other electronic equipment. `switch`
* *Sensors* - Temperature- and humidity-sensors. `sensor` * *Sensors* - Temperature- and humidity-sensors. `sensor`
Additionally the binding have two types of bridge things which correspond to available API types: Additionally the binding have two types of bridge things which correspond to available API types:
* *Telldus Core Bridge* - Oldest API, used by USB devices. `telldus-core` * *Telldus Core Bridge* - Oldest API, used by USB devices. `telldus-core`
* *Telldus Live Bridge* - Telldus Cloud service, all devices with online access. `telldus-live` * *Telldus Live Bridge* - Telldus Cloud service, all devices with online access. `telldus-live`
The attentive reader discovers that there is many missing sensor types; `UV`, `Luminance`, `Dew point`, `Barometic pressure` `Rainrate`, `Raintotal`, `Winddirection`, `Windaverage` and `Windgust` which is supported by the Tellstick devices. Support have not been implemented on the openhab side yet, contributions are welcome. The attentive reader discovers that there is many missing sensor types; `UV`, `Luminance`, `Dew point`, `Barometic pressure` `Rainrate`, `Raintotal`, `Winddirection`, `Windaverage` and `Windgust` which is supported by the Tellstick devices.
Support have not been implemented on the openhab side yet, contributions are welcome.
***Switchbased sensors workaround*** <br> ***Switchbased sensors workaround*** <br>
*Some 433MHz magnetic & PIR sensors for example magnetic door sensors are detected as a regular `switch` things instead of a separate type. There is technically no way of distinguish them apart from regulur `switch` things. For using them as sensors only (not paired to a lamp) please consult the workaround in the channel section.* * Some 433MHz magnetic & PIR sensors for example magnetic door sensors are detected as a regular `switch` things instead of a separate type. There is technically no way of distinguish them apart from regulur `switch` things.
For using them as sensors only (not paired to a lamp) please consult the workaround in the channel section.
## Discovery ## Discovery
Devices which is added to *Telldus Core* and *Telldus Live* can be discovered by openHAB. Devices which is added to *Telldus Core* and *Telldus Live* can be discovered by openHAB.
When you add this binding it will try to discover the *Telldus Core Bridge*. If it's installed correct its devices will show up. When you add this binding it will try to discover the *Telldus Core Bridge*.
If it's installed correct its devices will show up.
If you want to use the *Telldus Live* its bridge, *Telldus Live bridge* need to be added manually. If you want to use the *Telldus Live* its bridge, *Telldus Live bridge* need to be added manually.
## Binding Configuration ## Binding Configuration
***For USB connected tellsticks only, eg. Basic and DUO*** <br> ***For USB connected tellsticks only, eg. Basic and DUO***
*First of all you need to make sure that your JVM is matching your installed Telldus Center. This normally means openHab must run on a 32bit JVM for windows and a 64bit JVM for linux. For windows the binding is hardcoded to look for Telldus Center in Programs Files ("C:/Program Files/Telldus/;C:/Program Files (x86)/Telldus/"). If you have trouble getting the telldus core library to work you can modify the library path using* First of all you need to make sure that your JVM is matching your installed Telldus Center.
This normally means openHab must run on a 32bit JVM for windows and a 64bit JVM for linux.
For windows the binding is hardcoded to look for Telldus Center in Programs Files ("C:/Program Files/Telldus/;C:/Program Files (x86)/Telldus/").
If you have trouble getting the telldus core library to work you can modify the library path using
## Thing Configuration ## Thing Configuration
Only the bridges require manual configuration. The devices and sensors should not be added by hand, let the discovery/inbox initially configure these. Only the bridges require manual configuration.
The devices and sensors should not be added by hand, let the discovery/inbox initially configure these.
### Dimmers & switches ### Dimmers & switches
There is an option to override the resend count of the commands. Use the option `repeat` for that. Default resend count is 2. There is an option to override the resend count of the commands.
Use the option `repeat` for that. Default resend count is 2.
### Bridges ### Bridges
Depending on your tellstick device type there is different ways of using this binding. The binding implements two different API: Depending on your tellstick device type there is different ways of using this binding.
The binding implements two different API:
**1)** *Telldus Core* which is a local only interface supported by USB based device. <br> **1)** *Telldus Core* which is a local only interface supported by USB based device. <br>
**2)** *Telldus Live* which is a REST based cloud service maintained by Telldus. <br> **2)** *Telldus Live* which is a REST based cloud service maintained by Telldus. <br>
@ -95,13 +104,13 @@ Bridge tellstick:telldus-core:1 "Tellstick Duo" [resendInterval=200]
Optional: Optional:
- **libraryPath:** The path to tellduscore.dll/so, - **libraryPath:** The path to tellduscore.dll/so,
- **resendInterval:** The interval between each transmission of command in ms, default 100ms. - **resendInterval:** The interval between each transmission of command in ms, default 100ms.
#### Telldus Live Bridge #### Telldus Live Bridge
To configure Telldus Live you have request OAuth tokens from Telldus. Goto this page To configure Telldus Live you have request OAuth tokens from Telldus. Goto this page
http://api.telldus.com/keys/index and request your keys and update the config. <http://api.telldus.com/keys/index> and request your keys and update the config.
``` ```
Bridge tellstick:telldus-live:2 "Tellstick ZWave" [publicKey="XXX", privateKey="YYYY", token= "ZZZZ", tokenSecret="UUUU"] Bridge tellstick:telldus-live:2 "Tellstick ZWave" [publicKey="XXX", privateKey="YYYY", token= "ZZZZ", tokenSecret="UUUU"]
@ -109,18 +118,18 @@ Bridge tellstick:telldus-live:2 "Tellstick ZWave" [publicKey="XXX", privateKey="
Required: Required:
- **privateKey:** Private key - **privateKey:** Private key
- **publicKey:** Public key - **publicKey:** Public key
- **token:** Token - **token:** Token
- **tokenSecret:** Token secret - **tokenSecret:** Token secret
Optional: Optional:
- **refreshInterval:** How often we should contact *Telldus Live* to check for updates (in ms) - **refreshInterval:** How often we should contact *Telldus Live* to check for updates (in ms)
## Channels ## Channels
Actuators ([dimmer]/[switch]) support the following channels: Actuators (&lsqb;dimmer&rsqb;/&lsqb;switch&rsqb;) support the following channels:
<table> <table>
<tr><td><b>Channel Type ID</b></td> <td><b>Item Type</b></td> <td><b>Description</b></td> </tr> <tr><td><b>Channel Type ID</b></td> <td><b>Item Type</b></td> <td><b>Description</b></td> </tr>
@ -129,7 +138,7 @@ Actuators ([dimmer]/[switch]) support the following channels:
<tr><td>timestamp</td><td>DateTime</td><td>This channel reports the last time this device state changed.</td></tr> <tr><td>timestamp</td><td>DateTime</td><td>This channel reports the last time this device state changed.</td></tr>
</table> </table>
Sensors ([sensor]) support the following channels: Sensors (&lsqb;sensor&rsqb;) support the following channels:
<table> <table>
<tr><td><b>Channel Type ID</b></td> <td><b>Item Type</b></td> <td><b>Description</b></td> </tr> <tr><td><b>Channel Type ID</b></td> <td><b>Item Type</b></td> <td><b>Description</b></td> </tr>
@ -140,7 +149,8 @@ Sensors ([sensor]) support the following channels:
### Switchbased sensor workaround ### Switchbased sensor workaround
All switchbased sensors are binary and the goal is to represent them as a `contact` item in openhab. Eg. a door is open or closed and can't be altered by sending a radio signal. To achive that we will create a proxy item which is updated by a rule. All switchbased sensors are binary and the goal is to represent them as a `contact` item in openhab. Eg. a door is open or closed and can't be altered by sending a radio signal.
To achive that we will create a proxy item which is updated by a rule.
First create another proxy item for every sensor: First create another proxy item for every sensor:

View File

@ -26,22 +26,25 @@ Currently, the Tesla Model S is supported by this binding.
## Binding Configuration ## Binding Configuration
The binding uses a the owner's email address and password in order to access the Tesla Owners Remote API. This is the same email address and password as used in the Tesla smartphone app, that allows to remotely control the Tesla Model S The binding uses a the owner's email address and password in order to access the Tesla Owners Remote API.
This is the same email address and password as used in the Tesla smartphone app, that allows to remotely control the Tesla Model S.
## Alternative secure configuration ## Alternative secure configuration
After a successful connection (Thing is online), you can clear the username and password field from the configuration, leaving only the VIN. Instead of using the username and password, from now on, only the access token will be stored and used (access token + refresh token). This is a better approach for many reasons, one being that you cannot start the car without the password. After a successful connection (Thing is online), you can clear the username and password field from the configuration, leaving only the VIN. Instead of using the username and password, from now on, only the access token will be stored and used (access token + refresh token).
This is a better approach for many reasons, one being that you cannot start the car without the password.
If you really don't like the thought of your username and password being stored temporarily, there is also a third option: Leave username/password blank, go into the openHAB console (ssh -p 8101 openhab@localhost), and run the following command: If you really don't like the thought of your username and password being stored temporarily, there is also a third option: Leave username/password blank, go into the openHAB console (ssh -p 8101 openhab@localhost), and run the following command:
``` ```
openhab> smarthome:tesla logon 1 openhab> smarthome:tesla logon 1
Username (email): ****@***.com Username (email): ****@***.com
Password: Password:
Attempting logon... Attempting logon...
Successfully logged on and stored token. Successfully logged on and stored token.
``` ```
This command will perform a single logon, store the auth tokens and forget it ever saw your username and password. In the second parameter to the logon comand above, "1" is the thing id. This command will perform a single logon, store the auth tokens and forget it ever saw your username and password.
In the second parameter to the logon comand above, "1" is the thing id.
## Thing Configuration ## Thing Configuration
@ -56,16 +59,17 @@ Thing tesla:models:1 [ username="your.email@company.com", password="somepassword
All devices support the following channels (non exhaustive): All devices support the following channels (non exhaustive):
| Channel Type ID | Item Type | Description | | Channel Type ID | Item Type | Description | | |
|-----------------|------------------------|--------------|----------------- |------------- | |-----------------|-----------|-----------------------------------------------------------------------------------------------------------------------------|---|---|
| charge | Switch | This channel supports starting or stopping the charging process of the vehicle | | charge | Switch | This channel supports starting or stopping the charging process of the vehicle | | |
| location | Location | This channel indicates the actual location (latitude, longitude, elevation) of the vehicle | | location | Location | This channel indicates the actual location (latitude, longitude, elevation) of the vehicle | | |
| doorlock | Switch | This channel supports locking or unlocking the doors of the vehicle | | doorlock | Switch | This channel supports locking or unlocking the doors of the vehicle | | |
| insidetemp | Number | This channel indicates the inside temperature of the vehicle | | insidetemp | Number | This channel indicates the inside temperature of the vehicle | | |
| odometer | Number | This channel indicates the actual state of the vehicle's odometer, in km or miles along the build of the vehicle (EU or US) | | odometer | Number | This channel indicates the actual state of the vehicle's odometer, in km or miles along the build of the vehicle (EU or US) | | |
| batterylevel | Number | This channel indicates the actual state of the vehicle's battery, in % | | batterylevel | Number | This channel indicates the actual state of the vehicle's battery, in % | | |
## Full Example
## Example
demo.Things: demo.Things:

View File

@ -15,14 +15,16 @@ install: auto
# Toon Binding # Toon Binding
The Toon bindings shows among others current room temperature, setpoint, energy and gas usage information. The Toon bindings shows among others current room temperature, setpoint, energy and gas usage information.
It can control the setpoint and current program. Connected smart plugs can also be controlled. It can control the setpoint and current program.
Connected smart plugs can also be controlled.
## Supported Things ## Supported Things
### Toon Webaccount ### Toon Webaccount
Before the binding can be used, a Toon Webaccount must be added. This needs to be done manually. Select `Toon Webaccount`, and enter your username and password. Before the binding can be used, a Toon Webaccount must be added.
Afterwards start discovery so your display and connected plugs are discovered. This needs to be done manually. Select `Toon Webaccount`, and enter your username and password.
Afterwards start discovery so your display and connected plugs are discovered.
### Toon display unit ### Toon display unit
@ -34,9 +36,10 @@ A Toon plug represents a connected wall plug that can be controlled via Toon.
## Discovery ## Discovery
Once the binding is authorized, and the `Toon Webaccount` is added, you can start the discovery. This will find your Toon Display and put it in the Inbox. Once the binding is authorized, and the `Toon Webaccount` is added, you can start the discovery.
This will find your Toon Display and put it in the Inbox.
Currently only the display and plugs are discovered. So no Alarms or Hue lights will be discovered. Currently only the display and plugs are discovered. So no Alarms or Hue lights will be discovered.
## Binding Configuration ## Binding Configuration
@ -71,7 +74,7 @@ Switch Heater (Toon) {channel="toon:main:toontest:zzzz:Heating"}
Switch Tapwater (Toon) {channel="toon:main:toontest:zzzz:Tapwater"} Switch Tapwater (Toon) {channel="toon:main:toontest:zzzz:Tapwater"}
Switch PreHeat (Toon) {channel="toon:main:toontest:zzzz:Preheat"} Switch PreHeat (Toon) {channel="toon:main:toontest:zzzz:Preheat"}
// Plug items // Plug items
Switch Plug (Toon) {channel="toon:plug:toontest:pppp:switch_binary"} Switch Plug (Toon) {channel="toon:plug:toontest:pppp:switch_binary"}
Number PlugConsumption (Toon) {channel="toon:plug:toontest:pppp:PowerConsumption"} Number PlugConsumption (Toon) {channel="toon:plug:toontest:pppp:PowerConsumption"}
``` ```
@ -90,6 +93,3 @@ demo.sitemaps
Selection item=ToonSetpointMode label="Toon Program Selection" mappings=[0=Comfort, 1=Active, 2=Sleep, 3=Away] Selection item=ToonSetpointMode label="Toon Program Selection" mappings=[0=Comfort, 1=Active, 2=Sleep, 3=Away]
} }
``` ```

View File

@ -3,7 +3,7 @@ id: urtsi
label: Somfy URTSI II label: Somfy URTSI II
title: Somfy URTSI II - Bindings title: Somfy URTSI II - Bindings
type: binding type: binding
description: "The addressable Universal RTS Interface II (URTSI II) can be used to communicate between home automation or other third party systems and SOMFYs RTS Motors and controls. It is capable of individual or group control, and can be operated via infrared remote, RS232 and RS485 serial communication. Once an input is activated, an RTS radio command is sent to the automated window treatment." description: "The addressable Universal RTS Interface II (URTSI II) can be used to communicate between home automation or other third party systems and SOMFYs RTS Motors and controls."
since: 2x since: 2x
logo: images/addons/urtsi.png logo: images/addons/urtsi.png
install: auto install: auto
@ -15,7 +15,9 @@ install: auto
# Somfy URTSI II Binding # Somfy URTSI II Binding
The addressable Universal RTS Interface II (URTSI II) can be used to communicate between home automation or other third party systems and SOMFYs RTS Motors and controls. It is capable of individual or group control, and can be operated via infrared remote, RS232 and RS485 serial communication. Once an input is activated, an RTS radio command is sent to the automated window treatment. The addressable Universal RTS Interface II (URTSI II) can be used to communicate between home automation or other third party systems and SOMFYs RTS Motors and controls.
It is capable of individual or group control, and can be operated via infrared remote, RS232 and RS485 serial communication.
Once an input is activated, an RTS radio command is sent to the automated window treatment.
The binding supports the RS232 communication. The binding supports the RS232 communication.
@ -23,8 +25,8 @@ The binding supports the RS232 communication.
There are two supported things: There are two supported things:
* URTSI II Device: Bridge * URTSI II Device: Bridge
* RTS Device (e.g. Rollershutter): Thing * RTS Device (e.g. Rollershutter): Thing
## Discovery ## Discovery
@ -34,13 +36,13 @@ Discovery is not supported.
### URTSI II Device: ### URTSI II Device:
* Port: The port which is used to access the device (e.g. /dev/ttyUSB0) * Port: The port which is used to access the device (e.g. /dev/ttyUSB0)
* Command execution interval: The time (in ms) the binding should wait between sending commands to the device * Command execution interval: The time (in ms) the binding should wait between sending commands to the device
### RTS Device (e.g. rollershutter): ### RTS Device (e.g. rollershutter):
* Channel: The URTSI II channel the RTS device is assigned to at URTSI II. * Channel: The URTSI II channel the RTS device is assigned to at URTSI II.
## Channels ## Channels
* Position: Change the position of a device. This is used in order to interact with the device (move it up, down or stop). * Position: Change the position of a device. This is used in order to interact with the device (move it up, down or stop).

View File

@ -15,7 +15,7 @@ install: auto
# Vitotronic Binding # Vitotronic Binding
Viessmann heating systems with Vitotronic has a optolink Interface for maintenance. Viessmann heating systems with Vitotronic has a optolink Interface for maintenance.
This interface can use for get/set data in the heating system. [see on openv](http://openv.wikispaces.com) This interface can use for get/set data in the heating system. [see on openv](http://openv.wikispaces.com)
The Vitotronic binding is a solution to bind this interface into openHAB2. The Vitotronic binding is a solution to bind this interface into openHAB2.
@ -24,106 +24,102 @@ It supports the separation of the heating adaption from the integration in [open
![Architectur](doc/architecture_vitotronic.jpg) ![Architectur](doc/architecture_vitotronic.jpg)
The adapter transform the address oriented raw interface of the Vitotronic to a abstract format. The adapter transform the address oriented raw interface of the Vitotronic to a abstract format.
The adapter itself is not a part of the openhab2 binding. The adapter itself is not a part of the openhab2 binding.
[A alpha version is available here](https://github.com/steand/optolink) [A alpha version is available here](https://github.com/steand/optolink)
[More Information about the adapter](https://github.com/steand/optolink/wiki) [More Information about the adapter](https://github.com/steand/optolink/wiki)
## Supported Things ## Supported Things
For easy using are the main things of a heating system are already define in this binding: For easy using are the main things of a heating system are already define in this binding:
* heating (Vitotronic core system) * heating (Vitotronic core system)
* pelletburner (Pellet Fireplace, works for wood also) * pelletburner (Pellet Fireplace, works for wood also)
* oilburner (Oil Fireplace) * oilburner (Oil Fireplace)
* storagetank (Storage Tank, stores heat in a water tank on 3 levels: bottom, middle, top=hot water) * storagetank (Storage Tank, stores heat in a water tank on 3 levels: bottom, middle, top=hot water)
* circuit (Heating circuit controls the flow between the heating system and the radiators in the rooms) * circuit (Heating circuit controls the flow between the heating system and the radiators in the rooms)
* solar (Solar water heating (SWH): Convert sunlight into energy for water heating) * solar (Solar water heating (SWH): Convert sunlight into energy for water heating)
For advanced used 3 basic things of a headingsystem define also. For advanced used 3 basic things of a headingsystem define also.
* temperaturesensor (Single temperature sensor) * temperaturesensor (Single temperature sensor)
* pump (Single pump) * pump (Single pump)
* valve (Single valve) * valve (Single valve)
Note: The mapping of things and channels to the heating system addresses must be done in the adapter.
Note: The mapping of things and channels to the heating system addresses must be done in the adapter.
## Discovery ## Discovery
The binding discovers the adapter with broadcast and put the found `vitotronic:bridge` into the inbox. For automatic detection the adapter and **openHAB** must be on the same LAN. The discovery itself must be start in the Paper-UI. The binding discovers the adapter with broadcast and put the found `vitotronic:bridge` into the inbox. For automatic detection the adapter and **openHAB** must be on the same LAN. The discovery itself must be start in the Paper-UI.
If the bridge isn't on the same LAN the bridge can also add manually. In this case the `IP-Address` and the `adapterID` is required. If the bridge isn't on the same LAN the bridge can also add manually. In this case the `IP-Address` and the `adapterID` is required.
Íf the `vitotronic:bridge` added a second discovery will be start. It discovers all things, define in the adapter and put found things into the inbox. Íf the `vitotronic:bridge` added a second discovery will be start. It discovers all things, define in the adapter and put found things into the inbox.
## Binding Configuration ## Binding Configuration
Binding itself has 4 configuration parameters: Binding itself has 4 configuration parameters:
* ipAddress (The IP address of the Optolink adapter) * ipAddress (The IP address of the Optolink adapter)
* port (Port of the LAN gateway. Default: 31113) * port (Port of the LAN gateway. Default: 31113)
* adapterID (The ID/Name of the adapter) * adapterID (The ID/Name of the adapter)
* refreshInterval (Refresh time for data in seconds. Default: 600 seconds) * refreshInterval (Refresh time for data in seconds. Default: 600 seconds)
If the adapter is automatic discovered the ipAddress, and adapterID will be set by discovery. If the adapter is automatic discovered the ipAddress, and adapterID will be set by discovery.
The rereshInterval can be set between 60 and 600 seconds. The minimal setting is dependent of the performance of the adapter. The rereshInterval can be set between 60 and 600 seconds. The minimal setting is dependent of the performance of the adapter.
## Thing Configuration ## Thing Configuration
There is no configuration of Things necessary. Only some channels are set active by default. If this channels are defined in the adapter and will be used in **openHAB** it must set active manually. There is no configuration of Things necessary. Only some channels are set active by default. If this channels are defined in the adapter and will be used in **openHAB** it must set active manually.
Don't change the Thing Name. It is the reference to the name in the adapter. Don't change the Thing Name. It is the reference to the name in the adapter.
## Channels ## Channels
The follow channels are implemented: The follow channels are implemented:
| Channel Type ID | Item Type | Description | | Channel Type ID | Item Type | Description |
| --------------- | ------------ | ----------- | |------------------|-----------|-------------------------------------------------------|
| systemtime | DateTime | DateTime of the heating system | | systemtime | DateTime | DateTime of the heating system |
| outside_temp | Number | Outside temperature sensor | | outside_temp | Number | Outside temperature sensor |
| boiler_temp | Number | Temperature sensor of boiler (fireplace) | | boiler_temp | Number | Temperature sensor of boiler (fireplace) |
| flowuprating | Switch | Pump state of flow up rating | | flowuprating | Switch | Pump state of flow up rating |
| flame_temp | Number | Temperature of flame | | flame_temp | Number | Temperature of flame |
| airshutter_prim | Number | Position of the primary air shutter | | airshutter_prim | Number | Position of the primary air shutter |
| airshutter_sec | Number | Position of the secondary air shutter | | airshutter_sec | Number | Position of the secondary air shutter |
| lambdasensor | Number | Oxygen content of the exhaust air | | lambdasensor | Number | Oxygen content of the exhaust air |
| fanspeed | Number | Fan Speed in rpm | | fanspeed | Number | Fan Speed in rpm |
| fanspeed_target | Number | Fan Speed in rpm | | fanspeed_target | Number | Fan Speed in rpm |
| error | Switch | | | error | Switch | |
| starts | Number | Count of starts | | starts | Number | Count of starts |
| ontime | Number | Ontime in hours | | ontime | Number | Ontime in hours |
| consumedpellets | Number | Consumed Pellets since start of heating in tons | | consumedpellets | Number | Consumed Pellets since start of heating in tons |
| power | Number | Power of the pellet burner | | power | Number | Power of the pellet burner |
| powerlevel | Number | Power of the oil burner | | powerlevel | Number | Power of the oil burner |
| actualpower | Number | Actual power of the burner | | actualpower | Number | Actual power of the burner |
| ontimelevel1 | Number | Ontime in hours | | ontimelevel1 | Number | Ontime in hours |
| ontimelevel2 | Number | Ontime in hours | | ontimelevel2 | Number | Ontime in hours |
| consumedoil | Number | Consumed Oil since start of heating in Liter | | consumedoil | Number | Consumed Oil since start of heating in Liter |
| hotwater_temp | Number | Temperature sensor of the hot water | | hotwater_temp | Number | Temperature sensor of the hot water |
| middle_temp | Number | Temperature sensor in the middle of the storage tank | | middle_temp | Number | Temperature sensor in the middle of the storage tank |
| bottom_temp | Number | Temperature sensor at the bottom of the storage tank | | bottom_temp | Number | Temperature sensor at the bottom of the storage tank |
| circuitpump | Switch | Circuit pump state | | circuitpump | Switch | Circuit pump state |
| flowtemperature | Number | Temperature sensor of the ciruit flow | | flowtemperature | Number | Temperature sensor of the ciruit flow |
| pump | Switch | Pump state | | pump | Switch | Pump state |
| operationmode | Number | Operationmode | | operationmode | Number | Operationmode |
| savemode | Switch | Savemode on/off | | savemode | Switch | Savemode on/off |
| partymode | Switch | Partymode on/off | | partymode | Switch | Partymode on/off |
| party_temp | Number | Target temperature of party mode | | party_temp | Number | Target temperature of party mode |
| room_temp | Number | Target temperature of rooms | | room_temp | Number | Target temperature of rooms |
| save_temp | Number | Target temperature of save mode | | save_temp | Number | Target temperature of save mode |
| gradient | Number | The gradient relativ to outside temperature | | gradient | Number | The gradient relativ to outside temperature |
| niveau | Number | The niveau relativ to outside temperature | | niveau | Number | The niveau relativ to outside temperature |
| collector_temp | Number | Actual temperature of the collector | | collector_temp | Number | Actual temperature of the collector |
| storagetank_temp | Number | Actual temperature of the storage tank (solar sensor) | | storagetank_temp | Number | Actual temperature of the storage tank (solar sensor) |
| bufferload | Switch | State of the pump (on/off) | | bufferload | Switch | State of the pump (on/off) |
| loadsuppression | Switch | State of the load suppression (on/off) | | loadsuppression | Switch | State of the load suppression (on/off) |
| producedheat | Number | Produced heat since starting solar system | | producedheat | Number | Produced heat since starting solar system |
| temperature | Number | Generic temperature sensor | | temperature | Number | Generic temperature sensor |
| valve | Number | Value of a generic valve | | valve | Number | Value of a generic valve |
## Example
## Full Example
t.b.d t.b.d

View File

@ -42,9 +42,9 @@ If the system location is changed, the background discovery updates the configur
After adding this discovered thing, you will have to set the correct API key. After adding this discovered thing, you will have to set the correct API key.
## Binding Configuration ## Binding Configuration
The binding has no configuration options, all configuration is done at Thing and Channel levels. The binding has no configuration options, all configuration is done at Thing and Channel levels.
## Thing Configuration ## Thing Configuration
The thing has a few configuration parameters: The thing has a few configuration parameters:

View File

@ -3,7 +3,7 @@ id: wifiled
label: WiFi LED label: WiFi LED
title: WiFi LED - Bindings title: WiFi LED - Bindings
type: binding type: binding
description: "This binding is used to control LED stripes connected by WiFi. These devices are sold with different names, i.e. Magic Home LED, UFO LED, LED NET controller, etc." description: "This binding is used to control LED strips connected by WiFi."
since: 2x since: 2x
install: auto install: auto
--- ---
@ -14,7 +14,8 @@ install: auto
# WiFi LED Binding # WiFi LED Binding
This binding is used to control LED stripes connected by WiFi. These devices are sold with different names, i.e. Magic Home LED, UFO LED, LED NET controller, etc. This binding is used to control LED strips connected by WiFi.
These devices are sold with different names, i.e. Magic Home LED, UFO LED, LED NET controller, etc.
## Supported Things ## Supported Things
@ -28,13 +29,12 @@ Device table with supported channels:
| LD382A | ✓ | ✓ | ✓ | | ✓ | ✓ | | LD382A | ✓ | ✓ | ✓ | | ✓ | ✓ |
| LD686 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | LD686 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Other LD*** devices might work but probably need some small adaptions. Other LD*** devices might work but probably need some small adaptations.
## Discovery ## Discovery
The LED WiFi Controllers can be discovered by triggering a search in openHAB's inbox. The LED WiFi Controllers can be discovered by triggering a search in openHAB's inbox.
Your device needs to be connected to your local network Your device needs to be connected to your local network (i.e. by using the WiFi PBC connection method or the native App shipped with the device).
(i.e. by using the WiFi PBC connection method or the native App shipped with the device).
Read the device manual for more information about how to connect your device to your network. Read the device manual for more information about how to connect your device to your network.
## Binding Configuration ## Binding Configuration
@ -65,12 +65,10 @@ you should try the FADING driver.
If selected you can also set the number of fading steps and the fading duration in the thing configuration. If selected you can also set the number of fading steps and the fading duration in the thing configuration.
Note that each fading step will at least take 10 ms for being processed. Note that each fading step will at least take 10 ms for being processed.
This natural limit is given by the speed of the LED controller and your network speed. This natural limit is given by the speed of the LED controller and your network speed.
Thus, a color fading with a configured fading duration of 0s might still take some time Thus, a color fading with a configured fading duration of 0s might still take some time (count with more than 1 second for 100 steps).
(count with more than 1 second for 100 steps).
IF the "FADING" driver is chosen the program channel and the programSpeed channel will not have any effect. IF the "FADING" driver is chosen the program channel and the programSpeed channel will not have any effect.
The polling period is a parameter only used by the CLASSIC driver and specifies a the time in seconds The polling period is a parameter only used by the CLASSIC driver and specifies a the time in seconds after the LED state is refreshed in openHAB.
after the LED state is refreshed in openHAB.
### Device Discovery ### Device Discovery
@ -79,16 +77,16 @@ Moreover, make sure that the device protocol matches you device type.
## Channels ## Channels
| Channel Type ID | Item Type | Description | Access | | Channel Type ID | Item Type | Description | Access |
|-----------------|-----------|------------------------------------------------------|--------| |-----------------|-----------|------------------------------------------------------------------------|--------|
| power | Switch | Power state of the LEDs (ON/OFF) | R/W | | power | Switch | Power state of the LEDs (ON/OFF) | R/W |
| color | Color | Color of the RGB LEDs | R/W | | color | Color | Color of the RGB LEDs | R/W |
| white | Dimmer | Brightness of the first (warm) white LEDs (min=0, max=100) | R/W | | white | Dimmer | Brightness of the first (warm) white LEDs (min=0, max=100) | R/W |
| white2 | Dimmer | Brightness of the second (warm) white LEDs (min=0, max=100) | R/W | | white2 | Dimmer | Brightness of the second (warm) white LEDs (min=0, max=100) | R/W |
| program | String | Program to run by the controller (i.e. color cross fade, strobe, etc.) | R/W | | program | String | Program to run by the controller (i.e. color cross fade, strobe, etc.) | R/W |
| programSpeed | Dimmer | Speed of the program | R/W | | programSpeed | Dimmer | Speed of the program | R/W |
## Full example ## Example
Usually, there is no need to define your WiFi LED controllers via configuration files. Usually, there is no need to define your WiFi LED controllers via configuration files.
However, if you like to do it, here is an example. However, if you like to do it, here is an example.

View File

@ -36,18 +36,18 @@ Optional configuration is the number of wind shares ("Winddelen") and the refres
## Channels ## Channels
- **windSpeed** Measured current wind speed - **windSpeed** Measured current wind speed
- **windDirection** Current wind direction - **windDirection** Current wind direction
- **powerAbsTot** Total power - **powerAbsTot** Total power
- **powerAbsWd** Power provided for your wind shares - **powerAbsWd** Power provided for your wind shares
- **powerRel** Relative power - **powerRel** Relative power
- **kwh** Current energy - **kwh** Current energy
- **kwhForecast** Energy forecast - **kwhForecast** Energy forecast
- **runPercentage** Run percentage this year - **runPercentage** Run percentage this year
- **timestamp** Timestamp of the last update - **timestamp** Timestamp of the last update
## Full example ## Example
``` ```
Group gReiger "Windcentrale Reiger" <wind> Group gReiger "Windcentrale Reiger" <wind>

View File

@ -1,55 +1,61 @@
--- ---
layout: documentation layout: documentation
title: Android openHAB App title: Android openHAB App
source: https://github.com/openhab/openhab.android/blob/master/docs/USAGE.md
--- ---
{% include base.html %} {% include base.html %}
<!-- Attention authors: Do not edit directly. Please add your changes to the appropriate source repository -->
# Android openHAB App # Android openHAB App
We provide a native Android app for openHAB. The openHAB Android application is a native client for openHAB. The app follows the basic principles of the other UIs, like Basic UI, and presents your predefined openHAB [sitemap(s)](http://docs.openhab.org/configuration/sitemaps.html).
It uses the REST API of openHAB to render sitemaps of your openHAB installation.
It also supports [myopenhab.org](http://www.myopenhab.org) including push notifications.
The latest release version of the app is always available through Google Play.
**Features:** <a href="https://play.google.com/store/apps/details?id=org.openhab.habdroid"><img src="https://play.google.com/intl/en_us/badges/images/generic/en_badge_web_generic.png" height="80"></a>
* View openHAB sitemaps ## Features
* Control openHAB remotely * Control your openHAB server and/or [openHAB Cloud instance](https://github.com/openhab/openhab-cloud), e.g., an account with [myopenHAB](http://www.myopenhab.org/)
* Multiple themes available * Receive notifications through an openHAB Cloud connection, [read more](http://docs.openhab.org/addons/actions.html)
* Push notifications * Change items via NFC tags
* Voice commands * Send voice commands to openHAB
* Thing discovery via app * Supports wall mounted tablets
* Support for Username/password or SSL client authentication
* Selection of a default sitemap
[![Download openHAB app on Google Play](images/google-play-badge.png){:width="250px"}](https://play.google.com/store/apps/details?id=org.openhab.habdroid)
**Screenshots:**
<div class="row"> <div class="row">
<div class="col s12 m5"><img src="images/android_01.png" alt="Demo Overview"></div> <div class="col s12 m6"><img src="images/main_menu.png" alt="Demo Overview"></div>
<div class="col s12 m5"><img src="images/android_02.png" alt="Demo Widget Overview"></div> <div class="col s12 m6"><img src="images/widget_overview.png" alt="Demo Widget Overview"></div>
</div> </div>
**Getting Started:** ## Getting Started
When first installed the app is in "Demo Mode". When first installed the app is in "Demo Mode".
To connect it to your own openHAB server, first navigate to Settings and uncheck the "Demo Mode" option. To connect it to your own openHAB server, first navigate to Settings and uncheck the "Demo Mode" option.
Normally, after unchecking the Demo Mode, the app will be able to use multicast DNS to autodetect to your openHAB server if it is on the same network. Normally, after unchecking the Demo Mode, the app will be able to use multicast DNS to autodetect to your openHAB server if it is on the same network.
You also have the option to manually set the server URL in the settings. You also have the option to manually set the server URL in the settings.
Please enter the base URL to your openHAB server as you would enter it in the browser to reach the openHAB dashboard.
The URL might look like one of the following examples. **Local server settings:** Please enter the base URL to your openHAB server as you would enter it in the browser to reach the openHAB dashboard.
**Remote server settings:** If you want to use openHAB cloud, please enter URL, user and password of you cloud instance here. Please make sure to [secure this connection](http://docs.openhab.org/installation/security.html).
The URL might look like one of the following examples:
* IP address: `http://192.168.1.3:8080` * IP address: `http://192.168.1.3:8080`
* Local DNS name: `http://openhabianpi:8080` respectively `http://openhabianpi.local:8080` (depending on your network) * Local DNS name: `http://openhabianpi:8080` respectively `http://openhabianpi.local:8080` (depending on your network)
Once the URL is set correctly, the display of the app will be determined by the sitemaps defined on your server. Once the URL is set correctly, the display of the app will be determined by the sitemaps defined on your server.
The option to set a "Remote URL" allows the app to be used when you are away from home. The option to set a "Remote URL" allows the app to be used when you are away from home.
There are a number of strategies available to provide [secure remote access]({{base}}/installation/security.html) to your openHAB server. There are a number of strategies available to provide [secure remote access]({{base}}/installation/security.html) to your openHAB server.
**Help and technical details:** ## Permanent Deployment
Please refer to the [openhab/android project on GitHub](https://github.com/openhab/openhab.android) for more details. If you want to use openHAB Android on a wall mounted tablet, go to settings and tick `Disable display timer` and `Full Screen`.
## Help and Technical Details
Please refer to the [openhab.android project on GitHub](https://github.com/openhab/openhab.android) for more details.
## Trademark Disclaimer
Google Play and the Google Play logo are trademarks of Google Inc.