Multiple binding markdown fixes (#17422)

Signed-off-by: Leo Siepel <leosiepel@gmail.com>
This commit is contained in:
lsiepel 2024-09-28 17:46:53 +02:00 committed by GitHub
parent 2e7dde9dda
commit 1a42353cc9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
209 changed files with 1889 additions and 1805 deletions

View File

@ -99,6 +99,7 @@ R=RFID
```
transform/ekey_names.map [NO spaces allowed]
```text
-1=Unspecified
1=JohnDoe

View File

@ -9,10 +9,10 @@ The binding will search your Jollyday event definition files in the sub folder `
The binding handles the following Things:
* default holiday data (`holiday`)
* custom holiday file (`custom`)
* daysets (`dayset`)
* weekend (`weekend`)
- default holiday data (`holiday`)
- custom holiday file (`custom`)
- daysets (`dayset`)
- weekend (`weekend`)
## Discovery
@ -24,7 +24,6 @@ There is no configuration at binding level.
## Thing Configuration
### `custom` Thing Configuration
| Name | Type | Description | Default | Required | Advanced |
@ -39,7 +38,6 @@ The file has to use the syntax described here : https://www.openhab.org/docs/con
|-----------------|---------|---------------------------|---------|----------|----------|
| name | text | Name of the dayset used | N/A | yes | no |
## Channels
### `weekend` Channels
@ -80,7 +78,7 @@ The file has to use the syntax described here : https://www.openhab.org/docs/con
## Full Example
### Thing Configuration
### Thing Example
```java
Thing ephemeris:holiday:local "Holidays"
@ -88,7 +86,7 @@ Thing ephemeris:weekend:local "Week-end"
Thing ephemeris:custom:events "Event" [fileName="events.xml"]
```
### Item Configuration
### Item Example
```java
String ToD_Event_Current "Event Today" <calendar> (gEvents) {channel="ephemeris:custom:events:title-today"}

View File

@ -106,11 +106,11 @@ Please note that you have to replace _\<N\>_ with your loadpoint id/number.
Those channels exist:
* 1 per configured loadpoint with `chargerFeatureHeating = false`:
* These channels point to the heating device that is currently active/connected at/to the loadpoint
* Please note that you have to replace _\<N\>_ with your loadpoint id/number
* 1 per configured vehicle:
* Please note that you have to replace _\<ID\>_ with your vehicle id/name
- 1 per configured loadpoint with `chargerFeatureHeating = false`:
- These channels point to the heating device that is currently active/connected at/to the loadpoint
- Please note that you have to replace _\<N\>_ with your loadpoint id/number
- 1 per configured vehicle:
- Please note that you have to replace _\<ID\>_ with your vehicle id/name
| Channel | Type | Read/Write | Description |
|----------------------------------------------------|----------------------|------------|--------------------------------------------------------------------------|
@ -126,11 +126,11 @@ Those channels exist:
Those channels exist:
* 1 per configured loadpoint with `chargerFeatureHeating = true`:
* These channels point to the heating device that is currently active/connected at/to the loadpoint
* Please note that you have to replace _\<N\>_ with your loadpoint id/number
* 1 per configured heating device:
* Please note that you have to replace _\<ID\>_ with your heating device id/name
- 1 per configured loadpoint with `chargerFeatureHeating = true`:
- These channels point to the heating device that is currently active/connected at/to the loadpoint
- Please note that you have to replace _\<N\>_ with your loadpoint id/number
- 1 per configured heating device:
- Please note that you have to replace _\<ID\>_ with your heating device id/name
| Channel | Type | Read/Write | Description |
|---------------------------------------------------------|--------------------|------------|-----------------------------------------------------------------------|

View File

@ -159,6 +159,7 @@ You can retrieve the actions as follows:
```java
val froniusInverterActions = getActions("fronius", "fronius:powerinverter:mybridge:myinverter")
```
:::
::: tab JS

View File

@ -212,7 +212,7 @@ homematic:bridge:NAME
- **bridge** the type, fixed
- **name** the name of the bridge
### Example
### Bridge Configuration Example
#### Minimum configuration
@ -448,7 +448,7 @@ Adds multiple virtual datapoints to the HM-Dis-WM55 and HM-Dis-EP-WM55 devices t
**Note:** The HM-Dis-EP-WM55 has only a black and white display and therefore does not support datapoints for colored lines. In addition, only lines 1-3 can be set.
#### Example
#### Button Example
Display text at line 1,3 and 5 when the bottom button on the display is pressed
@ -734,6 +734,7 @@ The problem can be solved by increasing the `bufferSize` value in the bridge con
openHAB and the CCU are using different values for the same state of a rollershutter.
Examples: HmIP-BROLL, HmIP-FROLL, HmIP-BBL, HmIP-FBL and HmIP-DRBLI4
| | Open | Closed |
| ------- | ---- | ------ |
| openHAB | 0% | 100% |

View File

@ -787,9 +787,9 @@ If you want to dive deeper see [Troubleshooting](#troubleshooting) `feature-capa
In order to be able to analyze problems 3 advanced channels are placed in the vehicle group.
* `feature-capabilities` - showing which feature your vehicle is equipped with
* `command-capabilities` - showing which commands can be sent to your vehicle
* `proto-update` - latest update of your vehicle data
- `feature-capabilities` - showing which feature your vehicle is equipped with
- `command-capabilities` - showing which commands can be sent to your vehicle
- `proto-update` - latest update of your vehicle data
In case you find problems regarding this binding add items to these 3 channels.
The items are reporting Strings in JSON format.

View File

@ -115,7 +115,7 @@ Basic parameters
Advanced parameters
| Parameter | Required | Type | Default if omitted | Description |
| ------------------------------- | -------- | ------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|---------------------------------|----------|---------|--------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `timeBetweenTransactionsMillis` | | integer | `60` | How long to delay we must have at minimum between two consecutive MODBUS transactions. In milliseconds. |
| `timeBetweenReconnectMillis` | | integer | `0` | How long to wait to before trying to establish a new connection after the previous one has been disconnected. In milliseconds. |
| `connectMaxTries` | | integer | `1` | How many times we try to establish the connection. Should be at least 1. |
@ -137,7 +137,7 @@ Similarly, with some slower devices on might need to increase the values.
Basic parameters
| Parameter | Type | Required | Default if omitted | Description | |
| --------- | ------- | -------- | ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --- |
|-----------|---------|----------|--------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---|
| port | text | ✓ | | Serial port to use, for example `"/dev/ttyS0"` or `"COM1"` | |
| id | integer | | `1` | Slave id. Also known as station address or unit identifier. See [Wikipedia](https://en.wikipedia.org/wiki/Modbus) and [simplymodbus](https://www.simplymodbus.ca/index.html) articles for more information | |
| baud | integer | ✓ | | Baud of the connection. Valid values are: `75`, `110`, `300`, `1200`, `2400`, `4800`, `9600`, `19200`, `38400`, `57600`, `115200`. | |
@ -150,7 +150,7 @@ Basic parameters
Advanced parameters
| Parameter | Required | Type | Default if omitted | Description |
| ------------------------------- | -------- | ------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ |
|---------------------------------|----------|---------|--------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `receiveTimeoutMillis` | | integer | `1500` | Timeout for read operations. In milliseconds. |
| `flowControlIn` | | text | `"none"` | Type of flow control for receiving. Valid values are: `"none"`, `"xon/xoff in"`, `"rts/cts in"`. |
| `flowControlOut` | | text | `"none"` | Type of flow control for sending. Valid values are: `"none"`, `"xon/xoff out"`, `"rts/cts out"`. |
@ -174,7 +174,7 @@ With low baud rates and/or long read requests (that is, many items polled), ther
You must give each of your bridge Things a reference (thing ID) that is unique for this binding.
| Parameter | Type | Required | Default if omitted | Description |
| ------------- | ------- | -------- | ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|---------------|---------|----------|--------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `start` | integer | | `0` | Address of the first register, coil, or discrete input to poll. Input as zero-based index number. |
| `length` | integer | ✓ | (-) | Number of registers, coils or discrete inputs to read. Note that protocol limits max length, depending on type |
| `type` | text | ✓ | (-) | Type of modbus items to poll. This matches directly to Modbus request type or function code (FC). Valid values are: `"coil"` (FC01), `"discrete"` (FC02), `"holding"`(FC03), `"input"` (FC04). |
@ -360,14 +360,14 @@ Note that value types less than 16 bits are not supported on write to holding re
See [Full examples](#full-examples) section for practical examples.
#### `bit`:
#### `bit`
- a single bit is read from the registers
- address is given as `X.Y`, where `Y` is between 0...15 (inclusive), representing bit of the register `X`
- index `Y=0` refers to the least significant bit
- index `Y=1` refers to the second least significant bit, etc.
#### `int8`:
#### `int8`
- a byte (8 bits) from the registers is interpreted as signed integer
- address is given as `X.Y`, where `Y` is between 0...1 (inclusive), representing byte of the register `X`
@ -375,42 +375,42 @@ See [Full examples](#full-examples) section for practical examples.
- index `Y=1` refers to high byte
- it is assumed that each high and low byte is encoded in most significant bit first order
#### `uint8`:
#### `uint8`
- same as `int8` except value is interpreted as unsigned integer
#### `int16`:
#### `int16`
- register with index is interpreted as 16 bit signed integer.
- it is assumed that register is encoded in most significant bit first order
#### `uint16`:
#### `uint16`
- same as `int16` except value is interpreted as unsigned integer
#### `int32`:
#### `int32`
- registers `index` and `(index + 1)` are interpreted as signed 32bit integer
- it assumed that the first register contains the most significant 16 bits
- it is assumed that each register is encoded in most significant bit first order
#### `uint32`:
#### `uint32`
- same as `int32` except value is interpreted as unsigned integer
#### `float32`:
#### `float32`
- registers `index` and `(index + 1)` are interpreted as signed 32bit floating point number
- it assumed that the first register contains the most significant 16 bits
- it is assumed that each register is encoded in most significant bit first order
#### `int64`:
#### `int64`
- registers `index`, `(index + 1)`, `(index + 2)`, `(index + 3)` are interpreted as signed 64bit integer.
- it assumed that the first register contains the most significant 16 bits
- it is assumed that each register is encoded in most significant bit first order
#### `uint64`:
#### `uint64`
- same as `int64` except value is interpreted as unsigned integer
@ -422,27 +422,27 @@ To resolve this the binding supports a second set of valuetypes that have the wo
If you get strange values using the `int32`, `uint32`, `float32`, `int64`, or `uint64` valuetypes then just try the `int32_swap`, `uint32_swap`, `float32_swap`, `int64_swap`, or `uint64_swap` valuetype, depending upon what your data type is.
#### `int32_swap`:
#### `int32_swap`
- registers `index` and `(index + 1)` are interpreted as signed 32bit integer
- it assumed that the first register contains the least significant 16 bits
- it is assumed that each register is encoded in most significant bit first order (Big Endian)
#### `uint32_swap`:
#### `uint32_swap`
- same as `int32_swap` except value is interpreted as unsigned integer
#### `float32_swap`:
#### `float32_swap`
- registers `index` and `(index + 1)` are interpreted as signed 32bit floating point number
- it assumed that the first register contains the least significant 16 bits
- it is assumed that each register is encoded in most significant bit first order (Big Endian)
#### `int64_swap`:
#### `int64_swap`
- same as `int64` but registers swapped, that is, registers (index + 3), (index + 2), (index + 1), (index + 1) are interpreted as signed 64bit integer
#### `uint64_swap`:
#### `uint64_swap`
- same as `uint64` except value is interpreted as unsigned integer

View File

@ -453,7 +453,6 @@ A Home is the Thing holding various modules and devices. They can hold two areas
Depending on the way it is configured the behaviour will be adapted and available channels can vary.
**Home Configuration**
The Home thing has the following configuration elements:
| Parameter | Type | Required | Description |
@ -465,9 +464,9 @@ The Home thing has the following configuration elements:
At least one of these parameter must be filled - at most two :
* id or securityId
* id or energyId
* securityId and energyId
- id or securityId
- id or energyId
- securityId and energyId
(1) this parameter is kept for backward compatibility.

View File

@ -1,6 +1,5 @@
# NibeGW Hardware and Compiling hints
## RS-485 Modules
For settting up a NibeGW you need a RS485 module.
@ -8,8 +7,8 @@ While ProDiNo already have RS-485 support included, you need a separate module f
Most cheap modules out there are compatible with 5V voltage and therefore compatible with Arduino based hardware.
Mostly you will get one of two commonly used designs:
* Modules based on Max1348 chip, which has 2 pins on the Arduino side (RXD, TXD) + VCC + GND
* Modules based on Max485 chip, which has 4 pins on the Arduino side (RO, RE, DE, DI) + VCC + GND
- Modules based on Max1348 chip, which has 2 pins on the Arduino side (RXD, TXD) + VCC + GND
- Modules based on Max485 chip, which has 4 pins on the Arduino side (RO, RE, DE, DI) + VCC + GND
Both types of modules work fine with NibeGW.
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.
@ -45,7 +44,6 @@ No special configuration is needed, NibeGW supports this shield out of the box.
ProDiNo already have Ethernet included, so there's no need for a separate Ethernet Shield.
Also the ProDiNo Ethernet is supported by NibeGW out of the box.
## Arduino Uno
Arduino Uno has only one serial port which is shared with USB.
@ -54,7 +52,7 @@ Furthermore do not use the USB port while Arduino is communicating with the Nibe
For compiling NibeGW, you have to make the following changes to the code:
#### Config.h:
### Config.h
Comment out support for all special boards:
@ -74,7 +72,7 @@ Comment out debugging on the serial console:
Adjust the settings for your ethernet connection, target ip and ports and modbus module to simulate.
Leave the serial configuration untouched - it is fine for Arduino Uno.
#### NibeGW.h:
### NibeGW.h
Enable support for HARDWARE_SERIAL:
@ -88,7 +86,7 @@ Enable support for HARDWARE_SERIAL:
NibeGW default settings are valid for ProDiNo ESP32 Ethernet v1 board.
Dynamic configuration is enabled by default.
### Config.h:
### Config.h
```c
//#define PRODINO_BOARD
@ -96,7 +94,7 @@ Dynamic configuration is enabled by default.
//#define TRANSPORT_ETH_ENC28J6A0
```
### NibeGW.h:
### NibeGW.h
```c
#define HARDWARE_SERIAL_WITH_PINS
@ -110,12 +108,10 @@ Install [ProDinoESP32](https://github.com/kmpelectronics/ProDinoESP32) library (
NibeGW code is compatible with ESP32 v2.0.x board library by Espressif Systems.
Install correct ESP32 library via Arduino IDE board manager.
## ProDiNo Ethernet V2
Todo
## Debugging
Debugging messages are available by connecting to port 23 to your NibeGW via telnet.
@ -155,8 +151,9 @@ When dynamic configuration is enabled (only ESP32 boards), NibeGW can be configu
Also OTA firmware update is supported.
The following libraries are required:
* Bleeper (tested with version 1.1.0)
* ElegantOTA (tested with version 2.2.9)
- Bleeper (tested with version 1.1.0)
- ElegantOTA (tested with version 2.2.9)
Dynamic configuration mode is loaded if input 0 is ON during boot.
When dynamic configuration mode is activated, login to the 'Bleeper' Wi-Fi access point.

View File

@ -67,10 +67,10 @@ Thing can be extended with as many SafeExposure channels as needed for each skin
This binding has its own IconProvider and makes available the following list of icons
| Icon Name | Dynamic | Illustration |
|--------------------|---------|--------------|
| oh:openuv:ozone | No | ![](src/main/resources/icon/ozone.svg) |
| oh:openuv:uv-alarm | Yes | ![](src/main/resources/icon/uv-alarm.svg) |
| oh:openuv:uv-index | Yes | ![](src/main/resources/icon/uv-index.svg) |
|--------------------|---------|----------------------------|
| oh:openuv:ozone | No | ![](doc/icon/ozone.svg) |
| oh:openuv:uv-alarm | Yes | ![](doc/icon/uv-alarm.svg) |
| oh:openuv:uv-index | Yes | ![](doc/icon/uv-index.svg) |
## Examples

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<svg viewBox="0 0 380.6 380.6" width="380.6" height="380.6" xmlns="http://www.w3.org/2000/svg">
<defs>
<style type="text/css">
.st0{fill:#1A98D5;}
</style>
</defs>
<path class="st0" d="M 236.072 302.465 C 239.076 304.128 246.015 306.704 253.334 306.704 C 266.873 306.704 271.062 299.249 270.956 293.659 C 270.829 284.249 261.013 280.211 250.817 280.211 L 244.936 280.211 L 244.936 273.378 L 250.817 273.378 C 258.496 273.378 268.185 269.961 268.185 261.995 C 268.185 256.606 264.229 251.855 254.519 251.855 C 248.278 251.855 242.291 254.23 238.949 256.313 L 236.199 249.681 C 240.261 247.105 248.172 244.51 256.571 244.51 C 271.908 244.51 278.868 252.367 278.868 260.552 C 278.868 267.477 274.066 273.378 264.483 276.393 L 264.483 276.594 C 274.066 278.256 281.851 284.45 281.851 293.878 C 281.851 304.639 272.141 314.067 253.461 314.067 C 244.724 314.067 237.045 311.692 233.216 309.518 L 236.072 302.465 Z" style=""/>
<g>
<path class="st0" d="M325.8,190.3c0-33.7-12.2-64.6-32.4-88.4c0,2.6,0,5.1,0,7.7c-0.2,0.6-0.5,1.2-0.6,1.9 c-2.2,12.2-8.7,21.5-19.4,27.8c-14.8,8.7-34.5,6.2-46.8-5.8c-0.5-0.4-1.6-0.7-2.2-0.4c-11.9,5.9-23.8,11.8-35.7,17.8 c-9.7,4.9-19.5,9.7-29.2,14.6c-13,6.5-26.1,13-39.1,19.6c-0.6,0.3-1,1.3-1.1,2c-0.1,3.2-0.1,6.4,0,9.7c0,0.7,0.5,1.6,1.1,2 c2.4,1.4,4.9,2.6,7.3,3.8c18.9,9.5,37.9,18.9,56.8,28.4c13.3,6.6,26.6,13.3,39.9,19.9c0.5,0.3,1.6,0.1,2-0.3 c7.6-7.3,16.6-10.9,27.1-11c18.1-0.2,33.9,11.8,38.4,29.4c0.5,1.8,0.9,3.6,1.4,5.4c0,1.5,0,3,0,4.5 C313.6,254.9,325.8,224,325.8,190.3z"/>
<path class="st0" d="M228.2,308.6c-10.4-9.2-14.8-20.9-13.4-34.6c0.1-1.1-0.1-1.7-1.2-2.2c-11.4-5.6-22.7-11.4-34.1-17 c-23.3-11.6-46.5-23.2-69.8-34.9c-0.9-0.5-1.5-0.4-2.3,0.3c-1.7,1.6-3.5,3.2-5.4,4.5c-8.8,5.6-18.3,7.7-28.7,6 c-6.5-1.1-12.6-3.9-17.7-7.9c14.6,60,68.6,104.5,133.1,104.5c19,0,37.1-3.9,53.5-10.8C237.1,314.9,232.4,312.3,228.2,308.6z"/>
<path class="st0" d="M62.7,156.6c15.3-7.6,32.3-4.7,44.8,7c0.8,0.7,1.3,0.8,2.2,0.3c14.4-7.2,28.9-14.4,43.3-21.6 c20.1-10,40.1-20.1,60.2-30.1c1.3-0.7,1.6-1.4,1.5-2.8c-2.2-20.4,11.1-38.1,29.6-42.6c0.8-0.2,1.6-0.4,2.4-0.6 c-17.6-8.2-37.3-12.9-58-12.9C123,53.4,68.1,99.7,54.9,161.6C57.2,159.7,59.8,158,62.7,156.6z"/>
</g>
<path class="st0" d="M 190.3 32.1 C 211.7 32.1 232.4 36.3 251.9 44.5 C 270.7 52.5 287.7 63.9 302.2 78.4 C 316.7 92.9 328.2 109.9 336.1 128.7 C 344.3 148.2 348.5 168.9 348.5 190.3 C 348.5 211.7 344.3 232.4 336.1 251.9 C 328.1 270.7 316.7 287.7 302.2 302.2 C 287.7 316.7 270.7 328.2 251.9 336.1 C 232.4 344.3 211.7 348.5 190.3 348.5 C 168.9 348.5 148.2 344.3 128.7 336.1 C 109.9 328.1 92.9 316.7 78.4 302.2 C 63.9 287.7 52.4 270.7 44.5 251.9 C 36.3 232.4 32.1 211.7 32.1 190.3 C 32.1 168.9 36.3 148.2 44.5 128.7 C 52.5 109.9 63.9 92.9 78.4 78.4 C 92.9 63.9 109.9 52.4 128.7 44.5 C 148.2 36.3 168.9 32.1 190.3 32.1 M 190.3 0 C 85.2 0 0 85.2 0 190.3 C 0 295.4 85.2 380.6 190.3 380.6 C 295.4 380.6 380.6 295.4 380.6 190.3 C 380.6 85.2 295.4 0 190.3 0 Z"/>
</svg>

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<svg enable-background="new 0 0 64 64" viewBox="0 0 64 64" xmlns="http://www.w3.org/2000/svg">
<ellipse style="stroke-width: 0px; stroke: rgb(0, 0, 0); fill:#3d3c3c;" cx="32" cy="32" rx="30" ry="30"/>
<circle class="cls-1" cx="32.141" cy="31.8" r="17" style="fill: #b3b3b3;"/>
<line class="cls-2" x1="32.141" x2="32.141" y1="4.8" y2="10.8" style="fill: none; stroke: #b3b3b3; stroke-linecap: round; stroke-miterlimit: 10; stroke-width: 3px;"/>
<line class="cls-2" x1="32.141" x2="32.141" y1="52.8" y2="58.8" style="fill: none; stroke: #b3b3b3; stroke-linecap: round; stroke-miterlimit: 10; stroke-width: 3px;"/>
<line class="cls-2" x1="59.141" x2="53.141" y1="31.8" y2="31.8" style="fill: none; stroke: #b3b3b3; stroke-linecap: round; stroke-miterlimit: 10; stroke-width: 3px;"/>
<line class="cls-2" x1="11.141" x2="5.141" y1="31.8" y2="31.8" style="fill: none; stroke: #b3b3b3; stroke-linecap: round; stroke-miterlimit: 10; stroke-width: 3px;"/>
<line class="cls-2" x1="51.231" x2="46.991" y1="12.71" y2="16.95" style="fill: none; stroke: #b3b3b3; stroke-linecap: round; stroke-miterlimit: 10; stroke-width: 3px;"/>
<line class="cls-2" x1="17.291" x2="13.051" y1="46.65" y2="50.89" style="fill: none; stroke: #b3b3b3; stroke-linecap: round; stroke-miterlimit: 10; stroke-width: 3px;"/>
<line class="cls-2" x1="51.231" x2="46.991" y1="50.89" y2="46.65" style="fill: none; stroke: #b3b3b3; stroke-linecap: round; stroke-miterlimit: 10; stroke-width: 3px;"/>
<line class="cls-2" x1="17.291" x2="13.051" y1="16.95" y2="12.71" style="fill: none; stroke: #b3b3b3; stroke-linecap: round; stroke-miterlimit: 10; stroke-width: 3px;"/>
<path class="cls-3" d="M 24.931 27.55 L 24.931 33.5 C 24.931 35.28 25.601 36.18 26.801 36.18 C 28.001 36.18 28.701 35.32 28.701 33.5 L 28.701 27.55 L 31.031 27.55 L 31.031 33.34 C 31.031 36.53 29.421 38.04 26.731 38.04 C 24.041 38.04 22.591 36.6 22.591 33.31 L 22.591 27.55 L 24.931 27.55 Z" style="fill: rgb(255, 255, 255);"/>
<path class="cls-3" d="M 35.491 37.88 L 32.141 27.55 L 34.741 27.55 L 36.001 31.92 C 36.351 33.15 36.671 34.33 36.921 35.61 C 37.181 34.37 37.501 33.14 37.851 31.96 L 39.171 27.55 L 41.651 27.55 L 38.211 37.88 L 35.491 37.88 Z" style="fill: rgb(255, 255, 255);"/>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -0,0 +1,50 @@
<svg version="1.2" width="52.876" height="26.86mm" viewBox="13400 10314 1399 2686" preserveAspectRatio="xMidYMid"
fill-rule="evenodd" stroke-width="28.222" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg">
<defs class="prefix__ClipPathGroup">
<clipPath id="prefix__a" clipPathUnits="userSpaceOnUse">
<path d="M13400 10314h1399v2686h-1399z" />
</clipPath>
</defs>
<g class="prefix__SlideGroup">
<g class="prefix__Slide" clip-path="url(#prefix__a)">
<g class="prefix__Page">
<g class="prefix__com_sun_star_drawing_ClosedBezierShape">
<path class="prefix__BoundingBox" fill="none" d="M13400 10314h1400v2687h-1400z" />
<path fill="#143A79"
d="M13607 10314h986c114 0 206 93 206 207v2272c0 114-92 207-206 207h-986c-114 0-207-93-207-207v-2272c0-114 93-207 207-207z" />
</g>
<g class="prefix__com_sun_star_drawing_ClosedBezierShape">
<path class="prefix__BoundingBox" fill="none" d="M13616 10459h459v551h-459z" />
<path fill="#FFF"
d="M13616 10820c0 113 101 189 228 189 129 0 230-76 230-189v-361h-98v352c0 75-58 115-132 115s-131-40-131-115v-352h-97v361z" />
</g>
<g class="prefix__com_sun_star_drawing_PolyPolygonShape">
<path class="prefix__BoundingBox" fill="none" d="M14118 10459h503v546h-503z" />
<path fill="#FFF" d="M14332 11004h76l212-545h-103l-146 415h-2l-146-415h-104l213 545z" />
</g>
<g class="prefix__com_sun_star_drawing_PolyPolygonShape">
<path class="prefix__BoundingBox" fill="none" d="M13630 11065h32v217h-32z" />
<path fill="#FFF" d="M13630 11281h31v-216h-31v216z" />
</g>
<g class="prefix__com_sun_star_drawing_PolyPolygonShape">
<path class="prefix__BoundingBox" fill="none" d="M13748 11065h154v217h-154z" />
<path fill="#FFF" d="M13748 11281h30v-153h1l93 153h29v-216h-31v154l-93-154h-29v216z" />
</g>
<g class="prefix__com_sun_star_drawing_ClosedBezierShape">
<path class="prefix__BoundingBox" fill="none" d="M13987 11065h146v217h-146z" />
<path fill="#FFF"
d="M13988 11281h69c30 0 51-16 63-36 9-15 12-23 12-72 0-45 0-53-11-72-14-24-36-36-62-36h-71v216zm30-186h37c17 0 27 5 36 20 9 11 10 21 10 59 0 40-1 46-8 57-8 13-20 19-38 19h-37v-155z" />
</g>
<g class="prefix__com_sun_star_drawing_PolyPolygonShape">
<path class="prefix__BoundingBox" fill="none" d="M14212 11065h132v217h-132z" />
<path fill="#FFF" d="M14212 11281h131v-31h-100v-63h85v-29h-85v-63h100v-30h-131v216z" />
</g>
<g class="prefix__com_sun_star_drawing_PolyPolygonShape">
<path class="prefix__BoundingBox" fill="none" d="M14391 11065h161v217h-161z" />
<path fill="#FFF"
d="M14515 11281h36l-63-111 59-105h-36l-41 75-40-75h-35l58 105-62 111h35l44-80 45 80z" />
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@ -52,11 +52,11 @@ The Thing has a few configuration parameters:
Some notes:
* The control protocol of these players is undocumented and may not work consistently in all situations
* The UHD models only support playback elapsed time (not title total time or chapter information) reporting
* The time and chapter information is only available when playing a Blu-ray disc (not DVD or CD)
* There are reports in forum postings that not all commands work on all of the older models (i.e.: Power does not work on DMP-BDT110)
* Not all status information is available from all BD models (i.e.: playback elapsed time not reported by some models)
- The control protocol of these players is undocumented and may not work consistently in all situations
- The UHD models only support playback elapsed time (not title total time or chapter information) reporting
- The time and chapter information is only available when playing a Blu-ray disc (not DVD or CD)
- There are reports in forum postings that not all commands work on all of the older models (i.e.: Power does not work on DMP-BDT110)
- Not all status information is available from all BD models (i.e.: playback elapsed time not reported by some models)
## Channels

View File

@ -13,10 +13,10 @@ Examples:
Currently binding supports the following panels: EVO192, EVO48(not tested), EVO96(not tested)
## Supported things
## Supported Things
| Thing | Thing Type | Description |
|------------|------------|----------------------------------------------------------------|
|-----------|------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ip150 | Bridge | The bridge is used to communicate with IP150 ethernet module attached to Paradox security system. |
| panel | Thing | This is representation of Paradox panel. Has the general information about the main panel module, i.e. serial number, firmware/hardware/software versions, panel type, etc... |
| partition | Thing | The partition is grouped aggregation of multiple zones. It's also referred in Paradox Babyware as "Area". |
@ -24,10 +24,10 @@ Currently binding supports the following panels: EVO192, EVO48(not tested), EVO9
## Things configuration
### IP150 bridge parameters
### IP150 Bridge Parameters
| Parameter | Description |
|-------------------|----------------------------------------|
|-------------------|-----------------------------------------------------------------------------------------------------------------------------------------|
| refresh | Value is in seconds. Defines the refresh interval when the binding polls from paradox system. Optional parameter. Default 5 seconds. |
| ip150Password | The password to your IP150 (not your panel PIN). Mandatory parameter. |
| pcPassword | The panel programming code 3012 setting. Optional parameter. Default value is 0000. |
@ -39,14 +39,14 @@ Currently binding supports the following panels: EVO192, EVO48(not tested), EVO9
| maxZones | Sets maximum zones to use during refresh. If not set, maximum allowed amount from panelType will be used. Optional parameter. |
| encrypt | Sets if encryption has to be used. Optional parameter. Default value is false |
### IP150 bridge channels
### IP150 Bridge Channels
| Channel | Description |
|---------------------|------------------------------------------------|
|communicationCommand | Possible values [LOGOUT, LOGIN, RESET] |
|communicationState | Shows the communication status to Paradox. Different from Bridge status. Bridge may be online and able to receive commands but communication may be offline due to various reasons. Possible values [Offline, Online] |
#### Communication command channel allowed values
#### Communication Command Values
| Value | Description |
|--------|------------------------------------------------------------------------------------|
@ -54,14 +54,14 @@ Currently binding supports the following panels: EVO192, EVO48(not tested), EVO9
| LOGIN | Creates socket if necessary, connects to paradox system and uses the logon data from the thing parameters to connect.|
| RESET | Does logout and then login with recreation of communicator objects inside the code.|
### Entities (zones, partitions) configuration parameters:
### Entities (zones, partitions) Configuration
| Value | Description |
|-------------------|------------------------------------------------------------------------------------|
| id | The numeric ID of the zone/partition |
| disarmEnabled | Optional boolean flag. Valid for partitions. When set to true the command DISARM will be allowed for the partition where the flag is enabled. CAUTION: Enabling DISARM command can be dangerous. If attacker can gain access to your openHAB (via API or UI), this command can be used to disarm your armed partition (area) |
### Panel channels:
### Panel Channels
| Channel | Type | Description |
|--------------------------|----------------------------|-------------------------------------------------------------------------------------------|
@ -71,7 +71,7 @@ Currently binding supports the following panels: EVO192, EVO48(not tested), EVO9
| batteryVoltage | Number:ElectricPotential | Battery Voltage |
| panelTime | DateTime | Panel internal time (Timezone is set to default zone of the Java virtual machine) |
### Partition channels:
### Partition Channels
| Channel | Type | Description |
|--------------------------|---------|-----------------------------------------------------------------------------------------------|
@ -96,14 +96,15 @@ Currently binding supports the following panels: EVO192, EVO48(not tested), EVO9
| allZonesClosed | Contact | All zones in partition are currently closed |
| command | String | Command to be send to partition. Can be (ARM, DISARM, FORCE_ARM, INSTANT_ARM, STAY_ARM, BEEP) |
### Partition detailed state possible values:
### Partition Detailed State Values
| Overall state value | Detailed state value (depending on the sub-state) |
|--------------------------|----------------------------------------------------------------------------------------------|
| InAlarm | Silent Alarm, Audible Alarm, Fire Alarm, In Alarm (if none of the first three) |
| Armed | Away Armed, Stay Armed, NoEntry Armed, Armed (if none of the first three) |
| Disarmed | Disarmed |
### Zone channels:
### Zone Channels
| Channel | Type | Description |
|------------------------------------|---------|--------------------------------------------------------------------------------|
@ -120,8 +121,7 @@ Currently binding supports the following panels: EVO192, EVO48(not tested), EVO9
| generatedAlarm | Switch | Zone has generated an alarm |
| command | String | Command for zone. Can be (BYPASS, CLEAR_BYPASS) |
## Example things configuration
## Example Things Configuration
```java
Bridge paradoxalarm:ip150:ip150 [refresh=5, panelType="EVO192", ip150Password="********", pcPassword="0000", ipAddress=XXX.XXX.XXX.XXX", port=10000, reconnectWaitTime=10, maxPartitions=4, maxZones=50, encrypt=true ] {
@ -140,7 +140,7 @@ Currently binding supports the following panels: EVO192, EVO48(not tested), EVO9
}
```
## Example items configuration
## Example Items Configuration
```java
//Groups
@ -169,7 +169,7 @@ Currently binding supports the following panels: EVO192, EVO48(not tested), EVO9
Contact CorridorFl1_MUC_state "Corridor Fl1 window: [%s]" (Floor1MUC) { channel = "paradoxalarm:zone:ip150:MagneticSensorWindow1:opened" }
```
## Example sitemap configuration
## Example Sitemap Configuration
```java
Text label="Security" icon="lock" {

View File

@ -11,20 +11,18 @@ In case of changing water levels the corresponding warning level is lowered or r
|---------------------|---------------------------------------------------------------------------------|---------|
| Measurement Station | Station providing water level measurements | station |
## Discovery
In case your home location coordinates are set the discovery will recognize all measurement stations within a radius of 50 km.
Found Things are added in your Inbox.
## Thing Configuration
Thing configuration contains 3 sections
* [Station selection](station_selection)
* [Warning Levels of selected station](warning_levels)
* [Refresh rate](configuration_parameters)
- [Station selection](station_selection)
- [Warning Levels of selected station](warning_levels)
- [Refresh rate](configuration_parameters)
### Station selection
@ -38,8 +36,8 @@ Configure a station manually using [list of all available stations](https://pege
Each station has specific warning levels
* Warning Levels 1 (*lowest*) to 3 (*highest*)
* Flooding Levels
- Warning Levels 1 (*lowest*) to 3 (*highest*)
- Flooding Levels
Unfortunately these levels cannot be queried automatically.
Please select your [federal state](https://www.hochwasserzentralen.de/) and check if which levels they provide.
@ -62,7 +60,6 @@ If you cannot evaluate warning or flooding levels leave the parameter empty.
## Channels
| channel id | type | description |
|----------------------|----------------------|--------------------------------|
| timestamp | DateTime | Last Measurement |
@ -74,21 +71,21 @@ If you cannot evaluate warning or flooding levels leave the parameter empty.
Possible values:
* 1 : Rising
* 0 : Steady
* -1 : Lowering
- 1 : Rising
- 0 : Steady
- -1 : Lowering
### Warning
Current warning according to configuration
* 0 : No Warning
* 1 : Warning level 1
* 2 : Warning Level 2
* 3 : Warning Level 3
* 4 : Decade Flooding
* 5 : Century Flooding
* 6 : Extreme Flooding
- 0 : No Warning
- 1 : Warning level 1
- 2 : Warning Level 2
- 3 : Warning Level 3
- 4 : Decade Flooding
- 5 : Century Flooding
- 6 : Extreme Flooding
## Full Example
@ -115,8 +112,6 @@ Number Lahn_Giessen_Trend "Water Level Trend Lahn Giessen"
Number Lahn_Giessen_Warning "Warning Level Lahn Giessen" {channel="pegelonline:station:giessen:warning"}
```
## Links
[PegelOnline API Documentation](https://www.pegelonline.wsv.de/webservice/dokuRestapi#caching)

View File

@ -4,15 +4,15 @@ This binding can read information from multiple PLEX players connected to a PLEX
It can be used for multiple scenarios:
* Drive light changes based on player status. For instances turn off the lights when movie starts playing and turn them back on when movie is stopped/paused
* Create a page that displays currently played media of one or more player connected to the server.
* Send social media messages when player plays new media
* Inform what the end time of the currently played media is
- Drive light changes based on player status. For instances turn off the lights when movie starts playing and turn them back on when movie is stopped/paused
- Create a page that displays currently played media of one or more player connected to the server.
- Send social media messages when player plays new media
- Inform what the end time of the currently played media is
The binding can also control `PLAY/PAUSE/NEXT/PREVIOUS` the players which can be used for:
* Start playing some music when someone enters a room
* Pause the movie when motion is detected
- Start playing some music when someone enters a room
- Pause the movie when motion is detected
## Supported Things

View File

@ -74,6 +74,7 @@ For priority `2` only, the action returns a `String` value (the `receipt`) if th
For other priorities, the action always returns an empty `String`.
- `cancelPriorityMessage(String receipt)` - This method is used to cancel an emergency priority message.
The action returns a `Boolean` value to indicate if the message was cancelled successfully or not.
## Full Example

View File

@ -358,11 +358,11 @@ Switch TV_ArtOrient "Art Orientation [%s]" (gLivingRoomTV)
Wake on Lan is supported by Samsung TVs after 2016. The binding will attempt to use WOL to turn on a TV, if `power` (or `artMode`) is commanded ON.
This only works on TV's after 2016, and has some quirks.
* Does not work on TV's <2016
* Does not work on hardwired ethernet connected TV's **if you have a soundbar connected via ARC/eARC**
* Works on WiFi connected TV's (with or without soundbar)
* May need to enable this function on the TV
* May have to wait up to 1 minute before turning TV back on, as TV does not power down immediately (and so doesn't respond to WOL)
- Does not work on TV's <2016
- Does not work on hardwired ethernet connected TV's **if you have a soundbar connected via ARC/eARC**
- Works on WiFi connected TV's (with or without soundbar)
- May need to enable this function on the TV
- May have to wait up to 1 minute before turning TV back on, as TV does not power down immediately (and so doesn't respond to WOL)
You will have to experiment to see if it works for you. If not, you can power on the TV using IR (if you have a Harmony Hub, or GC iTach or similar).

View File

@ -6,16 +6,15 @@ All supported values and devices were discovered while playing with my own energ
## Supported devices
* Solarwatt Energymanager; ie. the DIN rail mounted device in your house distribution.
- Solarwatt Energymanager; ie. the DIN rail mounted device in your house distribution.
## Not supported by this binding
* Solarwatt Manager/Manager Flex; ie. the black square device that is wall mounted.
- 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
other installations via [Remote openHAB Binding](https://www.openhab.org/addons/bindings/remoteopenhab/).
## Supported Things
| Thing Type ID | Devices |

View File

@ -127,6 +127,7 @@ Dimmer PhilipsSomneo_Alarm1Volume "Volume"
```
transform/somneorepeatday.js
```javascript
(function(i) {
if (i == 254) {

View File

@ -14,10 +14,10 @@ The binding does not support auto discovery.
As a minimum, the hostname is needed:
* hostname - The hostname of the Tesla Powerwall 2. Defaults to powerwall to avoid SSL certificate issues
* email - the email of the local account on the Powerwall that the installer provided
* password - the password of the local account on the Powerwall that the installer provided
* refresh - The frequency with which to refresh information from the Tesla Powerwall2 specified in seconds. Defaults to 10 seconds.
- hostname - The hostname of the Tesla Powerwall 2. Defaults to powerwall to avoid SSL certificate issues
- email - the email of the local account on the Powerwall that the installer provided
- password - the password of the local account on the Powerwall that the installer provided
- refresh - The frequency with which to refresh information from the Tesla Powerwall2 specified in seconds. Defaults to 10 seconds.
## Channels

View File

@ -79,11 +79,12 @@ The control outlet supports the `power` channel.
A blind or curtain supports, beside `battery_level` and `battery_low` channels, a `positon` channel.
An air purifier supports:
* `fan_mode` and `fan_speed` channels, which allows for control of the fan and reading of the current speed.
* `disable_led` and `lock_button` channels, to respectively disable the LED's and lock the button on the physical device.
* `air_quality_pm25` and `air_quality_rating` channels, which reads the particulate matter 2.5μm and corresponding indication of air quality (similar to Tradfri app rating).
* `filter_check_next` and `filter_check_alarm` channels, which represents the remaining number of minutes until the next filter check and whether it is time to do the filter check now. Filter check must be completed through the TRÅDFRI app (or on the hardware buttons in case of replacement).
* a `filter_uptime` channel, which represents the current time since last filter change.
- `fan_mode` and `fan_speed` channels, which allows for control of the fan and reading of the current speed.
- `disable_led` and `lock_button` channels, to respectively disable the LED's and lock the button on the physical device.
- `air_quality_pm25` and `air_quality_rating` channels, which reads the particulate matter 2.5μm and corresponding indication of air quality (similar to Tradfri app rating).
- `filter_check_next` and `filter_check_alarm` channels, which represents the remaining number of minutes until the next filter check and whether it is time to do the filter check now. Filter check must be completed through the TRÅDFRI app (or on the hardware buttons in case of replacement).
- a `filter_uptime` channel, which represents the current time since last filter change.
Refer to the matrixes above.

View File

@ -169,9 +169,9 @@ Bridge velbus:bridge:1 [ port="COM1", reconnectionInterval="15" ]
Adding Velbus modules to your openHAB configuration follows the conventions of your preferred configuration method.
* **UI-based configuration:** Invoke a manual scan from the Things menu in order to start the [discovery process](#discovery).
- **UI-based configuration:** Invoke a manual scan from the Things menu in order to start the [discovery process](#discovery).
Discovered modules can be found in the inbox.
* **Textual `.thing` configuration** can declare Velbus modules either in a standalone fashion (a bridge is still required):
- **Textual `.thing` configuration** can declare Velbus modules either in a standalone fashion (a bridge is still required):
```java
Thing velbus:<thingType>:<bridgeId>:<thingId> "Label" @ "Location" [ CH1="Kitchen Light", CH2="Living Light" ]

View File

@ -4,28 +4,27 @@ This binding integrates [Warmup](https://www.warmup.co.uk) Wifi enabled Thermost
Devices known to work with the binding:
* [Warmup 4iE](https://www.warmup.co.uk/thermostats/smart/4ie-underfloor-heating)
* [Warmup Element](https://www.warmup.co.uk/thermostats/smart/element-wifi-thermostat)
- [Warmup 4iE](https://www.warmup.co.uk/thermostats/smart/4ie-underfloor-heating)
- [Warmup Element](https://www.warmup.co.uk/thermostats/smart/element-wifi-thermostat)
Device expected to work with the binding:
* [Warmup 6iE](https://www.warmup.co.uk/thermostats/smart/6ie-underfloor-heating)
- [Warmup 6iE](https://www.warmup.co.uk/thermostats/smart/6ie-underfloor-heating)
Devices which might work with the binding:
* Other similar looking devices marketed under different brands, mentioned in the API
* [Laticrete](https://laticrete.com/)
* [Rointe](https://rointe.com/)
* [Porcelanosa](https://www.porcelanosa.com/)
* Equus
* [Savant](https://www.savant.com/)
- Other similar looking devices marketed under different brands, mentioned in the API
- [Laticrete](https://laticrete.com/)
- [Rointe](https://rointe.com/)
- [Porcelanosa](https://www.porcelanosa.com/)
- Equus
- [Savant](https://www.savant.com/)
Any Warmup device must be registered at <https://my.warmup.com/> prior to usage, or connected through the [MyHeating app](https://www.warmup.co.uk/thermostats/smart/myheating-app).
This API is not known to be documented publicly.
The binding api implementation has been derived from the implementations at <https://github.com/alyc100/SmartThingsPublic/blob/master/devicetypes/alyc100/warmup-4ie.src/warmup-4ie.groovy> and <https://github.com/alex-0103/warmup4IE/blob/master/warmup4ie/warmup4ie.py>, and enhanced by inspecting the [GraphQL endpoint](https://apil.warmup.com/graphql).
## Supported Things
The Warmup binding supports the following thing types:
@ -38,8 +37,7 @@ The Warmup binding supports the following thing types:
|----------|-------|------------------------------------------------------------------------------------------------|
| `room` | Room | A room containing an individual Warmup WiFi connected device which controls a heating circuit. |
### Room
**Room**
The device is optimised for controlling underfloor heating (electric or hydronic), although it can also control central heating circuits.
The device reports the temperature from one of two thermostats, either a floor temperature probe or the air temperature at the device.
It appears to be possible to configure two devices in a primary / secondary configuration, but it is not clear how this might be represented by the API and hasn't been implemented.
@ -50,7 +48,7 @@ Once credentials are successfully added to the bridge, any rooms (devices) detec
## Thing Configuration
### My Warmup Account
### `my-warmup` Bridge Configuration
| config parameter | type | description | required | default |
|------------------|---------|-------------------------------------------------|----------|---------|
@ -58,7 +56,7 @@ Once credentials are successfully added to the bridge, any rooms (devices) detec
| password | String | Password for my.warmup.com | true | |
| refreshInterval | Integer | Interval in seconds between automatic refreshes | true | 300 |
### Room
### `room` Thing Configuration
Rooms are configured automatically with a Serial Number on discovery, or can be added manually using the "Device Number" from the device, excluding the last 3 characters. Changing the target temperature results in a temporary override to that temperature, for the duration configured on the thing. This defaults to 60 minutes.
@ -133,6 +131,7 @@ getActions("warmup", "warmup:room:my_warmup:my_room").setOverride(18 | °C, 10 |
```javascript
actions.get("warmup", "warmup:room:my_warmup:my_room").setOverride(Quantity("18 °C"), Quantity("10 min"));
```
:::
::::

View File

@ -11,21 +11,26 @@ and a json based protocol for newer receivers.
The http port 80 on the receiver is used with http POST requests for retrieving and changing the device state. The actual url is http://HOST/YamahaRemoteControl/ctrl.
An example for retrieving data:
```xml
<?xml version="1.0" encoding="utf-8"?>
<YAMAHA_AV cmd="GET">
<ZONE><Basic_Status>GetParam</Basic_Status><ZONE>
</YAMAHA_AV>
```
where ZONE is Main_Zone, Zone_2, Zone_3 or Zone_4.
An example for changing the state of the receiver:
```xml
<YAMAHA_AV cmd="PUT">
<ZONE><Power_Control><Power>On</Power></Power_Control><ZONE>
</YAMAHA_AV>
```
### XML Structure
System
Config
Model_Name
@ -149,14 +154,16 @@ An example for changing the state of the receiver:
List_Control
List_Info
### XML Descriptor
The AVR provides an XML file that describes features and commands available using this URL:
```
http://<Your_Yamaha_ID>/YamahaRemoteControl/desc.xml
```
Or this URL:
```
http://<Your_Yamaha_ID>/YamahaRemoteControl/UnitDesc.xml
```
@ -164,14 +171,14 @@ http://<Your_Yamaha_ID>/YamahaRemoteControl/UnitDesc.xml
As Yamaha introduces new models there may be variations between XML structure.
In an attempt to improve the add-on maintenance and troubleshooting selected model's `desc.xml`' has been collected from community users:
* [HTR-4069](desc_HTR-4069.xml)
* [RX-A2000](desc_RX-A2000.xml)
* [RX-A3070](desc_RX-A3070.xml)
* [RX-S601D](desc_RX-S601D.xml)
* [RX-V479](desc_RX-V479.xml)
* [RX-V583](desc_RX-V583.xml)
* [RX-V675](desc_RX-V675.xml)
* [RX-V3900](desc_RX-V3900.xml)
- [HTR-4069](desc_HTR-4069.xml)
- [RX-A2000](desc_RX-A2000.xml)
- [RX-A3070](desc_RX-A3070.xml)
- [RX-S601D](desc_RX-S601D.xml)
- [RX-V479](desc_RX-V479.xml)
- [RX-V583](desc_RX-V583.xml)
- [RX-V675](desc_RX-V675.xml)
- [RX-V3900](desc_RX-V3900.xml)
### Key differences between models

View File

@ -47,7 +47,7 @@ HomeKit integration supports following accessory types:
- install homekit addon via UI
- add metadata to an existing item (see [UI based configuration](#UI-based-Configuration))
- add metadata to an existing item (see [UI based configuration](#ui-based-configuration))
- scan QR code from UI->Settings->HomeKit Integration
@ -76,7 +76,6 @@ HomeKit integration supports following accessory types:
Add metadata to more items or fine-tune your configuration using further settings
## Global Configuration
You can define HomeKit settings either via mainUI or via `$OPENHAB_CONF/services/homekit.cfg`.
@ -153,7 +152,6 @@ In order to add metadata to an item:
- click on "Save"
### Textual configuration
```java
@ -517,9 +515,11 @@ String thermostat_target_mode "Thermostat Target Mode"
In addition, thermostat can have thresholds for cooling and heating modes.
When a thermostat is configured with all three of TargetTemperature, HeatingThresholdTemperature, and CoolingThresholdTemperature, Home will set the characteristics as follows:
* TargetTemperature is used when the thermostat is in HEAT or COOL TargetHeatingCoolingMode.
* CoolingThresholdThemperature and HeatingThresholdTemperature are _only_ used in AUTO TargetHeatingCoolingMode.
* In AUTO TargetHeatingCoolingMode, TargetTemperature will be set to the average of CoolingThresholdThemperature and HeatingThresholdTemperature.
- TargetTemperature is used when the thermostat is in HEAT or COOL TargetHeatingCoolingMode.
- CoolingThresholdThemperature and HeatingThresholdTemperature are *only* used in AUTO TargetHeatingCoolingMode.
- In AUTO TargetHeatingCoolingMode, TargetTemperature will be set to the average of CoolingThresholdThemperature and HeatingThresholdTemperature.
Example with thresholds:
```java
@ -728,6 +728,7 @@ Enum mappings can have multiple values for a single key.
These must be an array, not a comma separated string.
If the characteristic can be set by HomeKit, the first value will be used when sending the command to the linked item.
Such a mapping can be configured manually in MainUI on HomeKit metadata in the Code editor:
```yaml
value: "Lock"
config:
@ -738,23 +739,27 @@ config:
- UNLOCK
- UNLOCKED
```
Or in a `.items` file:
```java
String MyLock "My Lock" { homekit="Lock"[SECURE="LOCK","LOCKED", UNSECURE="UNLOCK","UNLOCKED"] }
```
All accessories support the following characteristics that can be set via metadata or linked to a String item:
* Name (defaults to item's label)
* Manufacturer (defaults to "none")
* Model (defaults to "none")
* SerialNumber (defaults to item's name)
* FirmwareRevision (defaults to "none")
* HardwareRevision (defaults to not present)
- Name (defaults to item's label)
- Manufacturer (defaults to "none")
- Model (defaults to "none")
- SerialNumber (defaults to item's name)
- FirmwareRevision (defaults to "none")
- HardwareRevision (defaults to not present)
Note that even though these characteristics can be linked to an item, they are not dynamic and cannot be updated once the Home app reads their initial values.
All accessories also support the following optional characteristic that can be linked to a Switch item:
* Identify (receives `ON` command when the user wishes to identify the accessory)
- Identify (receives `ON` command when the user wishes to identify the accessory)
| Accessory Tag | Mandatory Characteristics | Optional Characteristics | Supported openHAB item types | Description | Configuration Options | Valid Enum Values |
|-----------------------------|-----------------------------|-----------------------------|------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------|
@ -1073,7 +1078,7 @@ In order to overcome this limitation, you can instruct openHAB to expose multipl
You will need to manually add each additional bridge in the Home app, since the QR Code in settings will only be for the primary bridge; however the same PIN is still used.
In order to assign a particular accessory to a different bridge, set the `instance` metadata parameter:
```
```java
Switch kitchen_light {homekit="Lighting" [instance=2]}
```
@ -1082,7 +1087,7 @@ If you reference an instance that doesn't exist, then that accessory won't be ex
For complex items, only the root group needs to be tagged for the specific instance:
```
```java
Group gSecuritySystem "Security System Group" {homekit="SecuritySystem" [instance=2]}
String security_current_state "Security Current State" (gSecuritySystem) {homekit="SecuritySystem.CurrentSecuritySystemState"}
String security_target_state "Security Target State" (gSecuritySystem) {homekit="SecuritySystem.TargetSecuritySystemState"}
@ -1109,14 +1114,14 @@ Depending on the openHAB installation method, you should modify `start.sh`, `sta
If you encounter any issues with the add-on and need support, it may be important to get detailed logs of your device's communication with openHAB.
In order to get logs from the underlying library used to implement the HomeKit protocol, enable trace logging using the following commands at [the console](https://www.openhab.org/docs/administration/console.html):
```
```shell
openhab> log:set TRACE io.github.hapjava
openhab> log:tail io.github.hapjava
```
In order to enable detailed logs of openHAB HomeKit binding
```
```shell
openhab> log:set TRACE org.openhab.io.homekit.internal
openhab> log:tail org.openhab.io.homekit.internal
```
@ -1159,12 +1164,12 @@ You can verify this with [Discovery DNS iOS app](https://apps.apple.com/us/app/d
There are various reasons this may happen.
Try the following:
* In [openhab-cli](https://www.openhab.org/docs/administration/console.html), run `openhab:homekit clearPairings`.
- In [openhab-cli](https://www.openhab.org/docs/administration/console.html), run `openhab:homekit clearPairings`.
Try again.
* In the HomeKit settings, change the port, setupId, and pin.
- In the HomeKit settings, change the port, setupId, and pin.
Save the settings, then re-open the settings so as to refresh the QR code.
Re-add the device.
* Remove HomeKit state in `${OPENHAB_USERDATA}/jsondb/homekit.json`, and HomeKit config in `${OPENHAB_USERDATA}/config/org/openhab/homekit.config`.
- Remove HomeKit state in `${OPENHAB_USERDATA}/jsondb/homekit.json`, and HomeKit config in `${OPENHAB_USERDATA}/config/org/openhab/homekit.config`.
Restart openHAB.
Reboot iPhone.
Try again.

View File

@ -9,16 +9,16 @@ This service is independent of the also available Hue binding!
Currently the following Hue functionality is supported:
* Lights: Maps to items
* Groups: Maps to group items
* Rooms: Maps to group items with a specific tag
* Scenes: Maps to rules (new rule engine) that are tagged with "scene"
* Rules: Maps to rules (new rule engine) that are tagged with "hueemulation_rule"
* Schedule: Maps to rules (new rule engine) that are tagged with "hueemulation_schedule"
- Lights: Maps to items
- Groups: Maps to group items
- Rooms: Maps to group items with a specific tag
- Scenes: Maps to rules (new rule engine) that are tagged with "scene"
- Rules: Maps to rules (new rule engine) that are tagged with "hueemulation_rule"
- Schedule: Maps to rules (new rule engine) that are tagged with "hueemulation_schedule"
You can create / modify and remove groups, rooms, scenes, rules and schedules from within Hue compatible devices and apps.
## Discovery:
## Discovery
As soon as the service is enabled, it will announce the presence of an (emulated) HUE bridge of the second generation (square bridge).
Hue bridges are using the Universal Plug and Play (UPnP) protocol for discovery.
@ -36,22 +36,22 @@ Group type items require the "Huelight" tag to be exposed as devices instead of
This service can emulate 3 different devices:
* An OSRAM SMART+ Plug,
* a dimmable white color Philips A19 bulb and
* an a Philips Gen 3 LCT010 extended color bulb.
- An OSRAM SMART+ Plug,
- a dimmable white color Philips A19 bulb and
- an a Philips Gen 3 LCT010 extended color bulb.
The exposed Hue-type depends on some criteria:
* If the item has the category "ColorLight": It will be exposed as a color bulb
* If the item has the category "Light": It will be exposed as a switch.
- If the item has the category "ColorLight": It will be exposed as a color bulb
- If the item has the category "Light": It will be exposed as a switch.
This initial type determination is overridden if the item is tagged.
The following default tags are setup:
* "Switchable": Item will be exposed as an OSRAM SMART+ Plug
* "Lighting": Item will be exposed as a dimmable white bulb
* "ColorLighting": Item will be exposed as a color bulb
- "Switchable": Item will be exposed as an OSRAM SMART+ Plug
- "Lighting": Item will be exposed as a dimmable white bulb
- "ColorLighting": Item will be exposed as a color bulb
It is the responsibility of binding developers to categories and default tag their available *Channels*, so that linked Items are automatically exposed with this service.
@ -70,14 +70,14 @@ The following configurations can be adjusted.
Pairing can be turned on and off:
```
```ini
org.openhab.hueemulation:pairingEnabled=false
```
You can define a pairing timeout in seconds.
After that timeout, the `pairingEnabled` is automatically set to `false`.
```
```ini
org.openhab.hueemulation:pairingTimeout=60
```
@ -86,7 +86,7 @@ Enable the following option in combination with pairing to create a new API key
Necessary for Amazon Echos and other devices where the API key cannot be reset.
After a new installation of openHAB or a configuration pruning the old API keys are gone but Amazon Echos will keep trying with their old, invalid keys.
```
```ini
org.openhab.hueemulation:createNewUserOnEveryEndpoint=false
```
@ -95,13 +95,13 @@ If the following option is enabled in combination with the pairing mode, the ser
This option resets automatically after pairing mode has been switched off by the timeout.
```
```ini
org.openhab.hueemulation:temporarilyEmulateV1bridge=false
```
Permanent V1 bridge emulation (no obvious reason to enable that):
```
```ini
org.openhab.hueemulation:permanentV1bridge=false
```
@ -113,7 +113,7 @@ Usually you do not want to set this option, but change the primary address confi
This option allows you to override what addresses are used for the announcement.
You can have multiple comma separated entries.
```
```ini
org.openhab.hueemulation:discoveryIp=192.168.1.100,::FFFF:A9DB:0D85
```
@ -122,7 +122,7 @@ You need to tell the service which item tag corresponds to which emulated bulb t
One of the comma separated tags must match for the item to be exposed.
Can be empty to match an item based on other criteria.
```
```ini
org.openhab.hueemulation:restrictToTagsSwitches=Switchable
org.openhab.hueemulation:restrictToTagsWhiteLights=Lighting
org.openhab.hueemulation:restrictToTagsColorLights=ColorLighting
@ -131,7 +131,7 @@ org.openhab.hueemulation:restrictToTagsColorLights=ColorLighting
The above default assignment means that every item that has the tag "Switchable" will be emulated as a Zigbee Switch.
If you want your switches to be exposed as lights instead (because your Amazon Echo does not support switches for example), you want to have:
```
```ini
org.openhab.hueemulation:restrictToTagsSwitches=NONE
org.openhab.hueemulation:restrictToTagsWhiteLights=Lighting,Switchable
org.openhab.hueemulation:restrictToTagsColorLights=ColorLighting
@ -140,7 +140,7 @@ org.openhab.hueemulation:restrictToTagsColorLights=ColorLighting
The service tries to expose as much items as possible (greedy), based on some criteria as explained in the section above.
If you want to exclude items, you need to tag them. Define the tags with the following option:
```
```ini
org.openhab.hueemulation:ignoreItemsWithTags=internal
```
@ -152,9 +152,9 @@ You want this tag for all items that are purely used for rules, as proxy items e
Some devices like Amazon Echo, Google Home and all Philips devices (TVs, Apps) expect a Hue bridge to run on port 80.
You must either
* port forward your openHAB installation to port 80,
- port forward your openHAB installation to port 80,
(`iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080`)
* install a reverse proxy on port 80, for example nginx with the following configuration:
- install a reverse proxy on port 80, for example nginx with the following configuration:
```
server {
@ -169,9 +169,9 @@ You must either
}
```
* or let openHAB run on port 80 (the entire java process requires elevated privileges).
- or let openHAB run on port 80 (the entire java process requires elevated privileges).
* For Amazon Echo the pairing process may fail due to a 302 response from openHAB, this can be resolved by using a reverse proxy to change the request url from `/api` to `/api/`, for example nginx with the following configuration:
- For Amazon Echo the pairing process may fail due to a 302 response from openHAB, this can be resolved by using a reverse proxy to change the request url from `/api` to `/api/`, for example nginx with the following configuration:
```
server {
@ -199,14 +199,14 @@ Please assign "ColorLighting" and "Switchable" to the `WhiteLights` type as expl
Also note that Amazon Echos are stubborn as.
You might need to remove all former recognized devices multiple times and perform the search via different Echos and also the web or mobile application.
It might help to (temporarly) lower the emulated bridge version in the configuration as described above,
It might help to (temporarly) lower the emulated bridge version in the configuration as described above.
## Text configuration example
The item label will be used as the Hue device name. Please be aware that textual defined items are generally a bad idea.
In this case renaming items in Hue compatible Apps will fail.
```
```java
Switch TestSwitch "Kitchen Switch" [ "Switchable" ] {channel="..."}
Color TestColorBulb "Bathroom" [ "ColorLighting" ] {channel="..."}
Dimmer TestDimmer "Hallway" [ "Lighting" ] {channel="..."}

View File

@ -2,8 +2,8 @@
The metrics service provides:
* an additional REST endpoint to retrieve openHAB core metrics from. This can be used as scrape target for pull-based monitoring systems like [Prometheus](https://prometheus.io/).
* optionally configurable services to export openHAB core metrics to push-based monitoring systems like [InfluxDB](https://www.influxdata.com/).
- an additional REST endpoint to retrieve openHAB core metrics from. This can be used as scrape target for pull-based monitoring systems like [Prometheus](https://prometheus.io/).
- optionally configurable services to export openHAB core metrics to push-based monitoring systems like [InfluxDB](https://www.influxdata.com/).
## Provided metrics

View File

@ -14,10 +14,10 @@ This integration compliments the NEEO binding by exposing a brain's devices to a
The openHAB NEEO Integration will provide the following:
* Automatic discovery of NEEO brains on the network and automatic registering of the openHAB as an SDK.
* A NEEO dashboard tile that will show the status of NEEO Brain connections and provide the ability to customize the mapping between openHAB things/item and NEEO device/capabilities.
* Discovery of openHAB things on the NEEO app.
* Full two-way communcation between openHAB and brain.
- Automatic discovery of NEEO brains on the network and automatic registering of the openHAB as an SDK.
- A NEEO dashboard tile that will show the status of NEEO Brain connections and provide the ability to customize the mapping between openHAB things/item and NEEO device/capabilities.
- Discovery of openHAB things on the NEEO app.
- Full two-way communcation between openHAB and brain.
Item changes in openHAB will appear in NEEO and vice-versa.

View File

@ -7,16 +7,16 @@ openHAB Cloud service hosted by the [openHAB Foundation](https://www.openhabfoun
The openHAB Cloud service (and thus the connector to it) is useful for different use cases:
* It allows remote access to local openHAB instances without having to expose ports to the Internet or to require a complex VPN setup.
* It serves as a connector to Firebase Cloud Messaging (FCM) for pushing notifications to mobile phone apps.
* It provides integrations with 3rd party services that require OAuth2 authentication, such as Amazon Alexa or Google Home applications.
- It allows remote access to local openHAB instances without having to expose ports to the Internet or to require a complex VPN setup.
- It serves as a connector to Firebase Cloud Messaging (FCM) for pushing notifications to mobile phone apps.
- It provides integrations with 3rd party services that require OAuth2 authentication, such as Amazon Alexa or Google Home applications.
## Installation via UI
* Open the openHAB web UI and login as an administrator.
* Click on Add-on Store, followed by System Integrations.
* Use the Install button to install the openHAB Cloud Connector.
* Register your session (https://myopenhab.org/) using UUID and Secret.
- Open the openHAB web UI and login as an administrator.
- Click on Add-on Store, followed by System Integrations.
- Use the Install button to install the openHAB Cloud Connector.
- Register your session (https://myopenhab.org/) using UUID and Secret.
## UUID and Secret
@ -57,7 +57,7 @@ This is also not required for remote access through the cloud service to functio
Alternatively, you can configure the settings in the file `conf/services/openhabcloud.cfg`:
```
```ini
############################## openHAB Cloud Connector #############################
# The URL of the openHAB Cloud service to connect to.
@ -134,8 +134,8 @@ To specify media attachments and actions, there is another variant of the `sendN
- `sendNotification(emailAddress, message, icon, tag, title, referenceId, onClickAction, mediaAttachmentUrl, actionButton1, actionButton2, actionButton3)`
- `sendBroadcastNotification(message, icon, tag, title, referenceId, onClickAction, mediaAttachmentUrl, actionButton1, actionButton2, actionButton3)`
The additional parameter for these variants have the following meaning:
- `tag` : A user supplied tag to group messages for removing using the `hideNotificationByTag` action or grouping messages when displayed in the app. This renames the `severity` parameter, both are functionally identical.
- `title`: The title of the notification. Defaults to "openHAB" inside the Android and iOS apps.
- `referenceId`: A user supplied id to both replace existing messages when pushed, and later remove messages with the `hideNotificationByReferenceId` actions.
@ -198,6 +198,7 @@ then
sendNotification("me@email.com", "Front door was opened!")
end
```
:::
::: tab JS

View File

@ -5,9 +5,9 @@ Query functionality is also fully supported.
Features:
* Writing/reading information to relational database systems
* Configurable database table names
* Automatic table creation
- Writing/reading information to relational database systems
- Configurable database table names
- Automatic table creation
## Disclaimer
@ -35,8 +35,8 @@ Please also note possible [Free Tier](https://aws.amazon.com/free/) benefits.
<!-- markdownlint-disable-next-line no-emphasis-as-heading -->
**Login to AWS web console**
* [Sign up](https://aws.amazon.com/) for Amazon AWS.
* Select the AWS region in the [AWS console](https://console.aws.amazon.com/) using [these instructions](https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/getting-started.html#select-region). Note the region identifier in the URL (e.g. `https://eu-west-1.console.aws.amazon.com/console/home?region=eu-west-1` means that region id is `eu-west-1`).
- [Sign up](https://aws.amazon.com/) for Amazon AWS.
- Select the AWS region in the [AWS console](https://console.aws.amazon.com/) using [these instructions](https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/getting-started.html#select-region). Note the region identifier in the URL (e.g. `https://eu-west-1.console.aws.amazon.com/console/home?region=eu-west-1` means that region id is `eu-west-1`).
<!-- markdownlint-disable-next-line no-emphasis-as-heading -->
**Create policy controlling permissions for AWS user**
@ -56,9 +56,8 @@ For users with old table schema, one can use pre-existing policy `AmazonDynamoDB
5. Open _JSON_ tab and input the below policy code.
6. Make the below the changes to the policy JSON `Resource` section
* Modify the AWS account id from `055251986555` to to the one you have on clipboard (see step 2 above)
* If you are on some other region than `eu-west-1`, change the entry accordingly
- Modify the AWS account id from `055251986555` to to the one you have on clipboard (see step 2 above)
- If you are on some other region than `eu-west-1`, change the entry accordingly
```json
{
@ -267,4 +266,3 @@ Eclipse instructions
```
The `--add-opens` parameter is necessary also with the local temporary DynamoDB server, otherwise the mockito will fail at runtime with (`java.base does not "opens java.lang" to unnamed module`).

View File

@ -265,9 +265,9 @@ Issues than can be identified and possibly fixed:
### For Developers
* Clearly separated source files for the database-specific part of openHAB logic.
* Code duplication by similar services is prevented.
* Integrating a new SQL and JDBC enabled database is fairly simple.
- Clearly separated source files for the database-specific part of openHAB logic.
- Code duplication by similar services is prevented.
- Integrating a new SQL and JDBC enabled database is fairly simple.
### Performance Tests
@ -282,13 +282,13 @@ Not necessarily representative of the performance you may experience.
| postgresql | 8.147 | 7.072 | 6.895 | - | ext. Server VM |
| sqlite | 2.406 | 1.249 | 1.137 | 0.28 MB | local embedded |
* Each test ran about 20 Times every 30 seconds.
* openHAB 1.x has ready started for about a Minute.
* the data in seconds for the evaluation are from the console output.
- Each test ran about 20 Times every 30 seconds.
- openHAB 1.x has ready started for about a Minute.
- the data in seconds for the evaluation are from the console output.
Used a script like this:
```
```java
var count = 0;
rule "DB STRESS TEST"
when

View File

@ -90,5 +90,5 @@ Please note: This profile is a one-way transformation, i.e. only values from a d
## Further Reading
* [Manual](http://man7.org/linux/man-pages/man1/date.1.html) and [tutorial](https://linode.com/docs/tools-reference/tools/use-the-date-command-in-linux/) for date.
* [Manual](http://man7.org/linux/man-pages/man1/numfmt.1.html) and [tutorial](https://www.pixelbeat.org/docs/numfmt.html) for numfmt.
- [Manual](http://man7.org/linux/man-pages/man1/date.1.html) and [tutorial](https://linode.com/docs/tools-reference/tools/use-the-date-command-in-linux/) for date.
- [Manual](http://man7.org/linux/man-pages/man1/numfmt.1.html) and [tutorial](https://www.pixelbeat.org/docs/numfmt.html) for numfmt.

View File

@ -64,6 +64,6 @@ commandTransformation = "JINJA:{\"msgtype\":\"m.text\", \"body\":\"{{value}}\"}"
## Further Reading
* Wikipedia on [Jinja](https://en.wikipedia.org/wiki/Jinja_(template_engine).
* Home assistant [discovery](https://www.home-assistant.io/docs/mqtt/discovery/).
* Home assistant [templating](https://www.home-assistant.io/docs/configuration/templating/).
- Wikipedia on [Jinja](https://en.wikipedia.org/wiki/Jinja_(template_engine).
- Home assistant [discovery](https://www.home-assistant.io/docs/mqtt/discovery/).
- Home assistant [templating](https://www.home-assistant.io/docs/configuration/templating/).

View File

@ -62,5 +62,5 @@ This profile is a one-way transformation; only values from a device toward the i
## Further Reading
* An extended [introduction](https://www.w3schools.com/js/js_json_intro.asp) can be found at W3School.
* As JsonPath transformation is based on [Jayway](https://github.com/json-path/JsonPath), using an [online validator](https://jsonpath.herokuapp.com/) which also uses Jayway will give the most similar results.
- An extended [introduction](https://www.w3schools.com/js/js_json_intro.asp) can be found at W3School.
- As JsonPath transformation is based on [Jayway](https://github.com/json-path/JsonPath), using an [online validator](https://jsonpath.herokuapp.com/) which also uses Jayway will give the most similar results.

View File

@ -48,13 +48,13 @@ A simple xpath query to fetch the Azimut value does not work as it does not addr
There are two ways to address the namespace.
* Simple path which may not work in complex XML.
* With full qualified path.
- Simple path which may not work in complex XML.
- With full qualified path.
The XPath
* `[name()='PTZStatus']/*[name()='AbsoluteHigh']/*[name()='azimuth']/`
* `/*[local-name()='PTZStatus' and namespace-uri()='http://www.hikvision.com/ver20/XMLSchema']/*[local-name()='AbsoluteHigh' and namespace-uri()='http://www.hikvision.com/ver20/XMLSchema']/*[local-name()='azimuth' and namespace-uri()='http://www.hikvision.com/ver20/XMLSchema']`
- `[name()='PTZStatus']/*[name()='AbsoluteHigh']/*[name()='azimuth']/`
- `/*[local-name()='PTZStatus' and namespace-uri()='http://www.hikvision.com/ver20/XMLSchema']/*[local-name()='AbsoluteHigh' and namespace-uri()='http://www.hikvision.com/ver20/XMLSchema']/*[local-name()='azimuth' and namespace-uri()='http://www.hikvision.com/ver20/XMLSchema']`
returns
@ -64,14 +64,14 @@ returns
### In Setup
**.items**
#### .items
```csv
```java
String Temperature_xml "Temperature [XPATH(/*[name()='PTZStatus']/*[name()='AbsoluteHigh']/*[name()='azimuth']/):%s °C]" {...}
Number Temperature "Temperature [%.1f °C]"
```
**.rules**
### .rules
```php
rule "Convert XML to Item Type Number"
@ -116,6 +116,6 @@ Please note: This profile is a one-way transformation, i.e. only values from a d
## Further Reading
* An [introduction](https://www.w3schools.com/xml/xpath_intro.asp) to XPath at W3School
* An informative explanation of [common mistakes](https://qxf2.com/blog/common-xpath-mistakes/).
* Online validation tools like [this](https://www.freeformatter.com/xpath-tester.html) to check the syntax.
- An [introduction](https://www.w3schools.com/xml/xpath_intro.asp) to XPath at W3School
- An informative explanation of [common mistakes](https://qxf2.com/blog/common-xpath-mistakes/).
- Online validation tools like [this](https://www.freeformatter.com/xpath-tester.html) to check the syntax.

View File

@ -9,9 +9,9 @@ To organize the various transformations one should use subfolders.
General transformation rule summary:
* The directive `xsl:output` defines how the output document should be structured.
* The directive `xsl:template` specifies matching attributes for the XML node to find.
* The `xsl:template` tag contains the rule which specifies what should be done.
- The directive `xsl:output` defines how the output document should be structured.
- The directive `xsl:template` specifies matching attributes for the XML node to find.
- The `xsl:template` tag contains the rule which specifies what should be done.
The Rule uses XPath to gather the XML node information.
For more information have a look at the [XPath transformation](https://docs.openhab.org/addons/transformations/xpath/readme.html) .
@ -31,9 +31,9 @@ A simple but complete XSLT transformation looks like in the following example, w
**transform/helloworld.xsl**
* `xsl:output`: transform incoming document into another XML-like document, without indentation.
* `xsl:template`: `match="/"` "any type of node", so the whole document.
* The `xsl` rule does `select` the node `/root/node` and extracts the `value-of` attribute `val`.
- `xsl:output`: transform incoming document into another XML-like document, without indentation.
- `xsl:template`: `match="/"` "any type of node", so the whole document.
- The `xsl` rule does `select` the node `/root/node` and extracts the `value-of` attribute `val`.
```xml
<?xml version='1.0' encoding='UTF-8'?>
@ -57,7 +57,7 @@ This example has a namespace defined, as you would find in real world applicatio
**input XML**
* The tag `<PTZStatus>` contains an attribute `xmlns=` which defines the namespace `http://www.hikvision.com/ver20/XMLSchema`.
- The tag `<PTZStatus>` contains an attribute `xmlns=` which defines the namespace `http://www.hikvision.com/ver20/XMLSchema`.
```xml
<?xml version="1.0" encoding="UTF-8"?>
@ -76,11 +76,11 @@ In the rule, the tag `<xsl:stylesheet>` has to have an attribute `xmlns:xsl="htt
This attribute has to be the same as the namespace for the input document.
In the rule each step traversed along the path to the next tag has to be prepended with the `xmlns` namespace, here defined as `h`.
* `xsl:output` transform incoming document into another XML-like document, no indentation, **without XML**.
* `xsl:template`: `match="/"` whole document.
* Full path to node `azimuth` reading out `date` attribute.
* Add a linebreak by setting `&#10;` as text.
* Search for node `azimuth` by prepending `//` and get the `text`.
- `xsl:output` transform incoming document into another XML-like document, no indentation, **without XML**.
- `xsl:template`: `match="/"` whole document.
- Full path to node `azimuth` reading out `date` attribute.
- Add a linebreak by setting `&#10;` as text.
- Search for node `azimuth` by prepending `//` and get the `text`.
```xml
<?xml version="1.0" encoding="UTF-8"?>
@ -120,7 +120,7 @@ Please note: This profile is a one-way transformation, i.e. only values from a d
## Further Reading
* Extended introduction and more [examples](https://en.wikipedia.org/wiki/XSLT#XSLT_examples) at Wikipedia.
* A good [introduction](https://www.w3schools.com/xml/xsl_intro.asp) and [tutorial](https://www.w3schools.com/xml/xsl_transformation.asp) at W3School.
* An informative [tutorial](https://www.ibm.com/developerworks/library/x-xsltmistakes/) of common mistakes.
* Online XSL transformer tools like [this](https://www.freeformatter.com/xsl-transformer.html) to check the syntax.
- Extended introduction and more [examples](https://en.wikipedia.org/wiki/XSLT#XSLT_examples) at Wikipedia.
- A good [introduction](https://www.w3schools.com/xml/xsl_intro.asp) and [tutorial](https://www.w3schools.com/xml/xsl_transformation.asp) at W3School.
- An informative [tutorial](https://www.ibm.com/developerworks/library/x-xsltmistakes/) of common mistakes.
- Online XSL transformer tools like [this](https://www.freeformatter.com/xsl-transformer.html) to check the syntax.

View File

@ -8,15 +8,15 @@ You can find pricing information on the [documentation page](https://cloud.googl
Before you can integrate this service with your Google Cloud Speech-to-Text, you must have a Google API Console project:
* Select or create a GCP project. [link](https://console.cloud.google.com/cloud-resource-manager)
* Make sure that billing is enabled for your project. [link](https://cloud.google.com/billing/docs/how-to/modify-project)
* Enable the Cloud Speech-to-Text API. [link](https://console.cloud.google.com/apis/dashboard)
* Set up authentication:
* Go to the "APIs & Services" -> "Credentials" page in the GCP Console and your project. [link](https://console.cloud.google.com/apis/credentials)
* From the "Create credentials" drop-down list, select "OAuth client ID".
* Select application type "Web application" and enter a name into the "Name" field.
* Add "https://www.google.com" to the "Authorized redirect URIs".
* Click Create. A pop-up appears, showing your "client ID" and "client secret".
- Select or create a GCP project. [link](https://console.cloud.google.com/cloud-resource-manager)
- Make sure that billing is enabled for your project. [link](https://cloud.google.com/billing/docs/how-to/modify-project)
- Enable the Cloud Speech-to-Text API. [link](https://console.cloud.google.com/apis/dashboard)
- Set up authentication:
- Go to the "APIs & Services" -> "Credentials" page in the GCP Console and your project. [link](https://console.cloud.google.com/apis/credentials)
- From the "Create credentials" drop-down list, select "OAuth client ID".
- Select application type "Web application" and enter a name into the "Name" field.
- Add "https://www.google.com" to the "Authorized redirect URIs".
- Click Create. A pop-up appears, showing your "client ID" and "client secret".
## Configuration
@ -24,9 +24,9 @@ Before you can integrate this service with your Google Cloud Speech-to-Text, you
Using your favorite configuration UI to edit **Settings / Other Services - Google Cloud Speech-to-Text** and set:
* **Client Id** - Google Cloud Platform OAuth 2.0-Client Id.
* **Client Secret** - Google Cloud Platform OAuth 2.0-Client Secret.
* **Authorization Code** - This code is used once for retrieving the Google Cloud Platform access and refresh tokens.
- **Client Id** - Google Cloud Platform OAuth 2.0-Client Id.
- **Client Secret** - Google Cloud Platform OAuth 2.0-Client Secret.
- **Authorization Code** - This code is used once for retrieving the Google Cloud Platform access and refresh tokens.
**Please go to your browser ...**
[https://accounts.google.com/o/oauth2/v2/auth?scope=https://www.googleapis.com/auth/cloud-platform&access_type=offline&prompt=consent&include_granted_scopes=true&response_type=code&redirect_uri=https://www.google.com&client_id=<clientId>](https://accounts.google.com/o/oauth2/v2/auth?scope=https://www.googleapis.com/auth/cloud-platform&access_type=offline&prompt=consent&include_granted_scopes=true&response_type=code&redirect_uri=https://www.google.com&client_id=<clientId>) (replace `<clientId>` by your Client Id)
**... to generate an authorization code and paste it here**.
@ -38,17 +38,17 @@ Using your favorite configuration UI to edit **Settings / Other Services - Googl
Using your favorite configuration UI to edit **Settings / Other Services - Google Cloud Speech-to-Text**:
* **Single Utterance Mode** - When enabled Google Cloud Platform is responsible for detecting when to stop listening after a single utterance. (Recommended)
* **Max Transcription Seconds** - Max seconds to wait to force stop the transcription.
* **Max Silence Seconds** - Only works when singleUtteranceMode is disabled, max seconds without getting new transcriptions to stop listening.
* **Refresh Supported Locales** - Try loading supported locales from the documentation page.
- **Single Utterance Mode** - When enabled Google Cloud Platform is responsible for detecting when to stop listening after a single utterance. (Recommended)
- **Max Transcription Seconds** - Max seconds to wait to force stop the transcription.
- **Max Silence Seconds** - Only works when singleUtteranceMode is disabled, max seconds without getting new transcriptions to stop listening.
- **Refresh Supported Locales** - Try loading supported locales from the documentation page.
### Messages Configuration
Using your favorite configuration UI to edit **Settings / Other Services - Google Cloud Speech-to-Text**:
* **No Results Message** - Message to be told when no results. (Empty for disabled)
* **Error Message** - Message to be told when an error has happened. (Empty for disabled)
- **No Results Message** - Message to be told when no results. (Empty for disabled)
- **Error Message** - Message to be told when an error has happened. (Empty for disabled)
### Configuration via a text file
@ -56,7 +56,7 @@ In case you would like to setup the service via a text file, create a new file i
Its contents should look similar to:
```
```ini
org.openhab.voice.googlestt:clientId=ID
org.openhab.voice.googlestt:clientSecret=SECRET
org.openhab.voice.googlestt:authcode=XXXXX
@ -72,12 +72,12 @@ org.openhab.voice.googlestt:errorMessage="Sorry, something went wrong"
You can setup your preferred default Speech-to-Text in the UI:
* Go to **Settings**.
* Edit **System Services - Voice**.
* Set **Google Cloud** as **Speech-to-Text**.
- Go to **Settings**.
- Edit **System Services - Voice**.
- Set **Google Cloud** as **Speech-to-Text**.
In case you would like to setup these settings via a text file, you can edit the file `runtime.cfg` in `$OPENHAB_ROOT/conf/services` and set the following entries:
```
```ini
org.openhab.voice:defaultSTT=googlestt
```

View File

@ -10,9 +10,9 @@ You can find pricing information on the [documentation page](https://cloud.googl
<!-- MarkdownTOC -->
* [Obtaining Credentials](#obtaining-credentials)
* [Configuration](#configuration)
* [Voice Configuration](#default-text-to-speech-and-voice-configuration)
- [Obtaining Credentials](#obtaining-credentials)
- [Configuration](#configuration)
- [Voice Configuration](#default-text-to-speech-and-voice-configuration)
<!-- /MarkdownTOC -->
@ -36,24 +36,24 @@ Before you can integrate this service with your Google Cloud Text-to-Speech, you
Using your favorite configuration UI to edit **Settings / Other Services - Google Cloud Text-to-Speech** and set:
* **Client Id** - Google Cloud Platform OAuth 2.0-Client Id.
* **Client Secret** - Google Cloud Platform OAuth 2.0-Client Secret.
* **Authorization Code** - This code is used once for retrieving the Google Cloud Platform access and refresh tokens.
- **Client Id** - Google Cloud Platform OAuth 2.0-Client Id.
- **Client Secret** - Google Cloud Platform OAuth 2.0-Client Secret.
- **Authorization Code** - This code is used once for retrieving the Google Cloud Platform access and refresh tokens.
1. Go to `OAuth consent screen` ([link](https://console.cloud.google.com/apis/credentials/consent)) and set the `publishing status` to `production` to activate the created project.
2. Wait a few minutes. The step before takes some time to go live. Sometimes it is necessary to wait a few hours, so you can try after some minutes, if it doesn't work, try again the next day.
3. Go to your browser and access the following URL to generate an authorization code
[https://accounts.google.com/o/oauth2/v2/auth?scope=https://www.googleapis.com/auth/cloud-platform&access_type=offline&prompt=consent&include_granted_scopes=true&response_type=code&redirect_uri=https://www.google.com&client_id=<clientId>](https://accounts.google.com/o/oauth2/v2/auth?scope=https://www.googleapis.com/auth/cloud-platform&access_type=offline&prompt=consent&include_granted_scopes=true&response_type=code&redirect_uri=https://www.google.com&client_id=CLIENTID) (replace `CLIENTID` at the end by your Client Id)
4. After your browser has been redirected to https://www.google.com, the authorization code will be set in the browser URL as value of the "code" URL query parameter (e.g. `https://www.google.com/?code=XXXXXXXXXX&scope=https://www.googleapis.com/auth/cloud-platform` --> `XXXXXXXXXX`)
5. After initial authorization, this code is not needed anymore. It is recommended to clear this configuration parameter afterwards.
* **Pitch** - The pitch of selected voice, up to 20 semitones.
* **Volume Gain** - The volume of the output between 16dB and -96dB.
* **Speaking Rate** - The speaking rate can be 4x faster or slower than the normal rate.
- **Pitch** - The pitch of selected voice, up to 20 semitones.
- **Volume Gain** - The volume of the output between 16dB and -96dB.
- **Speaking Rate** - The speaking rate can be 4x faster or slower than the normal rate.
In case you would like to setup the service via a text file, create a new file in `$OPENHAB_ROOT/conf/services` named `googletts.cfg`
Its contents should look similar to:
```
```ini
org.openhab.voice.googletts:clientId=ID
org.openhab.voice.googletts:clientSecret=SECRET
org.openhab.voice.googletts:authcode=XXXXX
@ -66,18 +66,20 @@ org.openhab.voice.googletts:speakingRate=1
You can setup your preferred default Text-to-Speech and default voice in the UI:
* Go to **Settings**.
* Edit **System Services - Voice**.
* Set **Google Cloud** as **Default Text-to-Speech**.
* Choose your preferred **Default Voice** for your setup.
- Go to **Settings**.
- Edit **System Services - Voice**.
- Set **Google Cloud** as **Default Text-to-Speech**.
- Choose your preferred **Default Voice** for your setup.
In case you would like to setup these settings via a text file, you can edit the file `runtime.cfg` in `$OPENHAB_ROOT/conf/services` and set the following entries:
```
```ini
org.openhab.voice:defaultTTS=googletts
org.openhab.voice:defaultVoice=googletts:XXX
```
You can see the available voices by entering `voice voices` in the karaf console
```shell
openhab> voice voices
...

View File

@ -39,14 +39,14 @@ mactts:Yuna Yuna (ko_KR)
You can setup your preferred default Text-to-Speech and default voice in the UI:
* Go to **Settings**.
* Edit **System Services - Voice**.
* Set **macOS TTS** as **Default Text-to-Speech**.
* Choose your preferred **Default Voice** for your setup.
- Go to **Settings**.
- Edit **System Services - Voice**.
- Set **macOS TTS** as **Default Text-to-Speech**.
- Choose your preferred **Default Voice** for your setup.
In case you would like to setup these settings via a text file, you can edit the file `runtime.cfg` in `$OPENHAB_ROOT/conf/services` and set the following entries:
```
```ini
org.openhab.voice:defaultTTS=mactts
org.openhab.voice:defaultVoice=mactts:Alex
```

View File

@ -23,14 +23,14 @@ marytts:bits1hsmm bits1-hsmm (de)
You can setup your preferred default Text-to-Speech and default voice in the UI:
* Go to **Settings**.
* Edit **System Services - Voice**.
* Set **MaryTTS** as **Default Text-to-Speech**.
* Choose your preferred **Default Voice** for your setup.
- Go to **Settings**.
- Edit **System Services - Voice**.
- Set **MaryTTS** as **Default Text-to-Speech**.
- Choose your preferred **Default Voice** for your setup.
In case you would like to setup these settings via a text file, you can edit the file `runtime.cfg` in `$OPENHAB_ROOT/conf/services` and set the following entries:
```
```ini
org.openhab.voice:defaultTTS=marytts
org.openhab.voice:defaultVoice=marytts:cmuslthsmm
```
@ -47,4 +47,3 @@ The log messages of Mary TTS are not bundled with the openHAB log messages in th
## Caching
The MaryTTS service uses the openHAB TTS cache to cache audio files produced from the most recent queries in order to reduce traffic, improve performance and reduce number of requests.

View File

@ -16,16 +16,16 @@ It supports a subset of SSML, and if you want to use it, be sure to start your t
Using your favorite configuration UI to edit **Settings / Other Services - Mimic Text-to-Speech** and set:
* **url** - Mimic URL. Default to `http://localhost:59125`
* **speakingRate** - Controls how fast the voice speaks the text. A value of 1 is the speed of the training dataset. Less than 1 is faster, and more than 1 is slower.
* **audioVolatility** - The amount of noise added to the generated audio (0-1). Can help mask audio artifacts from the voice model. Multi-speaker models tend to sound better with a lower amount of noise than single speaker models.
* **phonemeVolatility** - The amount of noise used to generate phoneme durations (0-1). Allows for variable speaking cadance, with a value closer to 1 being more variable. Multi-speaker models tend to sound better with a lower amount of phoneme variability than single speaker models.
- **url** - Mimic URL. Default to `http://localhost:59125`
- **speakingRate** - Controls how fast the voice speaks the text. A value of 1 is the speed of the training dataset. Less than 1 is faster, and more than 1 is slower.
- **audioVolatility** - The amount of noise added to the generated audio (0-1). Can help mask audio artifacts from the voice model. Multi-speaker models tend to sound better with a lower amount of noise than single speaker models.
- **phonemeVolatility** - The amount of noise used to generate phoneme durations (0-1). Allows for variable speaking cadance, with a value closer to 1 being more variable. Multi-speaker models tend to sound better with a lower amount of phoneme variability than single speaker models.
In case you would like to setup the service via a text file, create a new file in `$OPENHAB_ROOT/conf/services` named `mimictts.cfg`
Its contents should look similar to:
```
```ini
org.openhab.voice.mimictts:url=http://localhost:59125
org.openhab.voice.mimictts:speakingRate=1
org.openhab.voice.mimictts:audioVolatility=0.667
@ -36,14 +36,14 @@ org.openhab.voice.mimictts:phonemeVolatility=0.8
You can setup your preferred default Text-to-Speech and default voice in the UI:
* Go to **Settings**.
* Edit **System Services - Voice**.
* Set **Mimic** as **Default Text-to-Speech**.
* Choose your preferred **Default Voice** for your setup.
- Go to **Settings**.
- Edit **System Services - Voice**.
- Set **Mimic** as **Default Text-to-Speech**.
- Choose your preferred **Default Voice** for your setup.
In case you would like to setup these settings via a text file, you can edit the file `runtime.cfg` in `$OPENHAB_ROOT/conf/services` and set the following entries:
```
```ini
org.openhab.voice:defaultTTS=mimictts
org.openhab.voice:defaultVoice=mimictts:fr_FR_siwis_low
```

View File

@ -5,7 +5,7 @@ The Pico Text-to-Speech (TTS) service uses the TTS binary from SVOX for producin
You manually need to install the pico2wave binary in order for this service to work correctly. You can,
e.g., install it with apt-get on an Ubuntu system:
```
```bash
sudo apt-get install libttspico-utils
```
@ -34,14 +34,14 @@ Italian (it-IT)
You can setup your preferred default Text-to-Speech and default voice in the UI:
* Go to **Settings**.
* Edit **System Services - Voice**.
* Set **PicoTTS** as **Default Text-to-Speech**.
* Choose your preferred **Default Voice** for your setup.
- Go to **Settings**.
- Edit **System Services - Voice**.
- Set **PicoTTS** as **Default Text-to-Speech**.
- Choose your preferred **Default Voice** for your setup.
In case you would like to setup these settings via a text file, you can edit the file `runtime.cfg` in `$OPENHAB_ROOT/conf/services` and set the following entries:
```
```ini
org.openhab.voice:defaultTTS=picotts
org.openhab.voice:defaultVoice=picotts:frFR
```

View File

@ -7,9 +7,9 @@ This voice service allows you to use the open source library [Piper](https://git
The add-on is compatible with the following platforms:
* linux (armv7l, aarch64, x86_64, min GLIBC version 2.31)
* macOS (x86_64 min version 11.0, aarch64 min version 13.0)
* win64 (x86_64 min version Windows 10).
- linux (armv7l, aarch64, x86_64, min GLIBC version 2.31)
- macOS (x86_64 min version 11.0, aarch64 min version 13.0)
- win64 (x86_64 min version Windows 10).
## Configuration
@ -37,7 +37,7 @@ Models that support multiples speakers are shown as multiple voices in openHAB.
Use your favorite configuration UI to edit **Settings / Other Services - Piper Text-to-Speech**:
* **Preload model** - Keep last voice model used loaded in memory, these way it can be reused on next execution if the voice option matches.
- **Preload model** - Keep last voice model used loaded in memory, these way it can be reused on next execution if the voice option matches.
### Configuration via a text file
@ -53,10 +53,10 @@ org.openhab.voice.pipertts:preloadModel=true
You can setup your preferred default Speech-to-Text in the UI:
* Go to **Settings**.
* Edit **System Services - Voice**.
* Set **Piper** as **Text-to-Speech**.
* Set your **Default Voice**.
- Go to **Settings**.
- Edit **System Services - Voice**.
- Set **Piper** as **Text-to-Speech**.
- Set your **Default Voice**.
In case you would like to set up these settings via a text file, you can edit the file `runtime.cfg` in `$OPENHAB_ROOT/conf/services` and set the following entries:

View File

@ -10,11 +10,11 @@ You can find pricing information on the [documentation page](https://aws.amazon.
## Obtaining Credentials
* Sign up for Amazon Web Services (AWS). [link](https://portal.aws.amazon.com/billing/signup)
- Sign up for Amazon Web Services (AWS). [link](https://portal.aws.amazon.com/billing/signup)
When you sign up for AWS, your account is automatically signed up for all services in AWS, including Amazon Polly.
* Create an IAM User. [link](https://docs.aws.amazon.com/polly/latest/dg/setting-up.html)
- Create an IAM User. [link](https://docs.aws.amazon.com/polly/latest/dg/setting-up.html)
Services in AWS, such as Amazon Polly, require that you provide credentials when you access them so that the service can determine whether you have permissions to access the resources owned by that service.
Within the AWS console, you can create access keys for your AWS account to access the Polly API.
@ -25,10 +25,10 @@ To use the service you will need the **access key**, **secret key** and **server
The following settings can be edited in UI (**Settings / Other Services - Polly Text-to-Speech**):
* **Access Key** - The AWS credentials access key (required).
* **Secret Key** - The AWS credentials secret key (required).
* **Service Region** - The service region used for accessing Polly (required). To reduce latency select the region closest to you. E.g. "eu-west-1" (see [regions](https://docs.aws.amazon.com/general/latest/gr/rande.html#pol_region))
* **Audio Format** - Allows for overriding the system default audio format.
- **Access Key** - The AWS credentials access key (required).
- **Secret Key** - The AWS credentials secret key (required).
- **Service Region** - The service region used for accessing Polly (required). To reduce latency select the region closest to you. E.g. "eu-west-1" (see [regions](https://docs.aws.amazon.com/general/latest/gr/rande.html#pol_region))
- **Audio Format** - Allows for overriding the system default audio format.
Use "default" to select the system default audio format.
The default audio format can be overriden with the value "mp3" or "ogg".
@ -37,7 +37,7 @@ In case you would like to setup the service via a text file, create a new file i
Its contents should look similar to:
```
```ini
org.openhab.voice.pollytts:accessKey=ACCESS_KEY
org.openhab.voice.pollytts:secretKey=SECRET_KEY
org.openhab.voice.pollytts:serviceRegion=eu-west-1
@ -48,14 +48,14 @@ org.openhab.voice.pollytts:audioFormat=default
You can setup your preferred default Text-to-Speech and default voice in the UI:
* Go to **Settings**.
* Edit **System Services - Voice**.
* Set **PollyTTS** as **Default Text-to-Speech**.
* Choose your preferred **Default Voice** for your setup.
- Go to **Settings**.
- Edit **System Services - Voice**.
- Set **PollyTTS** as **Default Text-to-Speech**.
- Choose your preferred **Default Voice** for your setup.
In case you would like to setup these settings via a text file, you can edit the file `runtime.cfg` in `$OPENHAB_ROOT/conf/services` and set the following entries:
```
```ini
org.openhab.voice:defaultTTS=pollytts
org.openhab.voice:defaultVoice=pollytts:Joanne
```
@ -66,7 +66,7 @@ The PolyTTS service uses the openHAB TTS cache to cache audio files produced fro
## Rule Examples
```
```java
say("Hello there")
say("Hello there", "pollytts:Joanne", "enhancedjavasound")
say("" + item.state, "pollytts:Joey", "enhancedjavasound")

View File

@ -29,13 +29,13 @@ https://api.voicerss.org/?key=API_KEY&hl=de-de&f=44khz_16bit_mono&src=Hallo%20We
The following settings can be edited in UI (**Settings / Other Services - VoiceRSS Text-to-Speech**):
* **VoiceRSS API Key** - The API Key to get access to https://www.voicerss.org.
- **VoiceRSS API Key** - The API Key to get access to https://www.voicerss.org.
In case you would like to setup the service via a text file, create a new file in `$OPENHAB_ROOT/conf/services` named `voicerss.cfg`
Its contents should look similar to:
```
```ini
org.openhab.voice.voicerss:apiKey=1234567890
```
@ -43,115 +43,115 @@ org.openhab.voice.voicerss:apiKey=1234567890
It supports the following voices (depending on language):
* Oda (Arabic - Egypt)
* Salim (Arabic - Saudi Arabia)
* Dimo (Bulgarian)
* Rut (Catalan)
* Luli (Chinese - China)
* Shu (Chinese - China)
* Chow (Chinese - China)
* Wang (Chinese - China)
* Jia (Chinese - Hong Kong)
* Xia (Chinese - Hong Kong)
* Chen (Chinese - Hong Kong)
* Akemi (Chinese - Taiwan)
* Lin (Chinese - Taiwan)
* Lee (Chinese - Taiwan)
* Nikola (Croatian)
* Josef (Czech)
* Freja (Danish)
* Daan (Dutch - Belgium)
* Lotte (Dutch - Netherlands)
* Bram (Dutch - Netherlands)
* Zoe (English - Australia)
* Isla (English - Australia)
* Evie (English - Australia)
* Jack (English - Australia)
* Rose (English - Canada)
* Clara (English - Canada)
* Emma (English - Canada)
* Mason (English - Canada)
* Alice (English - Great Britain)
* Nancy (English - Great Britain)
* Lily (English - Great Britain)
* Harry (English - Great Britain)
* Eka (English - India)
* Jai (English - India)
* Ajit (English - India)
* Oran (English - Ireland)
* Linda (English - United States)
* Amy (English - United States)
* Mary (English - United States)
* John (English - United States)
* Mike (English - United States)
* Aada (Finnish)
* Emile (French - Canada)
* Olivia (French - Canada)
* Logan (French - Canada)
* Felix (French - Canada)
* Bette (French - France)
* Iva (French - France)
* Zola (French - France)
* Axel (French - France)
* Theo (French - Switzerland)
* Lukas (German - Austria)
* Hanna (German - Germany)
* Lina (German - Germany)
* Jonas (German - Germany)
* Tim (German - Switzerland)
* Neo (Greek)
* Rami (Hebrew)
* Puja (Hindi)
* Kabir (Hindi)
* Mate (Hungarian)
* Intan (Indonesian)
* Bria (Italian)
* Mia (Italian)
* Pietro (Italian)
* Hina (Japanese)
* Airi (Japanese)
* Fumi (Japanese)
* Akira (Japanese)
* Nari (Korean)
* Aqil (Malay)
* Marte (Norwegian)
* Erik (Norwegian)
* Julia (Polish)
* Jan (Polish)
* Marcia (Portuguese - Brazil)
* Ligia (Portuguese - Brazil)
* Yara (Portuguese - Brazil)
* Dinis (Portuguese - Brazil)
* Leonor (Portuguese - Portugal)
* Doru (Romanian)
* Olga (Russian)
* Marina (Russian)
* Peter (Russian)
* Beda (Slovak)
* Vid (Slovenian)
* Juana (Spanish - Mexico)
* Silvia (Spanish - Mexico)
* Teresa (Spanish - Mexico)
* Jose (Spanish - Mexico)
* Camila (Spanish - Spain)
* Sofia (Spanish - Spain)
* Luna (Spanish - Spain)
* Diego (Spanish - Spain)
* Molly (Swedish)
* Hugo (Swedish)
* Sai (Tamil)
* Ukrit (Thai)
* Omer (Turkish)
* Chi (Vietnamese)
- Oda (Arabic - Egypt)
- Salim (Arabic - Saudi Arabia)
- Dimo (Bulgarian)
- Rut (Catalan)
- Luli (Chinese - China)
- Shu (Chinese - China)
- Chow (Chinese - China)
- Wang (Chinese - China)
- Jia (Chinese - Hong Kong)
- Xia (Chinese - Hong Kong)
- Chen (Chinese - Hong Kong)
- Akemi (Chinese - Taiwan)
- Lin (Chinese - Taiwan)
- Lee (Chinese - Taiwan)
- Nikola (Croatian)
- Josef (Czech)
- Freja (Danish)
- Daan (Dutch - Belgium)
- Lotte (Dutch - Netherlands)
- Bram (Dutch - Netherlands)
- Zoe (English - Australia)
- Isla (English - Australia)
- Evie (English - Australia)
- Jack (English - Australia)
- Rose (English - Canada)
- Clara (English - Canada)
- Emma (English - Canada)
- Mason (English - Canada)
- Alice (English - Great Britain)
- Nancy (English - Great Britain)
- Lily (English - Great Britain)
- Harry (English - Great Britain)
- Eka (English - India)
- Jai (English - India)
- Ajit (English - India)
- Oran (English - Ireland)
- Linda (English - United States)
- Amy (English - United States)
- Mary (English - United States)
- John (English - United States)
- Mike (English - United States)
- Aada (Finnish)
- Emile (French - Canada)
- Olivia (French - Canada)
- Logan (French - Canada)
- Felix (French - Canada)
- Bette (French - France)
- Iva (French - France)
- Zola (French - France)
- Axel (French - France)
- Theo (French - Switzerland)
- Lukas (German - Austria)
- Hanna (German - Germany)
- Lina (German - Germany)
- Jonas (German - Germany)
- Tim (German - Switzerland)
- Neo (Greek)
- Rami (Hebrew)
- Puja (Hindi)
- Kabir (Hindi)
- Mate (Hungarian)
- Intan (Indonesian)
- Bria (Italian)
- Mia (Italian)
- Pietro (Italian)
- Hina (Japanese)
- Airi (Japanese)
- Fumi (Japanese)
- Akira (Japanese)
- Nari (Korean)
- Aqil (Malay)
- Marte (Norwegian)
- Erik (Norwegian)
- Julia (Polish)
- Jan (Polish)
- Marcia (Portuguese - Brazil)
- Ligia (Portuguese - Brazil)
- Yara (Portuguese - Brazil)
- Dinis (Portuguese - Brazil)
- Leonor (Portuguese - Portugal)
- Doru (Romanian)
- Olga (Russian)
- Marina (Russian)
- Peter (Russian)
- Beda (Slovak)
- Vid (Slovenian)
- Juana (Spanish - Mexico)
- Silvia (Spanish - Mexico)
- Teresa (Spanish - Mexico)
- Jose (Spanish - Mexico)
- Camila (Spanish - Spain)
- Sofia (Spanish - Spain)
- Luna (Spanish - Spain)
- Diego (Spanish - Spain)
- Molly (Swedish)
- Hugo (Swedish)
- Sai (Tamil)
- Ukrit (Thai)
- Omer (Turkish)
- Chi (Vietnamese)
### Default Text-to-Speech and Voice Configuration
You can setup your preferred default Text-to-Speech and default voice in the UI:
* Go to **Settings**.
* Edit **System Services - Voice**.
* Set **VoiceRSS** as **Default Text-to-Speech**.
* Choose your preferred **Default Voice** for your setup.
- Go to **Settings**.
- Edit **System Services - Voice**.
- Set **VoiceRSS** as **Default Text-to-Speech**.
- Choose your preferred **Default Voice** for your setup.
In case you would like to setup these settings via a text file, you can edit the file `runtime.cfg` in `$OPENHAB_ROOT/conf/services` and set the following entries:

View File

@ -11,11 +11,11 @@ More to come.
This add-on uses an underling binary to work.
The following platforms are supported:
* linux-aarch64
* linux-armv7l
* linux-x86_64
* osx
* win64
- linux-aarch64
- linux-armv7l
- linux-x86_64
- osx
- win64
**On Linux this binary requires the package libatomic to be installed (apt install libatomic1).**
@ -31,17 +31,17 @@ You should unzip the contained folder into '\<openHAB userdata\>/vosk/' and rena
Use your favorite configuration UI to edit **Settings / Other Services - Vosk Speech-to-Text**:
* **Preload Model** - Keep language model loaded.
* **Single Utterance Mode** - When enabled recognition stops listening after a single utterance.
* **Max Transcription Seconds** - Max seconds to wait to force stop the transcription.
* **Max Silence Seconds** - Only works when singleUtteranceMode is disabled, max seconds without getting new transcriptions to stop listening.
- **Preload Model** - Keep language model loaded.
- **Single Utterance Mode** - When enabled recognition stops listening after a single utterance.
- **Max Transcription Seconds** - Max seconds to wait to force stop the transcription.
- **Max Silence Seconds** - Only works when singleUtteranceMode is disabled, max seconds without getting new transcriptions to stop listening.
### Messages Configuration
Use your favorite configuration UI to edit **Settings / Other Services - Vosk Speech-to-Text**:
* **No Results Message** - Message to be told when no results.
* **Error Message** - Message to be told when an error has happened.
- **No Results Message** - Message to be told when no results.
- **Error Message** - Message to be told when an error has happened.
### Configuration via a text file
@ -62,12 +62,12 @@ org.openhab.voice.voskstt:errorMessage="Sorry, something went wrong"
You can setup your preferred default Speech-to-Text in the UI:
* Go to **Settings**.
* Edit **System Services - Voice**.
* Set **Vosk** as **Speech-to-Text**.
- Go to **Settings**.
- Edit **System Services - Voice**.
- Set **Vosk** as **Speech-to-Text**.
In case you would like to setup these settings via a text file, you can edit the file `runtime.cfg` in `$OPENHAB_ROOT/conf/services` and set the following entries:
```
```ini
org.openhab.voice:defaultSTT=voskstt
```

View File

@ -8,8 +8,8 @@ You can find pricing information on [this page](https://www.ibm.com/cloud/watson
Before you can use this add-on, you should create a Speech-to-Text instance in the IBM Cloud service.
* Go to the following [link](https://cloud.ibm.com/catalog/services/speech-to-text) and create the instance in your desired region.
* After the instance is created you should be able to view its url and api key.
- Go to the following [link](https://cloud.ibm.com/catalog/services/speech-to-text) and create the instance in your desired region.
- After the instance is created you should be able to view its url and api key.
## Configuration
@ -17,22 +17,22 @@ Before you can use this add-on, you should create a Speech-to-Text instance in t
Use your favorite configuration UI to edit **Settings / Other Services - IBM Watson Speech-to-Text** and set:
* **Api Key** - Api key for Speech-to-Text instance created on IBM Cloud.
* **Instance Url** - Url for Speech-to-Text instance created on IBM Cloud.
- **Api Key** - Api key for Speech-to-Text instance created on IBM Cloud.
- **Instance Url** - Url for Speech-to-Text instance created on IBM Cloud.
### Speech to Text Configuration
Use your favorite configuration UI to edit **Settings / Other Services - IBM Watson Speech-to-Text**:
* **Prefer Multimedia Model** - Prefer multimedia to telephony [models](https://cloud.ibm.com/docs/speech-to-text?topic=speech-to-text-models-ng). Multimedia models are intended for audio that has a minimum sampling rate of 16 kHz, while telephony models are intended for audio that has a minimum sampling rate of 8 kHz.
* **Background Audio Suppression** - Use the parameter to suppress side conversations or background noise.
* **Speech Detector Sensitivity** - Use the parameter to suppress word insertions from music, coughing, and other non-speech events.
* **Single Utterance Mode** - When enabled recognition stops listening after a single utterance.
* **Max Silence Seconds** - The time in seconds after which, if only silence (no speech) is detected in the audio, the connection is closed.
* **Opt Out Logging** - By default, all IBM Watson™ services log requests and their results. Logging is done only to improve the services for future users. The logged data is not shared or made public.
* **No Results Message** - Message to be told when no results.
* **Smart Formatting** - If true, the service converts dates, times, series of digits and numbers, phone numbers, currency values, and internet addresses into more readable. (Not available for all locales)
* **Redaction** - If true, the service redacts, or masks, numeric data from final transcripts. (Not available for all locales)
- **Prefer Multimedia Model** - Prefer multimedia to telephony [models](https://cloud.ibm.com/docs/speech-to-text?topic=speech-to-text-models-ng). Multimedia models are intended for audio that has a minimum sampling rate of 16 kHz, while telephony models are intended for audio that has a minimum sampling rate of 8 kHz.
- **Background Audio Suppression** - Use the parameter to suppress side conversations or background noise.
- **Speech Detector Sensitivity** - Use the parameter to suppress word insertions from music, coughing, and other non-speech events.
- **Single Utterance Mode** - When enabled recognition stops listening after a single utterance.
- **Max Silence Seconds** - The time in seconds after which, if only silence (no speech) is detected in the audio, the connection is closed.
- **Opt Out Logging** - By default, all IBM Watson™ services log requests and their results. Logging is done only to improve the services for future users. The logged data is not shared or made public.
- **No Results Message** - Message to be told when no results.
- **Smart Formatting** - If true, the service converts dates, times, series of digits and numbers, phone numbers, currency values, and internet addresses into more readable. (Not available for all locales)
- **Redaction** - If true, the service redacts, or masks, numeric data from final transcripts. (Not available for all locales)
### Configuration via a text file
@ -40,7 +40,7 @@ In case you would like to setup the service via a text file, create a new file i
Its contents should look similar to:
```
```ini
org.openhab.voice.watsonstt:apiKey=******
org.openhab.voice.watsonstt:instanceUrl=https://api.***.speech-to-text.watson.cloud.ibm.com/instances/*****
org.openhab.voice.watsonstt:backgroundAudioSuppression=0.5
@ -58,12 +58,12 @@ org.openhab.voice.watsonstt:errorMessage="Sorry, something went wrong"
You can setup your preferred default Speech-to-Text in the UI:
* Go to **Settings**.
* Edit **System Services - Voice**.
* Set **Watson** as **Speech-to-Text**.
- Go to **Settings**.
- Edit **System Services - Voice**.
- Set **Watson** as **Speech-to-Text**.
In case you would like to setup these settings via a text file, you can edit the file `runtime.cfg` in `$OPENHAB_ROOT/conf/services` and set the following entries:
```
```ini
org.openhab.voice:defaultSTT=watsonstt
```

View File

@ -22,9 +22,9 @@ You can find here the used [whisper.cpp Java wrapper](https://github.com/GiviMAD
The following platforms are supported:
* Windows10 x86_64
* Debian GLIBC x86_64/arm64 (min GLIBC version 2.31 / min Debian version Focal)
* macOS x86_64/arm64 (min version v11.0)
- Windows10 x86_64
- Debian GLIBC x86_64/arm64 (min GLIBC version 2.31 / min Debian version Focal)
- macOS x86_64/arm64 (min version v11.0)
The native binaries for those platforms are included in this add-on provided with the openHAB distribution.
@ -58,8 +58,8 @@ 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.
@ -108,49 +108,48 @@ Use your favorite configuration UI to edit the Whisper settings:
General options.
* **Model Name** - Model name. The 'ggml-' prefix and '.bin' extension are optional here but required on the filename. (ex: tiny.en -> ggml-tiny.en.bin)
* **Preload Model** - Keep whisper model loaded.
* **Single Utterance Mode** - When enabled recognition stops listening after a single utterance.
* **Min Transcription Seconds** - Forces min audio duration passed to whisper, in seconds.
* **Max Transcription Seconds** - Max seconds for force trigger the transcription, without wait for detect silence.
* **Initial Silence Seconds** - Max seconds without any voice activity to abort the transcription.
* **Max Silence Seconds** - Max consecutive silence seconds to trigger the transcription.
* **Remove Silence** - Remove start and end silence from the audio to transcribe.
- **Model Name** - Model name. The 'ggml-' prefix and '.bin' extension are optional here but required on the filename. (ex: tiny.en -> ggml-tiny.en.bin)
- **Preload Model** - Keep whisper model loaded.
- **Single Utterance Mode** - When enabled recognition stops listening after a single utterance.
- **Min Transcription Seconds** - Forces min audio duration passed to whisper, in seconds.
- **Max Transcription Seconds** - Max seconds for force trigger the transcription, without wait for detect silence.
- **Initial Silence Seconds** - Max seconds without any voice activity to abort the transcription.
- **Max Silence Seconds** - Max consecutive silence seconds to trigger the transcription.
- **Remove Silence** - Remove start and end silence from the audio to transcribe.
### Voice Activity Detection Configuration
Configure VAD options.
* **Audio Step** - Audio processing step in seconds for the voice activity detection.
* **Voice Activity Detection Mode** - Selected VAD Mode.
* **Voice Activity Detection Sensitivity** - Percentage in range 0-1 of voice activity in one second to consider it as voice.
* **Voice Activity Detection Step** - VAD detector internal step in ms (only allows 10, 20 or 30). (Audio Step / Voice Activity Detection Step = number of vad executions per audio step).
- **Audio Step** - Audio processing step in seconds for the voice activity detection.
- **Voice Activity Detection Mode** - Selected VAD Mode.
- **Voice Activity Detection Sensitivity** - Percentage in range 0-1 of voice activity in one second to consider it as voice.
- **Voice Activity Detection Step** - VAD detector internal step in ms (only allows 10, 20 or 30). (Audio Step / Voice Activity Detection Step = number of vad executions per audio step).
### Whisper Configuration
Configure whisper options.
* **Threads** - Number of threads used by whisper. (0 to use host max threads)
* **Sampling Strategy** - Sampling strategy used.
* **Beam Size** - Beam Size configuration for sampling strategy Bean Search.
* **Greedy Best Of** - Best Of configuration for sampling strategy Greedy.
* **Speed Up** - Speed up audio by x2. (Reduced accuracy)
* **Audio Context** - Overwrite the audio context size. (0 to use whisper default context size)
* **Temperature** - Temperature threshold.
* **Initial Prompt** - Initial prompt for whisper.
* **OpenVINO Device** - Initialize OpenVINO encoder. (built-in binaries do not support OpenVINO, this has no effect)
* **Use GPU** - Enables GPU usage. (built-in binaries do not support GPU usage, this has no effect)
- **Threads** - Number of threads used by whisper. (0 to use host max threads)
- **Sampling Strategy** - Sampling strategy used.
- **Beam Size** - Beam Size configuration for sampling strategy Bean Search.
- **Greedy Best Of** - Best Of configuration for sampling strategy Greedy.
- **Speed Up** - Speed up audio by x2. (Reduced accuracy)
- **Audio Context** - Overwrite the audio context size. (0 to use whisper default context size)
- **Temperature** - Temperature threshold.
- **Initial Prompt** - Initial prompt for whisper.
- **OpenVINO Device** - Initialize OpenVINO encoder. (built-in binaries do not support OpenVINO, this has no effect)
- **Use GPU** - Enables GPU usage. (built-in binaries do not support GPU usage, this has no effect)
### Grammar Configuration
Configure the grammar options.
* **Grammar** - Grammar to use in GBNF format (whisper.cpp BNF variant).
* **Use Grammar** - Enable grammar usage.
* **Grammar penalty** - Penalty for non grammar tokens.
#### Grammar Example:
- **Grammar** - Grammar to use in GBNF format (whisper.cpp BNF variant).
- **Use Grammar** - Enable grammar usage.
- **Grammar penalty** - Penalty for non grammar tokens.
#### Grammar Example
```gbnf
# Grammar should define a root expression that should end with a dot.
@ -183,14 +182,14 @@ timer ::= [0-9]+
### Messages Configuration
* **No Results Message** - Message to be told on no results.
* **Error Message** - Message to be told on exception.
- **No Results Message** - Message to be told on no results.
- **Error Message** - Message to be told on exception.
### Developer Configuration
* **Create WAV Record** - Create wav audio file on each whisper execution, also creates a '.prop' file containing the transcription.
* **Record Sample Format** - Change the record sample format. (allows i16 or f32)
* **Enable Whisper Log** - Emit whisper.cpp library logs as add-on debug logs.
- **Create WAV Record** - Create wav audio file on each whisper execution, also creates a '.prop' file containing the transcription.
- **Record Sample Format** - Change the record sample format. (allows i16 or f32)
- **Enable Whisper Log** - Emit whisper.cpp library logs as add-on debug logs.
You can find [here](https://github.com/givimad/whisper-finetune-oh) information on how to fine-tune a model using the generated records.
@ -200,7 +199,7 @@ In case you would like to set up the service via a text file, create a new file
Its contents should look similar to:
```
```ini
org.openhab.voice.whisperstt:modelName=tiny
org.openhab.voice.whisperstt:initSilenceSeconds=0.3
org.openhab.voice.whisperstt:removeSilence=true
@ -237,12 +236,12 @@ org.openhab.voice.whisperstt:grammarLines=
You can select your preferred default Speech-to-Text in the UI:
* Go to **Settings**.
* Edit **System Services - Voice**.
* Set **Whisper** as **Speech-to-Text**.
- Go to **Settings**.
- Edit **System Services - Voice**.
- Set **Whisper** as **Speech-to-Text**.
In case you would like to set up these settings via a text file, you can edit the file `runtime.cfg` in `$OPENHAB_ROOT/conf/services` and set the following entries:
```
```ini
org.openhab.voice:defaultSTT=whisperstt
```