Updated external content (Jenkins build 1171)

pull/1969/head
openHAB Build Server 2022-10-16 03:33:59 +00:00
parent 582b7ceb98
commit 6f0a977eb8
10 changed files with 487 additions and 55 deletions

File diff suppressed because one or more lines are too long

View File

@ -56,16 +56,35 @@ Please note that we in general consider it dangerous to enter your credentials i
When using one of such apps, simply copy and paste the received refresh token into the account configuration.
## Thing Configuration
## Thing Configuration Parameters
The vehicle Thing requires the vehicle's VIN as a configuration parameter `vin`.
Additionally, the optional boolean parameter `allowWakeup` can be set.
This determines whether openHAB is allowed to wake up the vehicle in order to retrieve data from it.
Additionally, the follow optional parameters may be defined.
| Parameter Name | Label | Default Value | Description |
|------------------------|----------------------------|---------------|------------------------------------------------------------------------------|
| valetpin | Valet PIN | false | PIN to use when enabling Valet Mode |
| allowWakeupForCommands | Allow Wake-Up For Commands | false | Wake up the vehicle to send commands. May cause vehicle to stay awake |
For further flexibility and experimentation, the following advanced parameters may also be set.
| Parameter Name | Label | Default Value | Description |
|-----------------------------|------------------------------------------------|---------------|----------------------------------------------------------------------------------------------------|
| allowWakeup | Allow Wake-Up | false | Allows waking up the vehicle to retrieve data. See caution below |
| enableEvents | Enable Events | false | Enable the event stream for the vehicle. See note below |
| inactivity | Inactivity Interval | 5 | The inactivity period in minutes after which the binding stops for 20 minutes to let the car sleep |
| useDriveState | Use Drive State for Inactivity | false | Use the drive state instead of location to determine vehicle inactivity |
| useAdvancedStatesForPolling | Use Console Modes and Occupancy for Inactivity | false | Use these states to help continue the fast polling of the API |
`allowWakeup` should be used with caution as this determines whether openHAB is allowed to wake up the vehicle in order to retrieve data from it.
This setting is not recommended as it will result in a significant vampire drain (i.e. energy consumption although the vehicle is parking).
In addition, the optional boolean parameter `enableEvents` can be set.
By doing so, events streamed by the Tesla back-end system will be captured and processed, providing near real-time updates of some key variables generated by the vehicle.
`enableEvents` captures and processes data in near real-time for key variables by enabling events streamed by the Tesla back-end system.
`inactivity` setting is ignored and will always be five minutes if homelink is available (car is at home)
## Channels
@ -206,60 +225,186 @@ Bridge tesla:account:myaccount "My Tesla Account" [ refreshToken="xxxx" ] {
demo.items:
```
Switch TeslaCharge {channel="tesla:model3:myaccount:mycar:charge"}
Location TeslaLocation {channel="tesla:model3:myaccount:mycar:location"}
Dimmer TeslaChargeLimit {channel="tesla:model3:myaccount:mycar:chargelimit"}
String TeslaChargeRate {channel="tesla:model3:myaccount:mycar:chargerate"}
String TeslaChargingState {channel="tesla:model3:myaccount:mycar:chargingstate"}
Number TeslaTimeToFullCharge {channel="tesla:model3:myaccount:mycar:timetofullcharge"}
Number TeslaChargerPower {channel="tesla:model3:myaccount:mycar:chargerpower"}
DateTime TeslaScheduledChargingStart {channel="tesla:model3:myaccount:mycar:scheduledchargingstart"}
Dimmer TeslaSoC {channel="tesla:model3:myaccount:mycar:soc"}
Number:Speed TeslaSpeed {channel="tesla:model3:myaccount:mycar:speed"}
String TeslaState {channel="tesla:model3:myaccount:mycar:state"}
Number TeslaPower {channel="tesla:model3:myaccount:mycar:power"}
Number:Temperature TeslaInsideTemperature {channel="tesla:model3:myaccount:mycar:insidetemp"}
Number:Temperature TeslaOutsideTemperature {channel="tesla:model3:myaccount:mycar:outsidetemp"}
Switch TeslaAutoconditioning {channel="tesla:model3:myaccount:mycar:autoconditioning"}
Number:Temperature TeslaTemperature {channel="tesla:model3:myaccount:mycar:temperature"}
String TeslaShiftState {channel="tesla:model3:myaccount:mycar:shiftstate"}
Number TeslaBatteryCurrent {channel="tesla:model3:myaccount:mycar:batterycurrent"}
Number TeslaBatteryLevel {channel="tesla:model3:myaccount:mycar:batterylevel"}
DateTime TeslaEventstamp {channel="tesla:model3:myaccount:mycar:eventstamp"}
Number:Length TeslaOdometer {channel="tesla:model3:myaccount:mycar:odometer"}
Number TeslaHeading {channel="tesla:model3:myaccount:mycar:heading"}
DateTime TeslaGPSStamp {channel="tesla:model3:myaccount:mycar:gpstimestamp"}
DateTime TeslaEventstamp {channel="model3:myaccount:mycar:eventstamp"}
String TeslaState {channel="model3:myaccount:mycar:state"}
Number TeslaSpeed {channel="model3:myaccount:mycar:speed"}
String TeslaShiftState {channel="model3:myaccount:mycar:shiftstate"}
Number TeslaOdometer {channel="model3:myaccount:mycar:odometer"}
Number TeslaRange {channel="model3:myaccount:mycar:range"}
Number TeslaBatteryLevel {channel="model3:myaccount:mycar:batterylevel"}
Number TeslaPower {channel="model3:myaccount:mycar:power"}
Number TeslaBatteryCurrent {channel="model3:myaccount:mycar:batterycurrent"}
Number TeslaBatteryRange {channel="model3:myaccount:mycar:batteryrange"}
Number TeslaEstBatteryRange {channel="model3:myaccount:mycar:estimatedbatteryrange"}
Number TeslaIdealBatteryRange {channel="model3:myaccount:mycar:idealbatteryrange"}
Number TeslaUsableBatteryLevel {channel="model3:myaccount:mycar:usablebatterylevel"}
Switch TeslaPreconditioning {channel="model3:myaccount:mycar:preconditioning"}
Switch TeslaCharge {channel="model3:myaccount:mycar:charge"}
Switch TeslaChargeToMax {channel="model3:myaccount:mycar:chargetomax"}
Dimmer TeslaChargeLimit {channel="model3:myaccount:mycar:chargelimit"}
Number TeslaChargeRate {channel="model3:myaccount:mycar:chargerate"}
String TeslaChargingState {channel="model3:myaccount:mycar:chargingstate"}
Number TeslaChargerPower {channel="model3:myaccount:mycar:chargerpower"}
Number TeslaTimeToFullCharge {channel="model3:myaccount:mycar:timetofullcharge"}
Number TeslaMaxCharges {channel="model3:myaccount:mycar:maxcharges"}
Number TeslaChargerVoltage {channel="model3:myaccount:mycar:chargervoltage"}
Number TeslaChargerPower {channel="model3:myaccount:mycar:chargerpower"}
Number TeslaChargerCurrent {channel="model3:myaccount:mycar:chargercurrent"}
DateTime TeslaScheduledChargingStart {channel="model3:myaccount:mycar:scheduledchargingstart"}
Dimmer TeslaSoC {channel="model3:myaccount:mycar:soc"}
Switch TeslaDoorLock {channel="model3:myaccount:mycar:doorlock"}
Switch TeslaHorn {channel="model3:myaccount:mycar:honkhorn"}
Switch TeslaStart {channel="model3:myaccount:mycar:remotestart"}
Switch TeslaSentry {channel="model3:myaccount:mycar:sentrymode"}
Switch TeslaLights {channel="model3:myaccount:mycar:flashlights"}
Switch TeslaValet {channel="model3:myaccount:mycar:valetmode"}
Switch TeslaWakeup {channel="model3:myaccount:mycar:wakeup"}
Switch TeslaBatteryHeater {channel="model3:myaccount:mycar:batteryheater"}
Switch TeslaFrontDefrost {channel="model3:myaccount:mycar:frontdefroster"}
Switch TeslaRearDefrost {channel="model3:myaccount:mycar:reardefroster"}
Switch TeslaLeftSeatHeater {channel="model3:myaccount:mycar:leftseatheater"}
Switch TeslaRightSeatHeater {channel="model3:myaccount:mycar:rightseatheater"}
Switch TeslaHomelink {channel="model3:myaccount:mycar:homelink"}
Location TeslaLocation {channel="model3:myaccount:mycar:location"}
Number TeslaHeading {channel="model3:myaccount:mycar:heading"}
DateTime TeslaLocationTime {channel="model3:myaccount:mycar:gpstimestamp"}
Switch TeslaAutoconditioning {channel="model3:myaccount:mycar:autoconditioning"}
Number:Temperature TeslaTemperature {channel="model3:myaccount:mycar:temperature"}
Number:Temperature TeslaTemperatureCombined {channel="model3:myaccount:mycar:combinedtemp"}
Number:Temperature TeslaInsideTemperature {channel="model3:myaccount:mycar:insidetemp"}
Number:Temperature TeslaOutsideTemperature {channel="model3:myaccount:mycar:outsidetemp"}
```
demo.sitemap:
```
sitemap demo label="Main Menu"
sitemap main label="Main"
{
Text label="Car" {
Text label="Drive" {
Text item=TeslaEventstamp label="Last Event Timestamp [%1$td.%1$tm.%1$tY %1$tT]"
Text item=TeslaState label="State [%s]"
Text item=TeslaSpeed label="Speed [%.1f]"
Text item=TeslaShiftState label="Shift State [%s]"
Text item=TeslaOdometer label="Odometer [%.1f km]"
}
Text label="Climate" {
Switch item=TeslaAutoconditioning label="Auto Conditioning" mappings=[ON=ON, OFF=OFF ]
Setpoint item=TeslaTemperature step=0.5 minValue=18 maxValue=34 label="Auto Conditioning Temperature [%.1f °C]" icon="temperature"
Text item=TeslaInsideTemperature label="Inside Temperature [%.1f]"
}
Text label="Power" {
Text item=TeslaBatteryCurrent label="Current [%.1f]"
}
Text item=TeslaSoC {
Switch item=TeslaCharge label="Charge" mappings=[ON=ON, OFF=OFF ]
Slider item=TeslaChargeLimit label="Charge Limit [%.1f]"
Text item=TeslaChargingState label="Charging State [%s]"
Text item=TeslaChargeRate label="Charge Rate [%s]"
Text item=TeslaScheduledChargingStart label="Charging Start [%1$td.%1$tm.%1$tY %1$tT]"
Text item=TeslaTimeToFullCharge label="Time To Full Charge [%.1f hours]"
}
}
Text item=TeslaUsableBatteryLevel label="Car" icon="tesla" valuecolor=[<=20="red",>60="green"]
{
Frame
{
Text item=TeslaEventstamp icon="time"
Text item=TeslaState label="State [%s]" icon=""
Text item=TeslaHomelink label="Homelink Available[%s]" icon=""
Text item=TeslaDistance
Text item=TeslaSpeed label="Speed [%.1f]"
Text item=TeslaShiftState label="Shift State [%s]" icon=""
Text item=nTeslaShiftState
Text item=TeslaOdometer label="Odometer [%.1f miles]"
Text item=TeslaRange
}
Frame
{
Switch item=TeslaAutoconditioning label="Enable Heat or AC"
Setpoint item=TeslaTemperature step=0.5 minValue=65 maxValue=78 label="Auto Conditioning Temperature [%.1f °F]"
Text item=TeslaInsideTemperature label="Inside Temperature [%.1f °F]" valuecolor=[<=32="blue",>95="red"]
Text item=TeslaOutsideTemperature label="Outside Temperature [%.1f °F]" valuecolor=[<=32="blue",>95="red"]
}
Frame
{
Text item=TeslaBatteryLevel
Text item=TeslaUsableBatteryLevel
Text item=TeslaPower
Text item=TeslaBatteryCurrent label="Current [%.1f]"
Text item=TeslaBatteryRange label="Battery Range [%.1f miles]"
Text item=TeslaEstBatteryRange label="Battery Est Range [%.1f miles]"
Text item=TeslaIdealBatteryRange label="Battery Ideal Range [%.1f miles]"
}
Frame
{
Switch item=TeslaCharge label="Charge"
Slider item=TeslaChargeLimit label="Charge Limit [%.1f]"
Text item=TeslaChargingState label="Charging State [%s]" icon=""
Text item=TeslaTimeToFullCharge label="Time To Full Charge [%.1f hours]"
Text item=TeslaPreconditioning label="Preconditioning [%s]" icon=""
Text item=TeslaChargeRate label="Charge Rate [%d miles/hr]"
Text item=TeslaScheduledChargingStart icon="time"
Text item=TeslaChargerVoltage label="Charge Voltage [%.1f V]"
Text item=TeslaChargerPower label="Charge Power [%.1f kW]"
Text item=TeslaChargerCurrent label="Charge Current [%.1f A]"
Text item=TeslaChargeToMax label="Charge To Max [%s]" icon=""
Text item=TeslaMaxCharges label="Consec Max Charge[%d]"
}
Frame
{
Switch item=TeslaWakeup label="Wakeup the Car"
}
Frame
{
Switch item=TeslaDoorLock label="Doorlock"
Switch item=TeslaHorn label="Horn"
Switch item=TeslaLights label="Lights"
Switch item=TeslaStart label="Remote Start"
Switch item=TeslaValet label="Valet Mode"
Switch item=TeslaSentry label="Sentry Mode"
Switch item=TeslaBatteryHeater label="Battery Heater"
Switch item=TeslaFrontDefrost label="Defrost Front"
Switch item=TeslaRearDefrost label="Defrost Rear"
Switch item=TeslaLeftSeatHeater label="Seat Heat Left"
Switch item=TeslaRightSeatHeater label="Seat Heat Right"
}
Frame
{
Switch label="State" item=nTeslaState_chart icon=line mappings=[0="Hide", 1="Hour", 2="Day", 3="Week", 4="Month"]
Chart item=nTeslaState period=h refresh=30000 visibility=[nTeslaState_chart==1]
Chart item=nTeslaState period=D refresh=30000 visibility=[nTeslaState_chart==2]
Chart item=nTeslaState period=W refresh=30000 visibility=[nTeslaState_chart==3]
Chart item=nTeslaState period=M refresh=30000 visibility=[nTeslaState_chart==4]
}
Frame
{
Switch label="Battery" item=TeslaBatteryLevel_chart icon=line mappings=[0="Hide", 1="Hour", 2="Day", 3="Week", 4="Month"]
Chart item=TeslaUsableBatteryLevel period=h refresh=30000 visibility=[TeslaBatteryLevel_chart==1]
Chart item=TeslaUsableBatteryLevel period=D refresh=30000 visibility=[TeslaBatteryLevel_chart==2]
Chart item=TeslaUsableBatteryLevel period=W refresh=30000 visibility=[TeslaBatteryLevel_chart==3]
Chart item=TeslaUsableBatteryLevel period=M refresh=30000 visibility=[TeslaBatteryLevel_chart==4]
}
Frame
{
Mapview item=TeslaLocation height=10 icon=location
}
}
}
```
demo.rule (for graphing online status in sitemap above)
```
rule "Tesla State Changed"
when
Item TeslaState changed
then
if (previousState == NULL) return;
switch (TeslaState.state) {
case "online" : {
nTeslaState.postUpdate(1)
}
case "asleep" : {
nTeslaState.postUpdate(0)
}
case "offline" : {
nTeslaState.postUpdate(-0.5)
}
case "waking" : {
nTeslaState.postUpdate(0.5)
}
case "unknown" : {
nTeslaState.postUpdate(-1)
}
}
end
```

View File

@ -0,0 +1,71 @@
---
id: tplinkrouter
label: tplinkrouter
title: tplinkrouter - Bindings
type: binding
description: "The tplinkrouter Binding allows monitoring and controlling TP-Link routers."
since: 3x
install: manual
---
<!-- Attention authors: Do not edit directly. Please add your changes to the appropriate source repository -->
{% include base.html %}
# tplinkrouter Binding
The tplinkrouter Binding allows monitoring and controlling TP-Link routers.
The binding uses a telnet connection to communicate with the router.
At the moment only wifi part is supported and `TD-W9970` is the only model tested.
This binding may work with other TP-Link router provided that they use the same telnet API.
## Supported Things
This binding provides only the `router` Thing.
## Thing Configuration
### `router` Thing Configuration
| Name | Type | Description | Default | Required | Advanced |
|-----------------|---------|-----------------------------------------------|---------|----------|----------|
| hostname | text | Hostname or IP address of the device | N/A | yes | no |
| port | integer | Port for telnet connection | 23 | no | no |
| username | text | Username to access the router (same as WebUI) | N/A | yes | no |
| password | text | Password to access the device (same as WebUI) | N/A | yes | no |
| refreshInterval | integer | Interval the device is polled in sec. | 60 | no | yes |
## Channels
| Channel | Type | Read/Write | Description |
|-----------------------|--------|------------|------------------------------------------|
| `wifi#status` | Switch | RW | State of the wifi |
| `wifi#ssid` | String | R | SSID of the wifi network |
| `wifi#bandwidth` | String | R | Bandwidth of the wifi network |
| `wifi#qss` | Switch | RW | Quick Security Setup of the wifi network |
| `wifi#secMode` | String | R | Security Mode of the wifi network |
| `wifi#authentication` | String | R | Authentication Mode of the wifi network |
| `wifi#encryption` | String | R | Encryption Mode of the wifi network |
| `wifi#key` | String | R | Password of the wifi network |
## Full Example
`.things` configuration file:
```
Thing tplinkrouter:router:myRouter [hostname="192.168.0.1", username="admin", password="myPassword"]
```
`.items` configuration file:
```
Switch Wifi "Wifi" <QualityOfService> {channel="tplinkrouter:router:myRouter:wifi#status", autoupdate="false"}
String WifiSSID "Wifi SSID" <QualityOfService> {channel="tplinkrouter:router:myRouter:wifi#ssid"}
String BandWidth "Wifi Bandwidth" <QualityOfService> {channel="tplinkrouter:router:myRouter:wifi#bandwidth"}
Switch QSS "Wifi QSS" <QualityOfService> {channel="tplinkrouter:router:myRouter:wifi#qss", autoupdate="false"}
String SecMode "Wifi Security Mode" <QualityOfService> {channel="tplinkrouter:router:myRouter:wifi#secMode"}
String Authentication "Wifi Authentication Mode" <QualityOfService> {channel="tplinkrouter:router:myRouter:wifi#authentication"}
String Encryption "Wifi Encryption Mode" <QualityOfService> {channel="tplinkrouter:router:myRouter:wifi#encryption"}
```

View File

@ -66,6 +66,7 @@ Attention: The file-based configuration overrides the UI configuration.
that if you use all default values at minimum you must provide a password or a token.
All item- and event-related configuration is defined in the file `persistence/influxdb.persist`.
Please consider [persistence documentation](https://www.openhab.org/docs/configuration/persistence.html#persistence) for further information.
### Additional configuration for customized storage options in InfluxDB

View File

@ -132,6 +132,7 @@
<parameter name="allowWakeup" type="boolean" required="false">
<default>false</default>
<label>Allow Wake-Up</label>
<advanced>true</advanced>
<description>Allows waking up the vehicle. Caution: This can result in huge vampire drain!</description>
</parameter>
<parameter name="allowWakeupForCommands" type="boolean" required="false">
@ -143,8 +144,28 @@
<parameter name="enableEvents" type="boolean" required="false">
<default>false</default>
<label>Enable Events</label>
<advanced>true</advanced>
<description>Enable the event stream for the vehicle</description>
</parameter>
<parameter name="inactivity" type="integer" min="5" required="false">
<label>Inactivity Interval</label>
<advanced>true</advanced>
<description>The inactivity period in minutes, after which the binding stops for 20 minutes to let the car sleep.</description>
<default>5</default>
</parameter>
<parameter name="useDriveState" type="boolean" required="false">
<default>false</default>
<label>Use Drive State for Inactivity</label>
<advanced>true</advanced>
<description>Use the drive state instead of location to determine vehicle inactivity.</description>
</parameter>
<parameter name="useAdvancedStatesForPolling" type="boolean" required="false">
<default>false</default>
<label>Use Console Modes and Occupancy for Inactivity</label>
<advanced>true</advanced>
<description>Use these states to help continue the fast polling of the API. Do not back off polling if in these
states.</description>
</parameter>
</config-description>
</thing-type>

View File

@ -139,6 +139,7 @@
<parameter name="allowWakeup" type="boolean" required="false">
<default>false</default>
<label>Allow Wake-Up</label>
<advanced>true</advanced>
<description>Allows waking up the vehicle. Caution: This can result in huge vampire drain!</description>
</parameter>
<parameter name="allowWakeupForCommands" type="boolean" required="false">
@ -150,8 +151,28 @@
<parameter name="enableEvents" type="boolean" required="false">
<default>false</default>
<label>Enable Events</label>
<advanced>true</advanced>
<description>Enable the event stream for the vehicle</description>
</parameter>
<parameter name="inactivity" type="integer" min="5" required="false">
<label>Inactivity Interval</label>
<advanced>true</advanced>
<description>The inactivity period in minutes, after which the binding stops for 20 minutes to let the car sleep.</description>
<default>5</default>
</parameter>
<parameter name="useDriveState" type="boolean" required="false">
<default>false</default>
<label>Use Drive State for Inactivity</label>
<advanced>true</advanced>
<description>Use the drive state instead of location to determine vehicle inactivity.</description>
</parameter>
<parameter name="useAdvancedStatesForPolling" type="boolean" required="false">
<default>false</default>
<label>Use Console Modes and Occupancy for Inactivity</label>
<advanced>true</advanced>
<description>Use these states to help continue the fast polling of the API. Do not back off polling if in these
states.</description>
</parameter>
</config-description>
</thing-type>

View File

@ -139,6 +139,7 @@
<parameter name="allowWakeup" type="boolean" required="false">
<default>false</default>
<label>Allow Wake-Up</label>
<advanced>true</advanced>
<description>Allows waking up the vehicle. Caution: This can result in huge vampire drain!</description>
</parameter>
<parameter name="allowWakeupForCommands" type="boolean" required="false">
@ -150,8 +151,28 @@
<parameter name="enableEvents" type="boolean" required="false">
<default>false</default>
<label>Enable Events</label>
<advanced>true</advanced>
<description>Enable the event stream for the vehicle</description>
</parameter>
<parameter name="inactivity" type="integer" min="5" required="false">
<label>Inactivity Interval</label>
<advanced>true</advanced>
<description>The inactivity period in minutes, after which the binding stops for 20 minutes to let the car sleep.</description>
<default>5</default>
</parameter>
<parameter name="useDriveState" type="boolean" required="false">
<default>false</default>
<label>Use Drive State for Inactivity</label>
<advanced>true</advanced>
<description>Use the drive state instead of location to determine vehicle inactivity.</description>
</parameter>
<parameter name="useAdvancedStatesForPolling" type="boolean" required="false">
<default>false</default>
<label>Use Console Modes and Occupancy for Inactivity</label>
<advanced>true</advanced>
<description>Use these states to help continue the fast polling of the API. Do not back off polling if in these
states.</description>
</parameter>
</config-description>
</thing-type>

View File

@ -134,6 +134,7 @@
<parameter name="allowWakeup" type="boolean" required="false">
<default>false</default>
<label>Allow Wake-Up</label>
<advanced>true</advanced>
<description>Allows waking up the vehicle. Caution: This can result in huge vampire drain!</description>
</parameter>
<parameter name="allowWakeupForCommands" type="boolean" required="false">
@ -145,8 +146,28 @@
<parameter name="enableEvents" type="boolean" required="false">
<default>false</default>
<label>Enable Events</label>
<advanced>true</advanced>
<description>Enable the event stream for the vehicle</description>
</parameter>
<parameter name="inactivity" type="integer" min="5" required="false">
<label>Inactivity Interval</label>
<advanced>true</advanced>
<description>The inactivity period in minutes, after which the binding stops for 20 minutes to let the car sleep.</description>
<default>5</default>
</parameter>
<parameter name="useDriveState" type="boolean" required="false">
<default>false</default>
<label>Use Drive State for Inactivity</label>
<advanced>true</advanced>
<description>Use the drive state instead of location to determine vehicle inactivity.</description>
</parameter>
<parameter name="useAdvancedStatesForPolling" type="boolean" required="false">
<default>false</default>
<label>Use Console Modes and Occupancy for Inactivity</label>
<advanced>true</advanced>
<description>Use these states to help continue the fast polling of the API. Do not back off polling if in these
states.</description>
</parameter>
</config-description>
</thing-type>

View File

@ -0,0 +1,86 @@
<?xml version="1.0" encoding="UTF-8"?>
<thing:thing-descriptions bindingId="tplinkrouter"
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="wifiGroupType">
<label>Wifi</label>
<description>Wifi channels</description>
<channels>
<channel id="status" typeId="status"/>
<channel id="ssid" typeId="ssid"/>
<channel id="bandwidth" typeId="bandwidth"/>
<channel id="qss" typeId="qss"/>
<channel id="secMode" typeId="security-mode"/>
<channel id="authentication" typeId="authentication"/>
<channel id="encryption" typeId="encryption"/>
<channel id="key" typeId="key"/>
</channels>
</channel-group-type>
<channel-type id="qss">
<item-type>Switch</item-type>
<label>Wifi QSS</label>
</channel-type>
<channel-type id="status">
<item-type>Switch</item-type>
<label>Wifi Status</label>
</channel-type>
<channel-type id="ssid">
<item-type>String</item-type>
<label>Wifi SSID</label>
<state pattern="%s" readOnly="true"/>
</channel-type>
<channel-type id="key">
<item-type>String</item-type>
<label>Wifi Key</label>
<state pattern="%s" readOnly="true"/>
</channel-type>
<channel-type id="security-mode">
<item-type>String</item-type>
<label>Wifi Security Mode</label>
<state readOnly="true">
<options>
<option value="WEP">WEP</option>
<option value="WPA">PSK</option>
</options>
</state>
</channel-type>
<channel-type id="authentication">
<item-type>String</item-type>
<label>Wifi Authentication Mode</label>
<state readOnly="true">
<options>
<option value="AUTO">AUTO</option>
<option value="OPEN">OPEN</option>
<option value="SHARED">SHARED</option>
<option value="WPA">WPA</option>
<option value="WPA2">WPA2</option>
</options>
</state>
</channel-type>
<channel-type id="encryption">
<item-type>String</item-type>
<label>Wifi Encryption Mode</label>
<description>Wifi Encryption Mode (only for PSK security mode)</description>
<state readOnly="true">
<options>
<option value="AUTO">AUTO</option>
<option value="TKIP">TKIP</option>
<option value="AES">AES</option>
</options>
</state>
</channel-type>
<channel-type id="bandwidth">
<item-type>String</item-type>
<label>Wifi BandWidth</label>
<state readOnly="true">
<options>
<option value="Auto">Auto</option>
<option value="20M">20 MHz</option>
<option value="40M">40 MHz</option>
</options>
</state>
</channel-type>
</thing:thing-descriptions>

View File

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8"?>
<thing:thing-descriptions bindingId="tplinkrouter"
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="router">
<label>Router</label>
<description>Router device monitored and controlled by telnet connection</description>
<channel-groups>
<channel-group id="wifi" typeId="wifiGroupType"/>
</channel-groups>
<config-description>
<parameter name="hostname" type="text" required="true">
<context>network-address</context>
<label>Hostname</label>
<description>Hostname or IP address of the device</description>
</parameter>
<parameter name="port" type="integer">
<label>Port</label>
<description>Port for telnet connection</description>
<default>23</default>
</parameter>
<parameter name="username" type="text" required="true">
<label>Username</label>
<description>User to access the device</description>
</parameter>
<parameter name="password" type="text" required="true">
<context>password</context>
<label>Password</label>
<description>Password to access the device</description>
</parameter>
<parameter name="refreshInterval" type="integer" unit="s" min="1">
<label>Refresh Interval</label>
<description>Interval the device is polled in sec.</description>
<default>60</default>
<advanced>true</advanced>
</parameter>
</config-description>
</thing-type>
</thing:thing-descriptions>