Updated external content (Jenkins build 2001)

pull/2299/head
openHAB Build Server 2024-02-26 05:33:46 +00:00
parent c44e3c4c84
commit 048348f37d
11 changed files with 536 additions and 194 deletions

View File

@ -49,15 +49,9 @@ The ISM8 does currently support 4 different devices at the same moment of time (
Once you have an overview of your heating system set you can start to create the channels accordingly.
Each channel should be created in the following way:
| Type | Name | Description | Configuration |
|--------|---------|----------------------------|-----------------|
| Number | DpId004 | "Kesseltemperatur" | id, type, write |
Type:
- Switch use for boolean values
- Number use for any number
- Other types may work as well.
| Type | Name | Description | Configuration |
|--------------------|---------|--------------------|---------------|
| Number:Temperature | DpId004 | "Kesseltemperatur" | |
Name:
@ -80,11 +74,18 @@ Note:
Not all available types of the ISM8 interface are fully supported, but this can be extended.
For the moment the following data types are implemented:
- DPT-Bool: `1.001`, `1.002`, `1.003`, `1.009`
- DPT-Scaling: `5.001`
- DPT-Value: `9.001`, `9.002`, `9.006`
- DPT-FlowRate: `13.002`
- DPT-Mode: `20.102`, `20.103`, `20.105`
| Channel type | Datapoint type | Item type | R/W | KNX-type's |
|----------------|--------------------------------|---------------------------|-----|----------------------------|
| switch-rw | Digital DataPoint | Switch | R/W | 1.001, 1.002, 1.003, 1.009 |
| switch-r | Digital Readonly DataPoint | Switch | R | 1.001, 1.002, 1.003, 1.009 |
| percentage-rw | Percentage DataPoint | Number:Dimensionless | R/W | 5.001 |
| percentage-r | Percentage Readonly DataPoint | Number:Dimensionless | R | 5.001 |
| temperature-rw | Temperature DataPoint | Number:Temperature | R/W | 9.001,9.002 |
| temperature-r | Temperature Readonly DataPoint | Number:Temperature | R | 9.002,9.002 |
| pressure-r | Pressure Readonly DataPoint | Number:Pressure | R | 9.006 |
| flowrate-r | Flowrate Readonly DataPoint | Number:VolumetricFlowRate | R | 13.002 |
| mode-rw | Mode DataPoint | Number:Dimensionless | R/W | 20.102, 20.103, 20.105 |
| mode-r | Mode Readonly DataPoint | Number:Dimensionless | R | 20.102, 20.103, 20.105 |
## Full Example
@ -93,29 +94,29 @@ For the moment the following data types are implemented:
```java
Thing ism8:device:heater "Wolf Heizung" [portNumber=12004]
{
Type switch-readonly : DpId001 "Störung Heizgerät" [id=1, type="1.001"]
Type number-readonly : DpId002 "Betriebsart" [id=2, type="20.105"]
Type number-readonly : DpId003 "Brennerleistung" [id=3, type="5.001"]
Type number-readonly : DpId004 "Kesseltemperatur" [id=4, type="9.001"]
Type number-readonly : DpId006 "Rücklauftemperatur" [id=6, type="9.001"]
Type number-readonly : DpId007 "Warmwassertemperatur" [id=7, type="9.001"]
Type number-readonly : DpId008 "Außentemperatur" [id=8, type="9.001"]
Type switch-readonly : DpId009 "Status Flamme" [id=9, type="1.001"]
Type number-readonly : DpId013 "Anlagendruck" [id=13, type="9.006"]
Type number-readonly : DpId053 "Störung Systemmodul" [id=53, type="1.001"]
Type number-readonly : DpId054 "Außentemperatur Systemmodul" [id=54, type="9.001"]
Type number : DpId056 "Sollwert Warmwasser" [id=56, type="9.001"]
Type number : DpId057 "Betriebsart Heizkreis" [id=57, type="20.102"]
Type number : DpId058 "Betriebsart Warmwasser" [id=58, type="20.103"]
Type number : DpId065 "Sollwertverschiebung" [id=65, type="9.002"]
Type number-readonly : DpId148 "CML Störung" [id=148, type="1.001"]
Type number : DpId149 "CWL Betriebsart" [id=149, type="20.102"]
Type number-readonly : DpId163 "CWL Lüftungsstufe" [id=163, type="5.001"]
Type number-readonly : DpId164 "CWL Ablufttemperatur" [id=164, type="9.001"]
Type number-readonly : DpId165 "CWL Zulufttemperatur" [id=165, type="9.001"]
Type number-readonly : DpId166 "CWL Luftdurchsatz Zuluft" [id=166, type="13.002"]
Type number-readonly : DpId167 "CWL Luftdurchsatz Abluft" [id=167, type="13.002"]
Type number-readonly : DpId192 "CML Filterwarnung" [id=192, type="1.001"]
Type switch-r : DpId001 "Störung Heizgerät" [id=1, type="1.001"]
Type number-r : DpId002 "Betriebsart" [id=2, type="20.105"]
Type percentage-r : DpId003 "Brennerleistung" [id=3, type="5.001"]
Type temperature-r : DpId004 "Kesseltemperatur" [id=4, type="9.001"]
Type temperature-r : DpId006 "Rücklauftemperatur" [id=6, type="9.001"]
Type temperature-r : DpId007 "Warmwassertemperatur" [id=7, type="9.001"]
Type temperature-r : DpId008 "Außentemperatur" [id=8, type="9.001"]
Type switch-r : DpId009 "Status Flamme" [id=9, type="1.001"]
Type temperature-r : DpId013 "Anlagendruck" [id=13, type="9.006"]
Type switch-r : DpId053 "Störung Systemmodul" [id=53, type="1.001"]
Type temperature-r : DpId054 "Außentemperatur Systemmodul" [id=54, type="9.001"]
Type temperature-rw : DpId056 "Sollwert Warmwasser" [id=56, type="9.001"]
Type mode-rw : DpId057 "Betriebsart Heizkreis" [id=57, type="20.102"]
Type mode-rw : DpId058 "Betriebsart Warmwasser" [id=58, type="20.103"]
Type temperature-rw : DpId065 "Sollwertverschiebung" [id=65, type="9.002"]
Type switch-rw : DpId148 "CML Störung" [id=148, type="1.001"]
Type mode-rw : DpId149 "CWL Betriebsart" [id=149, type="20.102"]
Type percentage-r : DpId163 "CWL Lüftungsstufe" [id=163, type="5.001"]
Type temperature-r : DpId164 "CWL Ablufttemperatur" [id=164, type="9.001"]
Type temperature-r : DpId165 "CWL Zulufttemperatur" [id=165, type="9.001"]
Type flowrate-r : DpId166 "CWL Luftdurchsatz Zuluft" [id=166, type="13.002"]
Type flowrate-r : DpId167 "CWL Luftdurchsatz Abluft" [id=167, type="13.002"]
Type switch-r : DpId192 "CML Filterwarnung" [id=192, type="1.001"]
}
```

View File

@ -62,7 +62,8 @@ as multicast traffic is typically not forwarded.
### IP Gateway
The IP Gateway is the most commonly used way to connect to the KNX bus. At its base, the _ip_ bridge accepts the following configuration parameters:
The IP Gateway is the most commonly used way to connect to the KNX bus.
At its base, the _ip_ bridge accepts the following configuration parameters:
| Name | Required | Description | Default value |
|---------------------|--------------|--------------------------------------------------------------------------------------------------------------|------------------------------------------------------|
@ -101,9 +102,10 @@ The _serial_ bridge accepts the following configuration parameters:
_basic_ Things are wrappers around arbitrary group addresses on the KNX bus.
They have no specific function in the KNX binding, except that if the _address_ is defined, the binding will actively poll the Individual Address on the KNX bus to detect that the KNX actuator is reachable.
Under normal real-world circumstances, either all devices on a bus are reachable, or the entire bus is down.
If line couplers are installed, physical device addressing might be filtered; in this case please do not specify the addresses for devices on this line.
When _fetch_ is set to true, the binding will read-out the memory of the KNX actuator in order to detect configuration data and so forth.
This is however an experimental feature, very prone to the actual on the KNX bus.
If line couplers are installed, physical device addressing might be filtered; in this case, please do not specify the addresses for devices on this line.
When _fetch_ is set to true, the binding will read out the memory of the KNX actuator in order to detect configuration data and so forth.
This is just for information and has no effect on the functionality of the binding.
It can safely be turned off to save bandwidth on the bus or avoid problems with older devices.
| Name | Required | Description | Default value |
|--------------|----------|--------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------|
@ -113,7 +115,7 @@ This is however an experimental feature, very prone to the actual on the KNX bus
| readInterval | N | Interval (in seconds) to actively request reading of values from the bus (0 if they should only be read once at startup) | 0 |
Different kinds of channels are defined and can be used to group together Group Addresses.
All channels of a device share one configuration parameter defined on device level: _readInterval_, an optional parameter which indicates if 'readable' group addresses of that Channel should be read periodically at the given interval, in seconds.
All channels of a device share one configuration parameter defined at the device level: _readInterval_, an optional parameter that indicates if the 'readable' group addresses of that Channel should be read periodically at the given interval, in seconds.
'Readable' group addresses are marked with an `<` in the group address definition of a Channel, see below.
All readable group addresses are queried by openHAB during startup.
If readInterval is not specified or set to 0, no further periodic reading will be triggered (default: 0).
@ -121,10 +123,10 @@ If readInterval is not specified or set to 0, no further periodic reading will b
#### Channel Types
Standard channels are used most of the time.
They are used in the common case where the physical state is owned by a device within the KNX bus, e.g. by a switch actuator who "knows" whether the light is turned on or off, or by a temperature sensor which reports the room temperature regularly.
They are used in the common case where the physical state is owned by a device within the KNX bus, e.g., by a switch actuator that "knows" whether the light is turned on or off, or by a temperature sensor that reports the room temperature regularly.
Control channel types (suffix `-control`) are used for cases where the KNX bus does not own the physical state of a device.
This could be the case if e.g. a lamp from another binding should be controlled by a KNX wall switch.
This could be the case if, for example, a lamp from another binding should be controlled by a KNX wall switch.
When a `GroupValueRead` telegram is sent from the KNX bus to a *-control Channel, the bridge responds with a `GroupValueResponse` telegram to the KNX bus.
##### Channel Type `color`, `color-control`
@ -141,10 +143,11 @@ The `hsb` address supports DPT 232.600 (RGB), 242.600 (xyY), and 251.600 (RGBW).
Some RGB/RGBW products (e.g. MDT) use HSB values for DPT 232.600 instead of RGB.
This is supported as "vendor-specific DPT" with a value of 232.60000.
RGBW (DPT 251.600) can either be converted to HSBType, or be represented two items: a HSBType for RGB and an additional PercentType for W channel.
RGBW (DPT 251.600) can either be converted to HSBType, or represented by two items: a HSBType for RGB and an additional PercentType for the W channel.
Default handling for RGBW is to use separate items.
Note that this also requires two frames being sent out separately when these elements are sent to the bus, as the binary representation uses a partially populated KNX frame.
Alternatively, a single HSB item can be used. Conversion to a single HSBType will loose the exact setting for W, and will reconstruct it when a conversion to RGBW is required.
Note that this also requires two frames to be sent out separately when these elements are sent to the bus, as the binary representation uses a partially populated KNX frame.
Alternatively, a single HSB item can be used.
Conversion to a single HSBType will lose the exact setting for W, and will reconstruct it when a conversion to RGBW is required.
This option can be selected using the special DPT 251.60600.
##### Channel Type `contact`, `contact-control`
@ -153,7 +156,7 @@ This option can be selected using the special DPT 251.60600.
|-----------|---------------|-------------|
| ga | Group address | 1.009 |
*Attention:* Due to a bug in the original implementation, the states for DPT 1.009 are inverted (i.e. `1` is mapped to `OPEN` instead of `CLOSE`).
*Attention:* Due to a bug in the original implementation, the states for DPT 1.009 are inverted (i.e., `1` is mapped to `OPEN` instead of `CLOSE`).
A change would break all existing installations and is therefore not implemented.
##### Channel Type `datetime`, `datetime-control`
@ -182,10 +185,10 @@ Using the UoM feature of openHAB (QuantityType) requires that the DPT value is s
Automatic type conversion will be applied if required.
Incoming values from the KNX bus are converted to values with units (e.g. `23 °C`).
If the channel is linked to the correct item-type (`Number:Temperature` in this case) the display unit can be controlled by item metadata (e.g. `%.1f °F` for 1 digit of precision in Fahrenheit).
The unit is stripped if the channel is linked to a plain number item (type `Number`).
If the channel is linked to the correct item-type (`Number:Temperature` in this case), the display unit can be controlled by item metadata (e.g., `%.1f °F` for 1 digit of precision in Fahrenheit).
The unit is stripped if the channel is linked to a plain number item (type `Number`).
Outgoing values with unit are first converted to the unit associated with the DPT (e.g. a value of `10 °F` is converted to `-8.33 °C` if the channel has DPT 9.001).
Outgoing values with unit are first converted to the unit associated with the DPT (e.g., a value of `10 °F` is converted to `-8.33 °C` if the channel has DPT 9.001).
Values from plain number channels are sent as-is (without any conversion).
##### Channel Type `rollershutter`, `rollershutter-control`
@ -211,7 +214,7 @@ Values from plain number channels are sent as-is (without any conversion).
#### Control Channel Types
In contrast to the standard channels above, the control channel types are used for cases where the KNX bus does not own the physical state of a device.
This could for example be the case if a lamp from another binding should be controlled by a KNX wall switch.
This could, for example, be the case if a lamp from another binding should be controlled by a KNX wall switch.
When a `GroupValueRead` telegram is sent from the KNX bus to a *-control Channel, the bridge responds with a `GroupValueResponse` telegram to the KNX bus.
##### Channel Type "switch-control"
@ -253,7 +256,7 @@ A change would break all existing installations and is therefore not implemented
|-----------|---------------|-------------|
| ga | Group address | 9.001 |
For UoM support see the explanations of the `number` channel.
For UoM support, see the explanations of the `number` channel.
##### Channel Type "string-control"
@ -281,16 +284,167 @@ where parts in brackets `[]` denote optional information.
This is recommended if you have a dedicated status group address which is added as `listeningGA`.
The optional `<` sign tells whether the group address of the datapoint accepts read requests on the KNX bus (it does, if the sign is there).
The group addresses marked with `<` are read by openHAB during startup.
The group addresses marked with `<` are read by openHAB during startup.
Future versions might support reading from one GA only.
With `*-control` channels, the state is not owned by any device on the KNX bus, therefore no read requests will be sent by the binding, i.e. `<` signs will be ignored for them.
The element `dpt` is highly recommended and may change to a mandatory element in future versions.
If omitted, the corresponding default value will be used (see the channel descriptions above).
## Mapping DPTs to openHAB Types
Datapoint Types (DPTs) define how the content of a KNX telegram is interpreted.
The following table is a complete list of DPTs currently supported by openHAB.
OpenHAB supports all DPTs supported by the corresponding release of the Calimero library, plus a few [specific additions](#special-dpts).
The default mapping is given, however DPTs can be overwritten.
KNX frames do not contain information about the encoding or DPT, so any DPT with a compatible byte size and a useful encoding can be used.
A good example for this are bitfields represented as String which are mapped to a DPT of DecimalType for handling in rules.
For more details, see the KNX specification (section 3.7.2, System Specifications, Interworking, Datapoint Types).
In case a missing DPT or subtype is needed, there is a good chance that a DPT of matching size and DecimalType is found.
Further DPTs and subtypes may be added later once implemented and released in the [Calimero library](https://github.com/calimero-project/calimero-core).
| DPT | Primary openHAB type (things) (items with UOM) | Remark |
|-----------------|----------------------------------------------------|-----------------------------------|
| 1.001-1.007 | OnOffType (switch), OpenClosedType (contact) | |
| 1.008 | UpDownType (e.g. for dimmer, rollershutter) | |
| 1.009 | OnOffType (switch), OpenClosedType (contact) | Not according to spec, see above |
| 1.010 | StopMoveType (e.g. for rollershutter) | |
| 1.011-1.016 | OnOffType (switch), OpenClosedType (contact) | |
| 1.017 | OnOffType (switch), OpenClosedType (contact) | Trigger, use states OFF or CLOSED |
| 1.018-1.019 | OnOffType (switch), OpenClosedType (contact) | |
| 1.021 | OnOffType (switch), OpenClosedType (contact) | |
| 1.022 | DecimalType (number) | Counting from 0, use DPT if you need a DecimalType |
| 1.023-1.024 | OnOffType (switch), OpenClosedType (contact) | |
| 1.100 | OnOffType (switch), OpenClosedType (contact) | |
| 1.1200-1.1201 | OnOffType (switch), OpenClosedType (contact) | |
|||
| 2.001-2.012 | DecimalType (number) | |
|||
| 3.007 | IncreaseDecreaseType (e.g. dimmer) | |
| 3.008 | UpDownType (e.g. rollershutter) | |
|||
| 5.001 | QuantityType\<> (number) (Number:Percent) | Alternatively: PercentType |
| 5.003 | QuantityType\<> (number) (Number:Angle) | |
| 5.004 | QuantityType\<> (number) (Number:Percent) | 0-255%, no mapping to PercentType |
| 5.005 | DecimalType (number) | |
| 5.006 | DecimalType (number) | 255 is reserved |
| 5.010 | DecimalType (number) | |
|||
| 6.001 | QuantityType\<> (number) (Number:Percent) | -128..127%, no mapping to PercentType |
| 6.010 | DecimalType (number) | -128..127 |
| 6.020 | StringType (string) | Override with DPT5.010 if you need DecimalType |
|||
| 7.001 | DecimalType (number) | |
| 7.002-7.007 | QuantityType\<> (number) (Number:Time) | |
| 7.010 | DecimalType (number) | |
| 7.011 | QuantityType\<> (number) (Number:Length) | |
| 7.012 | QuantityType\<> (number) (Number:ElectricCurrent) | |
| 7.013 | QuantityType\<> (number) (Number:Length) | |
| 7.600 | QuantityType\<> (number) (Number:Temperature) | |
|||
| 8.001 | DecimalType (number) | |
| 8.002-7.007 | QuantityType\<> (number) (Number:Time) | |
| 8.010 | QuantityType\<> (number) (Number:Percent) | |
| 8.011 | QuantityType\<> (number) (Number:Angle) | |
| 8.012 | QuantityType\<> (number) (Number:Length) | |
|||
| 9.xxx | QuantityType\<> (number) (Number:...) | See [documentation on UOM](https://www.openhab.org/docs/concepts/units-of-measurement.html) |
| 9.001 | QuantityType\<> (number) (Number:...) | Lower values than absolute zero will be set to -273 °C |
| 9.002-9.003 | QuantityType\<> (number) (Number:...) | |
| 9.004-9.008 | QuantityType\<> (number) (Number:...) | No negative values allowed |
| 9.009-9.011 | QuantityType\<> (number) (Number:...) | |
| 9.020-9.027 | QuantityType\<> (number) (Number:...) | |
| 9.027-9.030 | QuantityType\<> (number) (Number:...) | No negative values allowed |
|||
| 10.001 | DateTimeType (datetime) | Time. Date is set to 1/Jan/1970 + ofs if weekday is given. KNX can represent year 1990..2089. |
|||
| 11.001 | DateTimeType (datetime) | Date only. |
|||
| 12.001 | DecimalType (number) | |
| 12.100-12.102 | QuantityType\<> (number) (Number:Time) | |
| 12.1200-12.1201 | QuantityType\<> (number) (Number:Volume) | |
|||
| 13.xxx | QuantityType\<> (number) (Number:...) | See [documentation on UOM](https://www.openhab.org/docs/concepts/units-of-measurement.html) |
| 13.001 | DecimalType (number) | |
| 13.002 | QuantityType\<> (number) (Number:VolumetricFlowRate) | |
| 13.010-13.016 | QuantityType\<> (number) (Number:...) | |
| 13.100 | QuantityType\<> (number) (Number:...) | |
| 13.1200-13.1201 | QuantityType\<> (number) (Number:Time) | |
|||
| 14.xxx | QuantityType\<> (number) (Number:...) | See [documentation on UOM](https://www.openhab.org/docs/concepts/units-of-measurement.html) |
| 14.000-14.080 | QuantityType\<> (number) (Number:...) | |
| 14.1200-14.1201 | QuantityType\<> (number) (Number:...) | |
|||
| 16.000 | StringType (string) | ASCII |
| 16.001 | StringType (string) | ISO 8859-1 |
|||
| 17.001 | DecimalType (number) | Scene 0..63 |
|||
| 18.001 | DecimalType (number) | Scene 0..63, add offset 0x80 (128) for storing scenes |
|||
| 19.001 | DateTimeType (datetime) (DateTime) | Date and Time, year can be 1900..2155 |
|||
| 20.xxx | | Incomplete, only subtypes given below are supported; override with DPT5.010 if you need enum as DecimalType |
| 20.001-20.009 | StringType (string) | |
| 20.011-20.014 | StringType (string) | |
| 20.017 | StringType (string) | |
| 20.020-20.021 | StringType (string) | |
| 20.100-20.114 | StringType (string) | |
| 20.120-20.122 | StringType (string) | |
| 20.600-20.610 | StringType (string) | |
| 20.801-20.804 | StringType (string) | |
| 20.1000-20.1005 | StringType (string) | |
| 20.1200 | StringType (string) | |
| 20.1202 | StringType (string) | |
|||
| 21.xxx | | Incomplete, only subtypes given below are supported; override with DPT5.010 if you need bitset as DecimalType |
| 21.001-20.002 | StringType (string) | |
| 21.100-20.106 | StringType (string) | |
| 21.601 | StringType (string) | |
| 21.1000-21.1002 | StringType (string) | |
| 21.1010 | StringType (string) | |
|||
| 22.xxx | | Incomplete, only subtypes given below are supported; override with DPT7.010 if you need bitset as DecimalType |
| 22.101 | StringType (string) | |
| 22.1000 | StringType (string) | |
|||
| 28.001 | StringType (string) | KNX representation is Null-terminated, do not include null characters |
|||
| 29.010-29.012 | QuantityType\<> (number) (Number:...) | |
|||
| 229.001 | DecimalType (number) | Scaling coded in KNX frame is regarded; for sending always encoded with flag "dimensionless" |
|||
| 232.600 | HSBType (color) | RGB |
| 232.60000 | HSBType (color) | Non-Standard, DPT 232.600 with HSB instead of RGB data |
|||
| 235.001 | QuantityType\<> (number) (Number:ActiveEnergy) | Composed DPT 235.001, first element ActiveEnergy (Wh), read only |
| 235.61001 | DecimalType (number) | Non-Standard, composed DPT 235.001, second element Tariff (plain number), read only |
|||
| 242.600 | HSBType (color) | xyY |
|||
| 243.600 | StringType (string) | |
|||
| 249.600 | StringType (string) | |
|||
| 250.600 | StringType (string) | |
|||
| 251.600 | HSBType (color) | RGBW, RGB part as HSBType |
| 251.600 | PercentType | RGBW, W part separately for Dimmer |
| 251.60600 | HSBType (color) | Non-Standard, lossy conversion from HSBType to RGBW |
|||
| 252.600 | StringType (string) | |
|||
| 253.600 | StringType (string) | |
|||
| 254.600 | StringType (string) | |
|||
## Special DPTs
OpenHAB supports all DPTs supported by the corresponding release of Calimero library.
OpenHAB supports all DPTs supported by the corresponding release of the Calimero library.
Additional DPTs have been introduced to add functionality:
@ -307,9 +461,9 @@ Additional DPTs have been introduced to add functionality:
### KNX IP Secure
KNX IP Secure protects the traffic between openHAB and your KNX installation.
It **requires a KNX Secure Router or a Secure IP Interface** and a KNX installation **with security features enabled in ETS tool**.
It **requires a KNX Secure Router or a Secure IP Interface** and a KNX installation **with security features enabled in the ETS tool**.
For _Secure routing_ mode, the so called `backbone key` needs to be configured in openHAB.
For _Secure routing_ mode, the so-called `backbone key` needs to be configured in openHAB.
It is created by the ETS tool and cannot be changed via the ETS user interface.
- The backbone key can be extracted from Security report (ETS, Reports, Security, look for a 32-digit key) and specified in parameter `routerBackboneKey`.
@ -317,12 +471,16 @@ It is created by the ETS tool and cannot be changed via the ETS user interface.
For _Secure tunneling_ with a Secure IP Interface (or a router in tunneling mode), more parameters are required.
A unique device authentication key, and a specific tunnel identifier and password need to be available.
- All information can be looked up in ETS and provided separately: `tunnelDeviceAuthentication`, `tunnelUserPassword`. `tunnelUserId` is a number which is not directly visible in ETS, but can be looked up in keyring export or deduced (typically 2 for the first tunnel of a device, 3 for the second one, ...). `tunnelUserPasswort` is set in ETS in the properties of the tunnel (below the IP interface you will see the different tunnels listed) denoted as "Password". `tunnelDeviceAuthentication` is set in the properties of the IP interface itself, check for a tab "IP" and a description "Authentication Code".
- All information can be looked up in ETS and provided separately: `tunnelDeviceAuthentication`, `tunnelUserPassword`.
`tunnelUserId` is a number that is not directly visible in ETS, but can be looked up in keyring export or deduced (typically 2 for the first tunnel of a device, 3 for the second one, ...).
`tunnelUserPasswort` is set in ETS in the properties of the tunnel (below the IP interface, you will see the different tunnels listed) and denoted as "Password".
`tunnelDeviceAuthentication` is set in the properties of the IP interface itself; check for the tab "IP" and the description "Authentication Code".
### KNX Data Secure
KNX Data Secure protects the content of messages on the KNX bus. In a KNX installation, both classic and secure group addresses can coexist.
Data Secure does _not_ necessarily require a KNX Secure Router or a Secure IP Interface, but a KNX installation with newer KNX devices which support Data Secure and with **security features enabled in ETS tool**.
KNX Data Secure protects the content of messages on the KNX bus.
In a KNX installation, both classic and secure group addresses can coexist.
Data Secure does _not_ necessarily require a KNX Secure Router or a Secure IP Interface, but a KNX installation with newer KNX devices that support Data Secure and with **security features enabled in the ETS tool**.
> NOTE: **openHAB currently ignores messages with secure group addresses.**

View File

@ -120,10 +120,10 @@ So if want your UI in english language place _en_ as desired language.
Same configuration is needed for all things
| Parameter | Type | Description |
|-----------------|---------|---------------------------------------|
| vin | text | Vehicle Identification Number (VIN) |
| refreshInterval | integer | Refresh Interval in Minutes |
| Parameter | Type | Description |
|-----------------|---------|-------------------------------------------------------------------------------------------------------------------------|
| vin | text | Vehicle Identification Number (VIN) |
| refreshInterval | integer | Refresh Interval in Minutes (by default set to 60; to be set to 0 if no automated refresh should be triggered) |
#### Advanced Configuration
@ -147,9 +147,10 @@ They differ for each vehicle type, build-in sensors and activated services.
| Channel Group ID | Description | conv | phev | bev_rex | bev |
|----------------------------------|---------------------------------------------------|------|------|---------|-----|
| [update](#vehicle-update) | Overall vehicle status | X | X | X | X |
| [status](#vehicle-status) | Overall vehicle status | X | X | X | X |
| [doors](#doors-details) | Details of all doors and windows | X | X | X | X |
| [range](#range-data) | Provides mileage, range and charge / fuel levels | X | X | X | X |
| [doors](#doors-details) | Detials of all doors and windows | X | X | X | X |
| [check](#check-control) | Shows current active CheckControl messages | X | X | X | X |
| [service](#services) | Future vehicle service schedules | X | X | X | X |
| [location](#location) | Coordinates and heading of the vehicle | X | X | X | X |
@ -160,6 +161,25 @@ They differ for each vehicle type, build-in sensors and activated services.
| [tires](#tire-pressure) | Current and wanted pressure for all tires | X | X | X | X |
| [image](#image) | Provides an image of your vehicle | X | X | X | X |
#### Vehicle Update
The BMW API has limits in the requests per time period.
This leads to unexpected errors stating that some quota is reached and the next successful request can be triggered in X minutes.
In this case the bridge as well as the vehicle things can be set to offline and nothing can be done with them anymore until the next successful refresh.
To reduce the probability of the error, the default automated API update has been set to 60 Minutes, but this is often not sufficient to retrieve continuous range or charging updates.
These channels can be used to control the update behavior from openHAB, e.g. via rules.
- Channel Group ID is status
- Available for all vehicles (charging channel only for xEV)
- switches which can be triggered by a command
- if the switches are set to ON, then immediately they will be set to OFF again for being able to trigger the next update
| Channel ID | Type | Description | conv | phev | bev_rex | bev |
|-----------------|--------|----------------------------------------------------------------------------------------------------------|------|------|---------|-----|
| state-update | Switch | When set to ON, the state channels of the vehicle will be updated | X | X | X | X |
| charging-update | Switch | When set to ON, the charging statistics and charging sessions channels of the vehicle will be updated | | X | X | X |
| image-update | Switch | When set to ON, the image of the vehicle will be updated | X | X | X | X |
#### Vehicle Status
Reflects overall status of the vehicle.
@ -168,19 +188,19 @@ Reflects overall status of the vehicle.
- Available for all vehicles
- Read-only values
| Channel Label | Channel ID | Type | Description | conv | phev | bev_rex | bev |
|---------------------------|---------------------|---------------|------------------------------------------------|------|------|---------|-----|
| Overall Door Status | doors | String | Combined status for all doors | X | X | X | X |
| Overall Window Status | windows | String | Combined status for all windows | X | X | X | X |
| Doors Locked | lock | String | Status if vehicle is secured | X | X | X | X |
| Next Service Date | service-date | DateTime | Date of next upcoming service | X | X | X | X |
| Mileage till Next Service | service-mileage | Number:Length | Mileage till upcoming service | X | X | X | X |
| Check Control | check-control | String | Presence of active warning messages | X | X | X | X |
| Plug Connection Status | plug-connection | String | Plug is _Connected_ or _Not connected_ | | X | X | X |
| Charging Status | charge | String | Current charging status | | X | X | X |
| Remaining Charging Time | charge-remaining | Number:Time | Remaining time for current charging session | | X | X | X |
| Last Status Timestamp | last-update | DateTime | Date and time of last status update | X | X | X | X |
| Last Fetched Timestamp | last-fetched | DateTime | Date and time of last time status fetched | X | X | X | X |
| Channel ID | Type | Description | conv | phev | bev_rex | bev |
|---------------------|---------------|------------------------------------------------|------|------|---------|-----|
| doors | String | Combined status for all doors | X | X | X | X |
| windows | String | Combined status for all windows | X | X | X | X |
| lock | String | Status if vehicle is secured | X | X | X | X |
| service-date | DateTime | Date of next upcoming service | X | X | X | X |
| service-mileage | Number:Length | Mileage till upcoming service | X | X | X | X |
| check-control | String | Presence of active warning messages | X | X | X | X |
| plug-connection | String | Plug is _Connected_ or _Not connected_ | | X | X | X |
| charge | String | Current charging status | | X | X | X |
| charge-remaining | Number:Time | Remaining time for current charging session | | X | X | X |
| last-update | DateTime | Date and time of last status update | X | X | X | X |
| last-fetched | DateTime | Date and time of last time status fetched | X | X | X | X |
Overall Door Status values
@ -223,9 +243,9 @@ The _raw data channel_ is marked as _advanced_ and isn't shown by default.
Target are advanced users to derive even more data out of BMW API replies.
As the replies are formatted as JSON use the [JsonPath Transformation Service](https://www.openhab.org/addons/transformations/jsonpath/) to extract data for an item,
| Channel Label | Channel ID | Type | Description |
|---------------------------|---------------------|---------------|------------------------------------------------|
| Raw Data | raw | String | Unfiltered JSON String of vehicle data |
| Channel ID | Type | Description |
|---------------------|---------------|------------------------------------------------|
| raw | String | Unfiltered JSON String of vehicle data |
<img align="right" src="./doc/RawData.png" width="400" height="125"/>
@ -254,19 +274,19 @@ See description [Range vs Range Radius](#range-vs-range-radius) to get more info
- Availability according to table
- Read-only values
| Channel Label | Channel ID | Type | conv | phev | bev_rex | bev |
|------------------------------------|----------------------------|----------------------|------|------|---------|-----|
| Mileage | mileage | Number:Length | X | X | X | X |
| Fuel Range | range-fuel | Number:Length | X | X | X | |
| Electric Range | range-electric | Number:Length | | X | X | X |
| Hybrid Range | range-hybrid | Number:Length | | X | X | |
| Battery Charge Level | soc | Number:Dimensionless | | X | X | X |
| Remaining Fuel | remaining-fuel | Number:Volume | X | X | X | |
| Estimated Fuel Consumption l/100km | estimated-fuel-l-100km | Number | X | X | X | |
| Estimated Fuel Consumption mpg | estimated-fuel-mpg | Number | X | X | X | |
| Fuel Range Radius | range-radius-fuel | Number:Length | X | X | X | |
| Electric Range Radius | range-radius-electric | Number:Length | | X | X | X |
| Hybrid Range Radius | range-radius-hybrid | Number:Length | | X | X | |
| Channel ID | Type | Description | conv | phev | bev_rex | bev |
|----------------------------|----------------------|-----------------------------------------------|------|------|---------|-----|
| mileage | Number:Length | Current mileage of the vehicle | X | X | X | X |
| range-fuel | Number:Length | Fuel range | X | X | X | |
| range-electric | Number:Length | Electric range | | X | X | X |
| range-hybrid | Number:Length | Combined hybrid range | | X | X | |
| soc | Number:Dimensionless | State of charge | | X | X | X |
| remaining-fuel | Number:Volume | Remaining fuel in l | X | X | X | |
| estimated-fuel-l-100km | Number | Estimated fuel consumption in l | X | X | X | |
| estimated-fuel-mpg | Number | Estimated fuel consumption in mpg | X | X | X | |
| range-radius-fuel | Number:Length | The calculated range radius combustion | X | X | X | |
| range-radius-electric | Number:Length | The calculated range radius electric | | X | X | X |
| range-radius-hybrid | Number:Length | The calculated range radius hybrid combined | | X | X | |
#### Doors Details
@ -276,20 +296,20 @@ Detailed status of all doors and windows.
- Available for all vehicles if corresponding sensors are built-in
- Read-only values
| Channel Label | Channel ID | Type |
|----------------------------|-------------------------|---------------|
| Driver Door | driver-front | String |
| Driver Door Rear | driver-rear | String |
| Passenger Door | passenger-front | String |
| Passenger Door Rear | passenger-rear | String |
| Trunk | trunk | String |
| Hood | hood | String |
| Driver Window | win-driver-front | String |
| Driver Rear Window | win-driver-rear | String |
| Passenger Window | win-passenger-front | String |
| Passenger Rear Window | win-passenger-rear | String |
| Rear Window | win-rear | String |
| Sunroof | sunroof | String |
| Channel ID | Type | Description |
|-------------------------|---------------|-----------------------------------------|
| driver-front | String | Status of front door driver's side |
| driver-rear | String | Status of rear door driver's side |
| passenger-front | String | Status of front door passenger's side |
| passenger-rear | String | Status of rear door passenger's side |
| trunk | String | Status of trunk |
| hood | String | Status of hood |
| win-driver-front | String | Status of front window driver's side |
| win-driver-rear | String | Status of rear window driver's side |
| win-passenger-front | String | Status of front window passenger's side |
| win-passenger-rear | String | Status of rear window passenger's side |
| win-rear | String | Status of rear window |
| sunroof | String | Status of sunroof |
Possible states
@ -308,11 +328,11 @@ If more than one message is active the channel _name_ contains all active messag
- Available for all vehicles
- Read/Write access
| Channel Label | Channel ID | Type | Access |
|---------------------------------|---------------------|----------------|------------|
| Check Control Description | name | String | Read/Write |
| Check Control Details | details | String | Read |
| Severity Level | severity | String | Read |
| Channel ID | Type | Access |
|---------------------|----------------|------------|
| name | String | Read/Write |
| details | String | Read |
| severity | String | Read |
Severity Levels
@ -329,12 +349,12 @@ If more than one service is scheduled in the future the channel _name_ contains
- Available for all vehicles
- Read/Write access
| Channel Label | Channel ID | Type | Access |
|--------------------------------|---------------------|----------------|------------|
| Service Name | name | String | Read/Write |
| Service Details | details | String | Read |
| Service Date | date | DateTime | Read |
| Mileage till Service | mileage | Number:Length | Read |
| Channel ID | Type | Access |
|---------------------|----------------|------------|
| name | String | Read/Write |
| details | String | Read |
| date | DateTime | Read |
| mileage | Number:Length | Read |
#### Location
@ -344,12 +364,12 @@ GPS location and heading of the vehicle.
- Available for all vehicles with built-in GPS sensor. Function can be enabled/disabled in the head unit
- Read-only values
| Channel Label | Channel ID | Type |
|---------------------|---------------------|---------------|
| GPS Coordinates | gps | Location |
| Heading | heading | Number:Angle |
| Address | address | String |
| Distance from Home | home-distance | Number:Length |
| Channel ID | Type | Description |
|---------------------|---------------|--------------------------------------------------------------|
| gps | Location | Current GPS coordinates of the vehicle |
| heading | Number:Angle | Current direction of the vehicle |
| address | String | Current address |
| home-distance | Number:Length | Calculated distance from configured home position of Openhab |
#### Remote Services
@ -362,10 +382,10 @@ Parallel execution isn't supported.
- Available for all commands mentioned in _Services Activated_. See [Vehicle Properties](#properties) for further details
- Read/Write access
| Channel Label | Channel ID | Type | Access |
|-------------------------|---------------------|---------|--------|
| Remote Service Command | command | String | Write |
| Service Execution State | state | String | Read |
| Channel ID | Type | Access |
|---------------------|---------|--------|
| command | String | Write |
| state | String | Read |
The channel _command_ provides options
@ -394,25 +414,25 @@ Charging options with date and time for preferred time windows and charging mode
- Read access for UI.
- There are 4 timers _T1, T2, T3 and T4_ available. Replace _X_ with number 1,2 or 3 to target the correct timer
| Channel Label | Channel ID | Type |
|----------------------------|---------------------------|----------|
| Charge Mode | mode | String |
| Charge Preferences | prefs | String |
| Charging Plan | control | String |
| SoC Target | target | String |
| Charging Energy Limited | limit | Switch |
| Window Start Time | window-start | DateTime |
| Window End Time | window-end | DateTime |
| A/C at Departure | climate | Switch |
| T_X_ Enabled | timer_X_-enabled | Switch |
| T_X_ Departure Time | timer_X_-departure | DateTime |
| T_X_ Monday | timer_X_-day-mon | Switch |
| T_X_ Tuesday | timer_X_-day-tue | Switch |
| T_X_ Wednesday | timer_X_-day-wed | Switch |
| T_X_ Thursday | timer_X_-day-thu | Switch |
| T_X_ Friday | timer_X_-day-fri | Switch |
| T_X_ Saturday | timer_X_-day-sat | Switch |
| T_X_ Sunday | timer_X_-day-sun | Switch |
| Channel ID | Type |
|---------------------------|----------|
| mode | String |
| prefs | String |
| control | String |
| target | String |
| limit | Switch |
| window-start | DateTime |
| window-end | DateTime |
| climate | Switch |
| timer_X_-enabled | Switch |
| timer_X_-departure | DateTime |
| timer_X_-day-mon | Switch |
| timer_X_-day-tue | Switch |
| timer_X_-day-wed | Switch |
| timer_X_-day-thu | Switch |
| timer_X_-day-fri | Switch |
| timer_X_-day-sat | Switch |
| timer_X_-day-sun | Switch |
The channel _profile-mode_ supports
@ -432,11 +452,11 @@ Shows charge statistics of the current month
- Available for electric and hybrid vehicles
- Read-only values
| Channel Label | Channel ID | Type |
|----------------------------|-------------------------|----------------|
| Charge Statistic Month | title | String |
| Energy Charged | energy | Number:Energy |
| Charge Sessions | sessions | Number |
| Channel ID | Type | Description |
|-------------------------|----------------|-------------------------|
| title | String | Title of the statistics |
| energy | Number:Energy | Consumed energy |
| sessions | Number | Number of sessions |
#### Charge Sessions
@ -447,13 +467,13 @@ If more than one message is active the channel _name_ contains all active messag
- Available for electric and hybrid vehicles
- Read-only values
| Channel Label | Channel ID | Type |
|---------------------------------|--------------|----------|
| Session Title | title | String |
| Session Details | subtitle | String |
| Charged Energy in Session | energy | String |
| Issues during Session | issue | String |
| Session Status | status | String |
| Channel ID | Type | Description |
|--------------|----------|-------------------------|
| title | String | Title of the session |
| subtitle | String | Subtitle of the session |
| energy | String | Consumed energy |
| issue | String | If an issue occurred |
| status | String | Status of the session |
#### Tire Pressure
@ -463,16 +483,16 @@ Current and target tire pressure values
- Available for all vehicles if corresponding sensors are built-in
- Read-only values
| Channel Label | Channel ID | Type |
|----------------------------|-------------------------|------------------|
| Front Left | fl-current | Number:Pressure |
| Front Left Target | fl-target | Number:Pressure |
| Front Right | fr-current | Number:Pressure |
| Front Right Target | fr-target | Number:Pressure |
| Rear Left | rl-current | Number:Pressure |
| Rear Left Target | rl-target | Number:Pressure |
| Rear Right | rr-current | Number:Pressure |
| Rear Right Target | rr-target | Number:Pressure |
| Channel ID | Type | Description |
|-------------------------|------------------|------------------------------|
| fl-current | Number:Pressure | Current pressure front left |
| fl-target | Number:Pressure | Target pressure front left |
| fr-current | Number:Pressure | Current pressure front right |
| fr-target | Number:Pressure | Target pressure front right |
| rl-current | Number:Pressure | Current pressure rear left |
| rl-target | Number:Pressure | Target pressure rear left |
| rr-current | Number:Pressure | Current pressure rear right |
| rr-target | Number:Pressure | Target pressure rear right |
#### Image
@ -482,10 +502,10 @@ Image representation of the vehicle.
- Available for all vehicles
- Read/Write access
| Channel Label | Channel ID | Type | Access |
|----------------------------|---------------------|--------|----------|
| Rendered Vehicle Image | png | Image | Read |
| Image Viewport | view | String | Write |
| Channel ID | Type | Access | Description |
|---------------------|--------|----------|---------------------------|
| png | Image | Read | The image as png |
| view | String | Write | The view port of the car |
Possible view ports:

View File

@ -4,7 +4,8 @@
xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
<thing-type id="device" extensible="switch, switch-readonly, number, number-readonly">
<thing-type id="device"
extensible="switch-r, switch-rw, percentage-r, percentage-rw, temperature-r, temperature-rw, pressure-r, flowrate-r, mode-rw, mode-r">
<label>ISM8 Device</label>
<description>ISM8 Interface</description>
@ -17,7 +18,7 @@
</config-description>
</thing-type>
<channel-type id="switch">
<channel-type id="switch-rw">
<item-type>Switch</item-type>
<label>Digital DataPoint</label>
<config-description>
@ -38,7 +39,7 @@
</config-description>
</channel-type>
<channel-type id="switch-readonly">
<channel-type id="switch-r">
<item-type>Switch</item-type>
<label>Digital Readonly DataPoint</label>
<state readOnly="true"/>
@ -60,9 +61,9 @@
</config-description>
</channel-type>
<channel-type id="number-readonly">
<item-type>Number</item-type>
<label>Value Readonly DataPoint</label>
<channel-type id="percentage-r">
<item-type>Number:Dimensionless</item-type>
<label>Percentage Readonly DataPoint</label>
<state readOnly="true"/>
<config-description>
<parameter name="id" type="integer" required="true">
@ -74,21 +75,33 @@
<description>Put the KNX-type of the DataPoint (e.g. DPT_Value_Temp / 9.001)</description>
<options>
<option value="5.001">DPT_Scaling</option>
<option value="9.001">DPT_Value_Temp</option>
<option value="9.002">DPT_Value_Tempd</option>
<option value="9.006">DPT_Value_Pres</option>
<option value="13.002">DPT_FlowRate</option>
<option value="20.102">DPT_HVACMode</option>
<option value="20.103">DPT_DHWMode</option>
<option value="20.105">DPT_HVACContrMode</option>
</options>
</parameter>
</config-description>
</channel-type>
<channel-type id="number">
<item-type>Number</item-type>
<label>Value DataPoint</label>
<channel-type id="percentage-rw">
<item-type>Number:Dimensionless</item-type>
<label>Percentage DataPoint</label>
<config-description>
<parameter name="id" type="integer" required="true">
<label>DP ID</label>
<description>Put the number of the DataPoint ID to be mapped from the heating sytem.</description>
</parameter>
<parameter name="type" type="text" required="true">
<label>Type</label>
<description>Put the KNX-type of the DataPoint (e.g. DPT_Value_Temp / 9.001)</description>
<options>
<option value="5.001">DPT_Scaling</option>
</options>
</parameter>
</config-description>
</channel-type>
<channel-type id="temperature-r">
<item-type>Number:Temperature</item-type>
<label>Temperature Readonly DataPoint</label>
<state readOnly="true"/>
<config-description>
<parameter name="id" type="integer" required="true">
<label>DP ID</label>
@ -99,6 +112,102 @@
<description>Put the KNX-type of the DataPoint (e.g. DPT_Value_Temp / 9.001)</description>
<options>
<option value="9.001">DPT_Value_Temp</option>
<option value="9.002">DPT_Value_Tempd</option>
</options>
</parameter>
</config-description>
</channel-type>
<channel-type id="temperature-rw">
<item-type>Number:Temperature</item-type>
<label>Temperature DataPoint</label>
<state readOnly="true"/>
<config-description>
<parameter name="id" type="integer" required="true">
<label>DP ID</label>
<description>Put the number of the DataPoint ID to be mapped from the heating sytem.</description>
</parameter>
<parameter name="type" type="text" required="true">
<label>Type</label>
<description>Put the KNX-type of the DataPoint (e.g. DPT_Value_Temp / 9.001)</description>
<options>
<option value="9.001">DPT_Value_Temp</option>
<option value="9.002">DPT_Value_Tempd</option>
</options>
</parameter>
</config-description>
</channel-type>
<channel-type id="pressure-r">
<item-type>Number:Pressure</item-type>
<label>Pressure Readonly DataPoint</label>
<state readOnly="true"/>
<config-description>
<parameter name="id" type="integer" required="true">
<label>DP ID</label>
<description>Put the number of the DataPoint ID to be mapped from the heating sytem.</description>
</parameter>
<parameter name="type" type="text" required="true">
<label>Type</label>
<description>Put the KNX-type of the DataPoint (e.g. DPT_Value_Temp / 9.001)</description>
<options>
<option value="9.006">DPT_Value_Pres</option>
</options>
</parameter>
</config-description>
</channel-type>
<channel-type id="flowrate-r">
<item-type>Number:VolumetricFlowRate</item-type>
<label>Flowrate Readonly DataPoint</label>
<state readOnly="true"/>
<config-description>
<parameter name="id" type="integer" required="true">
<label>DP ID</label>
<description>Put the number of the DataPoint ID to be mapped from the heating sytem.</description>
</parameter>
<parameter name="type" type="text" required="true">
<label>Type</label>
<description>Put the KNX-type of the DataPoint (e.g. DPT_Value_Temp / 9.001)</description>
<options>
<option value="13.002">DPT_FlowRate</option>
</options>
</parameter>
</config-description>
</channel-type>
<channel-type id="mode-r">
<item-type>Number:Dimensionless</item-type>
<label>Mode Readonly DataPoint</label>
<config-description>
<parameter name="id" type="integer" required="true">
<label>DP ID</label>
<description>Put the number of the DataPoint ID to be mapped from the heating sytem.</description>
</parameter>
<parameter name="type" type="text" required="true">
<label>Type</label>
<description>Put the KNX-type of the DataPoint (e.g. DPT_Value_Temp / 9.001)</description>
<options>
<option value="20.102">DPT_HVACMode</option>
<option value="20.103">DPT_DHWMode</option>
<option value="20.105">DPT_HVACContrMode</option>
</options>
</parameter>
</config-description>
</channel-type>
<channel-type id="mode-rw">
<item-type>Number:Dimensionless</item-type>
<label>Mode DataPoint</label>
<config-description>
<parameter name="id" type="integer" required="true">
<label>DP ID</label>
<description>Put the number of the DataPoint ID to be mapped from the heating sytem.</description>
</parameter>
<parameter name="type" type="text" required="true">
<label>Type</label>
<description>Put the KNX-type of the DataPoint (e.g. DPT_Value_Temp / 9.001)</description>
<options>
<option value="20.102">DPT_HVACMode</option>
<option value="20.103">DPT_DHWMode</option>
<option value="20.105">DPT_HVACContrMode</option>

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<thing:thing-descriptions bindingId="mybmw"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
<channel-group-type id="ev-vehicle-update">
<label>Vehicle Update</label>
<description>Triggering the vehicle update</description>
<channels>
<channel id="state-update" typeId="state-update-channel"/>
<channel id="charging-update" typeId="charging-update-channel"/>
<channel id="image-update" typeId="image-update-channel"/>
</channels>
</channel-group-type>
</thing:thing-descriptions>

View File

@ -13,6 +13,7 @@
<description>Battery Electric Vehicle (BEV)</description>
<channel-groups>
<channel-group id="update" typeId="ev-vehicle-update"/>
<channel-group id="status" typeId="ev-vehicle-status"/>
<channel-group id="doors" typeId="door-values"/>
<channel-group id="range" typeId="ev-range-values"/>
@ -28,7 +29,7 @@
</channel-groups>
<properties>
<property name="thingTypeVersion">1</property>
<property name="thingTypeVersion">2</property>
</properties>
<representation-property>vin</representation-property>

View File

@ -13,6 +13,7 @@
<description>Battery Electric Vehicle with Range Extender (BEV_REX)</description>
<channel-groups>
<channel-group id="update" typeId="ev-vehicle-update"/>
<channel-group id="status" typeId="ev-vehicle-status"/>
<channel-group id="doors" typeId="door-values"/>
<channel-group id="range" typeId="hybrid-range-values"/>
@ -28,7 +29,7 @@
</channel-groups>
<properties>
<property name="thingTypeVersion">1</property>
<property name="thingTypeVersion">2</property>
</properties>
<representation-property>vin</representation-property>

View File

@ -13,6 +13,7 @@
<description>Conventional Fuel Vehicle (CONV)</description>
<channel-groups>
<channel-group id="update" typeId="vehicle-update"/>
<channel-group id="status" typeId="vehicle-status"/>
<channel-group id="doors" typeId="door-values"/>
<channel-group id="range" typeId="conv-range-values"/>
@ -25,7 +26,7 @@
</channel-groups>
<properties>
<property name="thingTypeVersion">1</property>
<property name="thingTypeVersion">2</property>
</properties>
<representation-property>vin</representation-property>

View File

@ -13,6 +13,7 @@
<description>Conventional Fuel Vehicle with supporting Electric Engine (PHEV)</description>
<channel-groups>
<channel-group id="update" typeId="ev-vehicle-update"/>
<channel-group id="status" typeId="ev-vehicle-status"/>
<channel-group id="doors" typeId="door-values"/>
<channel-group id="range" typeId="hybrid-range-values"/>
@ -28,7 +29,7 @@
</channel-groups>
<properties>
<property name="thingTypeVersion">1</property>
<property name="thingTypeVersion">2</property>
</properties>
<representation-property>vin</representation-property>

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<thing:thing-descriptions bindingId="mybmw"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
<channel-type id="state-update-channel">
<item-type>Switch</item-type>
<label>trigger the update of the state</label>
<autoUpdatePolicy>veto</autoUpdatePolicy>
</channel-type>
<channel-type id="charging-update-channel">
<item-type>Switch</item-type>
<label>trigger the update of the charging information</label>
<autoUpdatePolicy>veto</autoUpdatePolicy>
</channel-type>
<channel-type id="image-update-channel">
<item-type>Switch</item-type>
<label>trigger the update of the image</label>
<autoUpdatePolicy>veto</autoUpdatePolicy>
</channel-type>
</thing:thing-descriptions>

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<thing:thing-descriptions bindingId="mybmw"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
<channel-group-type id="vehicle-update">
<label>Vehicle Update</label>
<description>Triggering the vehicle update</description>
<channels>
<channel id="state-update" typeId="state-update-channel"/>
<channel id="image-update" typeId="image-update-channel"/>
</channels>
</channel-group-type>
</thing:thing-descriptions>