Updated external content (Jenkins build 108)
parent
27adb1d78a
commit
f24b923afd
|
@ -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**.
|
||||
|
||||
|
|
|
@ -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"}
|
||||
```
|
|
@ -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};
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
||||
```
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in New Issue