Updated external content (Jenkins build 726)

pull/1839/head
openHAB Build Server 2022-01-10 05:15:53 +00:00
parent 21916ac37a
commit b36a6a295c
8 changed files with 555 additions and 31 deletions

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 213 KiB

View File

@ -0,0 +1,106 @@
---
id: electroluxair
label: ElectroluxAir
title: ElectroluxAir - Bindings
type: binding
description: "This is an openHAB binding for the Pure A9 Air Purifier, by Electrolux."
since: 3x
install: manual
---
<!-- Attention authors: Do not edit directly. Please add your changes to the appropriate source repository -->
{% include base.html %}
# ElectroluxAir Binding
This is an openHAB binding for the Pure A9 Air Purifier, by Electrolux.
This binding uses the Electrolux Delta REST API.
![Electrolux Pure A9](doc/electrolux_pure_a9.png)
## Supported Things
This binding supports the following thing types:
- api: Bridge - Implements the API that is used to communicate with the Air Purifier
- electroluxpurea9: The Pure A9 Air Purifier
## Discovery
After the configuration of the Bridge, your Electrolux Pure A9 device will be automatically discovered and placed as a thing in the inbox.
### Configuration Options
Only the bridge require manual configuration. The Electrolux Pure A9 thing can be added by hand, or you can let the discovery mechanism automatically find it.
#### Bridge
| Parameter | Description | Type | Default | Required |
|-----------|--------------------------------------------------------------|--------|----------|----------|
| username | The username used to connect to the Electrolux Wellbeing app | String | NA | yes |
| password | The password used to connect to the Electrolux Wellbeing app | String | NA | yes |
| refresh | Specifies the refresh interval in second | Number | 600 | yes |
#### Electrolux Pure A9
| Parameter | Description | Type | Default | Required |
|-----------|-------------------------------------------------------------------------|--------|----------|----------|
| deviceId | Product ID of your Electrolux Pure A9 found in Electrolux Wellbeing app | Number | NA | yes |
## Channels
### Electrolux Pure A9
The following channels are supported:
| Channel Type ID | Item Type | Description |
|-----------------------------|-----------------------|------------------------------------------------------------------------------|
| temperature | Number:Temperature | This channel reports the current temperature. |
| humidity | Number:Dimensionless | This channel reports the current humidity in percentage. |
| tvoc | Number:Density | This channel reports the total Volatile Organic Compounds in microgram/m3. |
| pm1 | Number:Dimensionless | This channel reports the Particulate Matter 1 in ppb. |
| pm2_5 | Number:Dimensionless | This channel reports the Particulate Matter 2.5 in ppb. |
| pm10 | Number:Dimensionless | This channel reports the Particulate Matter 10 in ppb. |
| co2 | Number:Dimensionless | This channel reports the CO2 level in ppm. |
| fanSpeed | Number | This channel sets and reports the current fan speed (1-9). |
| filterLife | Number:Dimensionless | This channel reports the remaining filter life in %. |
| ionizer | Switch | This channel sets and reports the status of the ionizer function (On/Off). |
| doorOpen | Contact | This channel reports the status of door (Opened/Closed). |
| workMode | String | This channel sets and reports the current work mode (Auto, Manual, PowerOff.)|
## Full Example
### Things-file
````
// Bridge configuration
Bridge electroluxair:api:myAPI "Electrolux Delta API" [username="user@password.com", password="12345", refresh="300"] {
Thing electroluxpurea9 myElectroluxPureA9 "Electrolux Pure A9" [ deviceId="123456789" ]
}
````
## Items-file
````
// CO2
Number ElectroluxAirCO2 "Electrolux Air CO2 [%d ppm]" {channel="electroluxair:electroluxpurea9:myAPI:MyElectroluxPureA9:co2"}
// Temperature
Number:Temperature ElectroluxAirTemperature "Electrolux Air Temperature" {channel="electroluxair:electroluxpurea9:myAPI:myElectroluxPureA9:temperature"}
// Door status
Contact ElectroluxAirDoor "Electrolux Air Door Status" {channel="electroluxair:electroluxpurea9:myAPI:myElectroluxPureA9:doorOpen"}
// Work mode
String ElectroluxAirWorkModeSetting "ElectroluxAir Work Mode Setting" {channel="electroluxair:electroluxpurea9:myAPI:myElectroluxPureA9:workMode"}
// Fan speed
Number ElectroluxAirFanSpeed "Electrolux Air Fan Speed Setting" {channel="electroluxair:electroluxpurea9:myAPI:myElectroluxPureA9:fanSpeed"}
````

View File

