Updated external content (Jenkins build 910)
|
@ -28,11 +28,22 @@ Each Thing provides one or more warnings for a city.
|
|||
|
||||
## Thing Configuration
|
||||
|
||||
| Property | Default | Required | Description |
|
||||
|--------------|---------|----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| cellId | - | Yes | ID of the area to retrieve weather warnings. See [this list](https://www.dwd.de/DE/leistungen/opendata/help/warnungen/cap_warncellids_csv.csv) of valid IDs. Using the percent sign (%) as a wildcard, it is possible to query multiple cells. For example, the value `8111%` retrieves all cell IDs that start with `8111`. |
|
||||
| refresh | 30 | No | Time between API requests in minutes. Minimum 15 minutes. |
|
||||
| warningCount | 1 | No | Number of warnings to provide. |
|
||||
| Property | Default | Required | Description |
|
||||
|--------------|---------|----------|--------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| cellId | - | Yes | ID of the area to retrieve weather warnings, only IDs starting with an 8 (exception for Berlin: 7) are supported. See [Cell ID](#cell-id). |
|
||||
| refresh | 30 | No | Time between API requests in minutes. Minimum 15 minutes. |
|
||||
| warningCount | 1 | No | Number of warnings to provide. |
|
||||
|
||||
|
||||
### Cell ID
|
||||
<!-- See page 10-13 (in German) of https://www.dwd.de/DE/wetter/warnungen_aktuell/objekt_einbindung/einbindung_karten_geodienste.pdf?__blob=publicationFile&v=14 for Cell ID documentation. -->
|
||||
Use [this list](https://www.dwd.de/DE/leistungen/opendata/help/warnungen/cap_warncellids_csv.csv) of valid IDs, please notice that **only IDs starting with an eight (8) and nine digits are supported** by this binding.
|
||||
Exeception for Berlin, where the ID of the city's districts are used. Those start with a seven (7).
|
||||
|
||||
Using the percent sign (%) as a wildcard, it is possible to query multiple cells.
|
||||
For example, the value `8111%` retrieves all cell IDs that start with `8111`.
|
||||
|
||||
More explanation (in German) for CellID can be found on page 10-13 of [PDF: DWD-Geoserver: Nutzung von WMS-Diensten für eigene Websites](https://www.dwd.de/DE/wetter/warnungen_aktuell/objekt_einbindung/einbindung_karten_geodienste.pdf?__blob=publicationFile&v=14).
|
||||
|
||||
The binding will deliver no warnings if the number of retrieved warnings for one Thing is too big.
|
||||
This can only happen if you select too many cell IDs (more than about 300) with the percent wildcard.
|
||||
|
@ -40,7 +51,7 @@ This can only happen if you select too many cell IDs (more than about 300) with
|
|||
Example:
|
||||
|
||||
```
|
||||
dwdunwetter:dwdwarnings:cologne "Warnings Cologne" [ cellId="105315000", refresh=15, warningCount=1 ]
|
||||
dwdunwetter:dwdwarnings:cologne "Warnings Cologne" [ cellId="805315000", refresh=15, warningCount=1 ]
|
||||
```
|
||||
|
||||
|
||||
|
@ -52,21 +63,21 @@ The warnings will be sorted first by `Severity` and then by the `Valid From` dat
|
|||
This ensures that the channels for the first warning will always be the highest Severity.
|
||||
If the API returns more warnings than the configured number in the Thing, the warnings with the lowest Severity will be dropped.
|
||||
|
||||
| Channel | Type | Description |
|
||||
|--------------|-----------------|----------------------------------------------------------------------------------|
|
||||
| warningN | Switch | ON if a warning is present |
|
||||
| UpdatedN | Trigger Channel | Triggers NEW when a warning is sent the first time |
|
||||
| severityN | String | Severity of the warning. Possible values are Minor, Moderate, Severe, and Extreme|
|
||||
| headlineN | String | Headline of the warning (e.g. "Amtliche Warnung vor FROST") |
|
||||
| descriptionN | String | Textual description of the warning |
|
||||
| eventN | String | Type of the warning (e.g. FROST) |
|
||||
| effectiveN | DateTime | Issued Date and Time |
|
||||
| onsetN | DateTime | Start Date and Time for which the warning is valid |
|
||||
| expiresN | DateTime | End Date and Time for which the warning is valid |
|
||||
| altitudeN | Number:Length | Lower Height above sea level for which the warning is valid |
|
||||
| ceilingN | Number:Length | Upper Height above sea level for which the warning is valid |
|
||||
| urgencyN | String | Urgency of the warning. Possible values are Future and Immediate |
|
||||
| instructionN | String | Additional instructions and safety information |
|
||||
| Channel | Type | Description |
|
||||
|--------------|-----------------|-----------------------------------------------------------------------------------|
|
||||
| warningN | Switch | ON if a warning is present |
|
||||
| UpdatedN | Trigger Channel | Triggers NEW when a warning is sent the first time |
|
||||
| severityN | String | Severity of the warning. Possible values are Minor, Moderate, Severe, and Extreme |
|
||||
| headlineN | String | Headline of the warning (e.g. "Amtliche Warnung vor FROST") |
|
||||
| descriptionN | String | Textual description of the warning |
|
||||
| eventN | String | Type of the warning (e.g. FROST) |
|
||||
| effectiveN | DateTime | Issued Date and Time |
|
||||
| onsetN | DateTime | Start Date and Time for which the warning is valid |
|
||||
| expiresN | DateTime | End Date and Time for which the warning is valid |
|
||||
| altitudeN | Number:Length | Lower Height above sea level for which the warning is valid |
|
||||
| ceilingN | Number:Length | Upper Height above sea level for which the warning is valid |
|
||||
| urgencyN | String | Urgency of the warning. Possible values are Future and Immediate |
|
||||
| instructionN | String | Additional instructions and safety information |
|
||||
|
||||
All channels are readonly.
|
||||
|
||||
|
@ -78,14 +89,15 @@ For rules that need to fire if a new warning occurs, there is the trigger channe
|
|||
That trigger channel fires an event whenever a warning is sent for the first time.
|
||||
It also triggers if a warning is replaced by another.
|
||||
|
||||
More explanations about the specific values of the channels can be found in the PDF documentation of the DWD at: [CAP DWD Profile 1.2](https://www.dwd.de/DE/leistungen/opendata/help/warnungen/cap_dwd_profile_en_pdf_1_12.html)
|
||||
More explanations about the specific values of the channels can be found in the PDF documentation of the DWD at: [CAP DWD Profile 1.2](https://www.dwd.de/DE/leistungen/opendata/help/warnungen/cap_dwd_profile_en_pdf_1_12.html).
|
||||
Please note that this binding only supports *Gemeinden* (COMMUNE) for *WarncellID*.
|
||||
|
||||
## Full Example
|
||||
|
||||
dwdunwetter.things:
|
||||
|
||||
```
|
||||
dwdunwetter:dwdwarnings:cologne "Warnings Cologne" [ cellId="105315000", refresh=15, warningCount=1 ]
|
||||
dwdunwetter:dwdwarnings:cologne "Warnings Cologne" [ cellId="805315000", refresh=15, warningCount=1 ]
|
||||
```
|
||||
|
||||
e.g.
|
||||
|
@ -93,7 +105,7 @@ e.g.
|
|||
to get two warnings like in the item example, set `warningCount=2` in things file
|
||||
|
||||
```
|
||||
dwdunwetter:dwdwarnings:cologne "Warnings Cologne" [ cellId="105315000", refresh=15, warningCount=2
|
||||
dwdunwetter:dwdwarnings:cologne "Warnings Cologne" [ cellId="805315000", refresh=15, warningCount=2 ]
|
||||
```
|
||||
|
||||
dwdunwetter.items:
|
||||
|
@ -122,8 +134,7 @@ DateTime WarningCologneAusgabedatum_2 "Issued at [%s]"
|
|||
demo.sitemap:
|
||||
|
||||
```
|
||||
sitemap demo label="Main Menu"
|
||||
{
|
||||
sitemap demo label="Main Menu" {
|
||||
Frame {
|
||||
Text item=WarningCologneTitel visibility=[WarningCologne==ON]
|
||||
Text item=WarningCologneBeschreibung visibility=[WarningCologne==ON]
|
||||
|
@ -172,8 +183,4 @@ NULL=undefiniert
|
|||
UNDEF=undefiniert
|
||||
```
|
||||
|
||||
If you're unsure if the binding is working correctly, you can access the json directly with curl or any browser [json](https://www.dwd.de/DWD/warnungen/warnapp/json/warnings.json) and have a look for an active ID to test your setup.
|
||||
|
||||
```
|
||||
curl https://www.dwd.de/DWD/warnungen/warnapp/json/warnings.json | less
|
||||
```
|
||||
If you're unsure if the binding is working correctly, you can access the data directly by visiting https://maps.dwd.de/geoserver/dwd/ows?service=WFS&version=2.0.0&request=GetFeature&typeName=dwd:Warnungen_Gemeinden&CQL_FILTER=WARNCELLID%20LIKE%20%27CELL_ID%27 (replace `CELL_ID` with your Cell ID), allowing the download and opening the downloaded `.xml` file.
|
||||
|
|
After Width: | Height: | Size: 211 KiB |
After Width: | Height: | Size: 460 KiB |
After Width: | Height: | Size: 188 KiB |
After Width: | Height: | Size: 337 KiB |
After Width: | Height: | Size: 47 KiB |
After Width: | Height: | Size: 43 KiB |
After Width: | Height: | Size: 31 KiB |
After Width: | Height: | Size: 238 KiB |
After Width: | Height: | Size: 345 KiB |
After Width: | Height: | Size: 1.3 MiB |
After Width: | Height: | Size: 54 KiB |
After Width: | Height: | Size: 740 KiB |
After Width: | Height: | Size: 97 KiB |
|
@ -0,0 +1,860 @@
|
|||
---
|
||||
id: mybmw
|
||||
label: MyBMW
|
||||
title: MyBMW - Bindings
|
||||
type: binding
|
||||
description: "The binding provides access like [MyBMW App](https://www.bmw.com/en/footer/mybmw-app.html) to openHAB."
|
||||
since: 3x
|
||||
install: manual
|
||||
---
|
||||
|
||||
<!-- Attention authors: Do not edit directly. Please add your changes to the appropriate source repository -->
|
||||
|
||||
{% include base.html %}
|
||||
|
||||
# MyBMW Binding
|
||||
|
||||
The binding provides access like [MyBMW App](https://www.bmw.com/en/footer/mybmw-app.html) to openHAB.
|
||||
All vehicles connected to an account will be detected by the discovery with the correct type:
|
||||
|
||||
* Conventional Fuel Vehicle
|
||||
* Plugin-Hybrid Electrical Vehicle
|
||||
* Battery Electric Vehicle with Range Extender
|
||||
* Battery Electric Vehicle
|
||||
|
||||
In addition properties are attached with information and services provided by this vehicle.
|
||||
The provided data depends on
|
||||
|
||||
1. the [Thing Type](#things) and
|
||||
2. the [Properties](#properties) mentioned in Services
|
||||
|
||||
Different channel groups are clustering all information.
|
||||
Check for each group if it's supported by your vehicle.
|
||||
|
||||
Please note **this isn't a real-time binding**.
|
||||
If a door is opened the state isn't transmitted and changed immediately.
|
||||
It's not a flaw in the binding itself because the state in BMW's own MyBMW App is also updated with some delay.
|
||||
|
||||
## Supported Things
|
||||
|
||||
### Bridge
|
||||
|
||||
The bridge establishes the connection between BMW API and openHAB.
|
||||
|
||||
| Name | Bridge Type ID | Description |
|
||||
|----------------------------|----------------|------------------------------------------|
|
||||
| MyBMW Account | `account` | Access to BMW API for a specific user |
|
||||
|
||||
|
||||
### Things
|
||||
|
||||
Four different vehicle types are provided.
|
||||
They differ in the supported channel groups & channels.
|
||||
Conventional Fuel Vehicles don't provide e.g. _Charging Profile_, Electric Vehicles don't provide a _Fuel Range_.
|
||||
For hybrid vehicles in addition to _Fuel and Electric Range_ the _Hybrid Range_ is shown.
|
||||
|
||||
| Name | Thing Type ID | Supported Channel Groups |
|
||||
|-------------------------------------|---------------|---------------------------------------------------------------------|
|
||||
| BMW Electric Vehicle | `bev` | Vehicle with electric drive train |
|
||||
| BMW Electric Vehicle with REX | `bev_rex` | Vehicle with electric drive train plus fuel powered range extender |
|
||||
| BMW Plug-In-Hybrid Electric Vehicle | `phev` | Vehicle with combustion and electric drive train |
|
||||
| BMW Conventional Vehicle | `conv` | Vehicle with combustion drive train |
|
||||
|
||||
|
||||
#### Properties
|
||||
|
||||
<img align="right" src="./doc/vehicle-properties.png" width="500" height="350"/>
|
||||
|
||||
For each vehicle properties are available.
|
||||
Basic information is given regarding
|
||||
|
||||
* Vehicle properties like model type, drive train and construction year
|
||||
* Which services are available / not available
|
||||
|
||||
In the right picture can see in *remoteServicesEnabled* e.g. the *Door Lock* and *Door Unlock* services are mentioned.
|
||||
This ensures channel group [Remote Services](#remote-services) is supporting door lock and unlock remote control.
|
||||
|
||||
In *Services Supported* the entry *ChargingHistory* is mentioned.
|
||||
So it's valid to connect channel group [Charge Sessions](#charge-sessions) in order to display your last charging sessions.
|
||||
|
||||
| Property Key | Property Value | Supported Channel Groups |
|
||||
|------------------------|---------------------|------------------------------|
|
||||
| servicesSupported | ChargingHistory | session |
|
||||
| remoteServicesEnabled | _list of services_ | remote |
|
||||
|
||||
|
||||
## Discovery
|
||||
|
||||
Auto discovery is starting after the bridge is created.
|
||||
A list of your registered vehicles is queried and all found things are added in the inbox.
|
||||
Unique identifier is the *Vehicle Identification Number* (VIN).
|
||||
If a thing is already declared in a _.things_ configuration, discovery won't highlight it again.
|
||||
Properties will be attached to predefined vehicles if the VIN is matching.
|
||||
|
||||
## Configuration
|
||||
|
||||
### Bridge Configuration
|
||||
|
||||
| Parameter | Type | Description |
|
||||
|-----------------|---------|--------------------------------------------------------------------|
|
||||
| userName | text | MyBMW Username |
|
||||
| password | text | MyBMW Password |
|
||||
| region | text | Select region in order to connect to the appropriate BMW server. |
|
||||
|
||||
The region Configuration has 3 different options
|
||||
|
||||
* _NORTH_AMERICA_
|
||||
* _CHINA_
|
||||
* _ROW_ (Rest of World)
|
||||
|
||||
|
||||
#### Advanced Configuration
|
||||
|
||||
| Parameter | Type | Description |
|
||||
|-----------------|---------|---------------------------------------------------------|
|
||||
| language | text | Channel data can be returned in the desired language |
|
||||
|
||||
Language is predefined as *AUTODETECT*.
|
||||
Some textual descriptions, date and times are delivered based on your local language.
|
||||
You can overwrite this setting with lowercase 2-letter [language code reagrding ISO 639](https://www.oracle.com/java/technologies/javase/jdk8-jre8-suported-locales.html)
|
||||
So if want your UI in english language place *en* as desired language.
|
||||
|
||||
### Thing Configuration
|
||||
|
||||
Same configuration is needed for all things
|
||||
|
||||
| Parameter | Type | Description |
|
||||
|-----------------|---------|---------------------------------------|
|
||||
| vin | text | Vehicle Identification Number (VIN) |
|
||||
| refreshInterval | integer | Refresh Interval in Minutes |
|
||||
|
||||
|
||||
#### Advanced Configuration
|
||||
|
||||
| Parameter | Type | Description |
|
||||
|-----------------|---------|-----------------------------------|
|
||||
| vehicleBrand | text | Vehicle Brand like BMW or Mini |
|
||||
|
||||
The _vehicleBrand_ is automatically obtained by the discovery service and shall not be changed.
|
||||
If thing is defined manually via *.things file following brands are supported
|
||||
|
||||
* BMW
|
||||
* MINI
|
||||
|
||||
|
||||
## Channels
|
||||
|
||||
There are many channels available for each vehicle.
|
||||
For better overview they are clustered in different channel groups.
|
||||
They differ for each vehicle type, build-in sensors and activated services.
|
||||
|
||||
|
||||
### Thing Channel Groups
|
||||
|
||||
| Channel Group ID | Description | conv | phev | bev_rex | bev |
|
||||
|----------------------------------|---------------------------------------------------|------|------|---------|-----|
|
||||
| [status](#vehicle-status) | Overall vehicle status | 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 |
|
||||
| [remote](#remote-services) | Remote control of the vehicle | X | X | X | X |
|
||||
| [profile](#charge-profile) | Scheduled charging profiles of vehicle | | X | X | X |
|
||||
| [statistic](#charge-statistics) | Charging statistics of current month | | X | X | X |
|
||||
| [session](#charge-sessions) | Past charging sessions | | X | X | X |
|
||||
| [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 Status
|
||||
|
||||
Reflects overall status of the vehicle.
|
||||
|
||||
* Channel Group ID is **status**
|
||||
* 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 |
|
||||
| Charging Information | charge-info | String | Information regarding current charging session | | X | X | X |
|
||||
| Motion Status | motion | Switch | Driving state - depends on vehicle hardware | X | X | X | X |
|
||||
| Last Status Timestamp | last-update | DateTime | Date and time of last status update | X | X | X | X |
|
||||
|
||||
Overall Door Status values
|
||||
|
||||
* _Closed_ - all doors closed
|
||||
* _Open_ - at least one door is open
|
||||
* _Undef_ - no door data delivered at all
|
||||
|
||||
Overall Windows Status values
|
||||
|
||||
* _Closed_ - all windows closed
|
||||
* _Open_ - at least one window is completely open
|
||||
* _Intermediate_ - at least one window is partially open
|
||||
* _Undef_ - no window data delivered at all
|
||||
|
||||
Check Control values
|
||||
|
||||
Localized String of current active warnings.
|
||||
Examples:
|
||||
|
||||
* No Issues
|
||||
* Multiple Issues
|
||||
|
||||
Charging Status values
|
||||
|
||||
* _Not Charging_
|
||||
* _Charging_
|
||||
* _Plugged In_
|
||||
* _Fully Charged_
|
||||
|
||||
Charging Information values
|
||||
Localized String of current active charging session
|
||||
Examples
|
||||
|
||||
* 100% at ~00:43
|
||||
* Starts at ~09:00
|
||||
|
||||
##### Vehicle Status Raw Data
|
||||
|
||||
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 |
|
||||
|
||||
<img align="right" src="./doc/RawData.png" width="400" height="125"/>
|
||||
|
||||
Examples:
|
||||
|
||||
_Country ISO Code_
|
||||
|
||||
```
|
||||
$.properties.originCountryISO
|
||||
```
|
||||
|
||||
_Drivers Guide URL_
|
||||
|
||||
```
|
||||
$.driverGuideInfo.androidStoreUrl
|
||||
```
|
||||
|
||||
#### Range Data
|
||||
|
||||
Based on vehicle type some channels are present or not.
|
||||
Conventional fuel vehicles don't provide *Electric Range* and battery electric vehicles don't show *Fuel Range*.
|
||||
Hybrid vehicles have both and in addition *Hybrid Range*.
|
||||
See description [Range vs Range Radius](#range-vs-range-radius) to get more information.
|
||||
|
||||
* Channel Group ID is **range**
|
||||
* 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 | |
|
||||
| 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 | |
|
||||
|
||||
|
||||
#### Doors Details
|
||||
|
||||
Detailed status of all doors and windows.
|
||||
|
||||
* Channel Group ID is **doors**
|
||||
* 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 |
|
||||
|
||||
Possible states
|
||||
|
||||
* _Undef_ - no status data available
|
||||
* _Invalid_ - this door / window isn't applicable for this vehicle
|
||||
* _Closed_ - the door / window is closed
|
||||
* _Open_ - the door / window is open
|
||||
* _Intermediate_ - window in intermediate position, not applicable for doors
|
||||
|
||||
|
||||
#### Check Control
|
||||
|
||||
Group for all current active Check Control messages.
|
||||
If more than one message is active the channel _name_ contains all active messages as options.
|
||||
|
||||
* Channel Group ID is **check**
|
||||
* 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 |
|
||||
|
||||
Severity Levels
|
||||
|
||||
* Ok
|
||||
* Low
|
||||
* Medium
|
||||
|
||||
|
||||
#### Services
|
||||
|
||||
Group for all upcoming services with description, service date and/or service mileage.
|
||||
If more than one service is scheduled in the future the channel _name_ contains all future services as options.
|
||||
|
||||
* Channel Group ID is **service**
|
||||
* 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 |
|
||||
|
||||
|
||||
#### Location
|
||||
|
||||
GPS location and heading of the vehicle.
|
||||
|
||||
* Channel Group ID is **location**
|
||||
* 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 |
|
||||
|
||||
|
||||
#### Remote Services
|
||||
|
||||
Remote control of the vehicle.
|
||||
Send a *command* to the vehicle and the *state* is reporting the execution progress.
|
||||
Only one command can be executed each time.
|
||||
Parallel execution isn't supported.
|
||||
|
||||
* Channel Group ID is **remote**
|
||||
* 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 |
|
||||
|
||||
The channel _command_ provides options
|
||||
|
||||
* _flash-lights_
|
||||
* _vehicle-finder_
|
||||
* _door-lock_
|
||||
* _door-unlock_
|
||||
* _horn-low_
|
||||
* _climate-now-start_
|
||||
* _climate-now-stop_
|
||||
|
||||
The channel _state_ shows the progress of the command execution in the following order
|
||||
|
||||
1) _initiated_
|
||||
2) _pending_
|
||||
3) _delivered_
|
||||
4) _executed_
|
||||
|
||||
|
||||
#### Charge Profile
|
||||
|
||||
Charging options with date and time for preferred time windows and charging modes.
|
||||
|
||||
* Channel Group ID is **profile**
|
||||
* Available for electric and hybrid vehicles
|
||||
* 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 |
|
||||
|
||||
The channel _profile-mode_ supports
|
||||
|
||||
* *immediateCharging*
|
||||
* *delayedCharging*
|
||||
|
||||
The channel _profile-prefs_ supports
|
||||
|
||||
* *noPreSelection*
|
||||
* *chargingWindow*
|
||||
|
||||
|
||||
#### Charge Statistics
|
||||
|
||||
Shows charge statistics of the current month
|
||||
|
||||
* Channel Group ID is **statistic**
|
||||
* 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 |
|
||||
|
||||
|
||||
#### Charge Sessions
|
||||
|
||||
Group for past charging sessions.
|
||||
If more than one message is active the channel _name_ contains all active messages as options.
|
||||
|
||||
* Channel Group ID is **session**
|
||||
* 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 |
|
||||
|
||||
|
||||
#### Tire Pressure
|
||||
|
||||
Current and target tire pressure values
|
||||
|
||||
* Channel Group ID is **tires**
|
||||
* 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 |
|
||||
|
||||
|
||||
#### Image
|
||||
|
||||
Image representation of the vehicle.
|
||||
|
||||
* Channel Group ID is **image**
|
||||
* Available for all vehicles
|
||||
* Read/Write access
|
||||
|
||||
| Channel Label | Channel ID | Type | Access |
|
||||
|----------------------------|---------------------|--------|----------|
|
||||
| Rendered Vehicle Image | png | Image | Read |
|
||||
| Image Viewport | view | String | Write |
|
||||
|
||||
Possible view ports:
|
||||
|
||||
* _VehicleStatus_ Front Side View
|
||||
* _VehicleInfo_ Front View
|
||||
* _ChargingHistory_ Side View
|
||||
* _Default_ Front Side View
|
||||
|
||||
|
||||
## Further Descriptions
|
||||
|
||||
### Dynamic Data
|
||||
|
||||
<img align="right" src="./doc/SessionOptions.png" width="400" height="250"/>
|
||||
|
||||
There are 3 occurrences of dynamic data delivered
|
||||
|
||||
* Upcoming Services delivered in group [Services](#services)
|
||||
* Check Control Messages delivered in group [Check Control](#check-control)
|
||||
* Charging Session data delivered in group [Charge Sessions](#charge-sessions)
|
||||
|
||||
The channel id _name_ shows the first element as default.
|
||||
All other possibilities are attached as options.
|
||||
The picture on the right shows the _Session Title_ item and 3 possible options.
|
||||
Select the desired service and the corresponding Charge Session with _Energy Charged_, _Session Status_ and _Session Issues_ will be shown.
|
||||
|
||||
### TroubleShooting
|
||||
|
||||
BMW has a high range of vehicles supported by their API.
|
||||
In case of any issues with this binding help to resolve it!
|
||||
Please perform the following steps:
|
||||
|
||||
* Can you log into MyBMW App with your credentials?
|
||||
* Is the vehicle listed in your account?
|
||||
* Is the [MyBMW Brige](#bridge) status _Online_?
|
||||
|
||||
If these preconditions are fulfilled proceed with the fingerprint generation.
|
||||
|
||||
#### Generate Debug Fingerprint
|
||||
|
||||
<img align="right" src="./doc/DiscoveryScan.png" width="400" height="350"/>
|
||||
|
||||
|
||||
First [enable debug logging](https://www.openhab.org/docs/administration/logging.html#defining-what-to-log) for the binding.
|
||||
|
||||
```
|
||||
log:set DEBUG org.openhab.binding.mybmw
|
||||
```
|
||||
|
||||
The debug fingerprint is generated every time the discovery is executed.
|
||||
To force a new fingerprint perform a _Scan_ for MyBMW things.
|
||||
Personal data is eliminated from the log entries so it should be possible to share them in public.
|
||||
Data like
|
||||
|
||||
* Vehicle Identification Number (VIN)
|
||||
* Location data
|
||||
|
||||
are anonymized.
|
||||
You'll find the fingerprint in the logs with the command
|
||||
|
||||
```
|
||||
grep "Discovery Fingerprint Data" openhab.log
|
||||
```
|
||||
|
||||
After the corresponding fingerprint is generated please [follow the instructions to raise an issue](https://community.openhab.org/t/how-to-file-an-issue/68464) and attach the fingerprint data!
|
||||
Your feedback is highly appreciated!
|
||||
|
||||
|
||||
### Range vs Range Radius
|
||||
|
||||
<img align="right" src="./doc/range-radius.png" width="400" height="350"/>
|
||||
|
||||
You will observe differences in the vehicle range and range radius values.
|
||||
While range is indicating the possible distance to be driven on roads the range radius indicates the reachable range on the map.
|
||||
|
||||
The right picture shows the distance between Kassel and Frankfurt in Germany.
|
||||
While the air-line distance is 145 kilometers the route distance is 192 kilometers.
|
||||
So range value is the normal remaining range while the range radius values can be used e.g. on [Mapview](https://www.openhab.org/docs/ui/sitemaps.html#element-type-mapview) to indicate the reachable range on map.
|
||||
Please note this is just an indicator of the effective range.
|
||||
Especially for electric vehicles it depends on many factors like driving style and usage of electric consumers.
|
||||
|
||||
## Full Example
|
||||
|
||||
The example is based on a BMW i3 with range extender (REX).
|
||||
Exchange configuration parameters in the Things section
|
||||
|
||||
* 4711 - any id you want
|
||||
* YOUR_USERNAME - with your MyBMW login username
|
||||
* YOUR_PASSWORD - with your MyBMW password credentials
|
||||
* VEHICLE_VIN - the vehicle identification number
|
||||
|
||||
In addition search for all occurrences of *i3* and replace it with your Vehicle Identification like *x3* or *535d* and you're ready to go!
|
||||
|
||||
### Things File
|
||||
|
||||
```
|
||||
Bridge mybmw:account:4711 "MyBMW Account" [userName="YOUR_USERNAME",password="YOUR_PASSWORD",region="ROW"] {
|
||||
Thing bev_rex i3 "BMW i3 94h REX" [ vin="VEHICLE_VIN",refreshInterval=5,vehicleBrand="BMW"]
|
||||
}
|
||||
```
|
||||
|
||||
### Items File
|
||||
|
||||
```
|
||||
Number:Length i3Mileage "Odometer [%d %unit%]" <line> (i3) {channel="mybmw:bev_rex:4711:i3:range#mileage" }
|
||||
Number:Length i3Range "Range [%d %unit%]" <motion> (i3) {channel="mybmw:bev_rex:4711:i3:range#hybrid"}
|
||||
Number:Length i3RangeElectric "Electric Range [%d %unit%]" <motion> (i3,long) {channel="mybmw:bev_rex:4711:i3:range#electric"}
|
||||
Number:Length i3RangeFuel "Fuel Range [%d %unit%]" <motion> (i3) {channel="mybmw:bev_rex:4711:i3:range#fuel"}
|
||||
Number:Dimensionless i3BatterySoc "Battery Charge [%.1f %%]" <battery> (i3,long) {channel="mybmw:bev_rex:4711:i3:range#soc"}
|
||||
Number:Volume i3Fuel "Fuel [%.1f %unit%]" <oil> (i3) {channel="mybmw:bev_rex:4711:i3:range#remaining-fuel"}
|
||||
Number:Length i3RadiusElectric "Electric Radius [%d %unit%]" <zoom> (i3) {channel="mybmw:bev_rex:4711:i3:range#radius-electric" }
|
||||
Number:Length i3RadiusFuel "Fuel Radius [%d %unit%]" <zoom> (i3) {channel="mybmw:bev_rex:4711:i3:range#radius-fuel" }
|
||||
Number:Length i3RadiusHybrid "Hybrid Radius [%d %unit%]" <zoom> (i3) {channel="mybmw:bev_rex:4711:i3:range#radius-hybrid" }
|
||||
|
||||
String i3DoorStatus "Door Status [%s]" <lock> (i3) {channel="mybmw:bev_rex:4711:i3:status#doors" }
|
||||
String i3WindowStatus "Window Status [%s]" <lock> (i3) {channel="mybmw:bev_rex:4711:i3:status#windows" }
|
||||
String i3LockStatus "Lock Status [%s]" <lock> (i3) {channel="mybmw:bev_rex:4711:i3:status#lock" }
|
||||
DateTime i3NextServiceDate "Next Service Date [%1$tb %1$tY]" <calendar> (i3) {channel="mybmw:bev_rex:4711:i3:status#service-date" }
|
||||
String i3NextServiceMileage "Next Service Mileage [%d %unit%]" <line> (i3) {channel="mybmw:bev_rex:4711:i3:status#service-mileage" }
|
||||
String i3CheckControl "Check Control [%s]" <error> (i3) {channel="mybmw:bev_rex:4711:i3:status#check-control" }
|
||||
String i3PlugConnection "Plug [%s]" <energy> (i3) {channel="mybmw:bev_rex:4711:i3:status#plug-connection" }
|
||||
String i3ChargingStatus "[%s]" <energy> (i3) {channel="mybmw:bev_rex:4711:i3:status#charge" }
|
||||
String i3ChargingInfo "[%s]" <energy> (i3) {channel="mybmw:bev_rex:4711:i3:status#charge-info" }
|
||||
DateTime i3LastUpdate "Update [%1$tA, %1$td.%1$tm. %1$tH:%1$tM]" <calendar> (i3) {channel="mybmw:bev_rex:4711:i3:status#last-update"}
|
||||
|
||||
Location i3Location "Location [%s]" <zoom> (i3) {channel="mybmw:bev_rex:4711:i3:location#gps" }
|
||||
Number:Angle i3Heading "Heading [%.1f %unit%]" <zoom> (i3) {channel="mybmw:bev_rex:4711:i3:location#heading" }
|
||||
|
||||
String i3RemoteCommand "Command [%s]" <switch> (i3) {channel="mybmw:bev_rex:4711:i3:remote#command" }
|
||||
String i3RemoteState "Remote Execution State [%s]" <status> (i3) {channel="mybmw:bev_rex:4711:i3:remote#state" }
|
||||
|
||||
String i3DriverDoor "Driver Door [%s]" <lock> (i3) {channel="mybmw:bev_rex:4711:i3:doors#driver-front" }
|
||||
String i3DriverDoorRear "Driver Door Rear [%s]" <lock> (i3) {channel="mybmw:bev_rex:4711:i3:doors#driver-rear" }
|
||||
String i3PassengerDoor "Passenger Door [%s]" <lock> (i3) {channel="mybmw:bev_rex:4711:i3:doors#passenger-front" }
|
||||
String i3PassengerDoorRear "Passenger Door Rear [%s]" <lock> (i3) {channel="mybmw:bev_rex:4711:i3:doors#passenger-rear" }
|
||||
String i3Hood "Hood [%s]" <lock> (i3) {channel="mybmw:bev_rex:4711:i3:doors#hood" }
|
||||
String i3Trunk "Trunk [%s]" <lock> (i3) {channel="mybmw:bev_rex:4711:i3:doors#trunk" }
|
||||
String i3DriverWindow "Driver Window [%s]" <lock> (i3) {channel="mybmw:bev_rex:4711:i3:doors#win-driver-front" }
|
||||
String i3DriverWindowRear "Driver Window Rear [%s]" <lock> (i3) {channel="mybmw:bev_rex:4711:i3:doors#win-driver-rear" }
|
||||
String i3PassengerWindow "Passenger Window [%s]" <lock> (i3) {channel="mybmw:bev_rex:4711:i3:doors#win-passenger-front" }
|
||||
String i3PassengerWindowRear "Passenger Window Rear [%s]" <lock> (i3) {channel="mybmw:bev_rex:4711:i3:doors#win-passenger-rear" }
|
||||
String i3RearWindow "Rear Window [%s]" <lock> (i3) {channel="mybmw:bev_rex:4711:i3:doors#win-rear" }
|
||||
String i3Sunroof "Sunroof [%s]" <lock> (i3) {channel="mybmw:bev_rex:4711:i3:doors#sunroof" }
|
||||
|
||||
String i3ServiceName "Service Name [%s]" <text> (i3) {channel="mybmw:bev_rex:4711:i3:service#name" }
|
||||
String i3ServiceDetails "Service Details [%s]" <text> (i3) {channel="mybmw:bev_rex:4711:i3:service#details" }
|
||||
Number:Length i3ServiceMileage "Service Mileage [%d %unit%]" <line> (i3) {channel="mybmw:bev_rex:4711:i3:service#mileage" }
|
||||
DateTime i3ServiceDate "Service Date [%1$tb %1$tY]" <calendar> (i3) {channel="mybmw:bev_rex:4711:i3:service#date" }
|
||||
|
||||
String i3CCName "CheckControl Name [%s]" <text> (i3) {channel="mybmw:bev_rex:4711:i3:check#name" }
|
||||
String i3CCDetails "CheckControl Details [%s]" <text> (i3) {channel="mybmw:bev_rex:4711:i3:check#details" }
|
||||
String i3CCSeverity "CheckControl Severity [%s]" <line> (i3) {channel="mybmw:bev_rex:4711:i3:check#severity" }
|
||||
|
||||
Switch i3ChargeProfileClimate "Charge Profile Climatization" <temperature> (i3) {channel="mybmw:bev_rex:4711:i3:profile#climate" }
|
||||
String i3ChargeProfileMode "Charge Profile Mode [%s]" <energy> (i3) {channel="mybmw:bev_rex:4711:i3:profile#mode" }
|
||||
String i3ChargeProfilePrefs "Charge Profile Preference [%s]" <energy> (i3) {channel="mybmw:bev_rex:4711:i3:profile#prefs" }
|
||||
String i3ChargeProfileCtrl "Charge Profile Control [%s]" <energy> (i3) {channel="mybmw:bev_rex:4711:i3:profile#control" }
|
||||
Number i3ChargeProfileTarget "Charge Profile SoC Target [%s]" <energy> (i3) {channel="mybmw:bev_rex:4711:i3:profile#target" }
|
||||
Switch i3ChargeProfileLimit "Charge Profile limited" <energy> (i3) {channel="mybmw:bev_rex:4711:i3:profile#limit" }
|
||||
DateTime i3ChargeWindowStart "Charge Window Start [%1$tH:%1$tM]" <time> (i3) {channel="mybmw:bev_rex:4711:i3:profile#window-start" }
|
||||
DateTime i3ChargeWindowEnd "Charge Window End [%1$tH:%1$tM]" <time> (i3) {channel="mybmw:bev_rex:4711:i3:profile#window-end" }
|
||||
DateTime i3Timer1Departure "Timer 1 Departure [%1$tH:%1$tM]" <time> (i3) {channel="mybmw:bev_rex:4711:i3:profile#timer1-departure" }
|
||||
String i3Timer1Days "Timer 1 Days [%s]" <calendar> (i3) {channel="mybmw:bev_rex:4711:i3:profile#timer1-days" }
|
||||
Switch i3Timer1DayMon "Timer 1 Monday" <calendar> (i3) {channel="mybmw:bev_rex:4711:i3:profile#timer1-day-mon" }
|
||||
Switch i3Timer1DayTue "Timer 1 Tuesday" <calendar> (i3) {channel="mybmw:bev_rex:4711:i3:profile#timer1-day-tue" }
|
||||
Switch i3Timer1DayWed "Timer 1 Wednesday" <calendar> (i3) {channel="mybmw:bev_rex:4711:i3:profile#timer1-day-wed" }
|
||||
Switch i3Timer1DayThu "Timer 1 Thursday" <calendar> (i3) {channel="mybmw:bev_rex:4711:i3:profile#timer1-day-thu" }
|
||||
Switch i3Timer1DayFri "Timer 1 Friday" <calendar> (i3) {channel="mybmw:bev_rex:4711:i3:profile#timer1-day-fri" }
|
||||
Switch i3Timer1DaySat "Timer 1 Saturday" <calendar> (i3) {channel="mybmw:bev_rex:4711:i3:profile#timer1-day-sat" }
|
||||
Switch i3Timer1DaySun "Timer 1 Sunday" <calendar> (i3) {channel="mybmw:bev_rex:4711:i3:profile#timer1-day-sun" }
|
||||
Switch i3Timer1Enabled "Timer 1 Enabled" <switch> (i3) {channel="mybmw:bev_rex:4711:i3:profile#timer1-enabled" }
|
||||
DateTime i3Timer2Departure "Timer 2 Departure [%1$tH:%1$tM]" <time> (i3) {channel="mybmw:bev_rex:4711:i3:profile#timer2-departure" }
|
||||
Switch i3Timer2DayMon "Timer 2 Monday" <calendar> (i3) {channel="mybmw:bev_rex:4711:i3:profile#timer2-day-mon" }
|
||||
Switch i3Timer2DayTue "Timer 2 Tuesday" <calendar> (i3) {channel="mybmw:bev_rex:4711:i3:profile#timer2-day-tue" }
|
||||
Switch i3Timer2DayWed "Timer 2 Wednesday" <calendar> (i3) {channel="mybmw:bev_rex:4711:i3:profile#timer2-day-wed" }
|
||||
Switch i3Timer2DayThu "Timer 2 Thursday" <calendar> (i3) {channel="mybmw:bev_rex:4711:i3:profile#timer2-day-thu" }
|
||||
Switch i3Timer2DayFri "Timer 2 Friday" <calendar> (i3) {channel="mybmw:bev_rex:4711:i3:profile#timer2-day-fri" }
|
||||
Switch i3Timer2DaySat "Timer 2 Saturday" <calendar> (i3) {channel="mybmw:bev_rex:4711:i3:profile#timer2-day-sat" }
|
||||
Switch i3Timer2DaySun "Timer 2 Sunday" <calendar> (i3) {channel="mybmw:bev_rex:4711:i3:profile#timer2-day-sun" }
|
||||
Switch i3Timer2Enabled "Timer 2 Enabled" <switch> (i3) {channel="mybmw:bev_rex:4711:i3:profile#timer2-enabled" }
|
||||
DateTime i3Timer3Departure "Timer 3 Departure [%1$tH:%1$tM]" <time> (i3) {channel="mybmw:bev_rex:4711:i3:profile#timer3-departure" }
|
||||
Switch i3Timer3DayMon "Timer 3 Monday" <calendar> (i3) {channel="mybmw:bev_rex:4711:i3:profile#timer3-day-mon" }
|
||||
Switch i3Timer3DayTue "Timer 3 Tuesday" <calendar> (i3) {channel="mybmw:bev_rex:4711:i3:profile#timer3-day-tue" }
|
||||
Switch i3Timer3DayWed "Timer 3 Wednesday" <calendar> (i3) {channel="mybmw:bev_rex:4711:i3:profile#timer3-day-wed" }
|
||||
Switch i3Timer3DayThu "Timer 3 Thursday" <calendar> (i3) {channel="mybmw:bev_rex:4711:i3:profile#timer3-day-thu" }
|
||||
Switch i3Timer3DayFri "Timer 3 Friday" <calendar> (i3) {channel="mybmw:bev_rex:4711:i3:profile#timer3-day-fri" }
|
||||
Switch i3Timer3DaySat "Timer 3 Saturday" <calendar> (i3) {channel="mybmw:bev_rex:4711:i3:profile#timer3-day-sat" }
|
||||
Switch i3Timer3DaySun "Timer 3 Sunday" <calendar> (i3) {channel="mybmw:bev_rex:4711:i3:profile#timer3-day-sun" }
|
||||
Switch i3Timer3Enabled "Timer 3 Enabled" <switch> (i3) {channel="mybmw:bev_rex:4711:i3:profile#timer3-enabled" }
|
||||
DateTime i3Timer4Departure "Timer 4 Departure [%1$tH:%1$tM]" <time> (i3) {channel="mybmw:bev_rex:4711:i3:profile#timer4-departure" }
|
||||
Switch i3Timer4DayMon "Timer 4 Monday" <calendar> (i3) {channel="mybmw:bev_rex:4711:i3:profile#timer4-day-mon" }
|
||||
Switch i3Timer4DayTue "Timer 4 Tuesday" <calendar> (i3) {channel="mybmw:bev_rex:4711:i3:profile#timer4-day-tue" }
|
||||
Switch i3Timer4DayWed "Timer 4 Wednesday" <calendar> (i3) {channel="mybmw:bev_rex:4711:i3:profile#timer4-day-wed" }
|
||||
Switch i3Timer4DayThu "Timer 4 Thursday" <calendar> (i3) {channel="mybmw:bev_rex:4711:i3:profile#timer4-day-thu" }
|
||||
Switch i3Timer4DayFri "Timer 4 Friday" <calendar> (i3) {channel="mybmw:bev_rex:4711:i3:profile#timer4-day-fri" }
|
||||
Switch i3Timer4DaySat "Timer 4 Saturday" <calendar> (i3) {channel="mybmw:bev_rex:4711:i3:profile#timer4-day-sat" }
|
||||
Switch i3Timer4DaySun "Timer 4 Sunday" <calendar> (i3) {channel="mybmw:bev_rex:4711:i3:profile#timer4-day-sun" }
|
||||
Switch i3Timer4Enabled "Timer 4 Enabled" <switch> (i3) {channel="mybmw:bev_rex:4711:i3:profile#timer4-enabled" }
|
||||
|
||||
String i3StatisticsTitle "[%s]" <text> (i3) {channel="mybmw:bev_rex:4711:i3:statistic#title" }
|
||||
Number:Energy i3StatisticsEnergy "Charged [%d %unit%]" <energy> (i3) {channel="mybmw:bev_rex:4711:i3:statistic#energy" }
|
||||
Number i3StatisticsSessions "Sessions [%d]" <line> (i3) {channel="mybmw:bev_rex:4711:i3:statistic#sessions" }
|
||||
|
||||
String i3SessionTitle "[%s]" <text> (i3) {channel="mybmw:bev_rex:4711:i3:session#title" }
|
||||
String i3SessionDetails "[%s]" <text> (i3) {channel="mybmw:bev_rex:4711:i3:session#subtitle" }
|
||||
String i3SessionCharged "Energy Charged [%s]" <energy> (i3) {channel="mybmw:bev_rex:4711:i3:session#energy" }
|
||||
String i3SessionProblems "Problems [%s]" <error> (i3) {channel="mybmw:bev_rex:4711:i3:session#issue" }
|
||||
String i3SessionStatus "Session status [%s]" <text> (i3) {channel="mybmw:bev_rex:4711:i3:session#status" }
|
||||
|
||||
Number:Pressure i3TireFLCurrent "Tire Front Left [%.1f %unit%]" <text> (i3) {channel="mybmw:bev_rex:4711:i3:tires#fl-current" }
|
||||
Number:Pressure i3TireFLTarget "Tire Front Left Target [%.1f %unit%]" <text> (i3) {channel="mybmw:bev_rex:4711:i3:tires#fl-target" }
|
||||
Number:Pressure i3TireFRCurrent "Tire Front Right [%.1f %unit%]" <text> (i3) {channel="mybmw:bev_rex:4711:i3:tires#fr-current" }
|
||||
Number:Pressure i3TireFRTarget "Tire Front Right Target [%.1f %unit%]" <text> (i3) {channel="mybmw:bev_rex:4711:i3:tires#fr-target" }
|
||||
Number:Pressure i3TireRLCurrent "Tire Rear Left [%.1f %unit%]" <text> (i3) {channel="mybmw:bev_rex:4711:i3:tires#rl-current" }
|
||||
Number:Pressure i3TireRLTarget "Tire Rear Left Target [%.1f %unit%]" <text> (i3) {channel="mybmw:bev_rex:4711:i3:tires#rl-target" }
|
||||
Number:Pressure i3TireRRCurrent "Tire Rear Right [%.1f %unit%]" <text> (i3) {channel="mybmw:bev_rex:4711:i3:tires#rr-current" }
|
||||
Number:Pressure i3TireRRTarget "Tire Rear Right Target [%.1f %unit%]" <text> (i3) {channel="mybmw:bev_rex:4711:i3:tires#rr-target" }
|
||||
|
||||
Image i3Image "Image" (i3) {channel="mybmw:bev_rex:4711:i3:image#png" }
|
||||
String i3ImageViewport "Image Viewport [%s]" <zoom> (i3) {channel="mybmw:bev_rex:4711:i3:image#view" }
|
||||
```
|
||||
|
||||
### Sitemap File
|
||||
|
||||
```
|
||||
sitemap BMW label="BMW" {
|
||||
Frame label="BMW i3" {
|
||||
Image item=i3Image
|
||||
|
||||
}
|
||||
Frame label="Status" {
|
||||
Text item=i3DoorStatus
|
||||
Text item=i3WindowStatus
|
||||
Text item=i3LockStatus
|
||||
Text item=i3NextServiceDate
|
||||
Text item=i3NextServiceMileage
|
||||
Text item=i3CheckControl
|
||||
Text item=i3ChargingStatus
|
||||
Text item=i3LastUpdate
|
||||
}
|
||||
Frame label="Range" {
|
||||
Text item=i3Mileage
|
||||
Text item=i3Range
|
||||
Text item=i3RangeElectric
|
||||
Text item=i3RangeFuel
|
||||
Text item=i3BatterySoc
|
||||
Text item=i3Fuel
|
||||
Text item=i3RadiusElectric
|
||||
Text item=i3RadiusHybrid
|
||||
}
|
||||
Frame label="Remote Services" {
|
||||
Selection item=i3RemoteCommand
|
||||
Text item=i3RemoteState
|
||||
}
|
||||
Frame label="Services" {
|
||||
Selection item=i3ServiceName
|
||||
Text item=i3ServiceDetails
|
||||
Text item=i3ServiceMileage
|
||||
Text item=i3ServiceDate
|
||||
}
|
||||
Frame label="CheckControl" {
|
||||
Selection item=i3CCName
|
||||
Text item=i3CCDetails
|
||||
Text item=i3CCSeverity
|
||||
}
|
||||
Frame label="Door Details" {
|
||||
Text item=i3DriverDoor visibility=[i3DriverDoor!="INVALID"]
|
||||
Text item=i3DriverDoorRear visibility=[i3DriverDoorRear!="INVALID"]
|
||||
Text item=i3PassengerDoor visibility=[i3PassengerDoor!="INVALID"]
|
||||
Text item=i3PassengerDoorRear visibility=[i3PassengerDoorRear!="INVALID"]
|
||||
Text item=i3Hood visibility=[i3Hood!="INVALID"]
|
||||
Text item=i3Trunk visibility=[i3Trunk!="INVALID"]
|
||||
Text item=i3DriverWindow visibility=[i3DriverWindow!="INVALID"]
|
||||
Text item=i3DriverWindowRear visibility=[i3DriverWindowRear!="INVALID"]
|
||||
Text item=i3PassengerWindow visibility=[i3PassengerWindow!="INVALID"]
|
||||
Text item=i3PassengerWindowRear visibility=[i3PassengerWindowRear!="INVALID"]
|
||||
Text item=i3RearWindow visibility=[i3RearWindow!="INVALID"]
|
||||
Text item=i3Sunroof visibility=[i3Sunroof!="INVALID"]
|
||||
}
|
||||
Frame label="Location" {
|
||||
Text item=i3Location
|
||||
Text item=i3Heading
|
||||
}
|
||||
Frame label="Charge Profile" {
|
||||
Switch item=i3ChargeProfileClimate
|
||||
Selection item=i3ChargeProfileMode
|
||||
Text item=i3ChargeWindowStart
|
||||
Text item=i3ChargeWindowEnd
|
||||
Text item=i3Timer1Departure
|
||||
Switch item=i3Timer1DayMon
|
||||
Switch item=i3Timer1DayTue
|
||||
Switch item=i3Timer1DayWed
|
||||
Switch item=i3Timer1DayThu
|
||||
Switch item=i3Timer1DayFri
|
||||
Switch item=i3Timer1DaySat
|
||||
Switch item=i3Timer1DaySun
|
||||
Switch item=i3Timer1Enabled
|
||||
Text item=i3Timer2Departure
|
||||
Switch item=i3Timer2DayMon
|
||||
Switch item=i3Timer2DayTue
|
||||
Switch item=i3Timer2DayWed
|
||||
Switch item=i3Timer2DayThu
|
||||
Switch item=i3Timer2DayFri
|
||||
Switch item=i3Timer2DaySat
|
||||
Switch item=i3Timer2DaySun
|
||||
Switch item=i3Timer2Enabled
|
||||
Text item=i3Timer3Departure
|
||||
Switch item=i3Timer3DayMon
|
||||
Switch item=i3Timer3DayTue
|
||||
Switch item=i3Timer3DayWed
|
||||
Switch item=i3Timer3DayThu
|
||||
Switch item=i3Timer3DayFri
|
||||
Switch item=i3Timer3DaySat
|
||||
Switch item=i3Timer3DaySun
|
||||
Switch item=i3Timer3Enabled
|
||||
Text item=i3Timer4Departure
|
||||
Switch item=i3Timer4DayMon
|
||||
Switch item=i3Timer4DayTue
|
||||
Switch item=i3Timer4DayWed
|
||||
Switch item=i3Timer4DayThu
|
||||
Switch item=i3Timer4DayFri
|
||||
Switch item=i3Timer4DaySat
|
||||
Switch item=i3Timer4DaySun
|
||||
Switch item=i3Timer4Enabled
|
||||
}
|
||||
Frame label="Charge Statistics" {
|
||||
Text item=i3StatisticsTitle
|
||||
Text item=i3StatisticsEnergy
|
||||
Text item=i3StatisticsSessions
|
||||
}
|
||||
|
||||
Frame label="Charge Sessions" {
|
||||
Selection item=i3SessionTitle
|
||||
Text item=i3SessionDetails
|
||||
Text item=i3SessionCharged
|
||||
Text item=i3SessionProblems
|
||||
Text item=i3SessionStatus
|
||||
}
|
||||
Frame label="Tires" {
|
||||
Text item=i3TireFLCurrent
|
||||
Text item=i3TireFLTarget
|
||||
Text item=i3TireFRCurrent
|
||||
Text item=i3TireFRTarget
|
||||
Text item=i3TireRLCurrent
|
||||
Text item=i3TireRLTarget
|
||||
Text item=i3TireRRCurrent
|
||||
Text item=i3TireRRTarget
|
||||
}
|
||||
Frame label="Image Properties" {
|
||||
Selection item=i3ImageViewport
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Credits
|
||||
|
||||
This work is based on the project of [Bimmer Connected](https://github.com/bimmerconnected/bimmer_connected).
|
||||
|
|
@ -13,9 +13,14 @@
|
|||
<config-description>
|
||||
<parameter name="cellId" type="text" required="true">
|
||||
<label>Cell-ID</label>
|
||||
<description><![CDATA[ID of the area to retrieve weather warnings.
|
||||
For a list of valid IDs look at https://www.dwd.de/DE/leistungen/opendata/help/warnungen/cap_warncellids_csv.csv.
|
||||
With the % sign at the end it is possible to query multiple cells at once. For example with 8111% are cells retrieved that starts with 8111.]]></description>
|
||||
<description>ID of the area to retrieve weather warnings.
|
||||
For a list of valid IDs look at
|
||||
https://www.dwd.de/DE/leistungen/opendata/help/warnungen/cap_warncellids_csv.csv, only
|
||||
IDs starting with an 8
|
||||
(exception for Berlin: 7) are supported.
|
||||
With the % sign at the end it is possible to query multiple cells at once.
|
||||
For example with 8111% are cells retrieved
|
||||
that starts with 8111.</description>
|
||||
</parameter>
|
||||
<parameter name="refresh" type="integer" unit="min" min="15">
|
||||
<default>30</default>
|
||||
|
@ -25,9 +30,11 @@ With the % sign at the end it is possible to query multiple cells at once. For e
|
|||
<parameter name="warningCount" type="integer" min="1" max="15">
|
||||
<default>1</default>
|
||||
<label>Number of Provided Warnings</label>
|
||||
<description><![CDATA[Number of warnings to provide.
|
||||
For each warning there will multiple channels.
|
||||
The warnings are sorted by severity first and begin second so the first warning is always the one with the highest severity.]]></description>
|
||||
<description>Number of warnings to provide.
|
||||
For each warning there will multiple channels.
|
||||
The warnings are sorted by
|
||||
severity first and begin second so the first warning is always the one with the highest
|
||||
severity.</description>
|
||||
</parameter>
|
||||
</config-description>
|
||||
</thing-type>
|
||||
|
@ -42,9 +49,10 @@ The warnings are sorted by severity first and begin second so the first warning
|
|||
<channel-type id="warning">
|
||||
<item-type>Switch</item-type>
|
||||
<label>Warning</label>
|
||||
<description><![CDATA[ON if a warning is present, OFF else.
|
||||
While be switched to ON only after all other channels - except the trigger channel - are updated.
|
||||
Will be switched to OFF before all other channels are updated to UNDEF.]]></description>
|
||||
<description>ON if a warning is present, OFF else.
|
||||
While be switched to ON only after all other channels - except the
|
||||
trigger channel - are updated.
|
||||
Will be switched to OFF before all other channels are updated to UNDEF.</description>
|
||||
<state readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="updated">
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
<?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">
|
||||
|
||||
<bridge-type id="account">
|
||||
<label>MyBMW Account</label>
|
||||
<description>Your BMW account data</description>
|
||||
<config-description-ref uri="thing-type:mybmw:bridge"/>
|
||||
</bridge-type>
|
||||
</thing:thing-descriptions>
|
|
@ -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="charge-statistic">
|
||||
<label>Charging Statistics</label>
|
||||
<description>Charging statistics of current month</description>
|
||||
<channels>
|
||||
<channel id="title" typeId="statistic-title-channel"/>
|
||||
<channel id="energy" typeId="statistic-energy-channel"/>
|
||||
<channel id="sessions" typeId="statistic-sessions-channel"/>
|
||||
</channels>
|
||||
</channel-group-type>
|
||||
</thing:thing-descriptions>
|
|
@ -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="statistic-title-channel">
|
||||
<item-type>String</item-type>
|
||||
<label>Charge Statistic Month</label>
|
||||
</channel-type>
|
||||
<channel-type id="statistic-energy-channel">
|
||||
<item-type>Number:Energy</item-type>
|
||||
<label>Energy Charged</label>
|
||||
<description>Total energy charged in current month</description>
|
||||
<state pattern="%d %unit%" readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="statistic-sessions-channel">
|
||||
<item-type>Number</item-type>
|
||||
<label>Charge Sessions</label>
|
||||
<description>Number of charging sessions this month</description>
|
||||
</channel-type>
|
||||
</thing:thing-descriptions>
|
|
@ -0,0 +1,18 @@
|
|||
<?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="checkcontrol-name-channel">
|
||||
<item-type>String</item-type>
|
||||
<label>CheckControl Description</label>
|
||||
</channel-type>
|
||||
<channel-type id="checkcontrol-details-channel">
|
||||
<item-type>String</item-type>
|
||||
<label>CheckControl Details</label>
|
||||
</channel-type>
|
||||
<channel-type id="checkcontrol-severity-channel">
|
||||
<item-type>String</item-type>
|
||||
<label>Severity Level</label>
|
||||
</channel-type>
|
||||
</thing:thing-descriptions>
|
|
@ -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="check-control-values">
|
||||
<label>Check Control Messages</label>
|
||||
<description>Shows current active CheckControl messages</description>
|
||||
<channels>
|
||||
<channel id="name" typeId="checkcontrol-name-channel"/>
|
||||
<channel id="details" typeId="checkcontrol-details-channel"/>
|
||||
<channel id="severity" typeId="checkcontrol-severity-channel"/>
|
||||
</channels>
|
||||
</channel-group-type>
|
||||
</thing:thing-descriptions>
|
|
@ -0,0 +1,16 @@
|
|||
<?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="conv-range-values">
|
||||
<label>Range and Fuel Data</label>
|
||||
<description>Provides Mileage, remaining range and fuel level values</description>
|
||||
<channels>
|
||||
<channel id="mileage" typeId="mileage-channel"/>
|
||||
<channel id="fuel" typeId="range-fuel-channel"/>
|
||||
<channel id="remaining-fuel" typeId="remaining-fuel-channel"/>
|
||||
<channel id="radius-fuel" typeId="range-radius-fuel-channel"/>
|
||||
</channels>
|
||||
</channel-group-type>
|
||||
</thing:thing-descriptions>
|
|
@ -0,0 +1,61 @@
|
|||
<?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="driver-front-channel">
|
||||
<item-type>String</item-type>
|
||||
<label>Driver Door</label>
|
||||
<state readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="driver-rear-channel">
|
||||
<item-type>String</item-type>
|
||||
<label>Driver Door Rear</label>
|
||||
<state readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="passenger-front-channel">
|
||||
<item-type>String</item-type>
|
||||
<label>Passenger Door</label>
|
||||
<state readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="passenger-rear-channel">
|
||||
<item-type>String</item-type>
|
||||
<label>Passenger Door Rear</label>
|
||||
<state readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="hood-channel">
|
||||
<item-type>String</item-type>
|
||||
<label>Hood</label>
|
||||
<state readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="trunk-channel">
|
||||
<item-type>String</item-type>
|
||||
<label>Trunk</label>
|
||||
<state readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="window-driver-front-channel">
|
||||
<item-type>String</item-type>
|
||||
<label>Driver Window</label>
|
||||
<state readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="window-driver-rear-channel">
|
||||
<item-type>String</item-type>
|
||||
<label>Driver Rear Window</label>
|
||||
<state readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="window-passenger-front-channel">
|
||||
<item-type>String</item-type>
|
||||
<label>Passenger Window</label>
|
||||
<state readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="window-passenger-rear-channel">
|
||||
<item-type>String</item-type>
|
||||
<label>Passenger Rear Window</label>
|
||||
<state readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="sunroof-channel">
|
||||
<item-type>String</item-type>
|
||||
<label>Sunroof</label>
|
||||
<state readOnly="true"/>
|
||||
</channel-type>
|
||||
</thing:thing-descriptions>
|
|
@ -0,0 +1,23 @@
|
|||
<?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="door-values">
|
||||
<label>Detailed Door Status</label>
|
||||
<description>Detailed Status of all Doors and Windows</description>
|
||||
<channels>
|
||||
<channel id="driver-front" typeId="driver-front-channel"/>
|
||||
<channel id="driver-rear" typeId="driver-rear-channel"/>
|
||||
<channel id="passenger-front" typeId="passenger-front-channel"/>
|
||||
<channel id="passenger-rear" typeId="passenger-rear-channel"/>
|
||||
<channel id="hood" typeId="hood-channel"/>
|
||||
<channel id="trunk" typeId="trunk-channel"/>
|
||||
<channel id="win-driver-front" typeId="window-driver-front-channel"/>
|
||||
<channel id="win-driver-rear" typeId="window-driver-rear-channel"/>
|
||||
<channel id="win-passenger-front" typeId="window-passenger-front-channel"/>
|
||||
<channel id="win-passenger-rear" typeId="window-passenger-rear-channel"/>
|
||||
<channel id="sunroof" typeId="sunroof-channel"/>
|
||||
</channels>
|
||||
</channel-group-type>
|
||||
</thing:thing-descriptions>
|
|
@ -0,0 +1,16 @@
|
|||
<?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-range-values">
|
||||
<label>Range and Charge Data</label>
|
||||
<description>Provides Mileage, remaining range and charge level values</description>
|
||||
<channels>
|
||||
<channel id="mileage" typeId="mileage-channel"/>
|
||||
<channel id="electric" typeId="range-electric-channel"/>
|
||||
<channel id="radius-electric" typeId="range-radius-electric-channel"/>
|
||||
<channel id="soc" typeId="soc-channel"/>
|
||||
</channels>
|
||||
</channel-group-type>
|
||||
</thing:thing-descriptions>
|
|
@ -0,0 +1,24 @@
|
|||
<?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-status">
|
||||
<label>Vehicle Status</label>
|
||||
<description>Overall vehicle status</description>
|
||||
<channels>
|
||||
<channel id="doors" typeId="doors-channel"/>
|
||||
<channel id="windows" typeId="windows-channel"/>
|
||||
<channel id="lock" typeId="lock-channel"/>
|
||||
<channel id="service-date" typeId="next-service-date-channel"/>
|
||||
<channel id="service-mileage" typeId="next-service-mileage-channel"/>
|
||||
<channel id="check-control" typeId="check-control-channel"/>
|
||||
<channel id="plug-connection" typeId="plug-connection-channel"/>
|
||||
<channel id="charge" typeId="charging-status-channel"/>
|
||||
<channel id="charge-info" typeId="charging-info-channel"/>
|
||||
<channel id="motion" typeId="motion-channel"/>
|
||||
<channel id="last-update" typeId="last-update-channel"/>
|
||||
<channel id="raw" typeId="raw-channel"/>
|
||||
</channels>
|
||||
</channel-group-type>
|
||||
</thing:thing-descriptions>
|
|
@ -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-group-type id="hybrid-range-values">
|
||||
<label>Range, Charge / Fuel Data</label>
|
||||
<description>Provides mileage, remaining fuel and range data for hybrid vehicles</description>
|
||||
<channels>
|
||||
<channel id="mileage" typeId="mileage-channel"/>
|
||||
<channel id="electric" typeId="range-electric-channel"/>
|
||||
<channel id="fuel" typeId="range-fuel-channel"/>
|
||||
<channel id="hybrid" typeId="range-hybrid-channel"/>
|
||||
<channel id="radius-electric" typeId="range-radius-electric-channel"/>
|
||||
<channel id="radius-fuel" typeId="range-radius-fuel-channel"/>
|
||||
<channel id="radius-hybrid" typeId="range-radius-hybrid-channel"/>
|
||||
<channel id="soc" typeId="soc-channel"/>
|
||||
<channel id="remaining-fuel" typeId="remaining-fuel-channel"/>
|
||||
</channels>
|
||||
</channel-group-type>
|
||||
</thing:thing-descriptions>
|
|
@ -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="image-values">
|
||||
<label>Vehicle Image</label>
|
||||
<description>Provides an image of your vehicle</description>
|
||||
<channels>
|
||||
<channel id="png" typeId="png-channel"/>
|
||||
<channel id="view" typeId="image-view-channel"/>
|
||||
</channels>
|
||||
</channel-group-type>
|
||||
</thing:thing-descriptions>
|
|
@ -0,0 +1,23 @@
|
|||
<?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="png-channel">
|
||||
<item-type>Image</item-type>
|
||||
<label>Rendered Vehicle Image</label>
|
||||
<state readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="image-view-channel">
|
||||
<item-type>String</item-type>
|
||||
<label>Image Viewport</label>
|
||||
<command>
|
||||
<options>
|
||||
<option value="VehicleStatus">Front Side View</option>
|
||||
<option value="VehicleInfo">Front View</option>
|
||||
<option value="ChargingHistory">Side View</option>
|
||||
<option value="Default">Default View</option>
|
||||
</options>
|
||||
</command>
|
||||
</channel-type>
|
||||
</thing:thing-descriptions>
|
|
@ -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="location-values">
|
||||
<label>Vehicle Location</label>
|
||||
<description>Coordinates and heading of the vehicle</description>
|
||||
<channels>
|
||||
<channel id="gps" typeId="gps-channel"/>
|
||||
<channel id="heading" typeId="heading-channel"/>
|
||||
<channel id="address" typeId="address-channel"/>
|
||||
</channels>
|
||||
</channel-group-type>
|
||||
</thing:thing-descriptions>
|
|
@ -0,0 +1,19 @@
|
|||
<?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="gps-channel">
|
||||
<item-type>Location</item-type>
|
||||
<label>GPS Coordinates</label>
|
||||
</channel-type>
|
||||
<channel-type id="heading-channel">
|
||||
<item-type>Number:Angle</item-type>
|
||||
<label>Heading Angle</label>
|
||||
<state pattern="%d %unit%" readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="address-channel">
|
||||
<item-type>String</item-type>
|
||||
<label>Address</label>
|
||||
</channel-type>
|
||||
</thing:thing-descriptions>
|
|
@ -0,0 +1,56 @@
|
|||
<?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="profile-values">
|
||||
<label>Electric Charging Profile</label>
|
||||
<description>Scheduled charging profiles</description>
|
||||
<channels>
|
||||
<channel id="climate" typeId="profile-climate-channel"/>
|
||||
<channel id="mode" typeId="profile-mode-channel"/>
|
||||
<channel id="prefs" typeId="profile-prefs-channel"/>
|
||||
<channel id="control" typeId="profile-control-channel"/>
|
||||
<channel id="target" typeId="profile-target-channel"/>
|
||||
<channel id="limit" typeId="profile-limit-channel"/>
|
||||
<channel id="window-start" typeId="window-start-channel"/>
|
||||
<channel id="window-end" typeId="window-end-channel"/>
|
||||
<channel id="timer1-departure" typeId="timer1-departure-channel"/>
|
||||
<channel id="timer1-day-mon" typeId="timer1-day-mon-channel"/>
|
||||
<channel id="timer1-day-tue" typeId="timer1-day-tue-channel"/>
|
||||
<channel id="timer1-day-wed" typeId="timer1-day-wed-channel"/>
|
||||
<channel id="timer1-day-thu" typeId="timer1-day-thu-channel"/>
|
||||
<channel id="timer1-day-fri" typeId="timer1-day-fri-channel"/>
|
||||
<channel id="timer1-day-sat" typeId="timer1-day-sat-channel"/>
|
||||
<channel id="timer1-day-sun" typeId="timer1-day-sun-channel"/>
|
||||
<channel id="timer1-enabled" typeId="timer1-enabled-channel"/>
|
||||
<channel id="timer2-departure" typeId="timer2-departure-channel"/>
|
||||
<channel id="timer2-day-mon" typeId="timer2-day-mon-channel"/>
|
||||
<channel id="timer2-day-tue" typeId="timer2-day-tue-channel"/>
|
||||
<channel id="timer2-day-wed" typeId="timer2-day-wed-channel"/>
|
||||
<channel id="timer2-day-thu" typeId="timer2-day-thu-channel"/>
|
||||
<channel id="timer2-day-fri" typeId="timer2-day-fri-channel"/>
|
||||
<channel id="timer2-day-sat" typeId="timer2-day-sat-channel"/>
|
||||
<channel id="timer2-day-sun" typeId="timer2-day-sun-channel"/>
|
||||
<channel id="timer2-enabled" typeId="timer2-enabled-channel"/>
|
||||
<channel id="timer3-departure" typeId="timer3-departure-channel"/>
|
||||
<channel id="timer3-day-mon" typeId="timer3-day-mon-channel"/>
|
||||
<channel id="timer3-day-tue" typeId="timer3-day-tue-channel"/>
|
||||
<channel id="timer3-day-wed" typeId="timer3-day-wed-channel"/>
|
||||
<channel id="timer3-day-thu" typeId="timer3-day-thu-channel"/>
|
||||
<channel id="timer3-day-fri" typeId="timer3-day-fri-channel"/>
|
||||
<channel id="timer3-day-sat" typeId="timer3-day-sat-channel"/>
|
||||
<channel id="timer3-day-sun" typeId="timer3-day-sun-channel"/>
|
||||
<channel id="timer3-enabled" typeId="timer3-enabled-channel"/>
|
||||
<channel id="timer4-departure" typeId="timer4-departure-channel"/>
|
||||
<channel id="timer4-day-mon" typeId="timer4-day-mon-channel"/>
|
||||
<channel id="timer4-day-tue" typeId="timer4-day-tue-channel"/>
|
||||
<channel id="timer4-day-wed" typeId="timer4-day-wed-channel"/>
|
||||
<channel id="timer4-day-thu" typeId="timer4-day-thu-channel"/>
|
||||
<channel id="timer4-day-fri" typeId="timer4-day-fri-channel"/>
|
||||
<channel id="timer4-day-sat" typeId="timer4-day-sat-channel"/>
|
||||
<channel id="timer4-day-sun" typeId="timer4-day-sun-channel"/>
|
||||
<channel id="timer4-enabled" typeId="timer4-enabled-channel"/>
|
||||
</channels>
|
||||
</channel-group-type>
|
||||
</thing:thing-descriptions>
|
|
@ -0,0 +1,248 @@
|
|||
<?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="profile-climate-channel">
|
||||
<item-type>Switch</item-type>
|
||||
<label>A/C at Departure Time</label>
|
||||
</channel-type>
|
||||
<channel-type id="profile-mode-channel">
|
||||
<item-type>String</item-type>
|
||||
<label>Charge Mode</label>
|
||||
<description>Mode for selecting immediate or delyed charging</description>
|
||||
<command>
|
||||
<options>
|
||||
<option value="immediateCharging">Immediate Charging</option>
|
||||
<option value="delayedCharging">Use Charging Preference</option>
|
||||
</options>
|
||||
</command>
|
||||
</channel-type>
|
||||
<channel-type id="profile-prefs-channel">
|
||||
<item-type>String</item-type>
|
||||
<label>Charge Preferences</label>
|
||||
<description>Preferences for delayed charging</description>
|
||||
<command>
|
||||
<options>
|
||||
<option value="noPreSelection">No Selection</option>
|
||||
<option value="chargingWindow">Charging Window</option>
|
||||
</options>
|
||||
</command>
|
||||
</channel-type>
|
||||
<channel-type id="profile-control-channel">
|
||||
<item-type>String</item-type>
|
||||
<label>Charging Plan</label>
|
||||
<description>Charging plan selection</description>
|
||||
<command>
|
||||
<options>
|
||||
<option value="weeklyPlanner">Weekly Schedule</option>
|
||||
</options>
|
||||
</command>
|
||||
</channel-type>
|
||||
<channel-type id="profile-target-channel">
|
||||
<item-type>Number</item-type>
|
||||
<label>SOC Target</label>
|
||||
<description>SOC charging target </description>
|
||||
</channel-type>
|
||||
<channel-type id="profile-limit-channel">
|
||||
<item-type>Switch</item-type>
|
||||
<label>Charging Energy Limited</label>
|
||||
<description>Limited charging activated</description>
|
||||
</channel-type>
|
||||
<channel-type id="window-start-channel">
|
||||
<item-type>DateTime</item-type>
|
||||
<label>Window Start Time</label>
|
||||
<description>Start time of charging window</description>
|
||||
<state pattern="%1$tH:%1$tM" readOnly="false"/>
|
||||
</channel-type>
|
||||
<channel-type id="window-end-channel">
|
||||
<item-type>DateTime</item-type>
|
||||
<label>Window End Time</label>
|
||||
<description>End time of charging window</description>
|
||||
<state pattern="%1$tH:%1$tM" readOnly="false"/>
|
||||
</channel-type>
|
||||
<channel-type id="timer1-departure-channel">
|
||||
<item-type>DateTime</item-type>
|
||||
<label>T1 Departure Time</label>
|
||||
<description>Departure time for regular schedule timer 1</description>
|
||||
<state pattern="%1$tH:%1$tM" readOnly="false"/>
|
||||
</channel-type>
|
||||
<channel-type id="timer1-day-mon-channel">
|
||||
<item-type>Switch</item-type>
|
||||
<label>T1 Monday</label>
|
||||
<description>Monday scheduled for timer 1</description>
|
||||
</channel-type>
|
||||
<channel-type id="timer1-day-tue-channel">
|
||||
<item-type>Switch</item-type>
|
||||
<label>T1 Tuesday</label>
|
||||
<description>Tuesday scheduled for timer 1</description>
|
||||
</channel-type>
|
||||
<channel-type id="timer1-day-wed-channel">
|
||||
<item-type>Switch</item-type>
|
||||
<label>T1 Wednesday</label>
|
||||
<description>Wednesday scheduled for timer 1</description>
|
||||
</channel-type>
|
||||
<channel-type id="timer1-day-thu-channel">
|
||||
<item-type>Switch</item-type>
|
||||
<label>T1 Thursday</label>
|
||||
<description>Thursday scheduled for timer 1</description>
|
||||
</channel-type>
|
||||
<channel-type id="timer1-day-fri-channel">
|
||||
<item-type>Switch</item-type>
|
||||
<label>T1 Friday</label>
|
||||
<description>Friday scheduled for timer 1</description>
|
||||
</channel-type>
|
||||
<channel-type id="timer1-day-sat-channel">
|
||||
<item-type>Switch</item-type>
|
||||
<label>T1 Saturday</label>
|
||||
<description>Saturday scheduled for timer 1</description>
|
||||
</channel-type>
|
||||
<channel-type id="timer1-day-sun-channel">
|
||||
<item-type>Switch</item-type>
|
||||
<label>T1 Sunday</label>
|
||||
<description>Sunday scheduled for timer 1</description>
|
||||
</channel-type>
|
||||
<channel-type id="timer1-enabled-channel">
|
||||
<item-type>Switch</item-type>
|
||||
<label>T1 Enabled</label>
|
||||
<description>Timer 1 enabled</description>
|
||||
</channel-type>
|
||||
<channel-type id="timer2-departure-channel">
|
||||
<item-type>DateTime</item-type>
|
||||
<label>T2 Departure Time</label>
|
||||
<description>Departure time for regular schedule timer 2</description>
|
||||
<state pattern="%1$tH:%1$tM" readOnly="false"/>
|
||||
</channel-type>
|
||||
<channel-type id="timer2-day-mon-channel">
|
||||
<item-type>Switch</item-type>
|
||||
<label>T2 Monday</label>
|
||||
<description>Monday scheduled for timer 2</description>
|
||||
</channel-type>
|
||||
<channel-type id="timer2-day-tue-channel">
|
||||
<item-type>Switch</item-type>
|
||||
<label>T2 Tuesday</label>
|
||||
<description>Tuesday scheduled for timer 2</description>
|
||||
</channel-type>
|
||||
<channel-type id="timer2-day-wed-channel">
|
||||
<item-type>Switch</item-type>
|
||||
<label>T2 Wednesday</label>
|
||||
<description>Wednesday scheduled for timer 2</description>
|
||||
</channel-type>
|
||||
<channel-type id="timer2-day-thu-channel">
|
||||
<item-type>Switch</item-type>
|
||||
<label>T2 Thursday</label>
|
||||
<description>Thursday scheduled for timer 2</description>
|
||||
</channel-type>
|
||||
<channel-type id="timer2-day-fri-channel">
|
||||
<item-type>Switch</item-type>
|
||||
<label>T2 Friday</label>
|
||||
<description>Friday scheduled for timer 2</description>
|
||||
</channel-type>
|
||||
<channel-type id="timer2-day-sat-channel">
|
||||
<item-type>Switch</item-type>
|
||||
<label>T2 Saturday</label>
|
||||
<description>Saturday scheduled for timer 2</description>
|
||||
</channel-type>
|
||||
<channel-type id="timer2-day-sun-channel">
|
||||
<item-type>Switch</item-type>
|
||||
<label>T2 Sunday</label>
|
||||
<description>Sunday scheduled for timer 2</description>
|
||||
</channel-type>
|
||||
<channel-type id="timer2-enabled-channel">
|
||||
<item-type>Switch</item-type>
|
||||
<label>T2 Enabled</label>
|
||||
<description>Timer 2 enabled</description>
|
||||
</channel-type>
|
||||
<channel-type id="timer3-departure-channel">
|
||||
<item-type>DateTime</item-type>
|
||||
<label>T3 Departure Time</label>
|
||||
<description>Departure time for regular schedule timer 3</description>
|
||||
<state pattern="%1$tH:%1$tM" readOnly="false"/>
|
||||
</channel-type>
|
||||
<channel-type id="timer3-day-mon-channel">
|
||||
<item-type>Switch</item-type>
|
||||
<label>T3 Monday</label>
|
||||
<description>Monday scheduled for timer 3</description>
|
||||
</channel-type>
|
||||
<channel-type id="timer3-day-tue-channel">
|
||||
<item-type>Switch</item-type>
|
||||
<label>T3 Tuesday</label>
|
||||
<description>Tuesday scheduled for timer 3</description>
|
||||
</channel-type>
|
||||
<channel-type id="timer3-day-wed-channel">
|
||||
<item-type>Switch</item-type>
|
||||
<label>T3 Wednesday</label>
|
||||
<description>Wednesday scheduled for timer 3</description>
|
||||
</channel-type>
|
||||
<channel-type id="timer3-day-thu-channel">
|
||||
<item-type>Switch</item-type>
|
||||
<label>T3 Thursday</label>
|
||||
<description>Thursday scheduled for timer 3</description>
|
||||
</channel-type>
|
||||
<channel-type id="timer3-day-fri-channel">
|
||||
<item-type>Switch</item-type>
|
||||
<label>T3 Friday</label>
|
||||
<description>Friday scheduled for timer 3</description>
|
||||
</channel-type>
|
||||
<channel-type id="timer3-day-sat-channel">
|
||||
<item-type>Switch</item-type>
|
||||
<label>T3 Saturday</label>
|
||||
<description>Saturday scheduled for timer 3</description>
|
||||
</channel-type>
|
||||
<channel-type id="timer3-day-sun-channel">
|
||||
<item-type>Switch</item-type>
|
||||
<label>T3 Sunday</label>
|
||||
<description>Sunday scheduled for timer 3</description>
|
||||
</channel-type>
|
||||
<channel-type id="timer3-enabled-channel">
|
||||
<item-type>Switch</item-type>
|
||||
<label>T3 Enabled</label>
|
||||
<description>Timer 3 enabled</description>
|
||||
</channel-type>
|
||||
<channel-type id="timer4-departure-channel">
|
||||
<item-type>DateTime</item-type>
|
||||
<label>T4 Departure Time</label>
|
||||
<description>Departure time for regular schedule timer 4</description>
|
||||
<state pattern="%1$tH:%1$tM" readOnly="false"/>
|
||||
</channel-type>
|
||||
<channel-type id="timer4-day-mon-channel">
|
||||
<item-type>Switch</item-type>
|
||||
<label>T4 Monday</label>
|
||||
<description>Monday scheduled for timer 4</description>
|
||||
</channel-type>
|
||||
<channel-type id="timer4-day-tue-channel">
|
||||
<item-type>Switch</item-type>
|
||||
<label>T4 Tuesday</label>
|
||||
<description>Tuesday scheduled for timer 4</description>
|
||||
</channel-type>
|
||||
<channel-type id="timer4-day-wed-channel">
|
||||
<item-type>Switch</item-type>
|
||||
<label>T4 Wednesday</label>
|
||||
<description>Wednesday scheduled for timer 4</description>
|
||||
</channel-type>
|
||||
<channel-type id="timer4-day-thu-channel">
|
||||
<item-type>Switch</item-type>
|
||||
<label>T4 Thursday</label>
|
||||
<description>Thursday scheduled for timer 4</description>
|
||||
</channel-type>
|
||||
<channel-type id="timer4-day-fri-channel">
|
||||
<item-type>Switch</item-type>
|
||||
<label>T4 Friday</label>
|
||||
<description>Friday scheduled for timer 4</description>
|
||||
</channel-type>
|
||||
<channel-type id="timer4-day-sat-channel">
|
||||
<item-type>Switch</item-type>
|
||||
<label>T4 Saturday</label>
|
||||
<description>Saturday scheduled for timer 4</description>
|
||||
</channel-type>
|
||||
<channel-type id="timer4-day-sun-channel">
|
||||
<item-type>Switch</item-type>
|
||||
<label>T4 Sunday</label>
|
||||
<description>Sunday scheduled for timer 4</description>
|
||||
</channel-type>
|
||||
<channel-type id="timer4-enabled-channel">
|
||||
<item-type>Switch</item-type>
|
||||
<label>T4 Enabled</label>
|
||||
<description>Timer 4 enabled</description>
|
||||
</channel-type>
|
||||
</thing:thing-descriptions>
|
|
@ -0,0 +1,51 @@
|
|||
<?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="mileage-channel">
|
||||
<item-type>Number:Length</item-type>
|
||||
<label>Total Distance Driven</label>
|
||||
<state pattern="%d %unit%" readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="range-electric-channel">
|
||||
<item-type>Number:Length</item-type>
|
||||
<label>Electric Range</label>
|
||||
<state pattern="%d %unit%" readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="range-fuel-channel">
|
||||
<item-type>Number:Length</item-type>
|
||||
<label>Fuel Range</label>
|
||||
<state pattern="%d %unit%" readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="range-hybrid-channel">
|
||||
<item-type>Number:Length</item-type>
|
||||
<label>Hybrid Range</label>
|
||||
<state pattern="%d %unit%" readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="soc-channel">
|
||||
<item-type>Number:Dimensionless</item-type>
|
||||
<label>Battery Charge Level</label>
|
||||
<state pattern="%d %unit%" readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="remaining-fuel-channel">
|
||||
<item-type>Number:Volume</item-type>
|
||||
<label>Remaining Fuel</label>
|
||||
<state pattern="%d %unit%" readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="range-radius-electric-channel">
|
||||
<item-type>Number:Length</item-type>
|
||||
<label>Electric Range Radius</label>
|
||||
<state pattern="%.0f %unit%" readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="range-radius-fuel-channel">
|
||||
<item-type>Number:Length</item-type>
|
||||
<label>Fuel Range Radius</label>
|
||||
<state pattern="%.0f %unit%" readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="range-radius-hybrid-channel">
|
||||
<item-type>Number:Length</item-type>
|
||||
<label>Hybrid Range Radius</label>
|
||||
<state pattern="%.0f %unit%" readOnly="true"/>
|
||||
</channel-type>
|
||||
</thing:thing-descriptions>
|
|
@ -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="remote-services">
|
||||
<label>Remote Services</label>
|
||||
<description>Remote control of the vehicle</description>
|
||||
<channels>
|
||||
<channel id="command" typeId="remote-command-channel"/>
|
||||
<channel id="state" typeId="remote-state-channel"/>
|
||||
</channels>
|
||||
</channel-group-type>
|
||||
</thing:thing-descriptions>
|
|
@ -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-type id="remote-command-channel">
|
||||
<item-type>String</item-type>
|
||||
<label>Remote Command</label>
|
||||
</channel-type>
|
||||
<channel-type id="remote-state-channel">
|
||||
<item-type>String</item-type>
|
||||
<label>Service Execution State</label>
|
||||
<state readOnly="true"/>
|
||||
</channel-type>
|
||||
</thing:thing-descriptions>
|
|
@ -0,0 +1,24 @@
|
|||
<?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="service-name-channel">
|
||||
<item-type>String</item-type>
|
||||
<label>Service Name</label>
|
||||
</channel-type>
|
||||
<channel-type id="service-details-channel">
|
||||
<item-type>String</item-type>
|
||||
<label>Service Details</label>
|
||||
</channel-type>
|
||||
<channel-type id="service-date-channel">
|
||||
<item-type>DateTime</item-type>
|
||||
<label>Service Date</label>
|
||||
<state pattern="%1$tb %1$tY"/>
|
||||
</channel-type>
|
||||
<channel-type id="service-mileage-channel">
|
||||
<item-type>Number:Length</item-type>
|
||||
<label>Mileage till Service</label>
|
||||
<state pattern="%d %unit%"/>
|
||||
</channel-type>
|
||||
</thing:thing-descriptions>
|
|
@ -0,0 +1,16 @@
|
|||
<?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="service-values">
|
||||
<label>Vehicle Services</label>
|
||||
<description>Future vehicle service schedules</description>
|
||||
<channels>
|
||||
<channel id="name" typeId="service-name-channel"/>
|
||||
<channel id="details" typeId="service-details-channel"/>
|
||||
<channel id="date" typeId="service-date-channel"/>
|
||||
<channel id="mileage" typeId="service-mileage-channel"/>
|
||||
</channels>
|
||||
</channel-group-type>
|
||||
</thing:thing-descriptions>
|
|
@ -0,0 +1,17 @@
|
|||
<?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="session-values">
|
||||
<label>Electric Charging Sessions</label>
|
||||
<description>Past charging sessions</description>
|
||||
<channels>
|
||||
<channel id="title" typeId="session-title-channel"/>
|
||||
<channel id="subtitle" typeId="session-subtitle-channel"/>
|
||||
<channel id="energy" typeId="session-energy-channel"/>
|
||||
<channel id="issue" typeId="session-issue-channel"/>
|
||||
<channel id="status" typeId="session-status-channel"/>
|
||||
</channels>
|
||||
</channel-group-type>
|
||||
</thing:thing-descriptions>
|
|
@ -0,0 +1,26 @@
|
|||
<?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="session-title-channel">
|
||||
<item-type>String</item-type>
|
||||
<label>Session Title</label>
|
||||
</channel-type>
|
||||
<channel-type id="session-subtitle-channel">
|
||||
<item-type>String</item-type>
|
||||
<label>Session Details</label>
|
||||
</channel-type>
|
||||
<channel-type id="session-energy-channel">
|
||||
<item-type>String</item-type>
|
||||
<label>Charged Energy in Session</label>
|
||||
</channel-type>
|
||||
<channel-type id="session-issue-channel">
|
||||
<item-type>String</item-type>
|
||||
<label>Issues during Session</label>
|
||||
</channel-type>
|
||||
<channel-type id="session-status-channel">
|
||||
<item-type>String</item-type>
|
||||
<label>Session Status</label>
|
||||
</channel-type>
|
||||
</thing:thing-descriptions>
|
|
@ -0,0 +1,34 @@
|
|||
<?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">
|
||||
|
||||
<thing-type id="bev">
|
||||
<supported-bridge-type-refs>
|
||||
<bridge-type-ref id="account"/>
|
||||
</supported-bridge-type-refs>
|
||||
|
||||
<label>Electric Vehicle</label>
|
||||
<description>Battery Electric Vehicle (BEV)</description>
|
||||
|
||||
<channel-groups>
|
||||
<channel-group id="status" typeId="ev-vehicle-status"/>
|
||||
<channel-group id="doors" typeId="door-values"/>
|
||||
<channel-group id="range" typeId="ev-range-values"/>
|
||||
<channel-group id="check" typeId="check-control-values"/>
|
||||
<channel-group id="service" typeId="service-values"/>
|
||||
<channel-group id="location" typeId="location-values"/>
|
||||
<channel-group id="remote" typeId="remote-services"/>
|
||||
<channel-group id="profile" typeId="profile-values"/>
|
||||
<channel-group id="statistic" typeId="charge-statistic"/>
|
||||
<channel-group id="session" typeId="session-values"/>
|
||||
<channel-group id="tires" typeId="tire-pressures"/>
|
||||
<channel-group id="image" typeId="image-values"/>
|
||||
</channel-groups>
|
||||
|
||||
<representation-property>vin</representation-property>
|
||||
|
||||
<config-description-ref uri="thing-type:mybmw:vehicle"/>
|
||||
</thing-type>
|
||||
</thing:thing-descriptions>
|
|
@ -0,0 +1,34 @@
|
|||
<?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">
|
||||
|
||||
<thing-type id="bev_rex">
|
||||
<supported-bridge-type-refs>
|
||||
<bridge-type-ref id="account"/>
|
||||
</supported-bridge-type-refs>
|
||||
|
||||
<label>Electric Vehicle with REX</label>
|
||||
<description>Battery Electric Vehicle with Range Extender (BEV_REX)</description>
|
||||
|
||||
<channel-groups>
|
||||
<channel-group id="status" typeId="ev-vehicle-status"/>
|
||||
<channel-group id="doors" typeId="door-values"/>
|
||||
<channel-group id="range" typeId="hybrid-range-values"/>
|
||||
<channel-group id="check" typeId="check-control-values"/>
|
||||
<channel-group id="service" typeId="service-values"/>
|
||||
<channel-group id="location" typeId="location-values"/>
|
||||
<channel-group id="remote" typeId="remote-services"/>
|
||||
<channel-group id="profile" typeId="profile-values"/>
|
||||
<channel-group id="statistic" typeId="charge-statistic"/>
|
||||
<channel-group id="session" typeId="session-values"/>
|
||||
<channel-group id="tires" typeId="tire-pressures"/>
|
||||
<channel-group id="image" typeId="image-values"/>
|
||||
</channel-groups>
|
||||
|
||||
<representation-property>vin</representation-property>
|
||||
|
||||
<config-description-ref uri="thing-type:mybmw:vehicle"/>
|
||||
</thing-type>
|
||||
</thing:thing-descriptions>
|
|
@ -0,0 +1,31 @@
|
|||
<?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">
|
||||
|
||||
<thing-type id="conv">
|
||||
<supported-bridge-type-refs>
|
||||
<bridge-type-ref id="account"/>
|
||||
</supported-bridge-type-refs>
|
||||
|
||||
<label>Conventional Vehicle</label>
|
||||
<description>Conventional Fuel Vehicle (CONV)</description>
|
||||
|
||||
<channel-groups>
|
||||
<channel-group id="status" typeId="vehicle-status"/>
|
||||
<channel-group id="doors" typeId="door-values"/>
|
||||
<channel-group id="range" typeId="conv-range-values"/>
|
||||
<channel-group id="check" typeId="check-control-values"/>
|
||||
<channel-group id="service" typeId="service-values"/>
|
||||
<channel-group id="location" typeId="location-values"/>
|
||||
<channel-group id="remote" typeId="remote-services"/>
|
||||
<channel-group id="tires" typeId="tire-pressures"/>
|
||||
<channel-group id="image" typeId="image-values"/>
|
||||
</channel-groups>
|
||||
|
||||
<representation-property>vin</representation-property>
|
||||
|
||||
<config-description-ref uri="thing-type:mybmw:vehicle"/>
|
||||
</thing-type>
|
||||
</thing:thing-descriptions>
|
|
@ -0,0 +1,34 @@
|
|||
<?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">
|
||||
|
||||
<thing-type id="phev">
|
||||
<supported-bridge-type-refs>
|
||||
<bridge-type-ref id="account"/>
|
||||
</supported-bridge-type-refs>
|
||||
|
||||
<label>Plug-In-Hybrid Electric Vehicle</label>
|
||||
<description>Conventional Fuel Vehicle with supporting Electric Engine (PHEV)</description>
|
||||
|
||||
<channel-groups>
|
||||
<channel-group id="status" typeId="ev-vehicle-status"/>
|
||||
<channel-group id="doors" typeId="door-values"/>
|
||||
<channel-group id="range" typeId="hybrid-range-values"/>
|
||||
<channel-group id="check" typeId="check-control-values"/>
|
||||
<channel-group id="service" typeId="service-values"/>
|
||||
<channel-group id="location" typeId="location-values"/>
|
||||
<channel-group id="remote" typeId="remote-services"/>
|
||||
<channel-group id="profile" typeId="profile-values"/>
|
||||
<channel-group id="statistic" typeId="charge-statistic"/>
|
||||
<channel-group id="session" typeId="session-values"/>
|
||||
<channel-group id="tires" typeId="tire-pressures"/>
|
||||
<channel-group id="image" typeId="image-values"/>
|
||||
</channel-groups>
|
||||
|
||||
<representation-property>vin</representation-property>
|
||||
|
||||
<config-description-ref uri="thing-type:mybmw:vehicle"/>
|
||||
</thing-type>
|
||||
</thing:thing-descriptions>
|
|
@ -0,0 +1,20 @@
|
|||
<?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="tire-pressures">
|
||||
<label>Tire Pressure</label>
|
||||
<description>Current and wanted pressure for all tires</description>
|
||||
<channels>
|
||||
<channel id="fl-current" typeId="front-left-current-channel"/>
|
||||
<channel id="fl-target" typeId="front-left-target-channel"/>
|
||||
<channel id="fr-current" typeId="front-right-current-channel"/>
|
||||
<channel id="fr-target" typeId="front-right-target-channel"/>
|
||||
<channel id="rl-current" typeId="rear-left-current-channel"/>
|
||||
<channel id="rl-target" typeId="rear-left-target-channel"/>
|
||||
<channel id="rr-current" typeId="rear-right-current-channel"/>
|
||||
<channel id="rr-target" typeId="rear-right-target-channel"/>
|
||||
</channels>
|
||||
</channel-group-type>
|
||||
</thing:thing-descriptions>
|
|
@ -0,0 +1,46 @@
|
|||
<?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="front-left-current-channel">
|
||||
<item-type>Number:Pressure</item-type>
|
||||
<label>Tire Pressure Front Left</label>
|
||||
<state pattern="%.1f %unit%" readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="front-left-target-channel">
|
||||
<item-type>Number:Pressure</item-type>
|
||||
<label>Tire Pressure Front Left Target</label>
|
||||
<state pattern="%.1f %unit%" readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="front-right-current-channel">
|
||||
<item-type>Number:Pressure</item-type>
|
||||
<label>Tire Pressure Front Right</label>
|
||||
<state pattern="%.1f %unit%" readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="front-right-target-channel">
|
||||
<item-type>Number:Pressure</item-type>
|
||||
<label>Tire Pressure Front Right Target</label>
|
||||
<state pattern="%.1f %unit%" readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="rear-left-current-channel">
|
||||
<item-type>Number:Pressure</item-type>
|
||||
<label>Tire Pressure Rear Left</label>
|
||||
<state pattern="%.1f %unit%" readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="rear-left-target-channel">
|
||||
<item-type>Number:Pressure</item-type>
|
||||
<label>Tire Pressure Rear Left Target</label>
|
||||
<state pattern="%.1f %unit%" readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="rear-right-current-channel">
|
||||
<item-type>Number:Pressure</item-type>
|
||||
<label>Tire Pressure Rear Right</label>
|
||||
<state pattern="%.1f %unit%" readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="rear-right-target-channel">
|
||||
<item-type>Number:Pressure</item-type>
|
||||
<label>Tire Pressure Rear Right Target</label>
|
||||
<state pattern="%.1f %unit%" readOnly="true"/>
|
||||
</channel-type>
|
||||
</thing:thing-descriptions>
|
|
@ -0,0 +1,64 @@
|
|||
<?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="doors-channel">
|
||||
<item-type>String</item-type>
|
||||
<label>Overall Door Status</label>
|
||||
<state readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="windows-channel">
|
||||
<item-type>String</item-type>
|
||||
<label>Overall Window Status</label>
|
||||
<state readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="lock-channel">
|
||||
<item-type>String</item-type>
|
||||
<label>Doors Locked</label>
|
||||
</channel-type>
|
||||
<channel-type id="next-service-date-channel">
|
||||
<item-type>DateTime</item-type>
|
||||
<label>Next Service Date</label>
|
||||
<state pattern="%1$tb %1$tY" readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="next-service-mileage-channel">
|
||||
<item-type>Number:Length</item-type>
|
||||
<label>Mileage Till Next Service</label>
|
||||
<state pattern="%d %unit%" readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="check-control-channel">
|
||||
<item-type>String</item-type>
|
||||
<label>Check Control</label>
|
||||
<state readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="charging-status-channel">
|
||||
<item-type>String</item-type>
|
||||
<label>Charging Status</label>
|
||||
<state readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="charging-info-channel">
|
||||
<item-type>String</item-type>
|
||||
<label>Charging Information</label>
|
||||
<state readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="plug-connection-channel">
|
||||
<item-type>String</item-type>
|
||||
<label>Plug Connection Status</label>
|
||||
<state readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="motion-channel">
|
||||
<item-type>Switch</item-type>
|
||||
<label>Motion Status</label>
|
||||
<state readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="last-update-channel">
|
||||
<item-type>DateTime</item-type>
|
||||
<label>Last Status Timestamp</label>
|
||||
<state pattern="%1$tA, %1$td.%1$tm. %1$tH:%1$tM" readOnly="true"/>
|
||||
</channel-type>
|
||||
<channel-type id="raw-channel" advanced="true">
|
||||
<item-type>String</item-type>
|
||||
<label>Raw Data</label>
|
||||
</channel-type>
|
||||
</thing:thing-descriptions>
|
|
@ -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-group-type id="vehicle-status">
|
||||
<label>Vehicle Status</label>
|
||||
<description>Overall vehicle status</description>
|
||||
<channels>
|
||||
<channel id="doors" typeId="doors-channel"/>
|
||||
<channel id="windows" typeId="windows-channel"/>
|
||||
<channel id="lock" typeId="lock-channel"/>
|
||||
<channel id="service-date" typeId="next-service-date-channel"/>
|
||||
<channel id="service-mileage" typeId="next-service-mileage-channel"/>
|
||||
<channel id="check-control" typeId="check-control-channel"/>
|
||||
<channel id="motion" typeId="motion-channel"/>
|
||||
<channel id="last-update" typeId="last-update-channel"/>
|
||||
<channel id="raw" typeId="raw-channel"/>
|
||||
</channels>
|
||||
</channel-group-type>
|
||||
</thing:thing-descriptions>
|