Updated external content (Jenkins build 108)

2.4-patch
openhab-bot 2018-12-09 20:01:31 +00:00
parent 27adb1d78a
commit f24b923afd
5 changed files with 371 additions and 12 deletions

View File

@ -80,7 +80,7 @@ The thing type is the second string behind the first colon and in this example i
The Hue bridge is discovered through UPnP in the local network.
Once it is added as a Thing, its authentication button (in the middle) needs to be pressed in order to authorize the binding to access it.
Once the binding is authorized, it automatically reads all devices that are set up on the Hue bridge and puts them in the Inbox.
Once the binding is authorized, it automatically reads all devices that are set up on the Hue bridge and puts them into the Inbox.
## Thing Configuration
@ -99,6 +99,14 @@ The user name can be set using the `userName` configuration value, e.g.:
```
Bridge hue:bridge:1 [ ipAddress="192.168.0.64", userName="qwertzuiopasdfghjklyxcvbnm1234" ]
```
| Parameter | Description |
|-----------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ipAddress | Network address of the Hue bridge. **Mandatory** |
| userName | Name of a registered Hue bridge user, that allows to access the API. **Mandatory** |
| pollingInterval | Seconds between fetching light values from the Hue bridge. Optional, the default value is 10 (min="1", step="1"). |
| sensorPollingInterval | Milliseconds between fetching sensor-values from the Hue bridge. A higher value means more delay for the sensor values, but a too low value can cause congestion on the bridge. Optional, the default value is 500 (min="50", step="1"). |
### Devices
The devices are identified by the number that the Hue bridge assigns to them (also shown in the Hue App as an identifier).
Thus, all it needs for manual configuration is this single value like
@ -107,6 +115,12 @@ Thus, all it needs for manual configuration is this single value like
0210 bulb1 [ lightId="1" ]
```
or
```
0107 motion-sensor [ sensorId="4" ]
```
## Channels
The devices support some of the following channels:
@ -161,7 +175,7 @@ The event can trigger one of the following events:
## Full Example
In this example **Bulb1** is a standard Philips HUE bulb (LCT001) which supports `color` and `color_temperature`.
In this example **Bulb1** is a standard Philips Hue bulb (LCT001) which supports `color` and `color_temperature`.
Therefore it is a thing of type **0210**.
**Bulb2** is an OSRAM tunable white bulb (PAR16 50 TW) supporting `color_temperature` and so the type is **0220**.

View File

@ -0,0 +1,87 @@
---
id: km200
label: KM200
title: KM200 - Bindings
type: binding
description: "The KM200 Binding is communicating with a [Buderus Logamatic web KM200 / KM100 / KM50](https://www.buderus.de/de/produkte/catalogue/alle-produkte/7719_gateway-logamatic-web-km200-km100-km50)."
since: 2x
install: auto
---
<!-- Attention authors: Do not edit directly. Please add your changes to the appropriate source repository -->
{% include base.html %}
# KM200 Binding
The KM200 Binding is communicating with a [Buderus Logamatic web KM200 / KM100 / KM50](https://www.buderus.de/de/produkte/catalogue/alle-produkte/7719_gateway-logamatic-web-km200-km100-km50).
It is possible to receive and send parameters like string or float values.
**Important**: If the communication is not working and you see in the logfile errors like "illegal key size" then you have to change the [Java Cryptography Extension to the Unlimited Strength Jurisdiction](http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html).
## Supported Things
This binding supports 11 different things types
| Thing | Paper UI Only | Description |
| ------------------ | ------------ |----------------------------------------------------------- |
| `appliance` | | The appliance (The heater inside of this heating system). |
| `dhwCircuit` | | A hot water circuit. |
| `gateway` | | The gateway. (The connected KM200/100/50 device). |
| `heatingCircuit` | | A heating circuit. |
| `heatSource` | | The heat source. |
| `holidayMode` | | The holiday modes configuration. |
| `sensor` | | The sensors. |
| `solarCircuit` | | A solar circuit. |
| `system` | | The system without sensors and appliance. |
| `notification` | | The notifications. |
| `switchProgram` | X | A switch program. |
### KM 50/100/200
This Binding is tested on a KM200 but it should work on KM50 and KM100, too.
### Discovery
This binding discovers KM devices through mDNS in the local network.
## Thing Configuration
### kmdevice
The *kmdevice* bridge requires the following configuration parameters:
| Parameter Label | Parameter ID | Description | Required | Default | Example |
|---------------------------|-----------------|-----------------------------------------------------------------------------------|----------|----------------------|------------------------------------------------------------------|
| IP address | ip4_address | The IP address of the KMXXX device | true | | 192.168.1.10 |
| Refresh Interval | refreshInterval | The refresh interval in seconds which is used to poll the device. | true | 30 | 30 |
| Private Key | privKey | Take a look to the internet. Maybe you will find a way for generation. | true | | 0000FFFFEEEEDDDDCCCCBBBBAAAA999988887777666655554444333322221111 |
| Read Delay | readDelay | Delay between two read attempts in ms. | true | 100 | 100 |
| Maximum Number Of Repeats | maxNbrRepeats | Maximum number of repeats in case of a communication error (like HTTP 500 error). | true | 10 | 10 |
### Channels
This binding creates the channels depending on the connected heating system fully automatically.
These channels depend on the connected heating system.
You can see the complete list of supported channels of the thing in the Paper UI.
There is no official documentation for the parameters available from Buderus, so the names of the channels is all that reflects their purpose.
## Full Examples
This example reads different values of items from a KMXXX Device.
`things/kmxxx.things`:
```xtend
Bridge km200:kmdevice:0815 "testKMDevice" @ "Room" [ privateKey= "1234567890abcdef1234567890abcdef", maxnbrrepeats=10.0, readDelay=100, refreshInterval=30, maxNbrRepeats=10, ip4Address="192.168.1.111", refreshinterval=30.0, readdelay=100.0 ] {
heatingCircuit 1 "TestHC1"
sensor 1 "TestSensors"
}
```
`items/kmxxx.items`:
```xtend
Number budWater "Water temperature [%.1f °C]" {channel="km200:dhwCircuit:0815:1:actualTemp"}
Number budOutdoor "Outdoor temperature [%.1f °C]" {channel="km200:sensor:0815:1:outdoor_t1"}
```

View File

@ -778,6 +778,74 @@ sitemap modbus_ex_scaling label="modbus_ex_scaling"
See [transformation example](#transformation-example-scaling) for the `divide10.js` and `multiply10.js`.
### Dimmer Example
Dimmer type Items are not a straightforward match to Modbus registers, as they feature a numeric value which is limited to 0-100 Percent, as well as handling ON/OFF commands.
Transforms can be used to match and scale both reading and writing.
Example for a dimmer device where 255 register value = 100% for fully ON:
`things/modbus_ex_dimmer.things`:
```xtend
Bridge modbus:tcp:remoteTCP [ host="192.168.0.10", port=502 ] {
Bridge poller MBDimmer [ start=4700, length=2, refresh=1000, type="holding" ] {
Thing data DimmerReg [ readStart="4700", readValueType="uint16", readTransform="JS(dimread255.js)", writeStart="4700", writeValueType="uint16", writeType="holding", writeTransform="JS(dimwrite255.js)" ]
}
}
```
`items/modbus_ex_dimmer.items`:
```xtend
Dimmer myDimmer "My Dimmer d2 [%.1f]" { channel="modbus:data:remoteTCP:MBDimmer:DimmerReg:dimmer" }
```
`sitemaps/modbus_ex_dimmer.sitemap`:
```xtend
sitemap modbus_ex_dimmer label="modbus_ex_dimmer"
{
Frame {
Switch item=myDimmer
Slider item=myDimmer
}
}
```
`transform/dimread255.js`:
```javascript
// Wrap everything in a function (no global variable pollution)
// variable "input" contains data string passed by binding
(function(inputData) {
// here set the 100% equivalent register value
var MAX_SCALE = 255;
// convert to percent
return Math.round( parseFloat(inputData, 10) * 100 / MAX_SCALE );
})(input)
```
`transform/dimwrite255.js`:
```javascript
// variable "input" contains command string passed by openHAB
(function(inputData) {
// here set the 100% equivalent register value
var MAX_SCALE = 255;
var out = 0
if (inputData == 'ON') {
// set max
out = MAX_SCALE
} else if (inputData == 'OFF') {
out = 0
} else {
// scale from percent
out = Math.round( parseFloat(inputData, 10) * MAX_SCALE / 100 )
}
return out
})(input)
```
### Rollershutter Example
#### Rollershutter
@ -843,7 +911,7 @@ sitemap modbus_ex_rollershutter label="modbus_ex_rollershutter" {
```javascript
// Wrap everything in a function
// variable "input" contains data passed by openhab
// variable "input" contains data passed by openHAB
(function(cmd) {
var cmdToValue = {"UP": 1, "DOWN": -1, "MOVE": 1, "STOP": 0};
var cmdToAddress = {"UP": 1, "DOWN": 1, "MOVE": 2, "STOP": 2};

View File

@ -0,0 +1,158 @@
---
id: unifi
label: UniFi
title: UniFi - Bindings
type: binding
description: "This binding integrates with [Ubiquiti UniFi Networks](https://www.ubnt.com/products/#unifi) allowing for presence detection of network clients."
since: 2x
install: auto
---
<!-- Attention authors: Do not edit directly. Please add your changes to the appropriate source repository -->
{% include base.html %}
# UniFi Binding
This binding integrates with [Ubiquiti UniFi Networks](https://www.ubnt.com/products/#unifi) allowing for presence detection of network clients.
## Supported Things
* `controller` - An instance of the UniFi controller software
* `wirelessClient` - Any wireless client connected to a UniFi wireless network
## Discovery
Discovery is currently not supported.
## Binding Configuration
The binding has no configuration options, all configuration is done at the Bridge and Thing levels.
## Bridge Configuration
You need at least one UniFi Controller (Bridge) for this binding to work. It requires a network accessible instance of the [Ubiquiti Networks Controller Software](https://www.ubnt.com/download/unifi).
The following table describes the Bridge configuration parameters:
| Parameter | Description | Config | Default |
| ------------------------ | ---------------------------------------------- |--------- | ------- |
| host | Hostname of IP address of the UniFi Controller | Required | - |
| port | Port of the UniFi Controller | Required | - |
| username | The username to access the UniFi Controller | Required | - |
| password | The password to access the UniFi Controller | Required | - |
| refresh | Refresh interval in seconds | Optional | 10 |
## Thing Configuration
You must define a UniFi Controller (Bridge) before defining UniFi Clients (Things) for this binding to work.
The following table describes the Thing configuration parameters:
| Parameter | Description | Config | Default |
| ------------ | -------------------------------------------------------------|--------- | ------- |
| cid | The MAC address, IP address, hostname or alias of the client | Required | - |
| site | The site where the client should be found | Optional | - |
| considerHome | The interval in seconds to consider the client as home | Optional | 180 |
Here's some additional notes regarding the thing configuration parameters:
##### `cid`
The `cid` parameter is a universal "client identifier". It accepts the following values:
1. MAC address [highest priority]
1. IP address
1. Hostname (as show by the controller)
1. Alias (as defined by you in the controller UI) [lowest priority]
The priority essentially means the binding attempts to lookup by MAC address, then by IP address, then by hostname and finally by alias. Once it finds a matching client, it short circuits and stops searching. Most of the time, you will simply use the MAC address.
##### `site`
The `site` parameter is optional. If you leave it blank, the client will appear `ONLINE` if found in *any* site defined on the controller.
You may use the `site` parameter as a filter if you only want the client to appear home if it's found in the site defined in the `site` parameter.
Additionally, you may use friendly site names as they appear in the controller UI.
##### `considerHome`
The `considerHome` parameter allows you to control how quickly the binding marks a client as away. For example, using the default of `180` (seconds), the binding will report a client away as soon as `lastSeen` + `180` (seconds) < `now`
## Channels
The Wireless Client information that is retrieved is available as these channels:
| Channel ID | Item Type | Description |
|------------|-----------|--------------------------------------------------------------------- |
| online | Switch | Online status of the client |
| site | String | Site name (from the controller web UI) the client is associated with |
| macAddress | String | MAC address of the client |
| ipAddress | String | IP address of the client |
| ap | String | Access point (AP) the client is connected to |
| essid | String | Network name (ESSID) the client is connected to |
| rssi | Number | Received signal strength indicator (RSSI) of the client |
| uptime | Number | Uptime of the wireless client (in seconds) |
| lastSeen | DateTime | Date and Time the wireless client was last seen |
*Note: All channels are read-only*
## Full Example
things/unifi.things
```
Bridge unifi:controller:home "UniFi Controller" [ host="unifi", port=8443, username="$username", password="$password", refresh=10 ] {
Thing wirelessClient matthewsPhone "Matthew's iPhone" [ cid="$cid", site="default", considerHome=180 ]
}
```
Replace `$user`, `$password` and `$cid` accordingly.
items/unifi.items
```
Switch MatthewsPhone "Matthew's iPhone [MAP(unifi.map):%s]" { channel="unifi:wirelessClient:home:matthewsPhone:online" }
String MatthewsPhoneSite "Matthew's iPhone: Site [%s]" { channel="unifi:wirelessClient:home:matthewsPhone:site" }
String MatthewsPhoneMAC "Matthew's iPhone: MAC [%s]" { channel="unifi:wirelessClient:home:matthewsPhone:macAddress" }
String MatthewsPhoneIP "Matthew's iPhone: IP [%s]" { channel="unifi:wirelessClient:home:matthewsPhone:ipAddress" }
String MatthewsPhoneAP "Matthew's iPhone: AP [%s]" { channel="unifi:wirelessClient:home:matthewsPhone:ap" }
String MatthewsPhoneESSID "Matthew's iPhone: ESSID [%s]" { channel="unifi:wirelessClient:home:matthewsPhone:essid" }
Number MatthewsPhoneRSSI "Matthew's iPhone: RSSI [%d]" { channel="unifi:wirelessClient:home:matthewsPhone:rssi" }
Number MatthewsPhoneUptime "Matthew's iPhone: Uptime [%d]" { channel="unifi:wirelessClient:home:matthewsPhone:uptime" }
DateTime MatthewsPhoneLastSeen "Matthew's iPhone: Last Seen [%1$tH:%1$tM:%1$tS]" { channel="unifi:wirelessClient:home:matthewsPhone:lastSeen" }
```
transform/unifi.map
```
ON=Home
OFF=Away
```
sitemaps/unifi.sitemap
```
sitemap unifi label="UniFi Binding"
{
Frame {
Text item=MatthewsPhone
Text item=MatthewsPhoneSite
Text item=MatthewsPhoneMAC
Text item=MatthewsPhoneIP
Text item=MatthewsPhoneAP
Text item=MatthewsPhoneESSID
Text item=MatthewsPhoneRSSI
Text item=MatthewsPhoneUptime
Text item=MatthewsPhoneLastSeen
}
}
```

View File

@ -3,7 +3,7 @@ id: hueemulation
label: openHAB Hue Emulation
title: openHAB Hue Emulation - System Integrations
type: io
description: "Hue Emulation exposes openHAB items as Hue devices to other Hue HTTP API compatible applications like an Amazon Echo."
description: "Hue Emulation exposes openHAB items as Hue devices to other Hue HTTP API compatible applications like an Amazon Echo, Google Home or"
since: 2x
install: auto
---
@ -14,7 +14,11 @@ install: auto
# openHAB Hue Emulation Service
Hue Emulation exposes openHAB items as Hue devices to other Hue HTTP API compatible applications like an Amazon Echo.
Hue Emulation exposes openHAB items as Hue devices to other Hue HTTP API compatible applications like an Amazon Echo, Google Home or
any Hue compatible application.
Because Amazon Echo and Google Home control openHAB locally this way, it is a fast and reliable way
to voice control your installation. See the Troubleshoot section down below though.
## Discovery:
@ -22,6 +26,7 @@ As soon as the binding is enabled, it will announce the presence of an (emulated
Hue bridges are using the Universal Plug and Play (UPnP) protocol for discovery.
Like the real HUE bridge the service must be put into pairing mode before other applications can access it.
By default the pairing mode disables itself after 1 minute (can be configured).
## Exposed devices
@ -37,24 +42,26 @@ This service can emulate 3 different devices:
The exposed Hue-type depends on some criteria:
* If the item has the category "ColorLight": It will be exposed as a color bulb
* If the item has the category "Light": It will be exposed as a dimmable white bulb.
* If the item has the category "Light": It will be exposed as a switch.
This initial type determination is overriden if the item is tagged.
This initial type determination is overridden if the item is tagged.
Tags can be configured in Paper UI, please refer to the next section.
The following default tags are setup:
* "Switchable": Item will be exposed as a switchable
* "Switchable": Item will be exposed as an OSRAM SMART+ Plug
* "Lighting": Item will be exposed as a dimmable white bulb
* "ColorLighting": Item will be exposed as a color bulb
It is the responsibility of binding developers to categories and default tag their
available *Channels*, so that linked Items are automatically exposed with this service.
You can tag items manually though as well.
## Exposed names
Your items labels are used for exposing! The default naming schema in Paper UI
for automatically linked items unfortunately names *Items* like their Channel names,
so usually "Brightness" or "Color". You want to rename those!
so usually "Brightness" or "Color". You want to rename those.
## Configuration:
@ -73,14 +80,26 @@ After that timeout, the `pairingEnabled` is automatically set to `false`.
org.openhab.hueemulation:pairingTimeout=60
```
For systems with multiple IP addresses the IP to use for UPNP may optionally be specified.
Otherwise the first non loopback address will be used.
To create an api key on the fly, you can set the following option.
Necessary for Amazon Echos and other devices where the API key cannot be reset.
After a new installation of openHAB or a configuration pruning the old
API keys are gone but the Echos will keep trying with their invalid keys.
```
org.openhab.hueemulation:createNewUserOnEveryEndpoint=false
```
For systems with multiple IP addresses the IP to expose via UPNP may optionally be specified.
Otherwise the openHAB configured primary address will be used.
Usually you do not want to set this option, but change the primary address configuration of openHAB.
```
org.openhab.hueemulation:discoveryIp=192.168.1.100
```
One of the comma separated tags must match for the item to be exposed. Can be empty to match every item.
One of the comma separated tags must match for the item to be exposed.
Can be empty to match an item based on the other criteria.
```
org.openhab.hueemulation:restrictToTagsSwitches=Switchable
@ -88,6 +107,19 @@ org.openhab.hueemulation:restrictToTagsWhiteLights=Lighting
org.openhab.hueemulation:restrictToTagsColorLights=ColorLighting
```
## Troubleshooting
Some devices like the Amazon Echo, Google Home and all Philips devices expect a Hue bridge to
run on port 80. You must either port forward your openHAB installation to port 80, install
a reverse proxy on port 80 or let openHAB run on port 80.
You can test if the hue emulation does its job by enabling pairing mode including the option
"Amazon Echo device discovery fix".
1. Navigate with your browser to "http://your-openhab-ip/description.xml" to check the discovery
response. Check the IP address in there.
2. Navigate with your browser to "http://your-openhab-ip/api/testuser/lights?debug=true"
to check all exposed lights and switches.
## Text configuration example