As discussed above care is taken that the brightness channel only allows values from 1 to 100 by specifying a min and max value in the sitemap for the dimmers.
For this example to run on an openHAB version older than 2.5 Bedroom 1's Slider must be removed in the sitemap since older versions don't support the min/max setting.
-## demo.things
+## `demo.things` Example
```java
Bridge adorne:hub:home "Adorne Hub" [host="192.160.1.111", port=2113] {
}
```
-## demo.items
+## `demo.items` Example
```java
Switch LightBathroom {channel="adorne:switch:home:bathroom:power"}
Dimmer LightBedroomDimmer2 {channel="adorne:dimmer:home:bedroom2:brightness"}
```
-## demo.sitemap
+## `demo.sitemap` Example
```perl
sitemap demo label="Adorne Binding Demo"
var papierDate = items['collectionDay_paper'].getZonedDateTime();
var restmuellDate = items['collectionDay_generalWaste'].getZonedDateTime();
-
// Check which waste types are collected on the next day
var biomuellCollection = biomuellDate.equals(tomorrow);
var leichtverpackungCollection = leichtverpackungDate.equals(tomorrow);
toBeCollected.push('general waste');
}
-
// Send message (or something else) if at least one waste type is collected
if (toBeCollected.length > 0) {
var message = "Tomorrow the following waste will be collected:\n" + toBeCollected.join(', ');
| model | String | Read/Write | The model of the device (can be changed e.g. if you change sensors) |
| led-bar-test | String | Write | Trigger test of LED bar |
-
## Full Example
### Thing Configuration
Number:Density AirGradient_Location_PM2 "%.0f kg/m³" <density> {channel="airgradient:location:654321:pm2"}"
Number:Temperature AirGradient_Location_PM2 "Temperature [%.1f °C]" <temperature> {channel="airgradient:location:654321:atmp"}"
```
-
-
## Channels
-| channel id | type | description |
-|------------------------|----------------------|---------------------------------------------------------------------------------|
-| electricity-price | Number:EnergyPrice | Current price to import power from the grid
-| controlled-load-price | Number:EnergyPrice | Current price to import power for Controlled Load
-| feed-in-price | Number:EnergyPrice | Current price to export power to the grid
-| electricity-status | String | Current price status of grid import
-| controlled-load-status | String | Current price status of controlled load import
-| feed-in-status | String | Current price status of Feed-In
-| nem-time | String | NEM time of last pricing update
-| renewables | Number:Dimensionless | Current level of renewables in the grid
-| spike | Switch | Report if the grid has a current price spike
+| channel id | type | description |
+|------------------------|----------------------|---------------------------------------------------|
+| electricity-price | Number:EnergyPrice | Current price to import power from the grid |
+| controlled-load-price | Number:EnergyPrice | Current price to import power for Controlled Load |
+| feed-in-price | Number:EnergyPrice | Current price to export power to the grid |
+| electricity-status | String | Current price status of grid import |
+| controlled-load-status | String | Current price status of controlled load import |
+| feed-in-status | String | Current price status of Feed-In |
+| nem-time | String | NEM time of last pricing update |
+| renewables | Number:Dimensionless | Current level of renewables in the grid |
+| spike | Switch | Report if the grid has a current price spike |
## Full Example
-### `amberelectric.things`:
+### `amberelectric.things`
```java
amberelectric:service:AmberElectric [ apiKey="psk_xxxxxxxxxxxxxxxxxxxx" ]
```
-### `amberelectric.items`:
+### `amberelectric.items`
```java
Number:EnergyPrice AmberElectric_ElectricityPrice { channel="amberelectric:service:AmberElectric:electricity-price" }
Switch AmberElectric_Spike { channel="amberelectric:service:AmberElectric:spike" }
```
-### `amberelectric.sitemap`:
+### `amberelectric.sitemap`
```perl
Text item=AmberElectric_ElectricityPrice label="Electricity Price"
Number:Dimensionless WS1400IP_IndoorHumidity "Indoor Humidity [%.1f %%]" { channel="ambientweather:ws1400ip:account:1400:indoorSensor#relativeHumidity" }
String WS1400IP_IndoorBattery "Indoor Battery [MAP(ambient-battery.map):%s]" { channel="ambientweather:ws1400ip:account:1400:indoorSensor#batteryIndicator" }
-
// WS-8482 Weather Station
String WS8482_StationName "Station Name [%s]" { channel="ambientweather:ws8482:ws8482:station#name" }
String WS8482_StationLocation "Station Location [%s]" { channel="ambientweather:ws8482:ws8482:station#location" }
Not all the [arguments](https://developer.android.com/studio/command-line/adb#IntentSpec) are supported. Please open an issue or pull request if you need more.
-### Available key-event values:
+### Available key-event values
- KEYCODE_0
- KEYCODE_1
| ambilightTopColor | Color | Color for top Ambilight Side | N/A | N/A | RW |
| ambilightBottomColor | Color | Color for bottom Ambilight Side | N/A | N/A | RW |
-
```java
String ShieldTV_KEYBOARD "KEYBOARD [%s]" { channel = "androidtv:shieldtv:livingroom:keyboard" }
String ShieldTV_KEYPRESS "KEYPRESS [%s]" { channel = "androidtv:shieldtv:livingroom:keypress" }
Tested models include the AVM-60 11.2-channel preamp/processor.
-
## Thing Configuration
The following configuration parameters are available on the Anthem thing:
| 2#activeInputShortName | String | Short friendly name of the active input |
| 2#activeInputLongName | String | Long friendly name of the active input |
-
## Full Example
### Things
-```
+```java
Thing anthem:anthem:mediaroom "Anthem AVM 60" [ host="192.168.1.100" ]
```
### Items
-```
+```java
String Anthem_Command "Command [%s]" { channel="anthem:anthem:mediaroom:general#command" }
Switch Anthem_Z1_Power "Zone 1 Power [%s]" { channel="anthem:anthem:mediaroom:1#power" }
password="<yourArgoPassword>"
]
-
Thing argoclima:local:argoHvacLocalDirect "Argo HVAC (connected locally)" @ "Living Room" [
hostname="192.168.0.3"
]
useLocalConnection=false
]
-
Thing argoclima:local:argoHvacLocalWithPassthroughPlusDirectEx "Argo HVAC (accessible both indirectly and directly, via pass-through mode, with explicit options)" [
hostname="192.168.0.3", // Direct address of the device (reachable from openHAB)
connectionMode="REMOTE_API_PROXY",
oemServerPort=80
]
-
Thing argoclima:local:argoHvacLocalWithStub "Argo HVAC (accessible both indirectly and directly with a stub) - **RECOMMENDED MODE**" [
hostname="192.168.0.3", // Has to be reachable, since useLocalConnection is true (default)
connectionMode="REMOTE_API_STUB",
astronomic dawn start is null but `earliest` is set to 06:00 so the event/datetime value is set to 06:00.
-
## Full Example
Things:
| macAddress | text | Unique MAC address of the device | N/A | yes | no |
| clientNick | text | Nickname used by OH | N/A | no | no |
-
## Properties
All devices support some of the following properties:
| vendor | Vendor of device | router, client |
| dnsName | DNS name of device | router, client |
-
## Channels
All devices support some of the following channels:
| | total-rx | Number:DataAmount | Data received since reboot in MB | interface, client |
| | total-tx | Number:DataAmount | Data sent since reboot in MB | interface, client |
-
## Events
All devices support some of the following Events:
## Discovery
-Once the bridge is created and configured, OpenHab will automatically discover all Automowers registered on your account.
+Once the bridge is created and configured, openHAB will automatically discover all Automowers registered on your account.
## Thing Configuration
## Full Example
-### daikinmadoka.things:
+### `daikinmadoka.things` Example
```java
Bridge bluetooth:dbusbluez:hci0 [ address="00:1A:7D:DA:71:13" ]
```
-### daikinmadoka.items:
+### `daikinmadoka.items` Example
```java
Group g_climSalon "Salon" [ "Thermostat" ]
| ------------------ | ------------------------ | ------------------------------------------- |
| radon | Number:Density | The measured radon level |
-
## Example
radoneye.things (assuming you have a Bluetooth bridge with the ID `bluetooth:bluegiga:adapter1`:
-```
+```java
bluetooth:radoneye_rd200:adapter1:sensor1 "radoneye Wave Plus Sensor 1" (bluetooth:bluegiga:adapter1) [ address="12:34:56:78:9A:BC", refreshInterval=300 ]
```
radoneye.items:
-```
+```java
Number:Density radon "Radon level [%d %unit%]" { channel="bluetooth:radoneye_rd200:adapter1:sensor1:radon" }
```
| low-battery | Switch | ☐ | Indicates whether the battery is low (`ON`) or OK (`OFF`). |
| signal-strength | Number | ☐ | Communication quality between the device and the Smart Home Controller. Possible values range between 0 (unknown) and 4 (best signal strength). |
-
### User-defined States
User-defined states enable automations to be better adapted to specific needs and everyday situations.
**Thing Type ID**: `user-defined-state`
-
| Channel Type ID | Item Type | Writable | Description |
|-----------------|-----------| :------: |--------------------------------------------|
| user-state | Switch | ☑ | Switches the User-defined state on or off. |
tail -f /var/log/openhab/openhab.log /var/log/openhab/events.log
```
-Alternatively, the log can be viewed using the OpenHab Log Viewer (frontail) via <http://openhab:9001>.
+Alternatively, the log can be viewed using the openHAB Log Viewer (frontail) via <http://openhab:9001>.
Example:
| systemMessage | text | The system message helps set the behavior of the assistant. | N/A | no | no |
| maxTokens | decimal | The maximum number of tokens to generate in the completion. | 500 | no | yes |
-
## Full Example
### Thing Configuration
String Zug1_Trip_TripType "Fahrttyp" (zug1Fahrt) {channel="deutschebahn:train:timetableLehrte:lehrteZug1:trip#trip-type"}
String Zug1_Trip_Owner "Unternehmen" (zug1Fahrt) {channel="deutschebahn:train:timetableLehrte:lehrteZug1:trip#owner"}
-
// Arrival Information
DateTime Zug1_Arrival_Plannedtime "Geplante Zeit" (zug1Ankunft) {channel="deutschebahn:train:timetableLehrte:lehrteZug1:arrival#planned-time"}
DateTime Zug1_Arrival_Changedtime "Geänderte Zeit" (zug1Ankunft) {channel="deutschebahn:train:timetableLehrte:lehrteZug1:arrival#changed-time"}
### digitalSTROM-Server
-The digitalSTROM-Server is required for accessing any other digitalSTROM-Devices. It acts like a _"bridge"_.
+The `dssBridge` Bridge is required for accessing any other digitalSTROM-Devices.
### digitalSTROM-Devices
- The following table shows all tested digitalSTROM-Devices with their output-modes.
-| HW-Type | Output-Mode | Tested color group |
-|-----------------|------------------------|--------------|
-| GE-KL200 | switched | yellow |
-| GE-KM200 | switched, dimmed | yellow |
-| GE-TKM210 | switched, dimmed | yellow |
-| GE-SDM200 | switched, dimmed | yellow |
-| GE-UMV200 | 1-10V dimmed | yellow |
-| GR-KL200 | standard output-mode | grey |
-| GR-KL210 | standard output-mode| grey |
-| GR-KL220 | standard output-mode | grey |
-| SW-KL200 | switch, powersave, wipe | black, yellow |
-| SW-UMR200 | single switched, combined switch, combined 2 stage switch, combined 3 stage switch | yellow , black |
-| SW-ZWS200 | switch, powersave, wipe | black, yellow |
-| BL-KM200 | switch, pwm | blue |
+| HW-Type | Output-Mode | Tested color group |
+|-----------|------------------------------------------------------------------------------------|--------------------|
+| GE-KL200 | switched | yellow |
+| GE-KM200 | switched, dimmed | yellow |
+| GE-TKM210 | switched, dimmed | yellow |
+| GE-SDM200 | switched, dimmed | yellow |
+| GE-UMV200 | 1-10V dimmed | yellow |
+| GR-KL200 | standard output-mode | grey |
+| GR-KL210 | standard output-mode | grey |
+| GR-KL220 | standard output-mode | grey |
+| SW-KL200 | switch, powersave, wipe | black, yellow |
+| SW-UMR200 | single switched, combined switch, combined 2 stage switch, combined 3 stage switch | yellow , black |
+| 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.
These scenes are implemented as virtual things.
The different scene thing types are listed in the following table.
-| Thing-Type-ID | Label | Description |
-|-----------------|------------------------|--------------|
-| appScene | Apartment-Scene | Represents a digitalSTROM Apartment-Scene. |
-| zoneScene | Zone-Scene | Represents a digitalSTROM Zone-Scene. |
-| groupScene | Group-Scene | Represents a digitalSTROM Group-Scene. |
-| namedScene | Named-Scene | Represents a digitalSTROM Scene, which has a user-defined name. |
+| Thing-Type-ID | Label | Description |
+|---------------|-----------------|-----------------------------------------------------------------|
+| appScene | Apartment-Scene | Represents a digitalSTROM Apartment-Scene. |
+| zoneScene | Zone-Scene | Represents a digitalSTROM Zone-Scene. |
+| groupScene | Group-Scene | Represents a digitalSTROM Group-Scene. |
+| namedScene | Named-Scene | Represents a digitalSTROM Scene, which has a user-defined name. |
### digitalSTROM-Zone-Temperature-Control
## Thing Configuration and Properties
-### digitalSTROM-Server
+### `digitalSTROM-Server` Configuration
The digitalSTROM-Server thing has the following configuration parameter groups: _Connection configuration_, _Server information_ and _General configurations_.
If the digitalSTROM-Server isn’t found automatically, e.g. because the server isn’t 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
-|--------------|------------|--------------------------------|----------------- |------------- |
-| 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 |
-| 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 |
+| Parameter Label | Parameter ID | Description | Required | Advanced |
+|-------------------|------------------|---------------------------------------------------------------------------|---------------------------------------------|----------|
+| 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 |
+| Password | password | Password of a registered user to authenticate to the digitalSTROM-Server. | user name and password or Application-Token | false |
+| Application-Token | applicationToken | The Application-Token to authenticate to the digitalSTROM-Server. | user name and password or Application-Token | false |
#### Server information
The parameter group _Server information_ only includes informative parameters, which have no special functionality.
-| Parameter Label | Parameter ID | Description | Required | Advanced
-|-----------------|-------------|--------------------------|---------- |------------- |
-| dSID | dSID | The unique identifier of a digitalSTROM-server. | false| false |
+| Parameter Label | Parameter ID | Description | Required | Advanced |
+|-----------------|--------------|-------------------------------------------------|----------|----------|
+| dSID | dSID | The unique identifier of a digitalSTROM-server. | false | false |
-#### General configuration:
+#### General Configuration
Here you can set general binding configuration parameters, which are shown in following table:
-| 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 |
-| 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 |
-| Wait time sensor reading | sensorWaitTime| Waiting time between the evaluation of the sensor values and the reading of the scenes in seconds. **ATTENTION:** digitalSTROM rule 8 and 9 require a waiting period of 1 minute. Values less than 60 seconds could affect the digitalSTROM system. | false | true | 60 |
+| 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 |
+| 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 |
+| Wait time sensor reading | sensorWaitTime | Waiting time between the evaluation of the sensor values and the reading of the scenes in seconds. **ATTENTION:** digitalSTROM rule 8 and 9 require a waiting period of 1 minute. Values less than 60 seconds could affect the digitalSTROM system. | false | true | 60 |
At the thing file, a manual configuration looks e.g. like
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 the parameter:
-| Parameter Label | Parameter ID| Description | Required | Advanced
-|-----------------|------------------------|--------------|----------------- |------------- |
-| ID | dSID| The unique identifier of a digitalSTORM-device. | true | false |
+| Parameter Label | Parameter ID | Description | Required | Advanced |
+|-----------------|--------------|-------------------------------------------------|----------|----------|
+| ID | dSID | The unique identifier of a digitalSTORM-device. | true | false |
#### Sensor setup
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 |
-|-----------------|--------------------|-----------------------------|----------------- |------------- | -----------|
-| 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 |
-| 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 |
+| 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 |
+| 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 |
-#### Properties
+#### digitalSTROM-Device 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. |
+| 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:
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
+#### digitalSTROM-Meter 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 |
+| 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
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 |
+| 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. |
+| 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. | --- |
+| 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.
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 an 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 an 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 |
+| 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 an 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 an 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 |
+| 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 |
+| 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 |
+| 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:**
## Full Example
-### demo.things:
+### `demo.things` Example
```java
Bridge digitalstrom:dssBridge:dSS [ dSSAddress="urlOfMyDss", userName="dssadmin", password="mySecretPassword", sensorDataUpdateInterval=180] {
}
```
-### demo.items:
+### `demo.items` Example
```java
//dSS
Number Temperature { channel="digitalstrom:zoneTemperatureControl:dSS:zoneTemperatureControl:heating_temperature_controlled" }
```
-### demo.sitemap:
+### `demo.sitemap` Example
```perl
sitemap demo label="Main Menu"
This example defines a sACN/E1.31 bridge in unicast mode which transmits universe 2 and three things: a three channel dimmer used to control a RGB light, which takes 1s to fade from one color to another and 10s from 0-100% on incremental dim commands, a single channel dimmer which will turn on only to 90% if it receives an ON command and does not fully switch off (to 10%) if it receives an OFF command and chaser which changes the colors like a traffic light.
-### demo.things:
+### `demo.things` Example
```java
Bridge dmx:sacn-bridge:mybridge [ mode="unicast", address="192.168.0.60", universe=2 ] {
}
```
-### demo.items:
+### `demo.items` Example
```java
Color MyColorItem "My Color Item" { channel="dmx:color:mybridge:rgb:color" }
Switch MyChaserItem "My Chaser Item" { channel="dmx:chaser:mybridge:ampel:switch" }
```
-### demo.sitemap:
+### `demo.sitemap` Example
```perl
sitemap demo label="Main Menu"
| `manualModeState` | Switch | Has manual mode been enabled |
| `deviceLocked` | Switch | Are the Smart Plug controls locked |
-#### Known string responses for specific channels:
+#### Known Responses for Specific Channels
| Channel | Known responses |
|------------------------------|--------------------------------------------------------------------|
/* Humidity */
Number:Humidity livingroom_humidity "Humidity [%.0f %%]" <humidity> (GF_Living) ["Humidity"] {channel="draytonwiser:room:HeatHub:livingroom:currentHumidity"}
-
-
```
### Sitemap
| keepAlive | Time between notification update from device, in milliseconds | 7500 |
| retryConnectInMinutes | Time between connection retry, in minutes | 2 |
-
## Channels
The Emotiva Processor supports the following channels (some channels are model specific):
| Temperature | Number:Temperature | Allows for viewing the current actual temperature of the zone. |
| SetPointStatus | String | Allows for viewing the current set point mode of the zone. |
| SetPoint | Number:Temperature | Allows for viewing and permanently overriding the temperature set point of the zone. Sending 0 cancels any active set point overrides. |
- |
## Full Example
-### demo.things
+### `demo.things` Example
```java
Bridge evohome:account:your_account_alias [ username="your_user_name", password="your_password" ]
## Minimal Example
-### demo.things
+### `demo.things` Example
```java
Thing exec:command:apc [command="/usr/local/bin/apcaccess status", interval=15, timeout=5]
Following is an example how to set up an exec command thing, pass it a parameter, debug it with a rule and set the returned string to a Number Item.
-### demo.things
+### `demo.things` Example
```java
// "%2$s" will be replace by the input channel command, this makes it possible to use one command line with different arguments.
print('')
prev_group = group_name
-
print(('{item_type} {item_name} ' +
'"{label} [{unit}]" {icon} {{ channel="{channel_id}" }}').format(**locals()))
-->
| awsSecret | AWS Secret | AWS secret | no | n/a |
| awsRegion | AWS Region | AWS region of S3 bucket | yes | "" |
| s3Anonymous | Anonymous Connection | Connect anonymously (works for public buckets) | yes | true |
+
## Events
This binding supports the following event:
```
-### Using in a rule:
+### Using in a Rule
Local folder example:
The *vm* thing requires the following configuration parameters:
-
| Parameter Label | Parameter ID | Description | Required | Default |
|------------------|-----------------|----------------------------------------------------------------------------|----------|---------|
- `base`: This is the basic subscription with a fixed kWh price.
- `hphc`: Alternative subscription offering variable price in a given hour set (low hours/high hours).
-
## Thing Configuration
Things (both `base` and `hphc`) only offers the configuration of the power output of the electrical delivery point (Linky terminal).
|-----------------------|---------|---------------------------------------------|---------------|----------|
| puissance | integer | PDL power output (in kVA) | 6 | no |
-
## Channels
### `base` Tariff Thing
| fixed-ht | Number:Currency | Yearly fixed price excluding taxes | Yes |
| variable-ht | Number:EnergyPrice | Energy price in €/kWh excluding taxes | Yes |
-
### `hphc` Tariff Thing
All channels are read-only.
| hc-ht | Number:EnergyPrice | Low hours energy price in €/kWh excluding taxes | Yes |
| hp-ht | Number:EnergyPrice | High hours energy price in €/kWh excluding taxes | Yes |
-
## Full Example
-
### Thing Configuration
```java
Number:EnergyPrice Prix_Heure_Pleine {channel="frenchgovtenergydata:hphc:local:hp-ttc"}
Number:EnergyPrice Prix_Heure_Creuse {channel="frenchgovtenergydata:hphc:local:hc-ttc"}
```
-
-
## Channels
-### Channels for `powerinverter` Thing
+### `powerinverter` Thing Channels
| Channel ID | Item Type | Description |
| ------------------------------------ | ------------------------ | ----------------------------------------------------------------------------------------------------------------- |
| `powerflowinverter1power` | Number:Power | Current power of inverter 1, null if not running (+ produce/export, - consume/import) - DEPRECATED |
| `powerflowinverter1soc` | Number:Dimensionless | Current state of charge of inverter 1 in percent - DEPRECATED |
-### Channels for `meter` Thing
+### `meter` Thing Channels
| Channel ID | Item Type | Description |
| ----------------------- | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `energyrealsumconsumed` | Number:Energy | Real Energy consumed |
| `energyrealsumproduced` | Number:Energy | Real Energy produced |
-### Channels for `ohmpilot` Thing
+### `ohmpilot` Thing Channels
| Channel ID | Item Type | Description |
| ----------------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
## Properties
-### The `meter` Thing has the following properties:
+### `meter` Thing Properties
| Property | Description |
| -------------- | ------------------------------ |
| `modelId` | The model name of the meter |
| `serialNumber` | The serial number of the meter |
-### The `ohmpilot` Thing has the following properties:
+### `ohmpilot` Thing Properties
| Property | Description |
| -------------- | --------------------------------- |
| hoursOfProtection | Number:Time | Number of Hours of Protection |
| signalStrength | Number:Dimensionless | Signal Strength |
-
## Full Example
### Things
SAMSUNGHLS_HDMI1 = 38000,1,1,170,169,21,64,21,64,21,64,21,21,21,21,21,21,21,21,21,21,21,64,21,64,21,64,21,21,21,21,21,21,21,21,21,21,21,64,21,64,21,21,21,64,21,21,21,21,21,21,21,64,21,21,21,21,21,64,21,21,21,64,21,64,21,64,21,21,21,1673
SAMSUNGHLS_HDMI2 = 38000,1,1,170,169,21,64,21,64,21,64,21,21,21,21,21,21,21,21,21,21,21,64,21,64,21,64,21,21,21,21,21,21,21,21,21,21,21,64,21,21,21,21,21,64,21,21,21,64,21,64,21,64,21,21,21,64,21,64,21,21,21,64,21,21,21,21,21,21,21,1673
-
# Xfinity Pace XG2V2-P Cable Box
XFINITYXG2_GUIDE = 38000,1,37,8,34,8,65,8,29,8,106,8,50,8,50,8,44,8,101,8,525,8,34,8,60,8,29,8,29,8,39,8,65,8,29,8,29,8,3058,8,34,8,65,8,29,8,106,8,50,8,50,8,44,8,101,8,525,8,34,8,101,8,70,8,29,8,39,8,65,8,29,8,29,8,3058
XFINITYXG2_EXIT = 38000,1,37,8,34,8,65,8,29,8,106,8,50,8,50,8,44,8,101,8,525,8,34,8,44,8,29,8,29,8,39,8,81,8,29,8,29,8,3058,8,34,8,65,8,29,8,106,8,50,8,50,8,44,8,101,8,525,8,34,8,86,8,70,8,29,8,39,8,81,8,29,8,29,8,3058
Gateways of Generation 3 have generation specific features which are identified with the *'Generation 3 only'* annotation and/or via the <sup>[3]</sup> mark.
Features that are common to all generations are not annotated or marked.
-

PowerView shades have motorization control for their vertical position, and some also have vane controls to change the angle of their slats.
Example
```java
- Switch Player_1 "Player [%s]" {channel="heos:bridge:main:P123456789"}
+Switch Player_1 "Player [%s]" {channel="heos:bridge:main:P123456789"}
```
The {playerUID} has either a P in front of the number which indicates that this is a player or a G to indicate this is a group.
## Full Example
-### demo.things:
+### `demo.things` Example
```java
Bridge heos:bridge:main "Bridge" [ipAddress="192.168.0.1", username="userName", password="123456"] {
}
```
-### demo.items:
+### `demo.items` Example
```java
Player LivingRoom_Control "Control" {channel="heos:player:main:LivingRoom:Control"}
Switch item=HeosKitchen_InputSelect mappings=[aux_in_1 = "Aux In" , LivingRoom = "Living Room"]
```
-### The Online status of Groups and Players
+### The Online Status of Groups and Players
The online state of a Thing can be helpful for groups to control the visibility of group items within sitemap.
So if the group is removed the visibility of those items is also changed.
-#### Example
+#### Groups and Players Example
First you have to define a new Item within the Item section which is used later within the Sitemap:
## Channels
-### Hyperion Server (V1):
+### Hyperion Server (V1)
| Channel | Item | Description | Example |
|------------|--------|----------------------------------------------------|---------------------------------------|
| v4l | Switch | Enables or disables the V4L component | hyperion:serverNG:myServer:v4l |
| leddevice | Switch | Enables or disables the led device component | hyperion:serverNG:myServer:leddevice |
-## Items:
+## Items
-### Hyperion Server (V1):
+### Hyperion Server (V1)
```java
Dimmer Brightness "Brightness [%s]" {channel="hyperion:serverV1:myServer:brightness"}
| Sensor ID | Number | The ID of the connected sensor |
| Sensor Timeout | Number | The amount of time in seconds that should result in OFFLINE status when no readings have been received from the sensor |
-
## Channels
### LaCrosse temperature sensors
| electricCurrent | Number:ElectricCurrent | The measured Electric Current |
| electricPotential | Number:ElectricPotential | The measured Electric Potential in mA |
-
## Commands
### PCA301 power monitoring wireless sockets
| increaseDecrease | Group address for relative movement | 3.007 |
| frequency | Increase/Decrease frequency in milliseconds in case the binding should handle that (0 if the KNX device sends the commands repeatedly itself) | 0 |
-
##### Channel Type "rollershutter-control"
| Parameter | Description | Default DPT |
Number:Dimensionless MaxDepthOfDischarge "Max Depth Of Discharge" <energy> { channel="kostalinverter:piko1020:mypiko1020:maxDepthOfDischarge" }
Number:Dimensionless ShadowManagement "Shadow Management" <energy> { channel="kostalinverter:piko1020:mypiko1020:shadowManagement" }
Number:Dimensionless ExternalModuleControl "External Module Control" <energy> { channel="kostalinverter:piko1020:mypiko1020:externalModuleControl" }
-
-
```
### Third generation devices (PIKO IQ / PLENTICORE plus)
Either create a single _Color_ item linked to the _color_ channel and define _Switch_, _Slider_ and _Colorpicker_ entries with this item in the sitemap.
Or create items for each type (_Color_, _Switch_, _Dimmer_) and define the correspondent entries in the sitemap.
-### demo.things:
+### `demo.things` Example
```java
Thing lifx:colorlight:living [ deviceId="D073D5A1A1A1" ]
Thing lifx:whitelight:kitchen [ deviceId="D073D5D4D4D4", fadetime=150 ]
```
-### demo.items:
+### `demo.items` Example
```java
// Living
Number:Temperature Kitchen_Abs_Temperature "Kitchen Light Color Temperature [%d K]" { channel="lifx:whitelight:kitchen:abstemperature" }
```
-### demo.sitemap:
+### `demo.sitemap` Example
```perl
sitemap demo label="Main Menu"
| Method | Miniserver Firmware | Authentication | Encryption | Requirements |
|-------------|---------------------|--------------------------------------------------------------------------------|------------|-------------------------------------------------------|
| Hash-based | 8.x | HMAC-SHA1 hash on user and password | None | None |
-| Token-based | From 9.x | Token acquired on the first connection and used later instead of the password. | AES-256 | JRE must have unrestricted security policy configured |
+| Token-based | From 9.x | Token acquired on the first connection and used later instead of the password. | AES-256 | JRE must have unrestricted security policy configured |
For the token-based authentication, the password is required only for the first login and acquiring the token. After the token is acquired, the password is cleared in the binding configuration.
This binding creates channels for controls that are [used in Loxone's user interface](https://www.loxone.com/enen/kb/user-interface-configuration/).
Currently supported controls are presented in the table below.
-| [Loxone API Control](https://www.loxone.com/enen/kb/api/) | Loxone Block-Functions | [Item Types](https://www.openhab.org/docs/concepts/items.html) | Supported Commands |
+| [Loxone API Control](https://www.loxone.com/enen/kb/api/) | Loxone Block-Functions | [Item Types](https://www.openhab.org/docs/concepts/items.html) | Supported Commands |
|-----------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Alarm | [Burglar Alarm](https://www.loxone.com/enen/kb/burglar-alarm/) | `Switch` - arm the alarm | `OnOffType.*` |
| | | `Switch` - arm with delay - pushbuton | `OnOffType.ON` - armes the alarm with delay |
| | | `DateTime` - time when alarm started | Read-only channel |
| | | `Number` - delay of the alarm being armed | Read-only channel |
| | | `Number` - total delay of the alarm being armed | Read-only channel |
-| | | `String` - list of alarm sensors separated with `|` | Read-only channel |
+| | | `String` - list of alarm sensors separated with `\|` | Read-only channel |
| | | `Switch` - acknowledge the alarm - pushbutton | `OnOffType.ON` - acknowledge alarm |
| ColorPickerV2 | [RGBW 24v Dimmer Tree](https://www.loxone.com/enen/kb/rgbw-24v-dimmer-tree/) | `Color` | `HSBType` - sets the color of the light, `DecimalType` and `PercentType` - sets the brightness, `IncreaseDecreaseType.*` - increases/decreases the brightness, `OnOffType.*` - switches light on/off |
| Dimmer | [Dimmer](https://www.loxone.com/enen/kb/dimmer/) | `Dimmer` | `OnOffType.*`, `PercentType`, `IncreaseDecreaseType.*` |
- Output valve selection for garden watering - 8x Radio Button functional block, where only one valve can be open at a time
- A text displaying current alarm's state - a State functional block
-### things/loxone.things:
+### `loxone.things` Example
```java
loxone:miniserver:504F2414780F [ user="kryten", password="jmc2017", host="192.168.0.220", port=80 ]
```
-### items/loxone.items:
+### `loxone.items` Example
```java
// Type ID Label Icon Tags Settings
String Alarm_State "Alarm state [%s]" <alarm> {channel="loxone:miniserver:504F2414780F:0F2E2134-017D-3E82-FFFF433FB4A34B9E"}
```
-### sitemaps/loxone.sitemap:
+### `loxone.sitemap` Example
```perl
sitemap loxone label="Loxone Example Menu"
}
```
-### transform/garagedoor.map:
+### `garagedoor.map` Example
```text
OFF=Closed
The only exceptions are **greenmode** _step_, which is periodically polled and accepts REFRESH commands to initiate immediate polling, and **timeclock** _sunrise_ and _sunset_, which must be polled daily using REFRESH commands to retrieve current values.
Many other channels accept REFRESH commands to initiate a poll, but sending one should not normally be necessary.
-## RadioRA 2/HomeWorks QS Configuration File Examples:
+## RadioRA 2/HomeWorks QS Configuration File Examples
demo.things:
Group weatherDay5 "Weather in 5 days"
Group weatherDay6 "Weather in 6 days"
-
// ----------------- meteoblue ITEMS -------------------------------------------
DateTime todayForecastDate "Forecast for [%1$tY/%1$tm/%1$td]" <calendar> (weatherDay0) {channel="meteoblue:weather:metBridge:A51:forecastToday#forecastDate"}
String todayPCode "Pictocode [%d]" <iday> (weatherDay0) {channel="meteoblue:weather:metBridge:A51:forecastToday#condition"}
| light-on | Switch | RW | Turns the light on/off |
| light-intensity | Number:Dimensionless | RW | Controls the intensity of the light |
-
## Full Example
### Thing Configuration
Depending on the exact appliance configuration not all channels might be supported, e.g. a hob with four plates will only fill the channels for plates 1-4.
Channel ID and channel type ID match unless noted.
-| Channel Type ID | Item Type | Description | Read only |
-| ----------------------------- | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | --------- |
-| remote_control_can_be_started | Switch | Indicates if this device can be started remotely. | Yes |
-| remote_control_can_be_stopped | Switch | Indicates if this device can be stopped remotely. | Yes |
-| remote_control_can_be_paused | Switch | Indicates if this device can be paused remotely. | Yes |
-| remote_control_can_be_switched_on | Switch | Indicates if the device can be switched on remotely. | Yes |
-| remote_control_can_be_switched_off | Switch | Indicates if the device can be switched off remotely. | Yes |
-| remote_control_can_set_program_active | Switch | Indicates if the active program of the device can be set remotely. | Yes |
-| spinning_speed | String | The spinning speed of the active program. | Yes |
-| spinning_speed_raw | Number | The raw spinning speed of the active program. | Yes |
-| program_active | String | The active program of the device. | Yes |
-| program_active_raw | Number | The raw active program of the device. | Yes |
-| dish_warmer_program_active | String | The active program of the device. | No |
-| vacuum_cleaner_program_active | String | The active program of the device. | No |
-| program_phase | String | The phase of the active program. | Yes |
-| program_phase_raw | Number | The raw phase of the active program. | Yes |
-| operation_state | String | The operation state of the device. | Yes |
-| operation_state_raw | Number | The raw operation state of the device. | Yes |
-| program_start | Switch | Starts the currently selected program. | No |
-| program_stop | Switch | Stops the currently selected program. | No |
-| program_start_stop | String | Starts or stops the currently selected program. | No |
-| program_start_stop_pause | String | Starts, stops or pauses the currently selected program. | No |
-| power_state_on_off | String | Switches the device On or Off. | No |
-| finish_state | Switch | Indicates whether the most recent program finished. | Yes |
-| delayed_start_time | Number | The delayed start time of the selected program. | Yes |
-| program_remaining_time | Number | The remaining time of the active program. | Yes |
-| program_elapsed_time | Number | The elapsed time of the active program. | Yes |
-| program_progress | Number | The progress of the active program. | Yes |
-| drying_target | String | The target drying step of the laundry. | Yes |
-| drying_target_raw | Number | The raw target drying step of the laundry. | Yes |
-| pre_heat_finished | Switch | Indicates whether the pre-heating finished. | Yes |
-| temperature_target | Number | The target temperature of the device. | Yes |
-| temperature_current | Number | The currently measured temperature of the device. | Yes |
-| ventilation_power | String | The current ventilation power of the hood. | Yes |
-| ventilation_power_raw | Number | The current raw ventilation power of the hood. | Yes |
-| error_state | Switch | Indication flag which signals an error state for the device. | Yes |
-| info_state | Switch | Indication flag which signals an information of the device. | Yes |
-| fridge_super_cool | Switch | Start the super cooling mode of the fridge. | No |
-| freezer_super_freeze | Switch | Start the super freezing mode of the freezer. | No |
-| super_cool_can_be_controlled | Switch | Indicates if super cooling can be toggled. | Yes |
-| super_freeze_can_be_controlled | Switch | Indicates if super freezing can be toggled | Yes |
-| fridge_temperature_target | Number | The target temperature of the fridge. | Yes |
-| fridge_temperature_current | Number | The currently measured temperature of the fridge. | Yes |
-| freezer_temperature_target | Number | The target temperature of the freezer. | Yes |
-| freezer_temperature_current | Number | The currently measured temperature of the freezer. | Yes |
-| top_temperature_target | Number | The target temperature of the top area. | Yes |
-| top_temperature_current | Number | The currently measured temperature of the top area. | Yes |
-| middle_temperature_target | Number | The target temperature of the middle area. | Yes |
-| middle_temperature_current | Number | The currently measured temperature of the middle area. | Yes |
-| bottom_temperature_target | Number | The target temperature of the bottom area. | Yes |
-| bottom_temperature_current | Number | The currently measured temperature of the bottom area. | Yes |
-| light_switch | Switch | Indicates if the light of the device is enabled. | No |
-| light_can_be_controlled | Switch | Indicates if the light of the device can be controlled. | Yes |
-| plate_power_step | String | The power level of the heating plate. | Yes |
-| plate_power_step_raw | Number | The raw power level of the heating plate. | Yes |
-| door_state | Switch | Indicates if the door of the device is open. | Yes |
-| door_alarm | Switch | Indicates if the door alarm of the device is active. | Yes |
-| water_consumption_current | Number | The amount of water used by the current running program up to the present moment. | Yes |
-| energy_consumption_current | Number | The amount of energy used by the current running program up to the present moment. | Yes |
-| battery_level | Number | The battery level of the robotic vacuum cleaner. | Yes |
+| Channel Type ID | Item Type | Description | Read only |
+|---------------------------------------|-----------|------------------------------------------------------------------------------------|-----------|
+| remote_control_can_be_started | Switch | Indicates if this device can be started remotely. | Yes |
+| remote_control_can_be_stopped | Switch | Indicates if this device can be stopped remotely. | Yes |
+| remote_control_can_be_paused | Switch | Indicates if this device can be paused remotely. | Yes |
+| remote_control_can_be_switched_on | Switch | Indicates if the device can be switched on remotely. | Yes |
+| remote_control_can_be_switched_off | Switch | Indicates if the device can be switched off remotely. | Yes |
+| remote_control_can_set_program_active | Switch | Indicates if the active program of the device can be set remotely. | Yes |
+| spinning_speed | String | The spinning speed of the active program. | Yes |
+| spinning_speed_raw | Number | The raw spinning speed of the active program. | Yes |
+| program_active | String | The active program of the device. | Yes |
+| program_active_raw | Number | The raw active program of the device. | Yes |
+| dish_warmer_program_active | String | The active program of the device. | No |
+| vacuum_cleaner_program_active | String | The active program of the device. | No |
+| program_phase | String | The phase of the active program. | Yes |
+| program_phase_raw | Number | The raw phase of the active program. | Yes |
+| operation_state | String | The operation state of the device. | Yes |
+| operation_state_raw | Number | The raw operation state of the device. | Yes |
+| program_start | Switch | Starts the currently selected program. | No |
+| program_stop | Switch | Stops the currently selected program. | No |
+| program_start_stop | String | Starts or stops the currently selected program. | No |
+| program_start_stop_pause | String | Starts, stops or pauses the currently selected program. | No |
+| power_state_on_off | String | Switches the device On or Off. | No |
+| finish_state | Switch | Indicates whether the most recent program finished. | Yes |
+| delayed_start_time | Number | The delayed start time of the selected program. | Yes |
+| program_remaining_time | Number | The remaining time of the active program. | Yes |
+| program_elapsed_time | Number | The elapsed time of the active program. | Yes |
+| program_progress | Number | The progress of the active program. | Yes |
+| drying_target | String | The target drying step of the laundry. | Yes |
+| drying_target_raw | Number | The raw target drying step of the laundry. | Yes |
+| pre_heat_finished | Switch | Indicates whether the pre-heating finished. | Yes |
+| temperature_target | Number | The target temperature of the device. | Yes |
+| temperature_current | Number | The currently measured temperature of the device. | Yes |
+| ventilation_power | String | The current ventilation power of the hood. | Yes |
+| ventilation_power_raw | Number | The current raw ventilation power of the hood. | Yes |
+| error_state | Switch | Indication flag which signals an error state for the device. | Yes |
+| info_state | Switch | Indication flag which signals an information of the device. | Yes |
+| fridge_super_cool | Switch | Start the super cooling mode of the fridge. | No |
+| freezer_super_freeze | Switch | Start the super freezing mode of the freezer. | No |
+| super_cool_can_be_controlled | Switch | Indicates if super cooling can be toggled. | Yes |
+| super_freeze_can_be_controlled | Switch | Indicates if super freezing can be toggled | Yes |
+| fridge_temperature_target | Number | The target temperature of the fridge. | Yes |
+| fridge_temperature_current | Number | The currently measured temperature of the fridge. | Yes |
+| freezer_temperature_target | Number | The target temperature of the freezer. | Yes |
+| freezer_temperature_current | Number | The currently measured temperature of the freezer. | Yes |
+| top_temperature_target | Number | The target temperature of the top area. | Yes |
+| top_temperature_current | Number | The currently measured temperature of the top area. | Yes |
+| middle_temperature_target | Number | The target temperature of the middle area. | Yes |
+| middle_temperature_current | Number | The currently measured temperature of the middle area. | Yes |
+| bottom_temperature_target | Number | The target temperature of the bottom area. | Yes |
+| bottom_temperature_current | Number | The currently measured temperature of the bottom area. | Yes |
+| light_switch | Switch | Indicates if the light of the device is enabled. | No |
+| light_can_be_controlled | Switch | Indicates if the light of the device can be controlled. | Yes |
+| plate_power_step | String | The power level of the heating plate. | Yes |
+| plate_power_step_raw | Number | The raw power level of the heating plate. | Yes |
+| door_state | Switch | Indicates if the door of the device is open. | Yes |
+| door_alarm | Switch | Indicates if the door alarm of the device is active. | Yes |
+| water_consumption_current | Number | The amount of water used by the current running program up to the present moment. | Yes |
+| energy_consumption_current | Number | The amount of energy used by the current running program up to the present moment. | Yes |
+| battery_level | Number | The battery level of the robotic vacuum cleaner. | Yes |
### Coffee System
## Full Example
-### demo.things:
+### `demo.things` Example
```java
Bridge mielecloud:account:home [ email="me@openhab.org", locale="en" ] {
}
```
-### demo.items:
+### `demo.items` Example
```java
// Coffee system
String hob_plate_6_power_step { channel="mielecloud:hob:home:000160102345:plate_6_power_step" }
```
-### demo.sitemap:
+### `demo.sitemap` Example
```perl
sitemap demo label="Kitchen"
## Configuration examples
-### xiaomi.things:
+### `xiaomi.things` Example
```java
Bridge mihome:bridge:f0b429XXXXXX "Xiaomi Gateway" [ serialNumber="f0b429XXXXXX", ipAddress="192.168.0.3", port=9898, key="XXXXXXXXXXXXXXXX" ] {
}
```
-### xiaomi.items:
+### `xiaomi.items` Example
```java
// Replace <GwID> with itemId of gateway from Things file
Rollershutter CurtainMotorControl <blinds> { channel="curtain:<GwID>:<ID>:curtainControl" }
```
-### xiaomi.rules:
+### `xiaomi.rules` Example
```java
rule "Mijia & Aqara Wireless Switch"
end
```
-### xiaomi.sitemap:
+### `xiaomi.sitemap` Example
```perl
sitemap xiaomi label="Xiaomi" {
Number statusArea "Cleaned Area [%1.0fm²]" <zoom> (gVac,gVacStat) {channel="miio:vacuum:034F0E45:status#clean_area" }
Number statusTime "Cleaning Time [%1.0f']" <clock> (gVac,gVacStat) {channel="miio:vacuum:034F0E45:status#clean_time" }
String statusError "Error [%s]" <error> (gVac,gVacStat) {channel="miio:vacuum:034F0E45:status#error_code" }
-Number statusFanPow "Fan Power [%1.0f%%]" <signal> (gVacStat) {channel="miio:vacuum:034F0E45:status#fan_power" }
+Number statusFanPow "Fan Power [%1.0f%%]" <signal> (gVacStat) {channel="miio:vacuum:034F0E45:status#fan_power" }
Number statusClean "In Cleaning Status [%1.0f]" <switch> (gVacStat) {channel="miio:vacuum:034F0E45:status#in_cleaning" }
Switch statusDND "DND Activated" (gVacStat) {channel="miio:vacuum:034F0E45:status#dnd_enabled" }
-Number statusStatus "Status [%1.0f]" <status> (gVacStat) {channel="miio:vacuum:034F0E45:status#state"}
+Number statusStatus "Status [%1.0f]" <status> (gVacStat) {channel="miio:vacuum:034F0E45:status#state"}
Switch isLocating "Locating" (gVacStat) {channel="miio:vacuum:034F0E45:status#is_locating" }
Number consumableMain "Main Brush [%1.0f]" (gVacCons) {channel="miio:vacuum:034F0E45:consumables#main_brush_time"}
| lp_autooff_delay | Number | Low Power Limit Time | |
| lp_threshold | Number | Low Power Threshold | |
-
-
## Example item file Rockrobo vacuum
```java
Number lp_threshold "Low Power Threshold" (G_powerstrip) {channel="miio:basic:powerstrip:lp_threshold"}
```
-
-
### Country Servers
Known country Servers: cn, de, i2, ru, sg, us
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
-import java.io.StringWriter;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
public static void main(String[] args) {
ReadmeHelper rm = new ReadmeHelper();
LOGGER.info("## Creating device list");
- StringWriter deviceList = rm.deviceList();
+ StringBuilder deviceList = rm.deviceList();
rm.checkDatabaseEntrys();
LOGGER.info("## Creating channel list for json database driven devices");
- StringWriter channelList = rm.channelList();
+ StringBuilder channelList = rm.channelList();
LOGGER.info("## Creating Item Files for json database driven devices");
- StringWriter itemFileExamples = rm.itemFileExamples();
+ StringBuilder itemFileExamples = rm.itemFileExamples();
try {
String baseDoc = new String(Files.readAllBytes(Paths.get(BASEFILE)), StandardCharsets.UTF_8);
String newDoc = baseDoc.replaceAll("!!!devices", deviceList.toString())
LOGGER.info("## Done");
}
- private StringWriter deviceList() {
+ private StringBuilder deviceList() {
long items = Arrays.asList(MiIoDevices.values()).stream()
.filter(device -> !device.getThingType().equals(MiIoBindingConstants.THING_TYPE_UNSUPPORTED)).count();
String devicesCount = String.format("Currently the miio binding supports more than %d different models.",
(items / 10) * 10);
LOGGER.info(devicesCount);
- StringWriter sw = new StringWriter();
- sw.write(devicesCount);
- sw.write("\n\n");
- sw.write(
+ StringBuilder sw = new StringBuilder();
+ sw.append(devicesCount);
+ sw.append("\n\n");
+ sw.append(
"| Device | ThingType | Device Model | Supported | Remark |\n");
- sw.write(
+ sw.append(
"|------------------------------------|------------------|------------------------|--------------|------------|\n");
Arrays.asList(MiIoDevices.values()).forEach(device -> {
}
}
}
- sw.write("| ");
- sw.write(minLengthString(device.getDescription(), 34));
- sw.write(" | ");
- sw.write(minLengthString(device.getThingType().toString(), 16));
- sw.write(" | ");
+ sw.append("| ");
+ sw.append(minLengthString(device.getDescription(), 34));
+ sw.append(" | ");
+ sw.append(minLengthString(device.getThingType().toString(), 16));
+ sw.append(" | ");
String model = isSupported ? device.getModel() : "[" + device.getModel() + "](#" + link + ")";
- sw.write(minLengthString(model, 22));
- sw.write(" | ");
- sw.write(isSupported ? "No " : (experimental ? "Experimental" : "Yes "));
- sw.write(" | ");
- sw.write(minLengthString(remark, 10));
- sw.write(" |\n");
+ sw.append(minLengthString(model, 22));
+ sw.append(" | ");
+ sw.append(isSupported ? "No " : (experimental ? "Experimental" : "Yes "));
+ sw.append(" | ");
+ sw.append(minLengthString(remark, 10));
+ sw.append(" |\n");
}
});
return sw;
}
- private StringWriter channelList() {
- StringWriter sw = new StringWriter();
+ private StringBuilder channelList() {
+ StringBuilder sw = new StringBuilder();
Arrays.asList(MiIoDevices.values()).forEach(device -> {
if (DATABASE_THING_TYPES.contains(device.getThingType())) {
MiIoBasicDevice dev = findDatabaseEntry(device.getModel());
if (dev != null) {
String link = device.getModel().replace(".", "-");
- sw.write("### " + device.getDescription() + " (" + "<a name=\"" + link + "\">" + device.getModel()
+ sw.append("### " + device.getDescription() + " (" + "<a name=\"" + link + "\">" + device.getModel()
+ "</a>" + ") Channels\n" + "\n");
- sw.write(
+ sw.append(
"| Channel | Type | Description | Comment |\n");
- sw.write(
+ sw.append(
"|----------------------------|----------------------|------------------------------------------|------------|\n");
for (MiIoBasicChannel ch : dev.getDevice().getChannels()) {
&& ch.getReadmeComment().startsWith("Value mapping")) {
ch.setReadmeComment(readmeOptionMapping(ch, device.getModel()));
}
- sw.write("| " + minLengthString(ch.getChannel(), 26) + " | " + minLengthString(ch.getType(), 20)
- + " | " + minLengthString(ch.getFriendlyName(), 40) + " | "
- + minLengthString(ch.getReadmeComment(), 10) + " |\n");
+ sw.append("| " + minLengthString(ch.getChannel(), 26) + " | "
+ + minLengthString(ch.getType(), 20) + " | " + minLengthString(ch.getFriendlyName(), 40)
+ + " | " + minLengthString(ch.getReadmeComment(), 10) + " |\n");
}
- sw.write("\n");
+ sw.append("\n");
} else {
LOGGER.info("Pls check: Device not found in db: {}", device);
}
}
});
+
+ // Remove excess newline
+ if (sw.length() > 1) {
+ sw.setLength(sw.length() - 2);
+ }
return sw;
}
return channel.getReadmeComment();
}
- private StringWriter itemFileExamples() {
- StringWriter sw = new StringWriter();
+ private StringBuilder itemFileExamples() {
+ StringBuilder sw = new StringBuilder();
Arrays.asList(MiIoDevices.values()).forEach(device -> {
if (DATABASE_THING_TYPES.contains(device.getThingType())) {
MiIoBasicDevice dev = findDatabaseEntry(device.getModel());
if (dev != null) {
- sw.write("### " + device.getDescription() + " (" + device.getModel() + ") item file lines\n\n");
+ sw.append("### " + device.getDescription() + " (" + device.getModel() + ") item file lines\n\n");
String[] ids = device.getModel().split("\\.");
String id = ids[ids.length - 2];
String gr = "G_" + id;
- sw.write("note: Autogenerated example. Replace the id (" + id
+ sw.append("note: Autogenerated example. Replace the id (" + id
+ ") in the channel with your own. Replace `basic` with `generic` in the thing UID depending on how your thing was discovered.\n");
- sw.write("\n```java\n");
- sw.write("Group " + gr + " \"" + device.getDescription() + "\" <status>\n");
+ sw.append("\n```java\n");
+ sw.append("Group " + gr + " \"" + device.getDescription() + "\" <status>\n");
for (MiIoBasicChannel ch : dev.getDevice().getChannels()) {
- sw.write(ch.getType() + " " + ch.getChannel().replace("-", "_") + " \"" + ch.getFriendlyName()
+ sw.append(ch.getType() + " " + ch.getChannel().replace("-", "_") + " \"" + ch.getFriendlyName()
+ "\" (" + gr + ") {channel=\"" + device.getThingType().toString() + ":" + id + ":"
+ ch.getChannel() + "\"}\n");
}
- sw.write("```\n\n");
+ sw.append("```\n\n");
}
}
});
+
+ // Remove excess newline
+ if (sw.length() > 0) {
+ sw.setLength(sw.length() - 1);
+ }
return sw;
}
Contact stiebel_eltron_mode_cooling "Cooling [%d]" { channel="modbus:heatpump:stiebelEltron:systemState#is-cooling" }
Contact stiebel_eltron_mode_summer "Summer Mode [%d]" { channel="modbus:heatpump:stiebelEltron:systemState#is-summer" }
-
Number:Energy stiebel_eltron_production_heat_today "Heat quantity today [%.0f kWh]" { channel="modbus:heatpump:stiebelEltron:energyInformation#production_heat_today" }
Number:Energy stiebel_eltron_production_heat_total "Heat quantity total [%.3f MWh]" {channel="modbus:heatpump:stiebelEltron:energyInformation#production_heat_total"}
Number:Energy stiebel_eltron_production_water_today "Water heat quantity today [%.0f kWh]" { channel="modbus:heatpump:stiebelEltron:energyInformation#production_water_today" }
| `scheduler-next-playlist` | String (read only) | Next Scheduled Playlist. |
| `scheduler-next-playlist-start` | String (read only) | Next Scheduled Start Time. |
-
## Full Example
To use these examples for textual configuration, you must already have a configured MQTT `broker` thing, and know its unique ID.
## Thing Configuration
-
There is only thing type supported by this binding, `ruuvitag_beacon`.
No manual configuration is needed, and discovery function can be used instead.
| gps | Location | Current GPS coordinates of the vehicle |
| heading | Number:Angle | Current direction of the vehicle |
| address | String | Current address |
-| home-distance | Number:Length | Calculated distance from configured home position of Openhab |
+| home-distance | Number:Length | Calculated distance from configured home position of openHAB |
#### Remote Services
Number:Energy PlugEnergyConsumedSinceLastCall "Ws: [%.1f Ws]" {channel="mystrom:mystromplug:d6217a31:energy-consumed-since-last-call"}
```
-
### Sitemap Configuration
```perl
For example, brightness of _all_ panels at once can be controlled by defining a dimmer item for the color channel of the _controller thing_.
The same applies to the color channel of an individual lightpanel.
-### Limitations assigning specific colors on individual panels:
+### Limitations Assigning Specific Colors on Individual Panels
- Due to the way the API of the nanoleaf is designed, each time a color is assigned to a panel, it will be directly sent to that panel. The result is that if you send colors to several panels more or less at the same time, they will not be set at the same time but one after the other and rather appear like a sequence but as a one shot.
- Another important limitation is that individual panels cannot be set while a dynamic effect is running on the panel which means that as soon as you set an individual panel the "static effect" is set, which disables the chosen dynamic effect. The nanoleaf app shows that a static effect is now running, too.
## Connection Refused Errors
From early 2022 Heatmiser introduced NeoHub firmware that has the ability to enable / disable connecting to it via a TCP port.
-If the TCP port is disabled the OpenHAB binding cannot connect and the binding will report a _"Connection Refused"_ warning in the log.
+If the TCP port is disabled the openHAB binding cannot connect and the binding will report a _"Connection Refused"_ warning in the log.
In prior firmware versions the TCP port was always enabled.
But in the new firmware the TCP port is initially enabled on power up but if no communication occurs for 48 hours it is automatically disabled.
Alternatively the Heatmiser mobile app has a setting (Settings | System | API Access | Legacy API Enable | On) whereby the TCP port can be permanently enabled.
| live | picture (**) | Image | Read-only | Camera Live Snapshot |
| live | local-picture-url | String | Read-only | Local Url of the live snapshot for this camera |
| live | vpn-picture-url | String | Read-only | Url of the live snapshot for this camera through Netatmo VPN. |
-| live | local-stream-url (*) | String | Read-only | Local Url of the live stream for this camera (accessible if openhab server and camera are located on the same lan. |
+| live | local-stream-url (*) | String | Read-only | Local Url of the live stream for this camera (accessible if openHAB server and camera are located on the same lan. |
| live | vpn-stream-url (*) | String | Read-only | Url of the live stream for this camera through Netatmo VPN. |
| signal | strength | Number | Read-only | Signal strength (0 for no signal, 1 for weak...) |
| signal | value | Number:Power | Read-only | Signal strength in dBm |
| status | alim | String | Read-only | State of the power connector |
| live | picture | Image | Read-only | Camera Live Snapshot |
| live | picture-url | String | Read-only | Url of the live snapshot for this camera |
-| live | local-stream-url (*) | String | Read-only | Local Url of the live stream for this camera (accessible if openhab server and camera are located on the same lan. |
+| live | local-stream-url (*) | String | Read-only | Local Url of the live stream for this camera (accessible if openHAB server and camera are located on the same lan. |
| live | vpn-stream-url (*) | String | Read-only | Url of the live stream for this camera through Netatmo VPN. |
| signal | strength | Number | Read-only | Signal strength (0 for no signal, 1 for weak...) |
| signal | value | Number:Power | Read-only | Signal strength in dBm |
The difference between the two is, that the Max485 chip needs to be switched between RX mode and TX mode manually while the Max1348 chip do this automatically.
That is why you need an extra "direction pin" on the Arduino to switch the module with Max485 chip between the two modes.
-#### Wiring diagram for Max1348 based modules:
+#### Wiring diagram for Max1348 based modules
```
TX RX 5V GND Arduino
RX TX VCC GND Max1348 based module
```
-#### Wiring diagram for Max485 (PIN2 is used as direction pin here):
+#### Wiring diagram for Max485 (PIN2 is used as direction pin here)
```
TX RX PIN2 5V GND Arduino
DI RO DE RE VCC GND Max485 bases module
```
-
## Ethernet Shield W5100
This Ethernet shield is based on Wiznet W5100 Ethernet Chip.
| alarm | | | | bridge, alarm | trigger channel with alarm event message, can be used in rules |
| notice | | | | bridge | trigger channel with notice event message, can be used in rules |
-
## Console Commands
To help with further development, a number of console commands allow you to collect information about your current system:
This example shows how to configure the OJElecttronics binding.
-### demo.things
+### `demo.things` Example
```java
Bridge ojelectronics:ojcloud:myCloud "My Cloud" @ "My Home" [ userName="MyUserName", password="MyPassword", apiKey="The Key" ] {
## Full Example
-### demo.things
+### `demo.things` Example
```java
Thing omnikinverter:omnik:70ecb4f0 "Solar Inverter" [ hostname="igen-wifi.lan",serial=604455290]
```
-### demo.items
+### `demo.items` Example
```java
Number:Power OmnikInverterBindingThing_InstantaneousPower "Solar Power" <sun> {channel="omnikinverter:omnik:70ecb4f0:power"}
Number:Energy OmnikInverterBindingThing_TotalGeneratedEnergy "Solar Energy Total" {channel="omnikinverter:omnik:70ecb4f0:energyTotal"}
```
-### Sitemap
+### `demo.sitemap` Example
```perl
Text item=OmnikInverterBindingThing_InstantaneousPower
This is the configuration for a OneWire network consisting of an owserver as bridge (`onewire:owserver:mybridge`) as well as a temperature sensor, a BMS and a 2-port Digital I/O as things (`onewire:basic:mybridge:mysensor`, `onewire:bms:mybridge:mybms`, `onewire:basic:mybridge:mydio`).
-### demo.things:
+### `demo.things` Example
```java
Bridge onewire:owserver:mybridge [
}
```
-### demo.items:
+### `demo.items` Example
```java
Number:Temperature MySensor "MySensor [%.1f °C]" { channel="onewire:basic:mybridge:mysensor:temperature" }
Number CRC8Errors "Bus-Errors [%d]" { channel="onewire:owserver:mybridge:crc8errors" }
```
-### demo.sitemap:
+### `demo.sitemap` Example
```perl
sitemap demo label="Main Menu"
## Full Example
-### demo.things
+### `demo.things` Example
```java
Bridge openthermgateway:openthermgateway:1 "OpenTherm Gateway" [ ipaddress="192.168.1.100", port="8000", connectionRetryInterval=60 ] {
Number:Dimensionless FaultHistoryBufferEntry "Fault History Buffer Entry" { channel="openthermgateway:ventilationheatrecovery:1:brink:vh_fhbentry }
```
-### demo.sitemap
+### `demo.sitemap` Example
```perl
sitemap demo label="Main Menu" {


-
## Supported Things
In order for this binding to work, a **BTicino/Legrand OpenWebNet gateway** is needed in your home system to talk to devices.
String iCENPlusProxyItem "CEN+ Proxy Item"
-
Switch iLR_IR_sensor "Sensor" { channel="openwebnet:bus_dry_contact_ir:mybridge:LR_IR_sensor:sensor" }
// alarm aux, alarm unit and a zone
}
```
-### Appendix A - 'remote_button' codes:
+### Appendix A - 'remote_button' codes
| Command | Function |
|---------|-----------------------------------------------------------------------------|
| SEH | Display the Picture Adjustment menu |
| DRB | Display the Darbee Adjustment menu |
-#### Extra buttons on UDP models:
+#### Extra buttons on UDP models
| Command | Function |
|---------|-------------------------------------------------------------------------------------|
## Channels
-### S20:
+### S20
| Channel | Description | Example |
|---------|-------------------------------|---------------------------|
| power | Current power state of switch | orvibo:s20:mysocket:power |
-## Items:
+## `orvibo.items` Example
```java
Switch MySwitch "Switch state [%s]" { channel="orvibo:s20:mysocket:power" }
```
-## Example Sitemap
+## `orbivo.sitemap` Example
Using the above things channels and items
Sitemap:
}
```
-### Appendix A - 'button' channel command codes:
+### Appendix A - 'button' channel command codes
**List of available button commands for BD players:**
For a serial bridge you would use a configuration similar to this, again saved as 'pentair.things':
-
```java
Bridge pentair:serial_bridge:1 [ serialPort="/dev/ttyUSB0" ] {
controller main [ id=16 ]
## References
-
Setting up RS485 and basic protocol - <https://www.sdyoung.com/home/decoding-the-pentair-easytouch-rs-485-protocol/>
ser2sock GitHub - <https://github.com/nutechsoftware/ser2sock>
-nodejs-poolController - https://github.com/tagyoureit/nodejs-poolController
-
+nodejs-poolController - <https://github.com/tagyoureit/nodejs-poolController>
You must define a Plugwise Home Automation gateway (Bridge) before defining zones or appliances (Things) for this binding to work.
-### Plugwise Home Automation gateway (Bridge):
+### Plugwise Home Automation gateway (Bridge)
| Parameter | Description | Config | Default |
|-----------|-------------------------------------------------------------------------|----------|---------|
| smileID | The 8 letter code on the sticker on the back of the Adam boiler gateway | Required | - |
| refresh | The refresh interval in seconds | Optional | 15 |
-### Plugwise Home Automation zone (`zone`):
+### Plugwise Home Automation zone (`zone`)
| Parameter | Description | Config | Default |
| --------- | ------------------------- | -------- | ------- |
| id | The unique ID of the zone | Required | - |
-### Plugwise Home Automation appliance (`appliance_valve`):
+### Plugwise Home Automation appliance (`appliance_valve`)
| Parameter | Description | Config | Default |
|----------------------|--------------------------------------------------------------------------------------------------------------------|----------|---------|
| id | The unique ID of the radiator valve appliance | Required | - |
| lowBatteryPercentage | Battery charge remaining at which to trigger battery low warning. (_Only applicable for battery operated devices_) | Optional | 15 |
-### Plugwise Home Automation appliance (`appliance_thermostat`):
+### Plugwise Home Automation appliance (`appliance_thermostat`)
| Parameter | Description | Config | Default |
|----------------------|--------------------------------------------------------------------------------------------------------------------|----------|---------|
| id | The unique ID of the room thermostat appliance | Required | - |
| lowBatteryPercentage | Battery charge remaining at which to trigger battery low warning. (_Only applicable for battery operated devices_) | Optional | 15 |
-### Plugwise Home Automation appliance (`appliance_pump`):
+### Plugwise Home Automation appliance (`appliance_pump`)
| Parameter | Description | Config | Default |
| --------- | ----------------------------------- | -------- | ------- |
| id | The unique ID of the pump appliance | Required | - |
-### Plugwise Home Automation boiler (`appliance_boiler`):
+### Plugwise Home Automation boiler (`appliance_boiler`)
| Parameter | Description | Config | Default |
|-----------|-----------------------------|----------|---------|
| Config Name | Item Type | Description |
|-----------------------------|-----------------------------------------------------------------------------------------------------------------|
| name | text | The name of one specific device. You can also use the description |
-| activateSimpleProtocolSink | boolean | Activation of a corresponding sink in OpenHAB |
+| activateSimpleProtocolSink | boolean | Activation of a corresponding sink in openHAB |
| additionalFilters | text | Additional filters to select the proper device on the pulseaudio server, in case of ambiguity |
| simpleProtocolIdleModules | integer | Number of Simple Protocol TCP Socket modules to keep loaded in the server |
| simpleProtocolMinPort | integer | Min port used by simple protocol module instances created by the binding on the pulseaudio host |
| Config ID | Item Type | Description |
|------------------------------|-----------------------------------------------------------------------------------------------------------------|
| name | text | The name of one specific device. You can also use the description |
-| activateSimpleProtocolSource | boolean | Activation of a corresponding sink in OpenHAB |
+| activateSimpleProtocolSource | boolean | Activation of a corresponding sink in openHAB |
| additionalFilters | text | Additional filters to select the proper device on the pulseaudio server, in case of ambiguity |
| simpleProtocolIdleModules | integer | Number of Simple Protocol TCP Socket modules to keep loaded in the server |
| simpleProtocolMinPort | integer | Min port used by simple protocol module instances created by the binding on the pulseaudio host |
The `thing` thing has the following configuration parameters:
-| Parameter | Required | Description |
-|----------------------|----------|---------------------------------------------|
-| thingUID | yes | The thing UID in the remote openHAB server. |
+| Parameter | Required | Description |
+|----------------------|----------|--------------------------------------------------------------------------------------------------------------------------------------------|
+| thingUID | yes | The thing UID in the remote openHAB server. |
| buildTriggerChannels | no | If set to true, a trigger channel will be automatically created and linked to each trigger channel from the remote thing. Default is true. |
Please note that if your remote server is an openHABÂ v3 server, in order for all of your things to be properly initialized, you will need to define on your bridge thing a valid API token in the parameter `token` and also define the parameter `authenticateAnyway` to true in case you are using an unsecured connection (HTTP).
## Example
-### demo.things:
+### `demo.things` Example
Example of connection to a remote server in the local network:
Bridge remoteopenhab:server:oh3 "OH3 server" [ host="myopenhab.org", useHttps=true, port=443, username="myUsername", password="myPassword" ]
```
-### demo.items:
+### `demo.items` Example
```java
DateTime MyDate "Date [%1$tA %1$td %1$tR]" <calendar> { channel="remoteopenhab:server:oh2:MyDate" }
Number:Intensity Irradiation "Irradiation [%.1f %unit%]" <sun> {channel="resol:device:VBUS:DeltaSol_MX-Controller:irradiation_sensor_16"}
Number SolarPump "Solar pump [%.0f %%]" {channel="resol:device:VBUS:DeltaSol_MX-Controller:pump_speed_relay_1"}
-
/*************************************************/
/* Heating circuit */
/*************************************************/
String HeatCircuit_OperatingState "HeatCircuit OperatingState [%s]" {channel="resol:device:VBUS:DeltaSol_MX-Heating_circuit-1:operating_state"}
-
/*************************************************/
/* Heat quantity meter */
/*************************************************/
Number:Energy SolarEnergy_today "Solar Energy (today) [%.1f %unit%]" {channel="resol:device:VBUS:DeltaSol_MX-HQM-1:heat_quantity_today"}
Number:Power SolarPower "Solar Power [%.0f %unit%]" {channel="resol:device:VBUS:DeltaSol_MX-HQM-1:power"}
-
/*************************************************/
/* Physical EM Module 1 */
/*************************************************/
Number:Temperature EM_Temperature_1 "Temperature EM sensor 1 [%.1f %unit%]" <temperature> {channel="resol:device:VBUS:DeltaSol_MX-Modules:temperature_module_1_sensor_1"}
-
/*************************************************/
/* Virtual EM Module 2, simulated by openHAB */
/*************************************************/
Number:Temperature EM_BAS_Set_Temperature_3 "Set Temperature of virtual room control unit on EM2 sensor 3 [%.1f %unit%]" <temperature> {channel="resol:emulatedEM:VBUS:EM2:bas_temp_adjust_3"}
Number EM_BAS_Mode "Mode of virtual room control unit on EM2 sensor 3 [%.1f %unit%]" <temperature> {channel="resol:emulatedEM:VBUS:EM2:bas_mode_3"}
-
/*************************************************/
/* Failure handling */
/*************************************************/
Number Errormask "Error mask [%.0f]" {channel="resol:device:VBUS:DeltaSol_MX-Controller:error_mask"}
Number Warningmask "Warning mask [%.0f]" {channel="resol:device:VBUS:DeltaSol_MX-Controller:warning_mask"}
String BrokenSensor "Broken Sensor [%s]" {channel="resol:device:VBUS:DeltaSol_MX-Controller:error_Sensor_line_broken"}
-
-
```
resol.sitemap
## Full Example
-### roku.things:
+### `roku.things` Example
```java
// Roku streaming media player
```
-### roku.items:
+### `roku.items` Example
```java
// Roku streaming media player items:
String Player_ProgramRating "Program Rating: [%s]" { channel="roku:roku_tv:mytv1:programRating" }
```
-### roku.sitemap:
+### `roku.sitemap` Example
```perl
sitemap roku label="Roku" {
| mminit | W | Switch**** | Whether to initial a media management session (ON) or close an existing one (OFF) |
| mmcontextmenu | W | Switch**** | Whether to initial a media management context session (ON) or close an existing one (OFF) |
-#### Notes:
+#### Notes
1. As of the time of this document, rating ON (like) produced an error in the firmware from the related command.
This has been reported to Russound.
- `account`: Bridge representing an iSMART Account
- `vehicle`: Thing representing an iSMART MG Car
-
## Discovery
Vehicle discovery is implemented.
| vin | text | Vehicle identification number (VIN) | N/A | yes | no |
| abrpUserToken | text | User token for A Better Routeplanner | N/A | no | no |
-
## Channels
| Channel | Type | Read/Write | Description | Advanced |
String MG5_Vehicle_Message "MG5 Vehicle Message" {channel="saicismart:vehicle:myaccount:mymg5:last-alarm-message-content"}
```
-
## Limitations
The advanced channel "force refresh" if used regularly will drain the 12v car battery and you will be unable to start it!
# Salus Binding
-The Salus Binding facilitates seamless integration between OpenHAB and [Salus Cloud](https://eu.salusconnect.io/).
+The Salus Binding facilitates seamless integration between openHAB and [Salus Cloud](https://eu.salusconnect.io/).
For years, SALUS Controls has been at the forefront of designing building automation solutions for the heating industry.
Our commitment to innovation has resulted in modern, efficient solutions to control various heating systems. With
Some channels do not work on some TV's. It depends on the age of your TV, and what kind of interface it has. Only link channels that work on your TV, polling channels that your TV doesn't have may cause errors, and other problems. see [Tested TV Models](#tested-tv-models).
-### keyCode channel:
+### keyCode channel
`keyCode` is a String channel, that emulates a remote control. it allows you to send keys to the TV, as if they were from the remote control, hence it is send only.
Frame TV's have additional channels.
**NOTE:** If you don't have a Frame TV, don't link the `art` channels, it will confuse the binding, especially power control.
-### artMode:
+### artMode
`artMode` is a Switch channel. When `power` is ON, `artMode` will be OFF. If the `artMode` channel is commanded `OFF`, then the TV will power down to standby/off mode (this takes 4 seconds).
Commanding ON to `artMode` will try to power up the TV in art mode, and commanding ON to `power` will try to power the TV up in ON mode, but see WOL limitations.
**NOTE:** If you don't have a Frame TV, don't use the `artMode` channel, it will confuse the power handling logic.
-### setArtMode:
+### setArtMode
**NOTE** Samsung added back the art API in Firmware 1622 to >2021 Frame TV's. If you have this version of firmware or higher, don't use the `setArtMode` channel, as it is not neccessary.
**NOTE:** If you don't have a >2021 Frame TV, don't use the `setArtMode` channel, it will confuse the power handling logic.
-### artImage:
+### artImage
`artImage` is an Image channel that receives a thumbnail of the art that would be displayed in artMode (even if the TV is on). It receives iimages only (you can't send a command to it due to openHAB lmitations).
-### artLabel:
+### artLabel
`artlabel` is a String channel that receives the *intenal* lable of the artwork displayed. This will be something like `MY_0010` or `SAM-0123`. `MY` means it's art you uploaded, `SAM` means its from the Samsung art gallery.
You have to figure out what the label actually represents.
Selection item=TV_ArtLabel mappings=["MY_F0061"="Large Bauble","MY_F0063"="Small Bauble","MY_F0062"="Presents","MY_F0060"="Single Bauble","MY_F0055"="Gold Bauble","MY_F0057"="Snowflake","MY_F0054"="Stag","MY_F0056"="Pine","MY_F0059"="Cabin","SAM-S4632"="Snowy Trees","SAM-S2607"="Icy Trees","SAM-S0109"="Whale"]
```
-### artJson:
+### artJson
`artJson` is a String channel that receives the output of the art websocket channel on the TV. You can also send commands to this channel.
These are just the commands I know, there are probably others, let me know if you find more that work.
-### artbrightness:
+### artbrightness
`artBrightness` is a dimmer channel that sets the brightness of the art in ArtMode. It does not affect the TV brightness. Normally the brightness of the artwork is controlled automatically, and the current value is polled and reported via this channel.
You can change the brightness of the artwork (but automatic control is still enabled, unless you turn it off).
Setpoint item=TV_ArtBrightness minValue=0 maxValue=100 step=10 visibility=[TV_ArtMode==ON]
```
-### artColorTemperature:
+### artColorTemperature
`artColorTemperature` is a Number channel, it reports the "warmth" of the artwork from -5 to 5 (default 0). It's not polled, but is updated when artmode status is updated.
You can use a `Setpoint` contol for this item in your `sitemap` eg:
Setpoint item=TV_ArtColorTemperature minValue=-5 maxValue=5 step=1 visibility=[TV_ArtMode==ON]
```
-### artOrientation:
+### artOrientation
`artOrientation` is a Switch channel, it reports the current orientation of the TV, OFF for Landscape, and ON for Portrait. This channel is polled. If you send an ON or OFF command to this channel, then the binding will send a long (4s) press of the key defined in the configuration for orientationKey.
For 2023- TV's `orientationKey` should be KEY_MULTI_VIEW (default), for 2024+ TV's this should be KEY_HOME.
The binding could then get access to the secondary device using <ub shelly ip>:<special port>.
A special port on the hub device will be created for every linked device so one hub device could supported multiple linked devices.
-
The binding communicates with the Shelly hub device, which then forwards the request to the secondary device.
Once the thing for the primary Shelly goes online the binding detects the enabled range extender mode and adds all connected secondary devices to the Inbox.
This means: The primary Shelly has to complete initialization before linked secondary devices are discovered.
You should calibrate the device if you want to use "neutral current" measurements.
Check the Shelly documentation for details._
-
### Shelly 2 - relay mode (thing-type: shelly2-relay)
| Group | Channel | Type | read-only | Description |
| | totalKWH | Number | yes | Total energy consumption in kwh since the device powered up (resets on restart) |
| | lastUpdate | DateTime | yes | Timestamp of the last measurement |
-
### Shelly Plus PM Mini (thing-type: shellypmmini)
| Group | Channel | Type | read-only | Description |
| | totalKWH | Number | yes | Total energy consumption in kwh since the device powered up (resets on restart) |
| | lastUpdate | DateTime | yes | Timestamp of the last measurement |
-
## Shelly Pro Series
### Shelly Pro 1 (thing-type: shellypro1)
Thing shelly:shelly25-roller:XXXXX1 "Shelly 25 Roller XXXXX1" @ "Home Theater" [deviceIp="x.x.x.x", userId="", password=""]
Thing shelly:shelly25-roller:XXXXX2 "Shelly 25 Roller XXXXX2" @ "Living Room" [deviceIp="x.x.x.x", userId="admin", password="secret"]
-
/* Shelly 2.5 Relays */
Thing shelly:shelly25-relay:XXXXX3 "Shelly 25 Relay XXXXX3" @ "Hall Way" [deviceIp="x.x.x.x", userId="", password=""]
Thing shelly:shelly25-relay:XXXXX4 "Shelly 25 Relay XXXXX4" @ "Dining Room" [deviceIp="x.x.x.x", userId="", password=""]
Thing shelly:shellyht:e01691 "ShellyChimenea" @ "lowerground" [ deviceIp="10.0.55.101", userId="", password="", lowBattery=15 , eventsCoIoT=true ]
Thing shelly:shellyht:e01681 "ShellyDormitorio" @ "upperground" [ deviceIp="10.0.55.102", userId="", password="", lowBattery=15 , eventsCoIoT=true ]
Thing shelly:shellyflood:XXXXXX "ShellyFlood" @ "cellar" [ deviceIp="10.0.0.103", userId="", password="", lowBattery=15, eventsSwitch=true, eventsButton=true, eventsCoIoT=true ]
-
```
### shelly.items
end
```
-#### Reading colors from Color Picker:
+#### Reading Colors from Color Picker
```java
import org.openhab.core.library.types.*
}
```
-
Items file `.items`
```java
In this example setup the Sinopé Gateway is represented as a Bridge **Home** with thermostat **Room**
-### demo.things:
+### `demo.things` Example
```java
Bridge sinope:gateway:home [ hostname="sinope", gatewayId="1234-4567-1234-1234", apiKey="0x12 0x34 0x56 0x78 0x9A 0xBC 0xDE 0xF0"] {
}
```
-### demo.items:
+### `demo.items` Example
```java
Number Room_In "Room Temp. [%.2f °C]" <temperature> { channel="sinope:thermostat:home:room:insideTemperature" }
Number Room_HeatLevel "Room Heating level [%d]" <heating> { channel="sinope:thermostat:home:room:heatingLevel" }
```
-### demo.sitemap:
+### `demo.sitemap` Example
```perl
sitemap demo label="Main Menu"
## Full Example
-### demo.things
+### `demo.things` Example
```java
Thing smhi:forecast:demoforecast "Demo forecast" [ latitude=57.997072, longitude=15.990068, hourlyForecasts=0,1,2, dailyForecasts=0,1 ]
Number:Speed Smhi_Min_Precipitation_Tomorrow "Precipitaion tomorrow (min) [%.1f mm/h]" {channel="smhi:forecast:demoforecast:hour_1#pmin"}
```
-### demo.sitemap
+### `demo.sitemap` Example
```java
sitemap demo label="Smhi" {
| string | String | a channel with a string value |
| switch | Switch | a channel that has two states |
-
### SNMP Exception (Error) Handling
The standard behaviour if an SNMP exception occurs this is to log at `INFO` level and set the channel value to `UNDEF`.
demo.things:
-```
+```java
Thing snmp:target:router [ hostname="192.168.0.1", protocol="v2c" ] {
Channels:
Type number : inBytes [ oid=".1.3.6.1.2.1.31.1.1.1.6.2", mode="READ" ]
- Solarwatt Manager/Manager Flex; ie. the black square device that is wall mounted.
-The Solarwatt Manager already contains an OpenHAB installation which can be connected to
+The Solarwatt Manager already contains an openHAB installation which can be connected to
other installations via [Remote openHAB Binding](https://www.openhab.org/addons/bindings/remoteopenhab/).
## Supported Things
| serialNumber | The serial number of the Wi-Fi module |
| inverterType | Inverter Type (for example X1_HYBRID_G4) |
-
### Local Connect EV Charger Configuration
### Parameters
| charger-state | String | Charger State. |
| last-update-time | DateTime | Last time with a successful retrieval of data. |
-
### Cloud Connect Inverter Configuration
| Parameter | Description |
- [homebridge-somneo](https://github.com/zackwag/homebridge-somneo) - For creating a similar plugin in another platform and exposing endpoints for control.
- [somneo-client](https://github.com/DonkerNet/somneo-client) - For creating a similar plugin in another platform and exposing endpoints for control.
-- HTTP Binding and other OpenHAB addons - Which was used as examples.
+- HTTP Binding and other openHAB addons - Which was used as examples.
| 16 | dimensionless | [none] | use for multiplexers, etc |
| 17.. | repeating again from 1, e.g 17==1, 18==2, ... |
-
## Full Example
As there is no common configuration as everything depends on the configuration of the TA devices.
Number TACMI_Api_tempCollector "Collector temp [%.1f °C]" <temperature> {channel="tacmi:cmiSchema:apiLab:tempCollector"}
String TACMI_Api_hc1OperationMode "Heating Curcuit 1 Operation Mode [%s]" {channel="tacmi:cmiSchema:apiLab:hc1OperationMode"}
-
# COE-items
Number TACMI_Analog_In_1 "TA input value 1 [%.1f]" <temperature> {channel="tacmi:cmi:coe-bridge:cmiTest:analogInput1"}
Number TACMI_Analog_Out_1 "TA output value 1 [%.1f]" <temperature> {channel="tacmi:cmi:coe-bridge:cmiTest:analogOutput1"}
The thing has the following configuration parameters:
-| Parameter | Description |
-|------------------------|----------------------------------------------------------------------------------------------------------------|
-| username | Username (eMail) of your Tapo-Cloud |
-| password | Password of your Tapo-Cloud |
-| cloudDiscovery | Use Cloud Discovery-Service to get all in Tapo-App registered devices. Includes DeviceName. IP-Address and Encryption has to set manually |
-| udpDiscovery | Use UDP Discovery-Service to discover online devices in the local network. Includes Encryption and IP-Address. Results will be merged with cloud discovery |
-| onlyLocalOnlineDevices | [advanced] Uses Cloud and UPD-Discovery to get more informations but will only discover online devices via UDP |
-| broadcastAddress | [advanced] Set broadcast address to your local subnet if you have problems with default address |
-| discoveryInterval | [advanced] Interval in minutes when a background device scan should be executed. Default is 60 |
-
+| Parameter | Description |
+|------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| username | Username (eMail) of your Tapo-Cloud |
+| password | Password of your Tapo-Cloud |
+| cloudDiscovery | Use Cloud Discovery-Service to get all in Tapo-App registered devices. Includes DeviceName. IP-Address and Encryption has to set manually |
+| udpDiscovery | Use UDP Discovery-Service to discover online devices in the local network. Includes Encryption and IP-Address. Results will be merged with cloud discovery |
+| onlyLocalOnlineDevices | [advanced] Uses Cloud and UPD-Discovery to get more informations but will only discover online devices via UDP |
+| broadcastAddress | [advanced] Set broadcast address to your local subnet if you have problems with default address |
+| discoveryInterval | [advanced] Interval in minutes when a background device scan should be executed. Default is 60 |
## Thing Configuration
| protocol | [optional] Used Communication Protocol (AES/KLAP/'') Default 'AES' | Any Wi-Fi-Device |
| backgroundDiscovery| [optional] RF-Devices will be discovered after every polling request | SmartHub |
-
## Channels
All devices support some of the following channels:
## Full Example
-### tapocontrol.things:
+### `tapocontrol.things` Example
```java
tapocontrol:bridge:myTapoBridge "Cloud-Login" [ username="you@yourpovider.com", password="verysecret" ]
}
```
-### tapocontrol.items:
+### `tapocontrol.items` Example
```java
Switch TAPO_SOCKET "socket" { channel="tapocontrol:P100:myTapoBridge:mySocket:actuator#output" }
## Full Example
-### `teslapowerwall.things`:
+### `teslapowerwall.things`
```java
teslapowerwall:tesla-powerwall:TeslaPowerwall [ hostname="192.168.0.5" ]
```
-### `teslapowerwall.items`:
+### `teslapowerwall.items`
```java
String TeslaPowerwall_grid-status { channel="teslapowerwall:tesla-powerwall:TeslaPowerwall:grid-status" }
Number:Energy TeslaPowerwall_full-pack-energy { channel="teslapowerwall:tesla-powerwall:TeslaPowerwall:full-pack-energy" }
```
-### `teslapowerwall.sitemap`:
+### `teslapowerwall.sitemap`
```perl
Text item=TeslaPowerwall_grid-status label="Grid Status [%s]"
Text item=TeslaPowerwall_full-pack-energy label="Full Pack Energy"
Text item=TeslaPowerwall_degradation label="Degradation level"
```
-
## Full Example
-### `demo.things`:
+### `demo.things` Example
```java
teslascope:vehicle:model3 [ apiKey="xxxx", publicID="aXb3" ]
```
-### `example.items`:
+### `example.items` Example
```java
String TeslaVehicleName {channel="teslascope:vehicle:model3:vehicle-name"}
Switch TeslaTPMSSoftWarningRR {channel="teslascope:vehicle:model3:tpms-soft-warning-rr"}
```
-### `example.sitemap`:
+### `example.sitemap` Example
```perl
sitemap main label="Main"
## Full Example
-### demo.things
+### `demo.things` Example
```java
Thing tibber:tibberapi:7cfae492 [ homeid="xxx", token="xxxxxxx" ]
```
-### demo.items:
+### `demo.items` Example
```java
Number:Dimensionless TibberAPICurrentTotal "Current Total Price [%.2f NOK]" {channel="tibber:tibberapi:7cfae492:current_total"}
## Full Example
-### tplinksmarthome.things:
+### `tplinksmarthome.things` Example
```java
tplinksmarthome:hs100:tv "TV" [ deviceId="00000000000000000000000000000001", refresh=60 ]
tplinksmarthome:kp401:outlet "Outdoor Outlet" [ ipAddress="192.168.1.101" ]
```
-### tplinksmarthome.items:
+### `tplinksmarthome.items` Example
```java
Switch TP_L_TV "TV" { channel="tplinksmarthome:hs100:tv:switch" }
## Thing Configuration
-### URTSI II Device:
+### URTSI II Device
- 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
-### RTS Device (e.g. rollershutter):
+### RTS Device (e.g. rollershutter)
- Channel: The URTSI II channel the RTS device is assigned to at URTSI II.
Once a Velux Bridge has been discovered, you will need to enter the `password` Configuration Parameter (see below) before the binding can communicate with it.
And once the Velux Bridge is fully configured, you need to check your Inbox for discovered scenes and actuators.
If nothing shows up you need to trigger discovering scenes and actuators (like windows and rollershutters) of the Velux Bridge.
-For this log into the OpenHAB webfront go to Settings -> Things and click on the + symbol in the lower right.
+For this log into the openHAB webfront go to Settings -> Things and click on the + symbol in the lower right.
Then select the Velux Binding and click Scan.
After the scan has completed the scences and actuators configured in the KLF 200 are placed in the Inbox.
(Normally 5% .. 10% depending on the window type, resp. 90% .. 95% inverted).
So if 'limitMinimum' changes from its normal value (usually 100% resp. 0% inverted) to this ventilation position value, it is an indication that the rain sensor has probably been triggered.
-
## Properties of the "bridge" Thing
The bridge Thing provides the following properties.
DateTime AlarmLastUpdated "Verisure Alarm Last Updated [%1$tY-%1$tm.%1$td %1$tR]" {channel="verisure:alarm:myverisure:JannesAlarm:timestamp"}
String AlarmChangedByUser "Verisure Alarm Changed By User" {channel="verisure:alarm:myverisure:JannesAlarm:changedByUser"}
-
// SmartPlugs
Switch SmartPlugLamp "SmartPlug" <lock> [ "Switchable" ] {channel="verisure:smartPlug:myverisure:4ED5ZXYC:smartPlugStatus"}
Switch SmartPlugGlavaRouter "SmartPlug Glava Router" <lock> [ "Switchable" ] {channel="verisure:smartPlug:myverisure:JannesSmartPlug:smartPlugStatus"}
| authToken | The token that is used to authenticate all commands sent to the TV. See below for instructions to obtain via the openHAB console. |
| appListJson | A JSON string that defines the apps that are available in the `activeApp` channel drop down. See below for instructions for editing. |
-### Console Commands for Pairing:
+### Console Commands for Pairing
To obtain an authorization token that enables openHAB to authenticate with the TV, the following console commands must be used while the TV is turned on.
The first command will send a pairing start request to the TV. This triggers the TV to display a 4-digit pairing code on screen that must be sent with the second command.
| control | Player | Control Playback e.g. Play/Pause/Next/Previous/FForward/Rewind |
| button | String | Sends a remote control command the TV. See list of available commands below. (WriteOnly) |
-### List of available button commands for Vizio TVs:
+### List of available button commands for Vizio TVs
PowerOn
PowerOff
WideMode
WideToggle
-### App List Configuration:
+### App List Configuration
The Vizio API to launch and identify currently running apps on the TV is very complex.
To handle this, the binding maintains a JSON database of applications and their associated metadata in order to populate the `activeApp` dropdown with available apps.
The devices support the following channels:
-
| Channel | Type | Read/Write | Description |
|-------------------|--------|------------|----------------------------------------------------------------------------------------------------------------------|
| title | String | R | Title of the song currently playing. |
| system-command | String | RW | Sends a system command to shutdown or reboot the Volumio device. Use "shutdown" or "reboot" as string command. |
| stop-command | String | RW | Sends a Stop command to stop the player. Use "stop" as string command. |
-
## Full Example
demo.things:
- Person integration: OAuth integration that allows the binding to act on behalf of a persons.
Both of these accounts must be first configured on the [Webex Developers](https://developer.webex.com/my-apps) website.
-When creating a person integration, it's important you customize the redirect URL based on your OpenHab installation.
+When creating a person integration, it's important you customize the redirect URL based on your openHAB installation.
For example if you run your openHAB server on `http://openhab:8080` you should add [http://openhab:8080/connectwebex](http://openhab:8080/connectwebex) to the redirect URIs.
To use a bot account, only configure the `token` (Authentication token).
## Example
-### demo.things
+### `demo.things` Example
```java
Bridge windcentrale:account:demo-account [ username="johndoe@acme.com", password="Mf!BU45LTF6X2Cf36zxt" ] {
}
```
-### demo.items
+### `demo.items` Example
```java
Group gReiger "Windcentrale Reiger"
If username/password is given in the thing, most channels are writeable.
-#### The device itself provides the following channels:
+#### The device itself provides the following channels
| channel | type | description |
|---------------------|----------------------|------------------------------------------|
| rssi_signalstrength | Number | Signal Strength in range [0 ... 4] |
| rssi | Number | Signal Strength in dBm |
-#### The following channels apply for all 8 probes of the WlanThermo Nano:
+#### The following channels apply for all 8 probes of the WlanThermo Nano
| channel | type | description |
|--------------------|--------------------|----------------------------------------------------------------------|
All channels are read only!
-#### The device itself provides the following channels:
+#### The device itself provides the following channels
| channel | type | description |
|----------|----------------------|-------------------------------|
| cpu_load | Number:Dimensionless | CPU Load in % |
| cpu_temp | Number:Temperature | CPU Temperature |
-#### The following channels apply for all 10 probes of the WlanThermo Mini:
+#### The following channels apply for all 10 probes of the WlanThermo Mini
| channel | type | description |
|--------------------|--------------------|----------------------------------------------------------------------|
| color | Color | The color of this probe |
| color_name | String | The color name of this probe |
-#### The following channels apply for both Pitmaster channels of the WlanThermo Mini:
+#### The following channels apply for both Pitmaster channels of the WlanThermo Mini
| channel | type | description |
|------------|----------------------|-------------------------------------------------------------------------|
Number nano_pit_pidprofile "PID Profile" (gPitmasterNano1) {channel="wlanthermo:nano:5af97cb9:pit1#pid_id"}
Number nano_pit_channel "Input Channel ID" (gPitmasterNano1) {channel="wlanthermo:nano:5af97cb9:pit1#channel_id"}
-
-
-
Group gWlanThermoMini "WlanThermo Mini"
Number mini_cpuload "CPU Load" (gWlanThermoMini) {channel="wlanthermo:mini:<mini_thing_id>:system#cpu_load"}
Number:Temperature mini_cputemp "CPU Temp" (gWlanThermoMini) {channel="wlanthermo:mini:<mini_thing_id>:system#cpu_temp"}
## Tested WOLF-Devices
-| WOLF Equipment | openhab Version | Used gateway |
+| WOLF Equipment | openHAB Version | Used gateway |
|-------------------|-----------------|---------------|
| CSZ (CGB and SM1) | 3.1 | WOLF Link Pro |
| CGB-2 | 3.1 | WOLF Link home|
The channel name set up in the binding should be considered an id with no semantic content other than pointing to the wunderground API.
Additionally there is a receipt timestamp and a trigger channel.
-### Request parameters are mapped to one of the following channel-types:
+### Request parameters are mapped to one of the following channel-types
-#### Normal channel-types:
+#### Normal channel-types
| Request parameter | Channel type id | Type | Label | Description | Group |
|-------------------|------------------------------|----------------------|--------------------------------|----------------------------------------------------------------------------------------|-------------|
| indoorhumidity | indoor-humidity | Number:Dimensionless | Indoor Humidity | Indoor humidity in %. | Humidity |
| baromin |
-#### Advanced channel-types:
+#### Advanced channel-types
| Request parameter | Channel type id | Type | Label | Description | Group |
|-------------------|------------------------------|----------------------|--------------------------------|-----------------------------------------------------------------------------------------------------|-------------|
| AqPM10 | pm10-mass | Number:Density | PM10 Mass | PM10 mass, µG/m3. | Pollution |
| AqOZONE | ozone | Number:Dimensionless | Ozone | Ozone, ppb. | Pollution |
-#### Metadata channel-types:
+#### Metadata channel-types
| Request parameter | Channel type id | Type | Label | Description | Group |
|-------------------|------------------------------|----------------------|-----------------------------------|--------------------------------------------------------------------------------------------|-------------|
| rtfreq | realtime-frequency | Number | Realtime Frequency | How often does the device submit measurements | Metadata |
| lowbatt | system:low-battery | Switch | Low Battery | Low battery warning with possible values on (low battery) and off (battery ok) | Metadata |
-#### Synthetic channel-types. These are programmatically added:
+#### Synthetic channel-types. These are programmatically added
| Channel type id | Type | Channel type | Label | Description | Group |
|------------------------|----------------------|--------------|--------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------|----------|
- 'openhab.local:8080'
````
-Replace `openhab.local` by the openhab host.
+Replace `openhab.local` by the openHAB host.
#### Available configuration parameters
| Config param | Description | Default value |
|-------------------------------|-----------------------------------------------------------------------------------|-----------------------|
| influxURL | The URL of the InfluxDB instance. Defaults to http://localhost:8086 | http://localhost:8086 |
-| influxDB | The name of the database to use. Defaults to "openhab". | openhab |
+| influxDB | The name of the database to use. Defaults to "openhab". | openHAB |
| influxUsername | InfluxDB user name | n/a |
| influxPassword | The InfluxDB password (no default). | n/a |
| influxUpdateIntervalInSeconds | Controls how often metrics are exported to InfluxDB (in seconds). Defaults to 300 | 300 |
The only 'officially' supported custom icon is "sonos" however you can assign any variety of icons available on the brain.
A list of some of the icons that can be assigned: 
-
##### Device Timings
You can specify three device timings for any non ACCESSORIE and non LIGHT thing:
This following device capabilities are available:
-1. "Always On" - check if there is no power management for the device.
+1. "Always On" - check if there is no power management for the device.
You do NOT need to specify any POWER buttons or POWER STATE sensor nor will the device be marked as 'stupid'.
In the example screen shown above:
-1. The Russound AM/FM tuner was mapped to an "ACCESSORIE" NEEO type.
-2. The Russound Great Room zone was mapped to an "AUDIO" device (to allow volume keys to work).
+1. The Russound AM/FM tuner was mapped to an "ACCESSORIE" NEEO type.
+2. The Russound Great Room zone was mapped to an "AUDIO" device (to allow volume keys to work).
Any device type that is marked with any type will be visible to the NEEO App when searching for devices.
You may also provide a transformation format (in the same format as in .items file).
Example: "MAP(stuff.map):%s" will use the MAP tranformation file "stuff.map" to convert the value to a string.
-
#### Items to Capabilities
The second step is to map openHAB items to one or more NEEO capabilities.
For each item, you may:
-1. Press the ADD icon to add a new mapping from the openHAB item (or DELETE icon to delete the mapping).
-2. Specify or choose the NEEO capability type for the openHAB item.
-3. Specify the NEEO label (or hard button) for the mapping.
-4. Optionally set the format or command for the mapping.
+1. Press the ADD icon to add a new mapping from the openHAB item (or DELETE icon to delete the mapping).
+2. Specify or choose the NEEO capability type for the openHAB item.
+3. Specify the NEEO label (or hard button) for the mapping.
+4. Optionally set the format or command for the mapping.
At the time of this writing, the following NEEO capability types are supported:
-1. Text Label - this will simply take the toString() of the item value and optionally format via the Java String Format found in the "Format/Command" field before sending it to the NEEO brain.
-2. Button - this will create virtual button with the text from the "NEEO Label".
+1. Text Label - this will simply take the toString() of the item value and optionally format via the Java String Format found in the "Format/Command" field before sending it to the NEEO brain.
+2. Button - this will create virtual button with the text from the "NEEO Label".
Upon pressing the button, the specified command in the "Format/Command" will be sent to the item (or ON will be sent if nothing has been specified).
Please note that you can also specify a hard button in the "NEEO Label" - in which case nothing will appear on the NEEO remote screen and the action will occur from the NEEO remote hard button.
You must specify all the hard buttons for a capability (as specified in the NEEO SDK documentation) for the button to work.
Example: if you only defined VOLUME DOWN but not VOLUME UP - the button will not work on the remote.
Likewise, which hard buttons are active or not additionally depends on the NEEO device type.
-3. Switch - this will create a virtual switch with the text from the "NEEO Label" and will send an ON or OFF command to the associated item.
+3. Switch - this will create a virtual switch with the text from the "NEEO Label" and will send an ON or OFF command to the associated item.
Additionally, a switch can be bound to hard button pairs (the VOLUME keys, the POWER ON/OFF, the CHANNELS, etc).
The command that is sent is dependent on the KEYS chosen (POWER ON/OFF will send ON/OFF to the underlying item, all others will send an INCREASE/DECREASE).
Similar to the "Button" type - please review the NEEO SDK documentation.
-4. Slider - this will create a virtual slider that will send the associated value to the item.
+4. Slider - this will create a virtual slider that will send the associated value to the item.
The value sent will always be between 0 and 100.
-5. ImageURL - this will create an image on the remote from the toString() of the item value (assuming it is a URL to an image).
-6. Sensor - this will create a sensor (non-visual) that can be used in recipes on the brain.
-7. Power - this will create a powerstate sensor on the brain that can be used to stop/start the device.
+5. ImageURL - this will create an image on the remote from the toString() of the item value (assuming it is a URL to an image).
+6. Sensor - this will create a sensor (non-visual) that can be used in recipes on the brain.
+7. Power - this will create a powerstate sensor on the brain that can be used to stop/start the device.
NOTE: you MUST also assign a POWER OFF/POWER ON for this to work.
-8. List - this will create a directory on the brain that can be used to show a list.
+8. List - this will create a directory on the brain that can be used to show a list.
The label assigned will show up on the remote to start the list processing.
When a user selects a list item on the remote, the command that will be sent will be the value associated with the list item selected.
HSBType has three attributes - Hue, Brightness and Saturation.
This type is special in that the integration will create 4 capabilities for it:
-1. The first capability will you to control the on/off and will be named simply "item".
-2. The second capability will allow you to control the HUE and will be named "item (Hue)".
-3. The third capability will allow you to control the brightness and will be named "item (Bri)".
-4. The forth capability will allow you to control the saturation and will be named "item (Sat)".
+1. The first capability will you to control the on/off and will be named simply "item".
+2. The second capability will allow you to control the HUE and will be named "item (Hue)".
+3. The third capability will allow you to control the brightness and will be named "item (Bri)".
+4. The forth capability will allow you to control the saturation and will be named "item (Sat)".
If you are trying to bind a LIFX or HUE bulb, here are the following channels you need to create to enable the NEEO Light capability:
-1. Set the device type to "LIGHT".
-2. Set the overall (HSBType) item to a NEEO type of "Power".
-3. Duplicate the overall item and on the duplicate, set the NEEO Type to "Switch" with the label "POWERONOFF".
-4. Duplicate the overall item (again) and on the duplicate, set the NEEO Type to "Switch" with a label of "power".
-5. Set the HUE/SATURATION/TEMPERATURE to a NEEO type of "Slider" (you can set the BRIGHTNESS as well - but NEEO will automatically assign that for you).
+1. Set the device type to "LIGHT".
+2. Set the overall (HSBType) item to a NEEO type of "Power".
+3. Duplicate the overall item and on the duplicate, set the NEEO Type to "Switch" with the label "POWERONOFF".
+4. Duplicate the overall item (again) and on the duplicate, set the NEEO Type to "Switch" with a label of "power".
+5. Set the HUE/SATURATION/TEMPERATURE to a NEEO type of "Slider" (you can set the BRIGHTNESS as well - but NEEO will automatically assign that for you).
Please note that NEEO will automatically combine all your "LIGHT" types into a single light on the remote (not ideal).
You will get a single screen with all lights listed with a power toggle and slider for brightness.
When you press the "+" icon (on the device) to add new items to the virtual device.
You will be presented with a screen that will allow you to:
-1. Add a new item by pressing the "Add Item" button.
-2. Delete all your items by pressing the "Delete All" button.
-3. Import OH1 items from an .item files by pressing the "Import Item" button.
+1. Add a new item by pressing the "Add Item" button.
+2. Delete all your items by pressing the "Delete All" button.
+3. Import OH1 items from an .item files by pressing the "Import Item" button.
The items section then provide a list of the items you have specified.
To specify a new item, simply click on the line in question - and then enter the item name.
In the example screen above:
-1. The "KeyRelease Event" item was duplicated 3 times and bound to the hard buttons "CURSOR LEFT", "CURSOR RIGHT", "CURSOR UP" and "CURSOR DOWN".
+1. The "KeyRelease Event" item was duplicated 3 times and bound to the hard buttons "CURSOR LEFT", "CURSOR RIGHT", "CURSOR UP" and "CURSOR DOWN".
Furthermore the command string "MenuLeft" will be sent to the "KeyRelease Event" item when the "CURSOR LEFT" hard button is pressed on the remote (right/up/down for the other buttons).
-2. The "Source" item was duplicated once and will create two virtual buttons on the NEEO screen labeled "AM/FM" and "PANDORA".
+2. The "Source" item was duplicated once and will create two virtual buttons on the NEEO screen labeled "AM/FM" and "PANDORA".
Pressing the "AM/FM" button the remote screen will send the value 1 to the "Source" item (2 if pressing the "PANDORA" button).
-3. The "Status" item was bound to both the power state and a switch assigned to the POWER ON/OFF hard buttons.
+3. The "Status" item was bound to both the power state and a switch assigned to the POWER ON/OFF hard buttons.
Pressing the POWER ON/OFF will send ON/OFF to the "Status" item.
-4. The "Volume" item was duplicated once.
+4. The "Volume" item was duplicated once.
The first instance is assigned to a text label that will then be formatted with the "VOLUME % of %%".
The second instance binds the item to a switch that uses the hard volume buttons on the remote.
There are two files being stored by the integration:
-1. discoveredbrains.json will contain the brains that are discovered or manually added from the 'brains' tab.
+1. discoveredbrains.json will contain the brains that are discovered or manually added from the 'brains' tab.
As brains are discovered, manually added or removed, this file will be updated.
-2. neeodefinitions.json will contain the device mappings defined on the 'things' tab.
+2. neeodefinitions.json will contain the device mappings defined on the 'things' tab.
As definitions are saved, this file will be updated.
The following are notes on some of the NEEO Firmwares:
-
### 52.10
The following changes have occurred:
5. Added support for HSBType channels (creates 4 channels: overall, hue, brightness and saturation).
6. Added NEEO Brain name to the Brain tab.
-
## Configuration
After installing this add-on, you can configure the integration using the "NEEO Integration" settings in the UI.
Alternatively, you can configure the settings in the file `conf/services/neeo.cfg`:
-```
+```ini
############################## openHAB NEEO Integration #############################
# A boolean value describing whether to expose all things/items
# Default is 10
#checkStatusInterval=10
```
-
Some example entries for an item with the name "speedtest" without any further configuration would look like this:
+```
> Query using Influx DB 2.0 syntax for 1.0 is different
> from(bucket: "default")
|> range(start: -30d)
----- ----- ------
1558302027124000000 speedtest 123289369.0
1558332852716000000 speedtest 80423789.0
+```
## Prerequisites
The item configuration will look like this:
-```
+```java
Group:Number:AVG gTempSensors
Number:Temperature tempLivingRoom (gTempSensors) { influxdb="temperature" [floor="groundfloor"] }
Number:Temperature tempKitchen (gTempSensors) { influxdb="temperature" [floor="groundfloor"] }
-
Number:Temperature tempBedRoom (gTempSensors) { influxdb="temperature" [floor="firstfloor"] }
Number:Temperature tempBath (gTempSensors) { influxdb="temperature" [floor="firstfloor"] }
-
```
You can also set the `influxdb` metadata using the UI. From each item configuration screen do:
You can now easily select all temperatures of the firstfloor or the average temperature of the groundfloor.
-*Warning: Do **not** override the tag `item` within the metadata. This tag is used internally by openHAB and changing it will lead to problems querying the persisted datapoints.*
+*Warning:* Do **not** override the tag `item` within the metadata. This tag is used internally by openHAB and changing it will lead to problems querying the persisted datapoints.
#### Extended automatic tagging
The `TNS_ADMIN` parameter points to the directory where the the `tnsnames.ora`file, `ojdbc.properties` file and key files (from the ADB wallet download) are located.
Other Oracle DB setups may require different connection parameters.
-It is advised to create a specific user with sufficient permissions and space for OpenHAB persistence.
+It is advised to create a specific user with sufficient permissions and space for openHAB persistence.
This is the user that should be in `jdbc.cfg`.
The user default schema will be used.
For example..
-```
+```ini
ctr24h.def=COUNTER,900,0,U,60
ctr24h.archives=AVERAGE,0.5,1,480:AVERAGE,0.5,10,144
ctr24h.items=Item1,Item2
### `<sampleInterval>` (Sample Interval)
-The time interval (seconds) between reading consecutive samples from the OpenHAB core.
+The time interval (seconds) between reading consecutive samples from the openHAB core.
It must be a positive integer value.
In the example below..
-```
+```ini
ctr24h.def=COUNTER,900,0,U,60
ctr24h.archives=AVERAGE,0.5,1,480:AVERAGE,0.5,10,144
ctr24h.items=Item1,Item2
There is no `.items` parameter for the default datasources.
This means that any Item with an allocated strategy in the `rrd4j.persist` file is persisted using one the default settings, unless the Item is explicitly listed in an `.items` property value of a datasource in the `rrd4j.cfg` file.
-
#### default_numeric
This datasource is used for plain `Number` items.
It does not build averages over values, so that it is ensured that discrete values are kept when being read (e.g. an Item which has only states 0 and 1 will not be set to 0.5).
-```
+```ini
default_numeric.def=GAUGE,600,U,U,10
default_numeric.archives=LAST,0.5,1,360:LAST,0.5,6,10080:LAST,0.5,90,36500:LAST,0.5,360,43800:LAST,0.5,8640,3650
```
This datasource is used for `Number` items with dimensions - it is therefore assumed that the values are measurement values that exist on a continuum.
It thus builds averages over values, so that graphs can be smooth, even if there is only a coarse granularity available.
-```
+```ini
default_quantifiable.def=GAUGE,600,U,U,10
default_quantifiable.archives=AVERAGE,0.5,1,360:AVERAGE,0.5,6,10080:AVERAGE,0.5,90,36500:AVERAGE,0.5,360,43800:AVERAGE,0.5,8640,3650
```
This datasource is used for any other items.
Their values are considered to be discrete, similar to the `default_numeric` datasource, but it keeps the data in more fine-granular archives.
-```
+```ini
default_other.def=GAUGE,3600,U,U,5
default_other.archives=LAST,0.5,1,720:LAST,0.5,12,10080:LAST,0.5,180,35040:LAST,0.5,2880,21900
```
### `rrd4j.cfg` file
-```
+```ini
ctr24h.def=COUNTER,900,0,U,60
ctr24h.archives=AVERAGE,0.5,1,480:AVERAGE,0.5,10,144
ctr24h.items=Item1,Item2
ctr7d.items=Item3,Item4
```
-### `rrd4j.persist` file:
+### `rrd4j.persist` Example
```java
Strategies {
The service will only work if it's able to find the correct rpw for your magic word configuration.
-
## Default Keyword Spotter and Magic Word Configuration
You can setup your preferred default keyword spotter and default magic word in the UI:
| small.bin | 8.5s |
| medium.bin | 17s |
-
## Configuring the model
Before you can use this service you should configure your model.
You can download them from the sources provided by the [whisper.cpp](https://github.com/ggerganov/whisper.cpp) author:
-- https://huggingface.co/ggerganov/whisper.cpp
-- https://ggml.ggerganov.com
+- <https://huggingface.co/ggerganov/whisper.cpp>
+- <https://ggml.ggerganov.com>
You should place the downloaded .bin model in '\<openHAB userdata\>/whisper/' so the add-ons can find them.