[velbus] Review/rewrite documentation (#15537)

The page was missing information in some places (e.g. some supported
modules were not listed at all,) and some outdated information in
others. Some examples were malformed, and some wording didn’t flow too
well. The section on Channels is still pretty iffy, but I left this as
an exercise for a future me or somebody else :)

Signed-off-by: Simonas Kazlauskas <openhab@kazlauskas.me>
This commit is contained in:
Simonas Kazlauskas 2023-11-19 14:59:32 +00:00 committed by GitHub
parent c2a6329408
commit 1ea6865254
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 203 additions and 93 deletions

View File

@ -2,8 +2,12 @@
The Velbus binding integrates with a [Velbus](https://www.velbus.eu/) system through a Velbus configuration module (VMBRSUSB, VMB1USB or VMB1RS) or a network connection (TCP/IP).
The binding has been tested with a USB configuration module for universal mounting (VMB1USB).
For optimal stability, the preferred configuration module is the VMBRSUSB module.
Consider deploying a TCP bridge the officially developed [python-velbustcp] or one of the [third party projects][3rd-party-servers] in between the configuration module and openHAB.
Doing so allows concurrent access to your Velbus system by both openHAB and the official configuration software.
[python-velbustcp]: https://github.com/velbus/python-velbustcp
[3rd-party-servers]: https://github.com/StefCoene/velserver/wiki/TCP-server-for-Velbus
The binding exposes basic actions from the Velbus System that can be triggered from the smartphone/tablet interface, as defined by the [Velbus Protocol info sheets](https://github.com/velbus).
@ -12,129 +16,231 @@ Pushbutton, temperature sensors and input module states are retrieved and made a
## Supported Things
A Velbus configuration module (e.g. VMBRSUSB) or a network server (e.g. [VelServer](https://github.com/StefCoene/velserver/wiki/TCP-server-for-Velbus)) is required as a "bridge" for accessing any other Velbus devices.
In addition to the bridge modules mentioned in the section above, the supported Velbus modules are:
The supported Velbus devices are:
<!--
The source of truth for this table is the
`bundles/org.openhab.binding.velbus/src/main/resources/OH-INF/thing/thing-types.xml` file. The
following xidel command can be used to regenerate the table from scratch:
```text
vmb1bl, vmb1bls, vmb1dm, vmb1led, vmb1ry, vmb1ryno, vmb1rynos, vmb1rys, vmb1ts, vmb2bl, vmb2ble, vmb2pbn, vmb4an, vmb4dc, vmb4ry, vmb4ryld, vmb4ryno, vmb6in, vmb6pbn, vmb7in, vmb8ir, vmb8pb, vmb8pbu, vmbdme, vmbdmi, vmbdmir, vmbel1, vmbel2, vmbel4, vmbelo, vmbelpir, vmbgp1, vmbgp2, vmbgp4, vmbgp4pir, vmbgpo, vmbgpod, vmbmeteo, vmbpirc, vmbpirm, vmbpiro, vmbvp1
```
The type of a specific device can be found in the configuration section for things in the UI.
It is part of the unique thing id which could look like:
```text
velbus:vmb4ryld:0424e5d2:01:CH1
xidel -e \
'fn:for-each(//thing-type, function($thing) { "| " || $thing/@id || " | " || $thing/description || " |" })' \
src/main/resources/OH-INF/thing/thing-types.xml \
| column -t -s'|' -o'|' | sort
```
-->
The thing type is the second string behind the first colon and in this example it is **vmb4ryld**.
| Type | Description |
|-------------|--------------------------------------------------------------------------------------------|
| vmb1bl | 1-channel blind control module for din rail |
| vmb1bls | 1-channel blind control module for universal mounting |
| vmb1dm | Dimmer module for inductive/resistive and capacitive load |
| vmb1led | 1-channel 0-10V controlled PWM dimmer for led strips |
| vmb1ry | 1-channel relay module |
| vmb1ryno | 1-channel relay module with potential-free changeover contact |
| vmb1rynos | 1-channel relay module with potential-free changeover contact |
| vmb1rys | 1-channel relay module with input |
| vmb1ts | Temperature Sensor Module |
| vmb2bl | 2-channel blind control module |
| vmb2ble | 2-channel blind control module with extended possibilities |
| vmb2pbn | Push-button interface for Niko 1- or 2-fold push-buttons |
| vmb4an | Analog I/O module |
| vmb4dc | 4-channel 0/1-10V dimmer controller |
| vmb4pb | 4 button interface module |
| vmb4ry | 4-channel relay module |
| vmb4ryld | 4-channel relay module with voltage outputs |
| vmb4ryno | 4-channel relay module with potential-free contacts |
| vmb6in | 6-channel input module |
| vmb6pbn | Push-button interface module for Niko 4- or 6-fold push-button |
| vmb7in | 7-channel input module (potentialfree + pulse) |
| vmb8ir | Infrared remote control receiver module |
| vmb8pb | 8-Channel Push Button module |
| vmb8pbu | Push-button interface with 8 channels for universal mounting |
| vmbdme | Dimmer for electronic/resistive load |
| vmbdmir | Single channel triac dimmer for resistive and inductive loads |
| vmbdmi | Single channel triac dimmer for resistive and inductive loads |
| vmbel1 | Edge-lit one touch button module |
| vmbel2 | Edge-lit two touch buttons module |
| vmbel4 | Edge-lit four touch buttons module |
| vmbelo | Edge-lit touch panel with Oled display |
| vmbelpir | Edge-lit Motion detector with one touch button |
| vmbgp1-2 | Glass control module with 1 touch key (Edition 2) |
| vmbgp1 | Glass control module with 1 touch key |
| vmbgp2-2 | Glass control module with 2 touch keys (Edition 2) |
| vmbgp2 | Glass control module with 2 touch keys |
| vmbgp4-2 | Glass control module with 4 touch keys (Edition 2) |
| vmbgp4 | Glass control module with 4 touch keys |
| vmbgp4pir-2 | Glass control module with 4 touch keys and built-in motion and twilight sensor (Edition 2) |
| vmbgp4pir | Glass control module with 4 touch keys and built-in motion and twilight sensor |
| vmbgpod-2 | Glass control module with oled display and temperature controller (Edition 2) |
| vmbgpod | Glass control module with oled display and temperature controller |
| vmbgpo | Glass control module with oled display |
| vmbin | 1-channel input module |
| vmbkp | Keypad interface module |
| vmbmeteo | Weather station with thermometer, anemometer, rain sensor and light sensor |
| vmbpirc | Motion and twilight sensor for ceiling mounting |
| vmbpirm | Mini motion and twilight sensor for recessed or surface mounting |
| vmbpiro | Outdoor motion, twilight and temperature sensor, Theben |
| vmbrfr8s | 8 channel RF receiver module |
| vmbvp1 | Doorbird interface module |
## Discovery
The Velbus bridge cannot be discovered automatically.
It has to be added manually by defining the serial port of the Velbus Configuration module for the Velbus Serial Bridge or by defining the IP Address and port for the Velbus Network Bridge.
Configure it manually by defining the serial port of the Velbus Configuration module for the Velbus Serial Bridge or by defining the IP address and port for the Velbus Network Bridge, as described in the [`Thing Configuration`](#thing-configuration) section.
Once the bridge has been added as a thing, a manual scan can be launched to discover all other supported Velbus devices on the bus.
These devices will be available in the inbox.
The discovery scan will also retrieve the channel names of the Velbus devices.
Once the bridge has been configured with openHAB, a manual scan can be initiated to discover Velbus modules with an assigned address.
Addresses can be assigned via the official configuration software, and is a required step before a Velbus installation can work correctly.
The discovery scan can take a few minutes to complete.
Modules discovered during this scan will appear in the inbox. This procedure will also retrieve the channel names of the Velbus devices.
## Thing Configuration
The Velbus bridge needs to be added first.
For the Velbus Serial Bridge it is necessary to specify the serial port device used for communication.
On Linux systems, this will usually be either `/dev/ttyS0`, `/dev/ttyUSB0` or `/dev/ttyACM0` (or a higher number than `0` if multiple devices are present).
On Windows it will be `COM1`, `COM2`, etc.
### Velbus Serial Bridge
In the things file, this might look e.g. like
For the Velbus Serial Bridge it is necessary to specify the serial port device used for communication.
On Linux and other UNIX systems, it is recommended to use a more stable symbolic device path such as `/dev/serial/by-id/usb-Velleman_Projects_VMB1USB_Velbus_USB_interface-if00`, as it will always refer at to a Velbus configuration module, and not an arbitrary serial device.
If this is not a concern or an option, it is valid to refer to the serial device directly with a path such as `/dev/ttyS0`, `/dev/ttyUSB0` or `/dev/ttyACM0` (or a number other than `0` if multiple serial devices are connected.)
On Windows `port` will refer to one of the COM devices such as `COM1`, `COM2`, etc.
The Device Manager system utility can be used to determine the exact COM port number to use.
In a `.things` file, a USB connection to a Velbus configuration module might be configured like so:
```java
Bridge velbus:bridge:1 [ port="/dev/serial/by-id/usb-Velleman_Projects_VMB1USB_Velbus_USB_interface-if00" ]
// or
Bridge velbus:bridge:1 [ port="COM1" ]
```
For the Velbus Network Bridge it is necessary to specify the IP Address or hostname and the port of the Velbus network server.
This will usually be either the loopback address `127.0.0.1`, and port number.
Or the specific IP of the machine `10.0.0.110` , and port number.
### Velbus Network Bridge
In the things file, this might look like
For the Velbus Network Bridge it is necessary to specify the address (either an IP address or a hostname) and the port of a Velbus network server.
In a `.things` file, a network bridge running on the same machine at port 6000 would be configured like so:
```java
Bridge velbus:networkbridge:1 "Velbus Network Bridge - Loopback" @ "Control" [ address="127.0.0.1", port=6000 ]
Bridge velbus:networkbridge:1 "Velbus Network Bridge - Loopback" @ "Control" [ address="localhost", port=6000 ]
```
Optionally, both the serial bridge and the network bridge can also update the realtime clock, date and daylight savings status of the Velbus modules.
This is achieved by setting the Time Update Interval (in minutes) on the bridge, e.g.:
### Realtime Clock Synchronization
Optionally, the openHAB Velbus binding can synchronize the realtime clock, date and daylight savings status of the Velbus modules.
This is achieved by setting the Time Update Interval (in minutes) on the bridge thing. For example:
```java
Bridge velbus:bridge:1 [ port="COM1", timeUpdateInterval="360" ]
```
The default time update interval is every 360 minutes.
Setting the interval to 0 minutes or leaving it empty disables the update of the realtime clock, date and daylight savings status of the Velbus modules.
If `timeUpdateInterval` is not specified, the time will be updated every 360 minutes by default.
In order to disable this behaviour, set the interval to 0 or an empty string.
In case of a connection error, the bridges can also try to reconnect automatically.
You can specify at which interval the bridge should try to reconnect by setting the Reconnection Interval (in seconds), e.g.:
### Reconnection
In case of a connection error, a Velbus bridge will attempt to reconnect every 15 seconds by default.
You can modify the bridge reconnection interval by specifying the `reconnectionInterval` parameter (in seconds):
```java
Bridge velbus:bridge:1 [ port="COM1", reconnectionInterval="15" ]
```
The default reconnection interval is 15 seconds.
### Velbus modules
For the other Velbus devices, the thing configuration has the following syntax:
Adding Velbus modules to your openHAB configuration follows the conventions of your preferred configuration method.
```java
Thing velbus:<thing type>:<bridgeId>:<thingId> "Label" @ "Location" [CH1="Kitchen Light", CH2="Living Light"]
* **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):
```java
Thing velbus:<thingType>:<bridgeId>:<thingId> "Label" @ "Location" [ CH1="Kitchen Light", CH2="Living Light" ]
```
Or, more concisely, by nesting modules within the `Bridge` theyre connected to:
```java
Bridge velbus:bridge:1 [ port="COM1" ] {
<thingType> <thingId> "Label" @ "Location" [ CH1="Kitchen Light", CH2="Living Light" ]
}
```
Here:
* `<thingType>` is the type of the Velbus module. Refer to the [Supported Things](#supported-things) table for valid `<thingType>` values;
* `<thingId>` is the hexadecimal address of the Velbus module;
* `"Label"` is an optional label for the thing;
* `@ "Location"` is an optional specification of the location of the thing;
* The `CHx="..."` properties are optional and can be used to specify names of the module channels.
Individual module `Thing`s channels can be linked to openHAB items via channel names like `velbus:vmb4ryld:1:0A:CH1`. Here, from left to right, the channel name consistes of the binding name, module type (`<thingType> = vmb4ryld`), bridge id (`1`), modules hexadecimal address (`<thingId> = 0A`) and channel within the module (`CH1`).
#### Additional properties
Some module types have additional functionality not represented well by the trigger channels.
A prime example of this is a temperature sensor, measurements of which must be polled.
The following table lists these additional properties and the modules that support the corresponding property:
<!--
The source of truth of these parameters is the
`bundles/org.openhab.binding.velbus/src/main/resources/OH-INF/config/config.xml` file.
Unfortunately I couldn't be bothered to come up with a single shell command to generate a table
here, so a multiple will have to do.
Again, using xidel, all the property names not yet documented and their descriptions can be listed
with the following command:
```
xidel -e 'fn:for-each(//parameter, function($p) { "| `" || $p/@name || "` | " || $p/description || " |" })' \
src/main/resources/OH-INF/config/config.xml \
| sort -u \
| grep -vP '\| `CH\d+` |\| `address` |\| `port` |\| `reconnectionInterval` |\| `timeUpdateInterval` '
```
or nested in the bridge configuration:
From there you can use commands like these to list `config-description`s that support the property
```java
<thing type> <thingId> "Label" @ "Location" [CH1="Kitchen Light", CH2="Living Light"]
```
xidel -e 'fn:filter(//config-description, function($cfg) { $cfg/parameter/@name = "refresh" })/@uri' \
src/main/resources/OH-INF/config/config.xml \
| cut -d':' -f3
```
The following thing types are valid for configuration:
From there you want to filter out all things in `thing-types` that have these values as their
`config-description-ref`. For example for `refresh`, using results from the previous command to
fill in `$refs`:
```text
vmb1bl, vmb1bls, vmb1dm, vmb1led, vmb1ry, vmb1ryno, vmb1rynos, vmb1rys, vmb1ts, vmb2bl, vmb2ble, vmb2pbn, vmb4an, vmb4dc, vmb4ry, vmb4ryld, vmb4ryno, vmb6in, vmb6pbn, vmb7in, vmb8ir, vmb8pb, vmb8pbu, vmbdme, vmbdmi, vmbdmir, vmbel1, vmbel2, vmbel4, vmbelo, vmbelpir, vmbgp1, vmbgp2, vmbgp4, vmbgp4pir, vmbgpo, vmbgpod, vmbmeteo, vmbpirc, vmbpirm, vmbpiro, vmbvp1
```
`thingId` is the hexadecimal Velbus address of the thing.
`"Label"` is an optional label for the thing.
`@ "Location"` is optional, and represents the location of the thing.
`[CHx="..."]` is optional, and represents the name of channel x, e.g. CH1 specifies the name of channel 1.
For thing types with builtin sensors (e.g. temperature), the interval at which the sensors should be checked can be set by specifying the Refresh Interval, e.g.:
```java
Thing velbus:vmbelo:<bridgeId>:<thingId> [refresh="300"]
xidel -e 'let $refs := (
"temperatureSensorDevice",
"7channelDeviceWithCounters",
"7channelDeviceWithTemperatureSensor",
"9channelDeviceWithTemperatureSensor",
"13channelDevice",
"13channelDevice"
) return fn:filter(//thing-type, function($t) {
let $uri := fn:tokenize($t/config-description-ref/@uri, ":")[3]
return fn:exists(fn:index-of($refs, $uri))
})/@id' src/main/resources/OH-INF/thing/thing-types.xml
```
-->
The default refresh interval for the sensors is 300 seconds.
Setting the refresh interval to 0 or leaving it empty will prevent the thing from periodically refreshing the sensor values.
The following thing types support a sensor refresh interval:
```text
vmb1ts, vmb4an, vmbel1, vmbel2, vmbel4, vmbelo, vmbelpir, vmbgp1, vmbgp2, vmbgp4, vmbgp4pir, vmbgpo, vmbgpod, vmbmeteo, vmbpirc, vmbpirm, vmbpiro
```
The `vmb7in` thing type also supports a refresh interval. For this thing type, the refresh interval is the interval at which the counter values should be refreshed.
For dimmers the speed (in seconds) at which the modules should dim from 0% to 100% can be set by specifying the Dimspeed, e.g.:
```java
Thing velbus:vmb4dc:<bridgeId>:<thingId> [dimspeed="5"]
```
The following thing types support setting the dimspeed:
```text
vmb1dm, vmb1led, vmb4dc, vmbdme, vmbdmi, vmbdmir
```
| Property | Supported modules | Description |
|---------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------|
| `counter1PulseMultiplier` | `vmb7in` | The pulse multiplier for counter 1 |
| `counter1Unit` | `vmb7in` | The unit for Counter 1. |
| `counter2PulseMultiplier` | `vmb7in` | The pulse multiplier for counter 2 |
| `counter2Unit` | `vmb7in` | The unit for Counter 2. |
| `counter3PulseMultiplier` | `vmb7in` | The pulse multiplier for counter 3 |
| `counter3Unit` | `vmb7in` | The unit for Counter 3. |
| `counter4PulseMultiplier` | `vmb7in` | The pulse multiplier for counter 4 |
| `counter4Unit` | `vmb7in` | The unit for Counter 4. |
| `dimspeed` | `vmb1dm`, `vmb1led`, `vmb4dc`, `vmbdme`, `vmbdmi`, `vmbdmir` | The time (in seconds) needed for dimming from 0 to 100%. |
| `refresh` | `vmb1ts`, `vmb4an`, `vmb7in`, `vmbel1`, `vmbel2`, `vmbel4`, `vmbelpir`, `vmbgp1`, `vmbgp1-2`, `vmbgp2`, `vmbgp2-2`, `vmbgp4`, `vmbgp4-2`, `vmbgp4pir`, `vmbgp4pir-2`, `vmbmeteo`, `vmbpirc`, `vmbpirm`, `vmbpiro` | Refresh interval for sensors or counters (in seconds), default 300. If set to 0 or left empty, no refresh will be scheduled. |
## Channels
@ -192,7 +298,7 @@ For thing type `vmb4ry` 4 channels are available `CH1` ... `CH4`.
OnOff command types are supported.
Thing types `vmbel1`, `vmbel2`, `vmbel4`, `vmbelpir`, `vmbgp1`, `vmbgp2`, `vmbgp4`, `vmbgp4pir` and `vmbpiro` have 8 trigger channels `input:CH1` ... `input:CH8` and one temperature channel `input:CH9`.
Pressed and Long_Pressed command types are supported on channels `button#CH1` and `button#CH2` for the thing type `vmbelpir`.
Pressed and Long_Pressed command types are supported on channels `button#CH1` and `button#CH2` for the thing type `vmbelpir`.
Pressed and Long_Pressed command types are supported on channels `button#CH1` ... `button#CH8` for the thing types `vmbel1`, `vmbel2`, `vmbel4`, `vmbgp1`, `vmbgp2`, `vmbgp4`, `vmbgp4pir` and `vmbpiro`.
The thing types `vmbel1` and `vmbgp1` have one channel to steer the button LED feedback `feedback:CH1`.
The thing types `vmbel2` and `vmbgp2` have two channels to steer the button LED feedback `feedback:CH1` and `feedback:CH2`.
@ -222,10 +328,14 @@ Go to the Items list, select the Item, add a State Description Metadata, and set
## Full Example
<!--
FIXME(#15896): For an example to be a full example it should probably also show off use of `Thing` properties and such
-->
.things:
```java
Bridge velbus:bridge:1 [ port="COM1"] {
Bridge velbus:bridge:1 [ port="COM1" ] {
vmb2ble 01
vmb2pbn 02
vmb6pbn 03
@ -246,14 +356,14 @@ Bridge velbus:bridge:1 [ port="COM1"] {
.items:
```java
Switch LivingRoom {channel="velbus:vmb4ryld:1:06:CH1"} # Switch for onOff type action
Switch KitchenButton {velbus:vmb2pbn:1:05:button#CH1} # Switch for Pressed and Long_Pressed type actions
Dimmer TVRoom {channel="velbus:vmb4dc:1:07:CH2"} # Changing brightness dimmer type action
Rollershutter Kitchen {channel="velbus:vmb2ble:1:01"} # Controlling rollershutter or blind type action
Switch LivingRoom { channel="velbus:vmb4ryld:1:06:CH1" } # Switch for onOff type action
Switch KitchenButton { channel="velbus:vmb2pbn:1:05:button#CH1" } # Switch for Pressed and Long_Pressed type actions
Dimmer TVRoom { channel="velbus:vmb4dc:1:07:CH2" } # Changing brightness dimmer type action
Rollershutter Kitchen { channel="velbus:vmb2ble:1:01" } # Controlling rollershutter or blind type action
Number Temperature_LivingRoom "Temperature [%.1f °C]" <temperature> channel="velbus:vmbgp1:1:08:CH09"}
Number Temperature_Corridor "Temperature [%.1f °C]" <temperature> channel="velbus:vmbgpo:1:0C:CH33"}
Number Temperature_Outside "Temperature [%.1f °C]" <temperature> channel="velbus:vmbpiro:1:0E:CH09"}
Number Temperature_LivingRoom "Temperature [%.1f °C]" <temperature> { channel="velbus:vmbgp1:1:08:CH09" }
Number Temperature_Corridor "Temperature [%.1f °C]" <temperature> { channel="velbus:vmbgpo:1:0C:CH33" }
Number Temperature_Outside "Temperature [%.1f °C]" <temperature> { channel="velbus:vmbpiro:1:0E:CH09" }
```
.sitemap:

View File

@ -333,7 +333,7 @@
</parameter>
<parameter name="counter1PulseMultiplier" type="decimal">
<label>Counter 1 Pulse Multiplier</label>
<description>The pulse multiplier for counter 1</description>
<description>The pulse multiplier for counter 1.</description>
<default>1</default>
<options>
<option value="1">x1</option>
@ -356,7 +356,7 @@
</parameter>
<parameter name="counter2PulseMultiplier" type="decimal">
<label>Counter 2 Pulse Multiplier</label>
<description>The pulse multiplier for counter 2</description>
<description>The pulse multiplier for counter 2.</description>
<default>1</default>
<options>
<option value="1">x1</option>
@ -379,7 +379,7 @@
</parameter>
<parameter name="counter3PulseMultiplier" type="decimal">
<label>Counter 3 Pulse Multiplier</label>
<description>The pulse multiplier for counter 3</description>
<description>The pulse multiplier for counter 3.</description>
<default>1</default>
<options>
<option value="1">x1</option>
@ -402,7 +402,7 @@
</parameter>
<parameter name="counter4PulseMultiplier" type="decimal">
<label>Counter 4 Pulse Multiplier</label>
<description>The pulse multiplier for counter 4</description>
<description>The pulse multiplier for counter 4.</description>
<default>1</default>
<options>
<option value="1">x1</option>

View File

@ -309,7 +309,7 @@ thing-type.config.velbus.7channelDeviceWithCounters.CH7.description = The name o
thing-type.config.velbus.7channelDeviceWithCounters.address.label = Address
thing-type.config.velbus.7channelDeviceWithCounters.address.description = The velbus address of the device
thing-type.config.velbus.7channelDeviceWithCounters.counter1PulseMultiplier.label = Counter 1 Pulse Multiplier
thing-type.config.velbus.7channelDeviceWithCounters.counter1PulseMultiplier.description = The pulse multiplier for counter 1
thing-type.config.velbus.7channelDeviceWithCounters.counter1PulseMultiplier.description = The pulse multiplier for counter 1.
thing-type.config.velbus.7channelDeviceWithCounters.counter1PulseMultiplier.option.1 = x1
thing-type.config.velbus.7channelDeviceWithCounters.counter1PulseMultiplier.option.2.5 = x2.5
thing-type.config.velbus.7channelDeviceWithCounters.counter1PulseMultiplier.option.0.05 = x0.05
@ -320,7 +320,7 @@ thing-type.config.velbus.7channelDeviceWithCounters.counter1Unit.option.kWh = kW
thing-type.config.velbus.7channelDeviceWithCounters.counter1Unit.option.liters = liters
thing-type.config.velbus.7channelDeviceWithCounters.counter1Unit.option.m³ =
thing-type.config.velbus.7channelDeviceWithCounters.counter2PulseMultiplier.label = Counter 2 Pulse Multiplier
thing-type.config.velbus.7channelDeviceWithCounters.counter2PulseMultiplier.description = The pulse multiplier for counter 2
thing-type.config.velbus.7channelDeviceWithCounters.counter2PulseMultiplier.description = The pulse multiplier for counter 2.
thing-type.config.velbus.7channelDeviceWithCounters.counter2PulseMultiplier.option.1 = x1
thing-type.config.velbus.7channelDeviceWithCounters.counter2PulseMultiplier.option.2.5 = x2.5
thing-type.config.velbus.7channelDeviceWithCounters.counter2PulseMultiplier.option.0.05 = x0.05
@ -331,7 +331,7 @@ thing-type.config.velbus.7channelDeviceWithCounters.counter2Unit.option.kWh = kW
thing-type.config.velbus.7channelDeviceWithCounters.counter2Unit.option.liters = liters
thing-type.config.velbus.7channelDeviceWithCounters.counter2Unit.option.m³ =
thing-type.config.velbus.7channelDeviceWithCounters.counter3PulseMultiplier.label = Counter 3 Pulse Multiplier
thing-type.config.velbus.7channelDeviceWithCounters.counter3PulseMultiplier.description = The pulse multiplier for counter 3
thing-type.config.velbus.7channelDeviceWithCounters.counter3PulseMultiplier.description = The pulse multiplier for counter 3.
thing-type.config.velbus.7channelDeviceWithCounters.counter3PulseMultiplier.option.1 = x1
thing-type.config.velbus.7channelDeviceWithCounters.counter3PulseMultiplier.option.2.5 = x2.5
thing-type.config.velbus.7channelDeviceWithCounters.counter3PulseMultiplier.option.0.05 = x0.05
@ -342,7 +342,7 @@ thing-type.config.velbus.7channelDeviceWithCounters.counter3Unit.option.kWh = kW
thing-type.config.velbus.7channelDeviceWithCounters.counter3Unit.option.liters = liters
thing-type.config.velbus.7channelDeviceWithCounters.counter3Unit.option.m³ =
thing-type.config.velbus.7channelDeviceWithCounters.counter4PulseMultiplier.label = Counter 4 Pulse Multiplier
thing-type.config.velbus.7channelDeviceWithCounters.counter4PulseMultiplier.description = The pulse multiplier for counter 4
thing-type.config.velbus.7channelDeviceWithCounters.counter4PulseMultiplier.description = The pulse multiplier for counter 4.
thing-type.config.velbus.7channelDeviceWithCounters.counter4PulseMultiplier.option.1 = x1
thing-type.config.velbus.7channelDeviceWithCounters.counter4PulseMultiplier.option.2.5 = x2.5
thing-type.config.velbus.7channelDeviceWithCounters.counter4PulseMultiplier.option.0.05 = x0.05