@ -42,10 +42,11 @@ Configuration of the binding is not needed.
Only sensor discovery is supported, the thing for the USB receiver / LaCrosseGateway has to be created manually. Pay attention to use the correct serial port, as otherwise the binding may interfere with other bindings accessing serial ports.
Afterwards, discovery reads from the USB receiver / LaCrosseGateways to find out which sensors are currently connected.
It then creates a thing for every unknown sensor and puts it in the Inbox.
Afterwards, sensor discovery can be triggered using the `Scan` button in `Things` &rarr; `+` &rarr; `JeeLink Binding`.
Discovery only detects sensors that actually send a value during discovery.
These will show up in your inbox.
Discovery only creates things for sensors that actually send a value during discovery. LaCrosse temperature sensors send values every few seconds, so that they are normally caught by the discovery. In rare cases, a second discovery run is needed.
LaCrosse temperature sensors send values every few seconds, so that they are normally caught by the discovery. In rare cases, a second discovery run is needed.
PCA301 sockets are polled every 120 seconds by default. This results in sockets not being found by the discovery. In order to make sure the socket is discovered, press the button on the socket during discovery (and make sure you have paired the socket to the USB stick / LaCrosseGateway before by pressing the button for 3 seconds while the receiver is powered).

View File

@ -0,0 +1,78 @@
---
id: sonnen
label: Sonnen
title: Sonnen - Bindings
type: binding
description: "The binding for sonnen communicates with a sonnen battery."
since: 3x
install: manual
---
<!-- Attention authors: Do not edit directly. Please add your changes to the appropriate source repository -->
{% include base.html %}
# Sonnen Binding
The binding for sonnen communicates with a sonnen battery.
More information about the sonnen battery can be found [here](https://sonnen.de/).
## Supported Things
| Thing Type | Description |
|---------------|--------------------------------|
| sonnenbattery | Monitoring of a sonnen battery |
## Thing Configuration
Only the parameter `hostIP` is required; this is the IP address of the sonnen battery in your local network.
## Channels
The following channels are yet supported:
| Channel | Type | Access| Description|
|---------|-------|-------|------------|
|batteryChargingState|Switch|read|Indicates if the Battery is charging at that moment|
|batteryCharging|Number:Energy|read|Indicates the actual current charging the Battery. Otherwise 0.|
|batteryDischargingState|Switch|read|Indicates if the Battery is discharging at that moment|
|batteryDischarging|Number:Energy|read|Indicates the actual current discharging the Battery. Otherwise 0.|
|batteryFeedIn|Number:Energy|read|Indicates the actual charging current of the Battery in watt|
|batteryDischarging|Number:Energy|read|Indicates the actual current discharging the Battery in watt|
|consumption|Number:Energy|read|Indicates the actual consumption of the consumer in watt|
|gridFeedIn|Number:Energy|read|Indicates the actual current feeding to the Grid in watt.0 if nothing is feeded|
|gridConsumption|Number:Energy|read|Indicates the actual current consumption from the Grid in watt.0 if nothing is received|
|solarProduction|Number:Energy|read|Indicates the actual production of the Solar system in watt|
|batteryLevel|Number|read|Indicates the actual Battery Level in % from 0 - 100|
|flowConsumptionBatteryState|Switch|read|Indicates if there is a current flow from Battery towards Consumption|
|flowConsumptionGridState|Switch|read|Indicates if there is a current flow from Grid towards Consumption|
|flowConsumptionProductionState|Switch|read|Indicates if there is a current flow from Solar Production towards Consumption|
|flowGridBatteryState|Switch|read|Indicates if there is a current flow from Grid towards Battery|
|flowProductionBatteryState|Switch|read|Indicates if there is a current flow from Production towards Battery|
|flowProductionGridState|Switch|read|Indicates if there is a current flow from Production towards Grid|
## Full Example
example.things:
```
Thing sonnen:sonnenbattery:myBattery "Sonnen Battery" [ hostIP="192.168.0.10"]
```
example.items:
```
Number:Energy Consumption { channel="sonnen:sonnenbattery:myBattery:consumption" }
Number:Energy GridFeeding { channel="sonnen:sonnenbattery:myBattery:gridFeedIn" }
Number BatteryLevel { channel="sonnen:sonnenbattery:myBattery:batteryLevel" }
Switch FlowConsumptionBattery { channel="sonnen:sonnenbattery:myBattery:flowConsumptionBattery" }
```
## Tested Hardware
The binding was successfully tested with the following sonnen battery:
- sonnnen eco 8.0 SW Version: 1.6.10.1221979

View File

@ -255,7 +255,7 @@ Switch Mute "Mute" (Stereo) {alexa="MuteState"}
Switch Power "Power" (Stereo) {alexa="PowerState"}
String Input "Input" (Stereo) {alexa="Input" [supportedInputs="HDMI1,TV"]}
String Channel "Channel" (Stereo) {alexa="Channel"}
String KeyCode "Key Code" (Stereo) {alexa="ChannelKey" [CHANNEL_UP="CHUP", CHANNEL_DOWN="CHDOWN"]}
String KeyCode "Key Code" (Stereo) {alexa="ChannelStep" [CHANNEL_UP="CHUP", CHANNEL_DOWN="CHDOWN"]}
Player Playback "Playback" (Stereo) {alexa="Playback"}
Switch Stop "Stop" (Stereo) {alexa="PlaybackStop"}
Number Bass "Bass" (Stereo) {alexa="EqualizerBass" [range="-10:10"]}
@ -502,7 +502,7 @@ Device Types | Supported Attributes | Description
`Automobile` | [`BatteryLevel`](#batterylevel), [`FanSpeed`](#fanspeed), [`LockState`](#lockstate), [`PowerState`](#powerstate), [`TargetTemperature`](#targettemperature), [`CurrentTemperature`](#currenttemperature) | A motor vehicle (automobile, car).
`AutomobileAccessory` | [`BatteryLevel`](#batterylevel), [`CameraStream`](#camerastream), [`FanSpeed`](#fanspeed), [`PowerState`](#powerstate) | A smart device in an automobile, such as a dash camera.
`Blind`, `Curtain`, `Shade` | _[`OpenState`](#openstate)_, _[`PositionState`](#positionstate)_, [`TiltAngle`](#tiltAngle), [`TargetOpenState`](#targetopenstate), [`CurrentOpenState`](#currentopenstate) | A window covering on the inside of a structure.
`BluetoothSpeaker` | _[`PowerState`](#powerstate)_, _[`VolumeLevel`](#volumelevel)_, [`MuteState`](#mutestate), [`EqualizerBass`](#equalizerbass), [`EqualizerMidrange`](#equalizermidrange), [`EqualizerTreble`](#equalizertreble), [`EqualizerMode`](#equalizermode), [`Channel`](#channel), [`ChannelKey`](#channelkey), [`Input`](#input), [`Playback`](#playback), [`PlaybackStop`](#playbackstop), [`BatteryLevel`](#batterylevel) | A speaker that connects to an audio source over Bluetooth.
`BluetoothSpeaker` | _[`PowerState`](#powerstate)_, _[`VolumeLevel`](#volumelevel)_, [`VolumeStep`](#volumestep), [`MuteState`](#mutestate), [`MuteStep`](#mutestep), [`EqualizerBass`](#equalizerbass), [`EqualizerMidrange`](#equalizermidrange), [`EqualizerTreble`](#equalizertreble), [`EqualizerMode`](#equalizermode), [`Channel`](#channel), [`ChannelStep`](#channelstep), [`Input`](#input), [`Playback`](#playback), [`PlaybackStop`](#playbackstop), [`BatteryLevel`](#batterylevel) | A speaker that connects to an audio source over Bluetooth.
`Camera` | _[`PowerState`](#powerstate)_, _[`CameraStream`](#camerastream)_, [`BatteryLevel`](#batterylevel) | A security device with video or photo functionality.
`ChristmasTree` | Same as `Light` | A religious holiday decoration that often contains lights.
`CoffeeMaker` | _[`PowerState`](#powerstate)_ | A device that makes coffee.
@ -535,11 +535,11 @@ Device Types | Supported Attributes | Description
`SecuritySystem` | Same as `SecurityPanel` | A security system.
`Shutter`, `Awning` | Same as `Blind` | A window covering on the outside of a structure.
`SlowCooker` | _[`PowerState`](#powerstate)_ | An electric cooking device that sits on a countertop, cooks at low temperatures, and is often shaped like a cooking pot.
`Speaker` | _[`PowerState`](#powerstate)_, _[`VolumeLevel`](#volumelevel)_, [`MuteState`](#mutestate), [`EqualizerBass`](#equalizerbass), [`EqualizerMidrange`](#equalizermidrange), [`EqualizerTreble`](#equalizertreble), [`EqualizerMode`](#equalizermode), [`Channel`](#channel), [`ChannelKey`](#channelkey), [`Input`](#input), [`Playback`](#playback), [`PlaybackStop`](#playbackstop) | A speaker or speaker system.
`StreamingDevice` | _[`PowerState`](#powerstate)_, _[`Playback`](#playback)_, [`PlaybackStop`](#playbackstop), [`Channel`](#channel), [`ChannelKey`](#channelkey), [`Input`](#input), [`VolumeLevel`](#volumelevel), [`MuteState`](#mutestate), [`EqualizerBass`](#equalizerbass), [`EqualizerMidrange`](#equalizermidrange), [`EqualizerTreble`](#equalizertreble), [`EqualizerMode`](#equalizermode) | A streaming device such as Apple TV, Chromecast, or Roku.
`Speaker` | _[`PowerState`](#powerstate)_, _[`VolumeLevel`](#volumelevel)_, [`VolumeStep`](#volumestep), [`MuteState`](#mutestate), [`MuteStep`](#mutestep), [`EqualizerBass`](#equalizerbass), [`EqualizerMidrange`](#equalizermidrange), [`EqualizerTreble`](#equalizertreble), [`EqualizerMode`](#equalizermode), [`Channel`](#channel), [`ChannelStep`](#channelstep), [`Input`](#input), [`Playback`](#playback), [`PlaybackStop`](#playbackstop) | A speaker or speaker system.
`StreamingDevice` | _[`PowerState`](#powerstate)_, _[`Playback`](#playback)_, [`PlaybackStop`](#playbackstop), [`Channel`](#channel), [`ChannelStep`](#channelstep), [`Input`](#input), [`VolumeLevel`](#volumelevel), [`VolumeStep`](#volumestep), [`MuteState`](#mutestate), [`MuteStep`](#mutestep), [`EqualizerBass`](#equalizerbass), [`EqualizerMidrange`](#equalizermidrange), [`EqualizerTreble`](#equalizertreble), [`EqualizerMode`](#equalizermode) | A streaming device such as Apple TV, Chromecast, or Roku.
`Switch` | _[`PowerState`](#powerstate)_, _[`PowerLevel`](#powerlevel)_, _[`Percentage`](#percentage)_ | A switch wired directly to the electrical system. A switch can control a variety of devices. For lighting devices, use `Light` instead.
`Tablet` | _[`PowerState`](#powerstate)_, [`BatteryLevel`](#batterylevel), [`NetworkAccess`](#networkaccess) | A tablet computer.
`Television` | _[`PowerState`](#powerstate)_, _[`Channel`](#channel)_, [`ChannelKey`](#channelkey), [`Input`](#input), [`VolumeLevel`](#volumelevel), [`MuteState`](#mutestate), [`EqualizerBass`](#equalizerbass), [`EqualizerMidrange`](#equalizermidrange), [`EqualizerTreble`](#equalizertreble), [`EqualizerMode`](#equalizermode), [`Playback`](#playback), [`PlaybackStop`](#playbackstop) | A television.
`Television` | _[`PowerState`](#powerstate)_, _[`Channel`](#channel)_, [`ChannelStep`](#channelstep), [`Input`](#input), [`VolumeLevel`](#volumelevel), [`VolumeStep`](#volumestep), [`MuteState`](#mutestate), [`MuteStep`](#mutestep), [`EqualizerBass`](#equalizerbass), [`EqualizerMidrange`](#equalizermidrange), [`EqualizerTreble`](#equalizertreble), [`EqualizerMode`](#equalizermode), [`Playback`](#playback), [`PlaybackStop`](#playbackstop) | A television.
`TemperatureSensor` | _[`CurrentTemperature`](#currenttemperature)_, [`BatteryLevel`](#batterylevel) | An endpoint that reports temperature, but does not control it. The temperature data of the endpoint doesn't appear in the Alexa app. If your endpoint also controls temperature, use `Thermostat` instead.
`Thermostat` | _[`HeatingCoolingMode`](#heatingcoolingmode)_, [`TargetTemperature`](#targettemperature), [`CoolingSetpoint`](#coolingsetpoint), [`HeatingSetpoint`](#heatingsetpoint), [`EcoCoolingSetpoint`](#ecocoolingsetpoint), [`EcoHeatingSetpoint`](#ecoheatingsetpoint), [`ThermostatHold`](#thermostathold), [`ThermostatFan`](#thermostatfan), [`CurrentTemperature`](#currenttemperature), [`CurrentHumidity`](#currenthumidity), [`BatteryLevel`](#batterylevel) | An endpoint that controls temperature, stand-alone air conditioners, or heaters with direct temperature control. If your endpoint senses temperature but does not control it, use `TemperatureSensor` instead.
`VacuumCleaner` | _[`PowerState`](#powerstate)_, _[`VacuumMode`](#vacuummode)_, [`FanSpeed`](#fanspeed), [`BatteryLevel`](#batterylevel) | A vacuum cleaner.
@ -735,7 +735,7 @@ If paired with [`PositionState`](#positionstate), the primary controls (open/clo
#### `Channel`
Items that represent a channel. It is important to note only well-known channel names can be used as these are validated against a database on the Alexa side when requested. Unfortunately, Amazon doesn't provide a list of supported channel names. For String, only channel requests by name are supported. For adjustment requests, by default, the increment is linear within the `range` parameter for Number, or the `channelMappings` parameter for String, based on the current state. For channel up/down keys support instead on these requests, add [`ChannelKey`](#channelkey) to your entertainment group endpoint.
Items that represent a channel. It is important to note only well-known channel names can be used as these are validated against a database on the Alexa side when requested. Unfortunately, Amazon doesn't provide a list of supported channel names. For String, only channel requests by name are supported. For adjustment requests, by default, the increment is linear within the `range` parameter for Number, or the `channelMappings` parameter for String, based on the current state. For adjustment in incremental discrete steps, add [`ChannelStep`](#channelstep) to your entertainment group endpoint.
* Supported item types:
* Number
@ -751,20 +751,20 @@ Items that represent a channel. It is important to note only well-known channel
* Utterance examples:
* *Alexa, change the channel to `<channel number>` on the `<device name>`.* (Number only)
* *Alexa, change the channel to `<channel name>` on the `<device name>`.*
* *Alexa, next channel on the `<device name>`.* (if [`ChannelKey`](#channelkey) not defined)
* *Alexa, previous channel on the `<device name>`.* (if [`ChannelKey`](#channelkey) not defined)
* *Alexa, channel up on the `<device name>`.* (if [`ChannelKey`](#channelkey) not defined)
* *Alexa, channel down on the `<device name>`.* (if [`ChannelKey`](#channelkey) not defined)
* *Alexa, next channel on the `<device name>`.* (if [`ChannelStep`](#channelstep) not defined)
* *Alexa, previous channel on the `<device name>`.* (if [`ChannelStep`](#channelstep) not defined)
* *Alexa, channel up on the `<device name>`.* (if [`ChannelStep`](#channelstep) not defined)
* *Alexa, channel down on the `<device name>`.* (if [`ChannelStep`](#channelstep) not defined)
#### `ChannelKey`
#### `ChannelStep`
Items that represent channel up/down keys that change a channel incrementally in discrete steps. For change requests by number or by name support, add [`Channel`](#channel) to your entertainment group endpoint.
Items that represent a channel adjusted in incremental discrete steps. For change requests by number or by name support, add [`Channel`](#channel) to your entertainment group endpoint.
* Supported item types:
* String
* Supported metadata parameters:
* CHANNEL_UP=`<keyCode>`
* CHANNEL_DOWN=`<keyCode>`
* CHANNEL_UP=`<command>`
* CHANNEL_DOWN=`<command>`
* Utterance examples:
* *Alexa, next channel on the `<device name>`.*
* *Alexa, previous channel on the `<device name>`.*
@ -797,12 +797,11 @@ Items that represent an input source (e.g. "HDMI 1" or "TUNER" on a stereo).
* *Alexa, what's the `<device name>` input?*
<a name="speaker-volume"></a>
<a name="stepspeaker-volume"></a>
<a name="speakervolume"></a>
#### `VolumeLevel`
Items that represent a volume level.
Items that represent a volume level as percentage. For adjustment in incremental discrete steps, use [`VolumeStep`](#volumestep) instead.
* Supported item types:
* Dimmer
@ -810,23 +809,36 @@ Items that represent a volume level.
* Supported metadata parameters:
* increment=`<number>`
* defaults to 10 (standard value provided by Alexa)
* stepSpeaker=`<boolean>` (Number only)
* set to true for volume controlled in incremental steps only and its state cannot be tracked by openHAB.
* defaults to false
* Utterance examples:
* *Alexa, set the volume of `<device name>` to 50.* (if not step speaker)
* *Alexa, set the volume of `<device name>` to 50.*
* *Alexa, turn the volume up on `<device name>`.*
* *Alexa, turn the volume down on `<device name>` by 20.*
* *Alexa, increase the volume on the `<device name>`.*
* *Alexa, lower the volume on the `<device name>` by 20.*
<a name="stepspeaker-volume"></a>
#### `VolumeStep`
Items that represent a volume level adjusted in incremental discrete steps. The skill limits adjustment to a maximum of 10 steps per request.
* Supported item types:
* String
* Supported metadata parameters:
* VOLUME_UP=`<command>`
* VOLUME_DOWN=`<command>`
* Utterance examples:
* *Alexa, increase the volume on the `<device name>`.*
* *Alexa, lower the volume on the `<device name>` by 5.*
* *Alexa, volume up on the `<device name>`.*
* *Alexa, volume down 5 on the `<device name>`.*
<a name="speaker-muted"></a>
<a name="stepspeaker-muted"></a>
<a name="speakermute"></a>
#### `MuteState`
Items that represent a muted state (ON muted, OFF unmuted).
Items that represent a muted state (ON muted, OFF unmuted). For adjustment in discrete steps, use [`MuteStep`](#mutestep) instead.
* Supported item types:
* Switch
@ -834,9 +846,20 @@ Items that represent a muted state (ON muted, OFF unmuted).
* inverted=`<boolean>`
* set to true to invert state
* defaults to false
* stepSpeaker=`<boolean>`
* set to true if current muted state cannot be tracked by openHAB.
* defaults to false
* Utterance examples:
* *Alexa, mute `<device name>`.*
* *Alexa, unmute `<device name>`.*
<a name="stepspeaker-muted"></a>
#### `MuteStep`
Items that represent a muted state adjusted in discrete steps.
* Supported item types:
* String
* Supported metadata parameters:
* MUTE=`<command>`
* Utterance examples:
* *Alexa, mute `<device name>`.*
* *Alexa, unmute `<device name>`.*
@ -1903,7 +1926,7 @@ Alexa Interfaces | Supported Attributes | Supported Languages
-----------------|------------------------|--------------------
BrightnessController | [`Brightness`](#brightness) | `de-DE`, `en-AU`, `en-CA`, `en-GB`, `en-IN`, `en-US`, `es-ES`, `fr-FR`, `hi-IN`, `it-IT`, `ja-JP`, `pt-BR`
CameraStreamController | [`CameraStream`](#camerastream) | `de-DE`, `en-AU`, `en-CA`, `en-GB`, `en-IN`, `en-US`, `es-ES`, `es-MX`, `fr-FR`, `hi-IN`, `it-IT`, `ja-JP`, `pt-BR`
ChannelController | [`Channel`](#channel) | `de-DE`, `en-AU`, `en-CA`, `en-GB`, `en-IN`, `en-US`, `es-ES`, `es-MX`, `fr-FR`, `hi-IN`, `it-IT`, `ja-JP`, `pt-BR`
ChannelController | [`Channel`](#channel), [`ChannelStep`](#channelstep) | `de-DE`, `en-AU`, `en-CA`, `en-GB`, `en-IN`, `en-US`, `es-ES`, `es-MX`, `fr-FR`, `hi-IN`, `it-IT`, `ja-JP`, `pt-BR`
ColorController | [`Color`](#color) | `de-DE`, `en-AU`, `en-CA`, `en-GB`, `en-IN`, `en-US`, `es-ES`, `fr-FR`, `hi-IN`, `it-IT`, `ja-JP`, `pt-BR`
ColorTemperatureController | [`ColorTemperature`](#colortemperature) | `de-DE`, `en-AU`, `en-CA`, `en-GB`, `en-IN`, `en-US`, `es-ES`, `fr-FR`, `hi-IN`, `it-IT`, `ja-JP`, `pt-BR`
ContactSensor | [`ContactDetectionState`](#contactdetectionstate) | `de-DE`, `en-AU`, `en-CA`, `en-IN`, `en-US`, `es-ES`, `it-IT`, `ja-JP`
@ -1921,7 +1944,7 @@ Safety | [`ObstacleAlert`](#obstaclealert) | `en-US`
SceneController | [`Scene`](#scene), [`Activity`](#activity) | `de-DE`, `en-AU`, `en-CA`, `en-GB`, `en-IN`, `en-US`, `es-ES`, `fr-FR`, `it-IT`, `ja-JP`
SecurityPanelController | [`ArmState`](#armstate), [`BurglaryAlarm`](#burglaryalarm), [`CarbonMonoxideAlarm`](#carbonmonoxidealarm), [`FireAlarm`](#firealarm), [`WaterAlarm`](#wateralarm) | `de-DE`, `en-AU`, `en-CA`, `en-GB`, `en-IN`, `en-US`, `es-ES`, `es-MX`, `es-US`, `fr-CA`, `fr-FR`, `it-IT`, `ja-JP`, `pt-BR`
Speaker | [`VolumeLevel`](#volumelevel), [`MuteState`](#mutestate) | `de-DE`, `en-AU`, `en-CA`, `en-GB`, `en-IN`, `en-US`, `es-ES`, `es-MX`, `it-IT`, `ja-JP`
StepSpeaker | [`VolumeLevel`](#volumelevel), [`MuteState`](#mutestate) | `de-DE`, `en-AU`, `en-CA`, `en-GB`, `en-IN`, `en-US`, `es-ES`, `it-IT`
StepSpeaker | [`VolumeStep`](#volumestep), [`MuteStep`](#mutestep) | `de-DE`, `en-AU`, `en-CA`, `en-GB`, `en-IN`, `en-US`, `es-ES`, `it-IT`
TemperatureSensor | [`CurrentTemperature`](#currenttemperature) | `de-DE`, `en-AU`, `en-CA`, `en-GB`, `en-IN`, `en-US`, `es-ES`, `fr-FR`, `it-IT`, `ja-JP`
ThermostatController | [`TargetTemperature`](#targettemperature), [`CoolingSetpoint`](#coolingsetpoint), [`HeatingSetpoint`](#heatingsetpoint), [`HeatingCoolingMode`](#heatingcoolingmode), [`ThermostatHold`](#thermostathold) | `de-DE`, `en-AU`, `en-CA`, `en-GB`, `en-IN`, `en-US`, `es-ES`, `fr-FR`, `it-IT`, `ja-JP`, `pt-BR`
ToggleController | [`ToggleState`](#togglestate), [`FanOscillate`](#fanoscillate), [`ThermostatFan`](#thermostatfan) | `de-DE`, `en-AU`, `en-CA`, `en-GB`, `en-IN`, `en-US`, `es-ES`, `es-MX`, `fr-CA`, `fr-FR`, `it-IT`, `ja-JP`

View File

@ -0,0 +1,185 @@
<?xml version="1.0" encoding="UTF-8"?>
<thing:thing-descriptions bindingId="electroluxair"
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="api">
<label>Electrolux Delta API</label>
<description>This bridge represents the web API connector.</description>
<properties>
<property name="vendor">Electrolux</property>
</properties>
<config-description>
<parameter name="username" type="text" required="true">
<label>Username</label>
<description>The username used to login to Electrolux Wellbeing app.</description>
</parameter>
<parameter name="password" type="text" required="true">
<label>Password</label>
<context>password</context>
<description>The password used to login to Electrolux Wellbeing app.</description>
</parameter>
<parameter name="refresh" type="integer" min="10" unit="s">
<label>Refresh Interval</label>
<description>Specifies the refresh interval in seconds.</description>
<default>300</default>
</parameter>
</config-description>
</bridge-type>
<thing-type id="electroluxpurea9">
<supported-bridge-type-refs>
<bridge-type-ref id="api"/>
</supported-bridge-type-refs>
<label>ElectroluxAir Pure A9</label>
<description>This thing represents the ElectroluxAir Pure A9.</description>
<channels>
<channel id="temperature" typeId="temperature"/>
<channel id="humidity" typeId="humidity"/>
<channel id="tvoc" typeId="tvoc"/>
<channel id="pm1" typeId="pm1"/>
<channel id="pm2_5" typeId="pm2_5"/>
<channel id="pm10" typeId="pm10"/>
<channel id="co2" typeId="co2"/>
<channel id="filterLife" typeId="filterLife"/>
<channel id="doorOpen" typeId="doorOpen"/>
<channel id="fanSpeed" typeId="fanSpeed"/>
<channel id="workMode" typeId="workMode"/>
<channel id="ionizer" typeId="ionizer"/>
<channel id="status" typeId="status"/>
</channels>
<properties>
<property name="vendor">Electrolux</property>
</properties>
<representation-property>deviceId</representation-property>
<config-description>
<parameter name="deviceId" type="text" required="true">
<label>Device Id</label>
<description>Unique Id.</description>
</parameter>
</config-description>
</thing-type>
<channel-type id="status">
<item-type>String</item-type>
<label>Current Status</label>
<description>Information on current status.</description>
<state readOnly="true" pattern="%s"/>
</channel-type>
<channel-type id="temperature">
<item-type>Number:Temperature</item-type>
<label>Temperature</label>
<description>Temperature</description>
<category>Temperature</category>
<state readOnly="true" pattern="%.1f %unit%">
</state>
</channel-type>
<channel-type id="humidity">
<item-type>Number:Dimensionless</item-type>
<label>Humidity</label>
<description>Humidity</description>
<category>Humidity</category>
<state readOnly="true" min="0" max="100" pattern="%d %unit%"/>
</channel-type>
<channel-type id="tvoc">
<item-type>Number:Density</item-type>
<label>TVOC</label>
<description>Total Volatile Organic Compounds</description>
<state readOnly="true" pattern="%d %unit%"/>
</channel-type>
<channel-type id="pm1">
<item-type>Number:Dimensionless</item-type>
<label>PM1</label>
<description>Particulate Matter 1 (0.001mm)</description>
<state readOnly="true" pattern="%d %unit%"/>
</channel-type>
<channel-type id="pm2_5">
<item-type>Number:Dimensionless</item-type>
<label>PM2.5</label>
<description>Particulate Matter 2.5 (0.0025mm)</description>
<state readOnly="true" pattern="%d %unit%"/>
</channel-type>
<channel-type id="pm10">
<item-type>Number:Dimensionless</item-type>
<label>PM10</label>
<description>Particulate Matter 10 (0.01mm)</description>
<state readOnly="true" pattern="%d %unit%"/>
</channel-type>
<channel-type id="co2">
<item-type>Number:Dimensionless</item-type>
<label>CO2</label>
<description>CarbonDioxide</description>
<state readOnly="true" pattern="%d %unit%"/>
</channel-type>
<channel-type id="filterLife">
<item-type>Number:Dimensionless</item-type>
<label>Filter Life</label>
<description>Filter Life</description>
<state readOnly="true" min="0" max="100" pattern="%d %unit%"/>
</channel-type>
<channel-type id="doorOpen">
<item-type>Contact</item-type>
<label>Door Status</label>
<description>Door Status Open/Closed</description>
<state readOnly="true"/>
</channel-type>
<channel-type id="fanSpeed">
<item-type>Number</item-type>
<label>Fan Speed Setting</label>
<description>Fan Speed Setting</description>
<state>
<options>
<option value="1">Level 1</option>
<option value="2">Level 2</option>
<option value="3">Level 3</option>
<option value="4">Level 4</option>
<option value="5">Level 5</option>
<option value="6">Level 6</option>
<option value="7">Level 7</option>
<option value="8">Level 8</option>
<option value="9">Level 9</option>
</options>
</state>
</channel-type>
<channel-type id="workMode">
<item-type>String</item-type>
<label>Work Mode Setting</label>
<description>Work Mode Setting</description>
<state>
<options>
<option value="PowerOff">Power Off</option>
<option value="Auto">Automatic</option>
<option value="Manual">Manual</option>
</options>
</state>
</channel-type>
<channel-type id="ionizer">
<item-type>Switch</item-type>
<label>Ionizer Status</label>
<description>Ionizer Status</description>
</channel-type>
</thing:thing-descriptions>

View File

@ -0,0 +1,131 @@
<?xml version="1.0" encoding="UTF-8"?>
<thing:thing-descriptions bindingId="sonnen"
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">
<!-- Sonnen battery Thing Type -->
<thing-type id="sonnenbattery">
<label>Sonnen Battery</label>
<description>Monitoring of a sonnen battery.</description>
<channels>
<channel id="batteryChargingState" typeId="batteryChargingState"/>
<channel id="batteryDischargingState" typeId="batteryDischargingState"/>
<channel id="batteryCharging" typeId="batteryCharging"/>
<channel id="batteryDischarging" typeId="batteryDischarging"/>
<channel id="consumption" typeId="consumption"/>
<channel id="gridFeedIn" typeId="gridFeedIn"/>
<channel id="gridConsumption" typeId="gridConsumption"/>
<channel id="solarProduction" typeId="solarProduction"/>
<channel id="batteryLevel" typeId="system.battery-level"/>
<channel id="flowConsumptionBatteryState" typeId="flowConsumptionBatteryState"/>
<channel id="flowConsumptionGridState" typeId="flowConsumptionGridState"/>
<channel id="flowConsumptionProductionState" typeId="flowConsumptionProductionState"/>
<channel id="flowGridBatteryState" typeId="flowGridBatteryState"/>
<channel id="flowProductionBatteryState" typeId="flowProductionBatteryState"/>
<channel id="flowProductionGridState" typeId="flowProductionGridState"/>
</channels>
<config-description>
<parameter name="hostIP" type="text" required="true">
<context>network-address</context>
<label>IP Address</label>
<description>Please add the IP Address of your sonnen battery.</description>
</parameter>
<parameter name="refreshInterval" type="integer" unit="s" min="0" max="1000">
<label>Refresh Interval</label>
<description>How often in seconds the sonnen battery should schedule a refresh after a channel is linked to an item.
Valid input is 0 - 1000.</description>
<advanced>true</advanced>
<default>30</default>
</parameter>
</config-description>
</thing-type>
<!-- sonnen Channel Type -->
<channel-type id="batteryChargingState">
<item-type>Switch</item-type>
<label>Battery Charging State</label>
<description>Indicates if the Battery is charging at that moment.</description>
<state readOnly="true"/>
</channel-type>
<channel-type id="batteryDischargingState">
<item-type>Switch</item-type>
<label>Battery Discharging State</label>
<description>Indicates if the Battery is discharging at that moment.</description>
<state readOnly="true"/>
</channel-type>
<channel-type id="batteryCharging">
<item-type>Number:Energy</item-type>
<label>Battery Charging</label>
<description>Indicates the actual current charging the Battery. Otherwise 0.</description>
<state readOnly="true" pattern="%.0f %unit%"/>
</channel-type>
<channel-type id="batteryDischarging">
<item-type>Number:Energy</item-type>
<label>Battery Discharging</label>
<description>Indicates the actual current discharging the Battery. Otherwise 0.</description>
<state readOnly="true" pattern="%.0f %unit%"/>
</channel-type>
<channel-type id="consumption">
<item-type>Number:Energy</item-type>
<label>Consumption</label>
<description>Indicates the actual consumption of the House.</description>
<state readOnly="true" pattern="%.0f %unit%"/>
</channel-type>
<channel-type id="gridFeedIn">
<item-type>Number:Energy</item-type>
<label>Grid Feed In</label>
<description>Indicates the actual current feeding to the Grid. Otherwise 0.</description>
<state readOnly="true" pattern="%.0f %unit%"/>
</channel-type>
<channel-type id="gridConsumption">
<item-type>Number:Energy</item-type>
<label>Grid Consumption</label>
<description>Indicates the actual current consumption from the the Grid. Otherwise 0.</description>
<state readOnly="true" pattern="%.0f %unit%"/>
</channel-type>
<channel-type id="solarProduction">
<item-type>Number:Energy</item-type>
<label>Solar Production</label>
<description>Indicates the actual production of the Solar system.</description>
<state readOnly="true" pattern="%.0f %unit%"/>
</channel-type>
<channel-type id="flowConsumptionBatteryState">
<item-type>Switch</item-type>
<label>Flow Battery Towards Consumption State</label>
<description>Indicates if there is a current flow from battery towards consumption.</description>
<state readOnly="true"/>
</channel-type>
<channel-type id="flowConsumptionGridState">
<item-type>Switch</item-type>
<label>Flow Grid Towards Consumption State</label>
<description>Indicates if there is a current flow from grid towards consumption.</description>
<state readOnly="true"/>
</channel-type>
<channel-type id="flowConsumptionProductionState">
<item-type>Switch</item-type>
<label>Flow Production Towards Consumption State</label>
<description>Indicates if there is a current flow from solar production towards consumption.</description>
<state readOnly="true"/>
</channel-type>
<channel-type id="flowGridBatteryState">
<item-type>Switch</item-type>
<label>Flow Grid Towards Battery State</label>
<description>Indicates if there is a current flow from grid towards battery.</description>
<state readOnly="true"/>
</channel-type>
<channel-type id="flowProductionBatteryState">
<item-type>Switch</item-type>
<label>Flow Production Towards Battery State</label>
<description>Indicates if there is a current flow from production towards battery.</description>
<state readOnly="true"/>
</channel-type>
<channel-type id="flowProductionGridState">
<item-type>Switch</item-type>
<label>Flow Production Towards Grid State</label>
<description>Indicates if there is a current flow from production towards grid.</description>
<state readOnly="true"/>
</channel-type>
</thing:thing-descriptions>