Updated external content (Jenkins build 931)
parent
621fe74601
commit
12380c947e
File diff suppressed because one or more lines are too long
|
@ -137,6 +137,7 @@ Advanced parameters
|
|||
| `timeBetweenTransactionsMillis` | | integer | `60` | How long to delay we must have at minimum between two consecutive MODBUS transactions. In milliseconds. |
|
||||
| `timeBetweenReconnectMillis` | | integer | `0` | How long to wait to before trying to establish a new connection after the previous one has been disconnected. In milliseconds. |
|
||||
| `connectMaxTries` | | integer | `1` | How many times we try to establish the connection. Should be at least 1. |
|
||||
| `afterConnectionDelayMillis` | | integer | `0` | Connection warm-up time. Additional time which is spent on preparing connection which should be spent waiting while end device is getting ready to answer first modbus call. In milliseconds. |
|
||||
| `reconnectAfterMillis` | | integer | `0` | The connection is kept open at least the time specified here. Value of zero means that connection is disconnected after every MODBUS transaction. In milliseconds. |
|
||||
| `connectTimeoutMillis` | | integer | `10000` | The maximum time that is waited when establishing the connection. Value of zero means that system/OS default is respected. In milliseconds. |
|
||||
| `enableDiscovery` | | boolean | false | Enable auto-discovery feature. Effective only if a supporting extension has been installed. |
|
||||
|
@ -173,6 +174,7 @@ Advanced parameters
|
|||
| `flowControlOut` | | text | `"none"` | Type of flow control for sending. Valid values are: `"none"`, `"xon/xoff out"`, `"rts/cts out"`. |
|
||||
| `timeBetweenTransactionsMillis` | | integer | `35` | How long to delay we must have at minimum between two consecutive MODBUS transactions. In milliseconds. |
|
||||
| `connectMaxTries` | | integer | `1` | How many times we try to establish the connection. Should be at least 1. |
|
||||
| `afterConnectionDelayMillis` | | integer | `0` | Connection warm-up time. Additional time which is spent on preparing connection which should be spent waiting while end device is getting ready to answer first modbus call. In milliseconds. |
|
||||
| `connectTimeoutMillis` | | integer | `10000` | The maximum time that is waited when establishing the connection. Value of zero means thatsystem/OS default is respected. In milliseconds. |
|
||||
| `enableDiscovery` | | boolean | false | Enable auto-discovery feature. Effective only if a supporting extension has been installed. |
|
||||
|
||||
|
|
|
@ -0,0 +1,317 @@
|
|||
---
|
||||
id: vesync
|
||||
label: VeSync
|
||||
title: VeSync - Bindings
|
||||
type: binding
|
||||
description: "Its current support is for the Air Purifiers & Humidifer's branded as Levoit which utilise the VeSync app based on the V2 protocol."
|
||||
since: 3x
|
||||
install: manual
|
||||
---
|
||||
|
||||
<!-- Attention authors: Do not edit directly. Please add your changes to the appropriate source repository -->
|
||||
|
||||
{% include base.html %}
|
||||
|
||||
# VeSync Binding
|
||||
|
||||
Its current support is for the Air Purifiers & Humidifer's branded as Levoit which utilise the VeSync app based on the V2 protocol.
|
||||
|
||||
### Verified Models
|
||||
|
||||
Air Filtering models supported are Core300S, Core400S.
|
||||
Air Humidifier models supported are Dual 200S, Classic 300S, 600S.
|
||||
|
||||
### Awaiting User Verification Models
|
||||
|
||||
Air Filtering models supported are Core200S and Core600S.
|
||||
Air Humidifier Classic 200S (Same as 300S without the nightlight from initial checks)
|
||||
|
||||
## Supported Things
|
||||
|
||||
This binding supports the follow thing types:
|
||||
|
||||
| Thing | Thing Type | Thing Type UID | Discovery | Description |
|
||||
|----------------|------------|----------------|-----------|----------------------------------------------------------------------|
|
||||
| Bridge | Bridge | bridge | Manual | A single connection to the VeSync API |
|
||||
| Air Purifier | Thing | airPurifier | Automatic | A Air Purifier supporting V2 e.g. Core200S/Core300S or Core400S unit |
|
||||
| Air Humidifier | Thing | airHumidifier | Automatic | A Air Humidifier supporting V2 e.g. Classic300S or 600s |
|
||||
|
||||
|
||||
|
||||
This binding was developed from the great work in the listed projects.
|
||||
|
||||
The only Air Filter unit it has been tested against is the Core400S unit, **I'm looking for others to confirm** my queries regarding **the Core200S and Core300S** units.
|
||||
The ***Classic 300S Humidifier*** has been tested, and ***600S with current warm mode restrictions***.
|
||||
|
||||
## Discovery
|
||||
|
||||
Once the bridge is configured auto discovery will discover supported devices from the VeSync API.
|
||||
|
||||
## Thing Configuration
|
||||
|
||||
### Bridge configuration parameters
|
||||
|
||||
| Name | Type | Description | Recommended Values |
|
||||
|----------------------------------|--------|-----------------------------------------------------------|--------------------|
|
||||
| username | String | The username as used in the VeSync mobile application | |
|
||||
| password | String | The password as used in the VeSync mobile application | |
|
||||
| airPurifierPollInterval | Number | The poll interval (seconds) for air filters / humidifiers | 60 |
|
||||
| backgroundDeviceDiscovery | Switch | Should the system scan periodically for new devices | ON |
|
||||
| refreshBackgroundDeviceDiscovery | Number | Frequency (seconds) of scans for new new devices | 120 |
|
||||
|
||||
* Note Air PM Levels don't usually change quickly - 60s seems reasonable if openHAB is controlling it and your don't want near instant feedback of physical interactions with the devices.
|
||||
|
||||
### AirPurifier configuration parameters
|
||||
|
||||
It is recommended to use the device name, for locating devices. For this to work all the devices should have a unique
|
||||
name in the VeSync mobile application.
|
||||
|
||||
The mac address from the VeSync mobile application may not align to the one the API
|
||||
uses, therefore it's best left not configured or taken from auto-discovered information.
|
||||
|
||||
Device's will be found communicated with via the MAC Id first and if unsuccessful then by the deviceName.
|
||||
|
||||
| Name | Type | Description |
|
||||
|------------------------|-------------------------|---------------------------------------------------------------------|
|
||||
| deviceName | String | The name given to the device under Settings -> Device Name |
|
||||
| macId | String | The mac for the device under Settings -> Device Info -> MAC Address |
|
||||
|
||||
|
||||
## Channels
|
||||
|
||||
Channel names in **bold** are read/write, everything else is read-only
|
||||
|
||||
### AirPurifier Thing
|
||||
|
||||
| Channel | Type | Description | Model's Supported | Controllable Values |
|
||||
|----------------------|----------------------|------------------------------------------------------------|-------------------|-----------------------|
|
||||
| **enabled** | Switch | Whether the hardware device is enabled (Switched on) | 600S, 400S, 300S | [ON, OFF] |
|
||||
| **childLock** | Switch | Whether the child lock (display lock is enabled) | 600S, 400S, 300S | [ON, OFF] |
|
||||
| **display** | Switch | Whether the display is enabled (display is shown) | 600S, 400S, 300S | [ON, OFF] |
|
||||
| **fanMode** | String | The operation mode of the fan | 600S, 400S | [auto, manual, sleep] |
|
||||
| **fanMode** | String | The operation mode of the fan | 200S, 300S, | [manual, sleep] |
|
||||
| **manualFanSpeed** | Number:Dimensionless | The speed of the fan when in manual mode | 600S, 400S | [1...4] |
|
||||
| **manualFanSpeed** | Number:Dimensionless | The speed of the fan when in manual mode | 300S | [1...3] |
|
||||
| **nightLightMode** | String | The night lights mode | 200S, 300S | [on, dim, off] |
|
||||
| filterLifePercentage | Number:Dimensionless | The remaining filter life as a percentage | 600S, 400S, 300S | |
|
||||
| airQuality | Number:Dimensionless | The air quality as represented by the Core200S / Core300S | 600S, 400S, 300S | |
|
||||
| airQualityPM25 | Number:Density | The air quality as represented by the Core400S | 600S, 400S, 300S | |
|
||||
| errorCode | Number:Dimensionless | The error code reported by the device | 600S, 400S, 300S | |
|
||||
| timerExpiry | DateTime | The expected expiry time of the current timer | 600S, 400S | |
|
||||
| schedulesCount | Number:Dimensionless | The number schedules configured | 600S, 400S | |
|
||||
| configDisplayForever | Switch | Config: Whether the display will disable when not active | 600S, 400S, 300S | |
|
||||
| configAutoMode | String | Config: The mode of operation when auto is active | 600S, 400S, 300S | |
|
||||
| configAutoRoomSize | Number:Dimensionless | Config: The room size set when auto utilises the room size | 600S, 400S, 300S | |
|
||||
|
||||
|
||||
### AirHumidifier Thing
|
||||
|
||||
| Channel | Type | Description | Model's Supported | Controllable Values |
|
||||
|----------------------------|----------------------|---------------------------------------------------------------|----------------------------|---------------------|
|
||||
| **enabled** | Switch | Whether the hardware device is enabled (Switched on) | 200S, Dual200S, 300S, 600S | [ON, OFF] |
|
||||
| **display** | Switch | Whether the display is enabled (display is shown) | 200S, Dual200S, 300S, 600S | [ON, OFF] |
|
||||
| waterLacking | Switch | Indicator whether the unit is lacking water | 200S, Dual200S, 300S, 600S | |
|
||||
| humidityHigh | Switch | Indicator for high humidity | 200S, Dual200S, 300S, 600S | |
|
||||
| waterTankLifted | Switch | Indicator for whether the water tank is removed | 200S, Dual200S, 300S, 600S | |
|
||||
| **stopAtHumiditySetpoint** | Switch | Whether the unit is set to stop when the set point is reached | 200S, Dual200S, 300S, 600S | [ON, OFF] |
|
||||
| humidity | Number:Dimensionless | Indicator for the currently measured humidity % level | 200S, Dual200S, 300S, 600S | |
|
||||
| **mistLevel** | Number:Dimensionless | The current mist level set | 300S | [1...2] |
|
||||
| **mistLevel** | Number:Dimensionless | The current mist level set | 200S, Dual200S, 600S | [1...3] |
|
||||
| **humidifierMode** | String | The current mode of operation | 200S, Dual200S, 300S, 600S | [auto, sleep] |
|
||||
| **nightLightMode** | String | The night light mode | 200S, Dual200S, 300S | [on, dim, off] |
|
||||
| **humiditySetpoint** | Number:Dimensionless | Humidity % set point to reach | 200S, Dual200S, 300S, 600S | [30...80] |
|
||||
| warmEnabled | Switch | Indicator for warm mist mode | 600S | |
|
||||
|
||||
|
||||
## Full Example
|
||||
|
||||
### Configuration (*.things)
|
||||
|
||||
#### Air Purifiers Core 200S/300S/400S Models & Air Humidifier Classic300S/600S Models
|
||||
|
||||
```
|
||||
Bridge vesync:bridge:vesyncServers [username="<USERNAME>", password="<PASSWORD>", airPurifierPollInterval=60] {
|
||||
airPurifier loungeAirFilter [deviceName="<DEVICE NAME FROM APP>"]
|
||||
airPurifier bedroomAirFilter [deviceName="<DEVICE NAME FROM APP>"]
|
||||
airHumidifier loungeHumidifier [deviceName="<DEVICE NAME FROM APP>"]
|
||||
}
|
||||
```
|
||||
|
||||
### Configuration (*.items)
|
||||
|
||||
#### Air Purifier Core 400S / 600S Model
|
||||
|
||||
```
|
||||
Switch LoungeAPPower "Lounge Air Purifier Power" { channel="vesync:airPurifier:vesyncServers:loungeAirFilter:enabled" }
|
||||
Switch LoungeAPDisplay "Lounge Air Purifier Display" { channel="vesync:airPurifier:vesyncServers:loungeAirFilter:display" }
|
||||
Switch LoungeAPControlsLock "Lounge Air Purifier Controls Locked" { channel="vesync:airPurifier:vesyncServers:loungeAirFilter:childLock" }
|
||||
Number:Dimensionless LoungeAPFilterRemainingUse "Lounge Air Purifier Filter Remaining [%.0f %unit%]" { channel="vesync:airPurifier:vesyncServers:loungeAirFilter:filterLifePercentage" }
|
||||
String LoungeAPMode "Lounge Air Purifier Mode [%s]" { channel="vesync:airPurifier:vesyncServers:loungeAirFilter:fanMode" }
|
||||
Number:Dimensionless LoungeAPManualFanSpeed "Lounge Air Purifier Manual Fan Speed" { channel="vesync:airPurifier:vesyncServers:loungeAirFilter:manualFanSpeed" }
|
||||
Number:Density LoungeAPAirQuality "Lounge Air Purifier Air Quality [%.0f% %unit%]" { channel="vesync:airPurifier:vesyncServers:loungeAirFilter:airQualityPM25" }
|
||||
Number LoungeAPErrorCode "Lounge Air Purifier Error Code" { channel="vesync:airPurifier:vesyncServers:loungeAirFilter:errorCode" }
|
||||
String LoungeAPAutoMode "Lounge Air Purifier Auto Mode" { channel="vesync:airPurifier:vesyncServers:loungeAirFilter:configAutoMode" }
|
||||
Number LoungeAPAutoRoomSize "Lounge Air Purifier Auto Room Size [%.0f% sqft]" { channel="vesync:airPurifier:vesyncServers:loungeAirFilter:configAutoRoomSize" }
|
||||
Number:Time LoungeAPTimerLeft "Lounge Air Purifier Timer Left [%1$Tp]" { channel="vesync:airPurifier:vesyncServers:loungeAirFilter:timerRemain" }
|
||||
DateTime LoungeAPTimerExpiry "Lounge Air Purifier Timer Expiry [%1$tA %1$tI:%1$tM %1$Tp]" { channel="vesync:airPurifier:vesyncServers:loungeAirFilter:timerExpiry" }
|
||||
Number LoungeAPSchedulesCount "Lounge Air Purifier Schedules Count" { channel="vesync:airPurifier:vesyncServers:loungeAirFilter:schedulesCount" }
|
||||
```
|
||||
|
||||
#### Air Purifier Core 200S/300S Model
|
||||
|
||||
```
|
||||
Switch LoungeAPPower "Lounge Air Purifier Power" { channel="vesync:airPurifier:vesyncServers:loungeAirFilter:enabled" }
|
||||
Switch LoungeAPDisplay "Lounge Air Purifier Display" { channel="vesync:airPurifier:vesyncServers:loungeAirFilter:display" }
|
||||
String LoungeAPNightLightMode "Lounge Air Purifier Night Light Mode" { channel="vesync:airPurifier:vesyncServers:loungeAirFilter:nightLightMode" }
|
||||
Switch LoungeAPControlsLock "Lounge Air Purifier Controls Locked" { channel="vesync:airPurifier:vesyncServers:loungeAirFilter:childLock" }
|
||||
Number:Dimensionless LoungeAPFilterRemainingUse "Lounge Air Purifier Filter Remaining [%.0f %unit%]" { channel="vesync:airPurifier:vesyncServers:loungeAirFilter:filterLifePercentage" }
|
||||
String LoungeAPMode "Lounge Air Purifier Mode [%s]" { channel="vesync:airPurifier:vesyncServers:loungeAirFilter:fanMode" }
|
||||
Number:Dimensionless LoungeAPManualFanSpeed "Lounge Air Purifier Manual Fan Speed" { channel="vesync:airPurifier:vesyncServers:loungeAirFilter:manualFanSpeed" }
|
||||
Number:Density LoungeAPAirQuality "Lounge Air Purifier Air Quality [%.0f%]" { channel="vesync:airPurifier:vesyncServers:loungeAirFilter:airQuality" }
|
||||
Number LoungeAPErrorCode "Lounge Air Purifier Error Code" { channel="vesync:airPurifier:vesyncServers:loungeAirFilter:errorCode" }
|
||||
String LoungeAPAutoMode "Lounge Air Purifier Auto Mode" { channel="vesync:airPurifier:vesyncServers:loungeAirFilter:configAutoMode" }
|
||||
Number LoungeAPAutoRoomSize "Lounge Air Purifier Auto Room Size [%.0f% sqft]" { channel="vesync:airPurifier:vesyncServers:loungeAirFilter:configAutoRoomSize" }
|
||||
Number:Time LoungeAPTimerLeft "Lounge Air Purifier Timer Left [%1$Tp]" { channel="vesync:airPurifier:vesyncServers:loungeAirFilter:timerRemain" }
|
||||
DateTime LoungeAPTimerExpiry "Lounge Air Purifier Timer Expiry [%1$tA %1$tI:%1$tM %1$Tp]" { channel="vesync:airPurifier:vesyncServers:loungeAirFilter:timerExpiry" }
|
||||
Number LoungeAPSchedulesCount "Lounge Air Purifier Schedules Count" { channel="vesync:airPurifier:vesyncServers:loungeAirFilter:schedulesCount" }
|
||||
```
|
||||
|
||||
#### Air Humidifier Classic 200S / Dual 200S Model
|
||||
|
||||
```
|
||||
Switch LoungeAHPower "Lounge Air Humidifier Power" { channel="vesync:airHumidifier:vesyncServers:loungeHumidifier:enabled" }
|
||||
Switch LoungeAHDisplay "Lounge Air Humidifier Display" { channel="vesync:airHumidifier:vesyncServers:loungeHumidifier:display" }
|
||||
String LoungeAHMode "Lounge Air Humidifier Mode" { channel="vesync:airHumidifier:vesyncServers:loungeHumidifier:humidifierMode" }
|
||||
Switch LoungeAHWaterLacking "Lounge Air Humidifier Water Lacking" { channel="vesync:airHumidifier:vesyncServers:loungeHumidifier:waterLacking" }
|
||||
Switch LoungeAHHighHumidity "Lounge Air Humidifier High Humidity" { channel="vesync:airHumidifier:vesyncServers:loungeHumidifier:humidityHigh" }
|
||||
Switch LoungeAHWaterTankRemoved "Lounge Air Humidifier Water Tank Removed" { channel="vesync:airHumidifier:vesyncServers:loungeHumidifier:waterTankLifted" }
|
||||
Number:Dimensionless LoungeAHHumidity "Lounge Air Humidifier Measured Humidity [%.0f %unit%]" { channel="vesync:airHumidifier:vesyncServers:loungeHumidifier:humidity" }
|
||||
Switch LoungeAHTargetStop "Lounge Air Humidifier Stop at target" { channel="vesync:airHumidifier:vesyncServers:loungeHumidifier:stopAtTargetLevel" }
|
||||
Number:Dimensionless LoungeAHTarget "Lounge Air Humidifier Target Humidity [%.0f %unit%]" { channel="vesync:airHumidifier:vesyncServers:loungeHumidifier:humiditySetpoint" }
|
||||
Number:Dimensionless LoungeAHMistLevel "Lounge Air Humidifier Mist Level" { channel="vesync:airHumidifier:vesyncServers:loungeHumidifier:mistLevel" }
|
||||
```
|
||||
|
||||
#### Air Humidifier Classic 300S Model
|
||||
|
||||
```
|
||||
Switch LoungeAHPower "Lounge Air Humidifier Power" { channel="vesync:airHumidifier:vesyncServers:loungeHumidifier:enabled" }
|
||||
Switch LoungeAHDisplay "Lounge Air Humidifier Display" { channel="vesync:airHumidifier:vesyncServers:loungeHumidifier:display" }
|
||||
String LoungeAHNightLightMode "Lounge Air Humidifier Night Light Mode" { channel="vesync:airHumidifier:vesyncServers:loungeHumidifier:nightLightMode }
|
||||
String LoungeAHMode "Lounge Air Humidifier Mode" { channel="vesync:airHumidifier:vesyncServers:loungeHumidifier:humidifierMode" }
|
||||
Switch LoungeAHWaterLacking "Lounge Air Humidifier Water Lacking" { channel="vesync:airHumidifier:vesyncServers:loungeHumidifier:waterLacking" }
|
||||
Switch LoungeAHHighHumidity "Lounge Air Humidifier High Humidity" { channel="vesync:airHumidifier:vesyncServers:loungeHumidifier:humidityHigh" }
|
||||
Switch LoungeAHWaterTankRemoved "Lounge Air Humidifier Water Tank Removed" { channel="vesync:airHumidifier:vesyncServers:loungeHumidifier:waterTankLifted" }
|
||||
Number:Dimensionless LoungeAHHumidity "Lounge Air Humidifier Measured Humidity [%.0f %unit%]" { channel="vesync:airHumidifier:vesyncServers:loungeHumidifier:humidity" }
|
||||
Switch LoungeAHTargetStop "Lounge Air Humidifier Stop at target" { channel="vesync:airHumidifier:vesyncServers:loungeHumidifier:stopAtTargetLevel" }
|
||||
Number:Dimensionless LoungeAHTarget "Lounge Air Humidifier Target Humidity [%.0f %unit%]" { channel="vesync:airHumidifier:vesyncServers:loungeHumidifier:humiditySetpoint" }
|
||||
Number:Dimensionless LoungeAHMistLevel "Lounge Air Humidifier Mist Level" { channel="vesync:airHumidifier:vesyncServers:loungeHumidifier:mistLevel" }
|
||||
```
|
||||
|
||||
#### Air Humidifier 600S Model
|
||||
|
||||
```
|
||||
Switch LoungeAHPower "Lounge Air Humidifier Power" { channel="vesync:airHumidifier:vesyncServers:loungeHumidifier:enabled" }
|
||||
Switch LoungeAHDisplay "Lounge Air Humidifier Display" { channel="vesync:airHumidifier:vesyncServers:loungeHumidifier:display" }
|
||||
String LoungeAHMode "Lounge Air Humidifier Mode" { channel="vesync:airHumidifier:vesyncServers:loungeHumidifier:humidifierMode" }
|
||||
Switch LoungeAHWaterLacking "Lounge Air Humidifier Water Lacking" { channel="vesync:airHumidifier:vesyncServers:loungeHumidifier:waterLacking" }
|
||||
Switch LoungeAHHighHumidity "Lounge Air Humidifier High Humidity" { channel="vesync:airHumidifier:vesyncServers:loungeHumidifier:humidityHigh" }
|
||||
Switch LoungeAHWaterTankRemoved "Lounge Air Humidifier Water Tank Removed" { channel="vesync:airHumidifier:vesyncServers:loungeHumidifier:waterTankLifted" }
|
||||
Number:Dimensionless LoungeAHHumidity "Lounge Air Humidifier Measured Humidity [%.0f %unit%]" { channel="vesync:airHumidifier:vesyncServers:loungeHumidifier:humidity" }
|
||||
Switch LoungeAHTargetStop "Lounge Air Humidifier Stop at target" { channel="vesync:airHumidifier:vesyncServers:loungeHumidifier:stopAtTargetLevel" }
|
||||
Number:Dimensionless LoungeAHTarget "Lounge Air Humidifier Target Humidity [%.0f %unit%]" { channel="vesync:airHumidifier:vesyncServers:loungeHumidifier:humiditySetpoint" }
|
||||
Number:Dimensionless LoungeAHMistLevel "Lounge Air Humidifier Mist Level" { channel="vesync:airHumidifier:vesyncServers:loungeHumidifier:mistLevel" }
|
||||
```
|
||||
|
||||
### Configuration (*.sitemap)
|
||||
|
||||
#### Air Purifier Core 400S / 600S Model
|
||||
|
||||
```
|
||||
Frame {
|
||||
Switch item=LoungeAPPower label="Power"
|
||||
Text item=LoungeAPFilterRemainingUse label="Filter Remaining"
|
||||
Switch item=LoungeAPDisplay label="Display"
|
||||
Text item=LoungeAPAirQuality label="Air Quality [%.0f (PM2.5)]"
|
||||
Switch item=LoungeAPControlsLock label="Controls Locked"
|
||||
Text item=LoungeAPTimerExpiry label="Timer Shutdown @" icon="clock"
|
||||
Switch item=LoungeAPMode label="Mode" mappings=[auto="Auto", manual="Manual Fan Control", sleep="Sleeping"] icon="settings"
|
||||
Text item=LoungeAPErrorCode label="Error Code [%.0f]"
|
||||
Switch item=LoungeAPManualFanSpeed label="Manual Fan Speed [%.0f]" mappings=[1="1", 2="2", 3="3", 4="4"] icon="settings"
|
||||
}
|
||||
```
|
||||
|
||||
#### Air Purifier Core 200S/300S Model
|
||||
|
||||
```
|
||||
Frame {
|
||||
Switch item=LoungeAPPower label="Power"
|
||||
Text item=LoungeAPFilterRemainingUse label="Filter Remaining"
|
||||
Switch item=LoungeAPDisplay label="Display"
|
||||
Switch item=LoungeAPNightLightMode label="Night Light Mode" mappings=[on="On", dim="Dimmed", off="Off"] icon="settings"
|
||||
Text item=LoungeAPAirQuality label="Air Quality [%.0f]"
|
||||
Switch item=LoungeAPControlsLock label="Controls Locked"
|
||||
Text item=LoungeAPTimerExpiry label="Timer Shutdown @" icon="clock"
|
||||
Switch item=LoungeAPMode label="Mode" mappings=[manual="Manual Fan Control", sleep="Sleeping"] icon="settings"
|
||||
Text item=LoungeAPErrorCode label="Error Code [%.0f]"
|
||||
Switch item=LoungeAPManualFanSpeed label="Manual Fan Speed [%.0f]" mappings=[1="1", 2="2", 3="3"] icon="settings"
|
||||
}
|
||||
```
|
||||
|
||||
#### Air Humidifier Classic 200S / Dual 200S Model
|
||||
|
||||
```
|
||||
Frame {
|
||||
Switch item=LoungeAHPower
|
||||
Switch item=LoungeAHDisplay
|
||||
Switch item=LoungeAHMode label="Mode" mappings=[auto="Auto", sleep="Sleeping"] icon="settings"
|
||||
Text icon="none" item=LoungeAHWaterLacking
|
||||
Text icon="none" item=LoungeAHHighHumidity
|
||||
Text icon="none" item=LoungeAHWaterTankRemoved
|
||||
Text icon="none" item=LoungeAHHumidity
|
||||
Switch item=LoungeAHTargetStop
|
||||
Slider item=LoungeAHTarget minValue=30 maxValue=80
|
||||
Slider item=LoungeAHMistLevel minValue=1 maxValue=3
|
||||
}
|
||||
```
|
||||
|
||||
#### Air Humidifier Classic 300S Model
|
||||
|
||||
```
|
||||
Frame {
|
||||
Switch item=LoungeAHPower
|
||||
Switch item=LoungeAHDisplay
|
||||
Switch item=LoungeAHNightLightMode label="Night Light Mode" mappings=[on="On", dim="Dimmed", off="Off"] icon="settings"
|
||||
Switch item=LoungeAHMode label="Mode" mappings=[auto="Auto", sleep="Sleeping"] icon="settings"
|
||||
Text icon="none" item=LoungeAHWaterLacking
|
||||
Text icon="none" item=LoungeAHHighHumidity
|
||||
Text icon="none" item=LoungeAHWaterTankRemoved
|
||||
Text icon="none" item=LoungeAHHumidity
|
||||
Switch item=LoungeAHTargetStop
|
||||
Slider item=LoungeAHTarget minValue=30 maxValue=80
|
||||
Slider item=LoungeAHMistLevel minValue=1 maxValue=3
|
||||
}
|
||||
```
|
||||
|
||||
#### Air Humidifier 600S Model
|
||||
|
||||
```
|
||||
Frame {
|
||||
Switch item=LoungeAHPower
|
||||
Switch item=LoungeAHDisplay
|
||||
Switch item=LoungeAHMode label="Mode" mappings=[auto="Auto", sleep="Sleeping"] icon="settings"
|
||||
Text icon="none" item=LoungeAHWaterLacking
|
||||
Text icon="none" item=LoungeAHHighHumidity
|
||||
Text icon="none" item=LoungeAHWaterTankRemoved
|
||||
Text icon="none" item=LoungeAHHumidity
|
||||
Switch item=LoungeAHTargetStop
|
||||
Slider item=LoungeAHTarget minValue=30 maxValue=80
|
||||
Slider item=LoungeAHMistLevel minValue=1 maxValue=3
|
||||
}
|
||||
```
|
||||
|
||||
### Credits
|
||||
|
||||
The binding code is based on a lot of work done by other developers:
|
||||
|
||||
- Contributors of (https://github.com/webdjoe/pyvesync) - Python interface for VeSync
|
||||
- Rene Scherer, Holger Eisold - (https://www.openhab.org/addons/bindings/surepetcare) Sure Petcare Binding for openHAB as a reference point for the starting blocks of this code
|
|
@ -136,6 +136,13 @@
|
|||
<default>1</default>
|
||||
<advanced>true</advanced>
|
||||
</parameter>
|
||||
<parameter name="afterConnectionDelayMillis" type="integer" min="0" unit="ms">
|
||||
<label>Connection warm-up time</label>
|
||||
<description>Connection warm-up time. Additional time which is spent on preparing connection which should be spent
|
||||
waiting while end device is getting ready to answer first modbus call. In milliseconds.</description>
|
||||
<default>0</default>
|
||||
<advanced>true</advanced>
|
||||
</parameter>
|
||||
<parameter name="connectTimeoutMillis" type="integer" min="0" unit="ms">
|
||||
<label>Timeout for Establishing the Connection</label>
|
||||
<description>The maximum time that is waited when establishing the connection. Value of zero means that system/OS
|
||||
|
|
|
@ -58,6 +58,13 @@
|
|||
<default>1</default>
|
||||
<advanced>true</advanced>
|
||||
</parameter>
|
||||
<parameter name="afterConnectionDelayMillis" type="integer" min="0" unit="ms">
|
||||
<label>Connection warm-up time</label>
|
||||
<description>Connection warm-up time. Additional time which is spent on preparing connection which should be spent
|
||||
waiting while end device is getting ready to answer first modbus call. In milliseconds.</description>
|
||||
<default>0</default>
|
||||
<advanced>true</advanced>
|
||||
</parameter>
|
||||
<parameter name="reconnectAfterMillis" type="integer" min="0" unit="ms">
|
||||
<label>Reconnect Again After</label>
|
||||
<description>The connection is kept open at least the time specified here. Value of zero means that connection is
|
||||
|
|
|
@ -0,0 +1,334 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<thing:thing-descriptions bindingId="vesync"
|
||||
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="bridge">
|
||||
<label>VeSync Bridge</label>
|
||||
<description>The VeSync bridge represents the VeSync cloud service.</description>
|
||||
|
||||
<properties>
|
||||
<property name="Registration Time"/>
|
||||
<property name="Country Code"/>
|
||||
<property name="Accept Language"/>
|
||||
</properties>
|
||||
|
||||
<config-description>
|
||||
<parameter name="username" type="text">
|
||||
<context>email</context>
|
||||
<required>true</required>
|
||||
<label>Username</label>
|
||||
<description>Name of a registered VeSync user, that allows to access the mobile application.</description>
|
||||
</parameter>
|
||||
<parameter name="password" type="text">
|
||||
<context>password</context>
|
||||
<required>true</required>
|
||||
<label>Password</label>
|
||||
<description>Password for the registered VeSync username, that allows to access the mobile application.</description>
|
||||
</parameter>
|
||||
<parameter name="backgroundDeviceDiscovery" type="boolean">
|
||||
<label>Background Device Scans</label>
|
||||
<description>Enable background scanning for new devices.</description>
|
||||
<default>true</default>
|
||||
</parameter>
|
||||
<parameter name="airPurifierPollInterval" type="integer" min="5" step="1" unit="s">
|
||||
<label>Air Filters/Humidifiers Poll Rate</label>
|
||||
<description>Seconds between fetching background updates about the air purifiers / humidifiers.</description>
|
||||
<default>60</default>
|
||||
</parameter>
|
||||
</config-description>
|
||||
</bridge-type>
|
||||
|
||||
<thing-type id="airPurifier">
|
||||
<supported-bridge-type-refs>
|
||||
<bridge-type-ref id="bridge"/>
|
||||
</supported-bridge-type-refs>
|
||||
|
||||
<label>Air Purifier via VeSync</label>
|
||||
<description>A Air Purifier uplinking to VeSync</description>
|
||||
|
||||
<channels>
|
||||
<channel id="enabled" typeId="deviceEnabledType"/>
|
||||
<channel id="childLock" typeId="deviceChildLockEnabledType"/>
|
||||
<channel id="display" typeId="deviceDisplayEnabledType"/>
|
||||
<channel id="filterLifePercentage" typeId="deviceFilterLifePercentageType"/>
|
||||
<channel id="fanMode" typeId="airPurifierModeType"/>
|
||||
<channel id="manualFanSpeed" typeId="airPurifierFanLevelType"/>
|
||||
<channel id="errorCode" typeId="deviceErrorCodeType"/>
|
||||
<channel id="airQuality" typeId="deviceAirQualityBasicType"/>
|
||||
<channel id="airQualityPM25" typeId="airQualityPM25"/>
|
||||
<channel id="configDisplayForever" typeId="deviceAFConfigDisplayForever"/>
|
||||
<channel id="configAutoMode" typeId="deviceAFConfigAutoPrefType"/>
|
||||
<channel id="timerExpiry" typeId="deviceAFTimerExpiry"/>
|
||||
<channel id="configAutoRoomSize" typeId="deviceAFConfigAutoPrefRoomSizeType"/>
|
||||
<channel id="schedulesCount" typeId="deviceAFConfigAutoScheduleCountType"/>
|
||||
<channel id="nightLightMode" typeId="deviceAFNightLight"/>
|
||||
</channels>
|
||||
|
||||
<properties>
|
||||
<property name="Device Name"/>
|
||||
<property name="Device Type"/>
|
||||
<property name="MAC Id"/>
|
||||
</properties>
|
||||
<representation-property>macId</representation-property>
|
||||
|
||||
<config-description>
|
||||
<parameter name="macId" type="text">
|
||||
<label>MAC Id</label>
|
||||
<description>The MAC Id of the device as reported by the API.</description>
|
||||
</parameter>
|
||||
<parameter name="deviceName" type="text">
|
||||
<label>Device Name</label>
|
||||
<description>The name allocated to the device by the app. (Must be unique if used)</description>
|
||||
</parameter>
|
||||
</config-description>
|
||||
|
||||
</thing-type>
|
||||
|
||||
<thing-type id="airHumidifier">
|
||||
<supported-bridge-type-refs>
|
||||
<bridge-type-ref id="bridge"/>
|
||||
</supported-bridge-type-refs>
|
||||
|
||||
<label>Air Humidifier via VeSync</label>
|
||||
<description>A Air Humidifier uplinking to VeSync</description>
|
||||
|
||||
<channels>
|
||||
<channel id="enabled" typeId="deviceEnabledType"/>
|
||||
<channel id="display" typeId="deviceDisplayEnabledType"/>
|
||||
<channel id="waterLacking" typeId="deviceWaterLackingType"/>
|
||||
<channel id="humidityHigh" typeId="deviceHighHumidityType"/>
|
||||
<channel id="waterTankLifted" typeId="deviceWaterTankLiftedType"/>
|
||||
<channel id="stopAtHumiditySetpoint" typeId="deviceAutomaticStopReachTargetType"/>
|
||||
<channel id="humidity" typeId="deviceHumidityType"/>
|
||||
<channel id="mistLevel" typeId="deviceMistLevelType"/>
|
||||
<channel id="humidifierMode" typeId="airHumidifierModeType"/>
|
||||
<channel id="nightLightMode" typeId="deviceAFNightLight"/>
|
||||
<channel id="humiditySetpoint" typeId="deviceConfigTargetHumidity"/>
|
||||
<channel id="warmEnabled" typeId="warmModeEnabled"/>
|
||||
<channel id="warmLevel" typeId="warmLevel"/>
|
||||
</channels>
|
||||
|
||||
<properties>
|
||||
<property name="Device Name"/>
|
||||
<property name="Device Type"/>
|
||||
<property name="MAC Id"/>
|
||||
</properties>
|
||||
<representation-property>macId</representation-property>
|
||||
|
||||
<config-description>
|
||||
<parameter name="macId" type="text">
|
||||
<label>MAC Id</label>
|
||||
<description>The MAC Id of the device as reported by the API.</description>
|
||||
</parameter>
|
||||
<parameter name="deviceName" type="text">
|
||||
<label>Device Name</label>
|
||||
<description>The name allocated to the device by the app. (Must be unique if used)</description>
|
||||
</parameter>
|
||||
</config-description>
|
||||
|
||||
</thing-type>
|
||||
|
||||
<channel-type id="deviceEnabledType">
|
||||
<item-type>Switch</item-type>
|
||||
<label>Switched On</label>
|
||||
<description>Indicator if the device is switched on</description>
|
||||
<state readOnly="false"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="deviceChildLockEnabledType">
|
||||
<item-type>Switch</item-type>
|
||||
<label>Display Lock</label>
|
||||
<description>Indicator if the devices child lock is enabled (Display Lock)</description>
|
||||
<state readOnly="false"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="deviceDisplayEnabledType">
|
||||
<item-type>Switch</item-type>
|
||||
<label>Display</label>
|
||||
<description>Indicator if the devices display is enabled</description>
|
||||
<state readOnly="false"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="deviceFilterLifePercentageType">
|
||||
<item-type>Number:Dimensionless</item-type>
|
||||
<label>Filter Life Remaining</label>
|
||||
<description>Indicator of the remaining filter life</description>
|
||||
<state readOnly="true" pattern="%.0f %%"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="airPurifierModeType">
|
||||
<item-type>String</item-type>
|
||||
<label>Operation Mode</label>
|
||||
<description>The operating mode the air purifier is currently set to</description>
|
||||
<state readOnly="false">
|
||||
<options>
|
||||
<option value="auto">Auto</option>
|
||||
<option value="manual">Manual Fan Control</option>
|
||||
<option value="sleep">Sleeping Auto</option>
|
||||
</options>
|
||||
</state>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="deviceAFNightLight">
|
||||
<item-type>String</item-type>
|
||||
<label>Night Light</label>
|
||||
<description>The operating mode of the night light functionality</description>
|
||||
<state readOnly="false">
|
||||
<options>
|
||||
<option value="on">On</option>
|
||||
<option value="dim">Dimmed</option>
|
||||
<option value="off">Off</option>
|
||||
</options>
|
||||
</state>
|
||||
</channel-type>
|
||||
|
||||
|
||||
<channel-type id="airPurifierFanLevelType">
|
||||
<item-type>Number:Dimensionless</item-type>
|
||||
<label>Fan Speed</label>
|
||||
<description>Indicator of the current fan speed</description>
|
||||
<state readOnly="true" pattern="%.0f"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="deviceErrorCodeType">
|
||||
<item-type>Number:Dimensionless</item-type>
|
||||
<label>Device Error Code</label>
|
||||
<description>Indicator of the current error code of the device</description>
|
||||
<state readOnly="true" pattern="%.0f"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="deviceAirQualityBasicType">
|
||||
<item-type>Number:Dimensionless</item-type>
|
||||
<label>Air Quality</label>
|
||||
<description>System representation of air quality</description>
|
||||
<state readOnly="true" pattern="%.0f"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="airQualityPM25">
|
||||
<item-type>Number:Density</item-type>
|
||||
<label>Air Quality PPM2.5</label>
|
||||
<description>Indicator of current air quality</description>
|
||||
<state readOnly="true" pattern="%.0f %unit%"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="deviceAFConfigDisplayForever">
|
||||
<item-type>Switch</item-type>
|
||||
<label>Config: Display Forever</label>
|
||||
<description>Configuration: If the devices display is enabled forever</description>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="deviceAFConfigAutoPrefType">
|
||||
<item-type>String</item-type>
|
||||
<label>Config: Auto Mode</label>
|
||||
<description>The operating mode when the air purifier is set to auto</description>
|
||||
<state readOnly="true">
|
||||
<options>
|
||||
<option value="default">Auto (Air Quality)</option>
|
||||
<option value="quiet">Quiet (No High Speed)</option>
|
||||
<option value="efficient">Auto (Room Size)</option>
|
||||
</options>
|
||||
</state>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="deviceAFTimerExpiry">
|
||||
<item-type>DateTime</item-type>
|
||||
<label>Auto Off Expiry</label>
|
||||
<description>The time when the auto off timer will be reached</description>
|
||||
<state readOnly="true" pattern="%1$tF %1$tR"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="deviceAFConfigAutoPrefRoomSizeType">
|
||||
<item-type>Number:Dimensionless</item-type>
|
||||
<label>Config: Room size</label>
|
||||
<description>Room size (foot sq) for efficient auto mode</description>
|
||||
<state readOnly="true" pattern="%.0f sq ft"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="deviceAFConfigAutoScheduleCountType">
|
||||
<item-type>Number:Dimensionless</item-type>
|
||||
<label>Config: Schedules Count</label>
|
||||
<description>The current number of schedules configured</description>
|
||||
<state readOnly="true" pattern="%.0f"/>
|
||||
</channel-type>
|
||||
|
||||
|
||||
<channel-type id="deviceWaterLackingType">
|
||||
<item-type>Switch</item-type>
|
||||
<label>Water Low/Empty</label>
|
||||
<description>Indicator if the devices water is low or empty</description>
|
||||
<state readOnly="true"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="deviceHighHumidityType">
|
||||
<item-type>Switch</item-type>
|
||||
<label>High Humidity</label>
|
||||
<description>Indicator if the device is measuring high humidity</description>
|
||||
<state readOnly="true"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="deviceWaterTankLiftedType">
|
||||
<item-type>Switch</item-type>
|
||||
<label>Water Tank Removed</label>
|
||||
<description>Indicator if the device is reporting the water tank as removed</description>
|
||||
<state readOnly="true"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="deviceAutomaticStopReachTargetType">
|
||||
<item-type>Switch</item-type>
|
||||
<label>Stop @ Set Point</label>
|
||||
<description>Indicator if the device is set to stop when the humidity set point has been reached</description>
|
||||
<state readOnly="false"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="deviceHumidityType">
|
||||
<item-type>Number:Dimensionless</item-type>
|
||||
<label>Humidity Level</label>
|
||||
<description>System representation of humidity</description>
|
||||
<state readOnly="true" pattern="%.0f %unit%"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="deviceConfigTargetHumidity">
|
||||
<item-type>Number:Dimensionless</item-type>
|
||||
<label>Humidity Set Point</label>
|
||||
<description>Humidity Set Point</description>
|
||||
<state readOnly="false" pattern="%.0f %unit%"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="deviceMistLevelType">
|
||||
<item-type>Number:Dimensionless</item-type>
|
||||
<label>Mist Level</label>
|
||||
<description>System representation of mist level</description>
|
||||
<state readOnly="false" pattern="%.0f"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="airHumidifierModeType">
|
||||
<item-type>String</item-type>
|
||||
<label>Operation Mode</label>
|
||||
<description>The operating mode the air humidifier is currently set to</description>
|
||||
<state readOnly="false">
|
||||
<options>
|
||||
<option value="auto">Auto</option>
|
||||
<option value="manual">Manual Control</option>
|
||||
<option value="sleep">Sleeping Auto</option>
|
||||
</options>
|
||||
</state>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="warmModeEnabled">
|
||||
<item-type>Switch</item-type>
|
||||
<label>Warm Mode Enabled</label>
|
||||
<description>Indicator if the device is set to warm mist</description>
|
||||
<state readOnly="false"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="warmLevel">
|
||||
<item-type>Number:Dimensionless</item-type>
|
||||
<label>Warm Level</label>
|
||||
<description>Warm Level</description>
|
||||
<state readOnly="false" pattern="%.0f"/>
|
||||
</channel-type>
|
||||
|
||||
|
||||
</thing:thing-descriptions>
|
Loading…
Reference in New Issue