Updated external content (Jenkins build 374)

pull/1569/head
openHAB Build Server 2021-04-11 20:31:22 +00:00
parent 686c09fc3f
commit 62457330fb
15 changed files with 4188 additions and 1 deletions

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,127 @@
---
id: enphase
label: Enphase
title: Enphase - Bindings
type: binding
description: "This is the binding for the [Enphase](https://enphase.com/) Envoy Solar Panel gateway."
since: 3x
install: manual
---
<!-- Attention authors: Do not edit directly. Please add your changes to the appropriate source repository -->
{% include base.html %}
# Enphase Binding
This is the binding for the [Enphase](https://enphase.com/) Envoy Solar Panel gateway.
The binding uses the local API of the Envoy gateway.
Some calls can be made without authentication and some use a user name and password.
The default user name is `envoy` and the default password is the last 6 numbers of the serial number.
The Envoy gateway updates the data every 5 minutes.
Therefore using a refresh rate shorter doesn't provide more information.
## Supported Things
The follow things are supported:
* `envoy` The Envoy gateway thing, which is a bridge thing.
* `inverter` A Enphase micro inverter connected to a solar panel.
* `relay` A Enphase relay.
Not all Envoy gateways support all channels and things.
Therefore some data on inverters and the relay may not be available.
The binding auto detects which data is available and will report this in the log on initialization of the gateway bridge.
## Discovery
The binding can discover Envoy gateways, micro inverters and relays.
## Thing Configuration
The Envoy gateway thing `envoy` has the following configuration options:
| parameter | required | description |
|--------------|----------|-------------------------------------------------------------------------------------------------------------|
| serialNumber | yes | The serial number of the Envoy gateway which can be found on the gateway |
| hostname | no | The host name/ip address of the Envoy gateway. Leave empty to auto detect |
| username | no | The user name to the Envoy gateway. Leave empty when using the default user name |
| password | no | The password to the Envoy gateway. Leave empty when using the default password |
| refresh | no | Period between data updates. The default is the same 5 minutes the data is actual refreshed on the Envoy |
The micro inverter `inverter` and `relay` things have only 1 parameter:
| parameter | required | description |
|--------------|----------|-----------------------------------|
| serialNumber | yes | The serial number of the inverter |
## Channels
The `envoy` thing has can show both production as well as consumption data.
There are channel groups for `production` and `consumption` data.
The `consumption` data is only available if the gateway reports this.
A example of a production channel name is: `production#wattsNow`.
| channel | type | description |
|--------------------|---------------|---------------------------------------|
| wattHoursToday | Number:Energy | Watt hours produced today |
| wattHoursSevenDays | Number:Energy | Watt hours produced the last 7 days |
| wattHoursLifetime | Number:Energy | Watt hours produced over the lifetime |
| wattsNow | Number:Power | Latest watts produced |
The `inverter` thing has the following channels:
| channel | type | description |
|-----------------|--------------|--------------------------------------|
| lastReportWatts | Number:Power | Last reported power delivery |
| maxReportWatts | Number:Power | Maximum reported power |
| lastReportDate | DateTime | Date of last reported power delivery |
The following channels are only available if supported by the Envoy gateway:
The `relay` thing has the following channels:
| channel | type | description |
|-----------------|--------------|--------------------------------------------------------|
| relay | Contact | Status of the relay. |
| line1Connected | Contact | If power line 1 is connected. If closed it's connected |
| line2Connected | Contact | If power line 2 is connected. If closed it's connected |
| line2Connected | Contact | If power line 3 is connected. If closed it's connected |
The `inverter` and `relay` have the following additional advanced channels:
| channel | type | description |
|-----------------|--------------------|--------------------------------------|
| producing | Switch (Read Only) | If the device is producing |
| communicating | Switch (Read Only) | If the device is communicating |
| provisioned | Switch (Read Only) | If the device is provisioned |
| operating | Switch (Read Only) | If the device is operating |
## Full Example
Things example:
```
Bridge enphase:envoy:789012 "Envoy" [ serialNumber="12345789012" ] {
Things:
inverter 123456 "Enphase Inverter 123456" [ serialNumber="789012123456" ]
inverter 223456 "Enphase Inverter 223456" [ serialNumber="789012223456" ]
}
```
Items example:
```
Number:Power envoyWattsNow "Watts Now [%d %unit%]" { channel="enphase:envoy:789012:production#wattsNow" }
Number:Energy envoyWattHoursToday "Watt Hours Today [%d %unit%]" { channel="enphase:envoy:789012:production#wattHoursToday" }
Number:Energy envoyWattHours7Days "Watt Hours 7 Days [%.1f kWh]" { channel="enphase:envoy:789012:production#wattHoursSevenDays" }
Number:Energy envoyWattHoursLifetime "Watt Hours Lifetime [%.1f kWh]" { channel="enphase:envoy:789012:production#wattHoursLifetime" }
Number:Power i1LastReportWatts "Last Report [%d %unit%]" { channel="enphase:inverter:789012:123456:lastReportWatts" }
Number:Power i1MaxReportWatts "Max Report [%d %unit%]" { channel="enphase:inverter:789012:123456:maxReportWatts" }
DateTime i1LastReportDate "Last Report Date [%1$tY-%1$tm-%1$td %1$tH:%1$tM]" { channel="enphase:inverter:789012:123456:lastReportDate" }
Number:Power i2LastReportWatts "Last Report [%d %unit%]" { channel="enphase:inverter:789012:223456:lastReportWatts" }
Number:Power i21MaxReportWatts "Max Report [%d %unit%]" { channel="enphase:inverter:789012:223456:maxReportWatts" }
DateTime i2LastReportDate "Last Report Date [%1$tY-%1$tm-%1$td %1$tH:%1$tM]" { channel="enphase:inverter:789012:223456:lastReportDate" }
```

View File

@ -0,0 +1,348 @@
---
id: luxtronikheatpump
label: LuxtronikHeatpump
title: LuxtronikHeatpump - Bindings
type: binding
description: "This binding gives the possibility to integrate any Heatpump that is based on the Luxtronik 2 contol unit of Alpha Innotec. This includes heatpumps of:"
since: 3x
install: manual
---
<!-- Attention authors: Do not edit directly. Please add your changes to the appropriate source repository -->
{% include base.html %}
# LuxtronikHeatpump Binding
This binding gives the possibility to integrate any Heatpump that is based on the Luxtronik 2 contol unit of Alpha Innotec. This includes heatpumps of:
* Alpha InnoTec
* Buderus (Logamatic HMC20, HMC20 Z)
* CTA All-In-One (Aeroplus)
* Elco
* Nibe (AP-AW10)
* Roth (ThermoAura®, ThermoTerra)
* (Siemens) Novelan (WPR NET)
* Wolf Heiztechnik (BWL/BWS)
This binding was tested with:
* Siemens Novelan LD 7
_If you have another heatpump the binding works with, let us know, so we can extend the list_
Note: The whole functionality is based on data that was reverse engineered, so use it at your own risk.
## Supported Things
This binding only supports one thing type "Luxtronik Heatpump" (heatpump).
## Thing Configuration
Each heatpump requires the following configuration parameters:
| parameter | required | default | description |
|--------------|----------|---------|-------------|
| ipAddress | yes | | IP address of the heatpump |
| port | no | 8889 | Port number to connect to. This should be `8889` for most heatpumps. For heatpumps using a firmware version before V1.73 port `8888` needs to be used. |
| refresh | no | 300 | Interval (in seconds) to refresh the channel values. |
| showAllChannels | no | false | Show all channels (even those determined as not supported) |
## Channels
As the Luxtronik 2 control is able to handle multiple heat pumps with different features (like heating, hot water, cooling, solar, photovoltaics, swimming pool,...), the binding has a lot channels.
Depending on the heatpump it is used with, various channels might not hold any (useful) values.
If `showAllChannels` is not activated for the thing, this binding will automatically try to hide channels that are not available for your heat pump. As this is done using reverse engineered parameters it might not be correct in all cases.
If you miss a channel that should be available for your heat pump, you can enable `showAllChannels` for your thing, so all channels become available. Feel free to report such a case on the forum, so we can try to improve / fix that behavior.
The following channels are holding read only values:
| channel | type | advanced | description |
|----------|--------|----------|------------------------------|
| temperatureHeatingCircuitFlow | Number:Temperature | | Flow temperature heating circuit |
| temperatureHeatingCircuitReturn | Number:Temperature | | Return temperature heating circuit |
| temperatureHeatingCircuitReturnTarget | Number:Temperature | | Return setpoint heating circuit |
| temperatureBufferTankReturn | Number:Temperature | x | Return temperature in buffer tank |
| temperatureHotGas | Number:Temperature | x | Hot gas temperature |
| temperatureOutside | Number:Temperature | | Outside temperature |
| temperatureOutsideMean | Number:Temperature | | Average temperature outside over 24 h (heating limit function) |
| temperatureHotWater | Number:Temperature | | Hot water actual temperature |
| temperatureHotWaterTarget | Number:Temperature | | Hot water target temperature |
| temperatureHeatSourceInlet | Number:Temperature | x | Heat source inlet temperature |
| temperatureHeatSourceOutlet | Number:Temperature | x | Heat source outlet temperature |
| temperatureMixingCircuit1Flow | Number:Temperature | x | Mixing circuit 1 Flow temperature |
| temperatureMixingCircuit1FlowTarget | Number:Temperature | x | Mixing circuit 1 Flow target temperature |
| temperatureRoomStation | Number:Temperature | x | Room temperature room station 1 |
| temperatureMixingCircuit2Flow | Number:Temperature | x | Mixing circuit 2 Flow temperature |
| temperatureMixingCircuit2FlowTarget | Number:Temperature | x | Mixing circuit 2 Flow target temperature |
| temperatureSolarCollector | Number:Temperature | x | Solar collector sensor |
| temperatureSolarTank | Number:Temperature | x | Solar tank sensor |
| temperatureExternalEnergySource | Number:Temperature | x | Sensor external energy source |
| inputASD | Switch | x | Input "Defrost end, brine pressure, flow rate" |
| inputHotWaterThermostat | Switch | x | Input "Domestic hot water thermostat" |
| inputUtilityLock | Switch | x | Input "EVU lock" |
| inputHighPressureCoolingCircuit | Switch | x | Input "High pressure cooling circuit |
| inputMotorProtectionOK | Switch | x | Input "Motor protection OK" |
| inputLowPressure | Switch | x | Input "Low pressure" |
| inputPEX | Switch | x | Input "Monitoring contact for potentiostat" |
| inputSwimmingPoolThermostat | Switch | x | Input "Swimming pool thermostat" |
| outputDefrostValve | Switch | x | Output "Defrost valve" |
| outputBUP | Switch | x | Output "Domestic hot water pump/changeover valve" |
| outputHeatingCirculationPump | Switch | x | Output "Heating circulation pump" |
| outputMixingCircuit1Open | Switch | x | Output "Mixing circuit 1 Open" |
| outputMixingCircuit1Closed | Switch | x | Output "Mixing circuit 1 Closed" |
| outputVentilation | Switch | x | Output "Ventilation" |
| outputVBO | Switch | x | Output "Brine pump/fan" |
| outputCompressor1 | Switch | x | Output "Compressor 1" |
| outputCompressor2 | Switch | x | Output "Compressor 2" |
| outputCirculationPump | Switch | x | Output "Circulation pump" |
| outputZUP | Switch | x | Output "Auxiliary circulation pump" |
| outputControlSignalAdditionalHeating | Switch | x | Output "Control signal additional heating" |
| outputFaultSignalAdditionalHeating | Switch | x | Output "Control signal additional heating/fault signal" |
| outputAuxiliaryHeater3 | Switch | x | Output "Auxiliary heater 3" |
| outputMixingCircuitPump2 | Switch | x | Output "Pump mixing circuit 2" |
| outputSolarChargePump | Switch | x | Output "Solar charge pump" |
| outputSwimmingPoolPump | Switch | x | Output "Swimming pool pump" |
| outputMixingCircuit2Closed | Switch | x | Output "Mixing circuit 2 Closed" |
| outputMixingCircuit2Open | Switch | x | Output "Mixing circuit 2 Open" |
| runtimeTotalCompressor1 | Number:Time | | Operation hours compressor 1 |
| pulsesCompressor1 | Number:Dimensionless | | Pulses compressor 1 |
| runtimeTotalCompressor2 | Number:Time | x | Operation hours compressor 2 |
| pulsesCompressor2 | Number:Dimensionless | x | Pulses compressor 2 |
| runtimeTotalSecondHeatGenerator1 | Number:Time | x | Operation hours Second heat generator 1 |
| runtimeTotalSecondHeatGenerator2 | Number:Time | x | Operation hours Second heat generator 2 |
| runtimeTotalSecondHeatGenerator3 | Number:Time | x | Operation hours Second heat generator 3 |
| runtimeTotalHeatPump | Number:Time | | Operation hours heat pump |
| runtimeTotalHeating | Number:Time | | Operation hours heating |
| runtimeTotalHotWater | Number:Time | | Operation hours hot water |
| runtimeTotalCooling | Number:Time | | Operation hours cooling |
| runtimeCurrentHeatPump | Number:Time | x | Heat pump running since |
| runtimeCurrentSecondHeatGenerator1 | Number:Time | x | Second heat generator 1 running since |
| runtimeCurrentSecondHeatGenerator2 | Number:Time | x | Second heat generator 2 running since |
| mainsOnDelay | Number:Time | x | Mains on delay |
| switchingCycleLockOff | Number:Time | x | Switching cycle lock off |
| switchingCycleLockOn | Number:Time | x | Switching cycle lock on |
| compressorIdleTime | Number:Time | x | Compressor Idle time |
| heatingControllerMoreTime | Number:Time | x | Heating controller More time |
| heatingControllerLessTime | Number:Time | x | Heating controller Less time |
| runtimeCurrentThermalDisinfection | Number:Time | x | Thermal disinfection running since |
| timeHotWaterLock | Number:Time | x | Hot water lock |
| bivalenceStage | Number | x | Bivalence stage |
| operatingStatus | Number | | Operating status |
| errorTime0 | DateTime | | Timestamp error 0 in memory |
| errorTime1 | DateTime | x | Timestamp error 1 in memory |
| errorTime2 | DateTime | x | Timestamp error 2 in memory |
| errorTime3 | DateTime | x | Timestamp error 3 in memory |
| errorTime4 | DateTime | x | Timestamp error 4 in memory |
| errorCode0 | Number | | Error code Error 0 in memory |
| errorCode1 | Number | x | Error code Error 1 in memory |
| errorCode2 | Number | x | Error code Error 2 in memory |
| errorCode3 | Number | x | Error code Error 3 in memory |
| errorCode4 | Number | x | Error code Error 4 in memory |
| errorCountInMemory | Number | x | Number of errors in memory |
| shutdownReason0 | Number | | Reason shutdown 0 in memory |
| shutdownReason1 | Number | x | Reason shutdown 1 in memory |
| shutdownReason2 | Number | x | Reason shutdown 2 in memory |
| shutdownReason3 | Number | x | Reason shutdown 3 in memory |
| shutdownReason4 | Number | x | Reason shutdown 4 in memory |
| shutdownTime0 | DateTime | | Timestamp shutdown 0 in memory |
| shutdownTime1 | DateTime | x | Timestamp shutdown 1 in memory |
| shutdownTime2 | DateTime | x | Timestamp shutdown 2 in memory |
| shutdownTime3 | DateTime | x | Timestamp shutdown 3 in memory |
| shutdownTime4 | DateTime | x | Timestamp shutdown 4 in memory |
| comfortBoardInstalled | Switch | x | Comfort board installed |
| menuStateFull | String | | Status (complete) |
| menuStateLine1 | Number | | Status line 1 |
| menuStateLine2 | Number | x | Status line 2 |
| menuStateLine3 | Number | x | Status line 3 |
| menuStateTime | Number:Time | x | Status Time |
| bakeoutProgramStage | Number | x | Stage bakeout program |
| bakeoutProgramTemperature | Number:Temperature | x | Temperature bakeout program |
| bakeoutProgramTime | Number:Time | x | Runtime bakeout program |
| iconHotWater | Switch | x | DHW active/inactive icon |
| iconHeater | Number | x | Heater icon |
| iconMixingCircuit1 | Number | x | Mixing circuit 1 icon |
| iconMixingCircuit2 | Number | x | Mixing circuit 2 icon |
| shortProgramSetting | Number | x | Short program setting |
| statusSlave1 | Number | x | Status Slave 1 |
| statusSlave2 | Number | x | Status Slave 2 |
| statusSlave3 | Number | x | Status Slave 3 |
| statusSlave4 | Number | x | Status Slave 4 |
| statusSlave5 | Number | x | Status Slave 5 |
| currentTimestamp | DateTime | x | Current time of the heat pump |
| iconMixingCircuit3 | Number | x | Mixing circuit 3 icon |
| temperatureMixingCircuit3FlowTarget | Number:Temperature | x | Mixing circuit 3 Flow set temperature |
| temperatureMixingCircuit3Flow | Number:Temperature | x | Mixing circuit 3 Flow temperature |
| outputMixingCircuit3Close | Switch | x | Output "Mixing circuit 3 Closed" |
| outputMixingCircuit3Open | Switch | x | Output "Mixing circuit 3 Up" |
| outputMixingCircuitPump3 | Switch | x | Pump mixing circuit 3 |
| timeUntilDefrost | Number:Time | x | Time until defrost |
| temperatureRoomStation2 | Number:Temperature | x | Room temperature room station 2 |
| temperatureRoomStation3 | Number:Temperature | x | Room temperature room station 3 |
| iconTimeSwitchSwimmingPool | Number | x | Time switch swimming pool icon |
| runtimeTotalSwimmingPool | Number:Time | x | Operation hours swimming pool |
| coolingRelease | Switch | x | Release cooling |
| inputAnalog | Number:ElectricPotential | x | Analog input signal |
| iconCirculationPump | Number | x | Circulation pumps icon |
| heatMeterHeating | Number:Energy | | Heat meter heating |
| heatMeterHotWater | Number:Energy | | Heat meter domestic water |
| heatMeterSwimmingPool | Number:Energy | | Heat meter swimming pool |
| heatMeterTotalSinceReset | Number:Energy | | Total heat meter |
| heatMeterFlowRate | Number:VolumetricFlowRate | | Heat meter flow rate |
| outputAnalog1 | Number:ElectricPotential | x | Analog output 1 |
| outputAnalog2 | Number:ElectricPotential | x | Analog output 2 |
| timeLockSecondHotGasCompressor | Number:Time | x | Lock second compressor hot gas |
| temperatureSupplyAir | Number:Temperature | x | Supply air temperature |
| temperatureExhaustAir | Number:Temperature | x | Exhaust air temperature |
| runtimeTotalSolar | Number:Time | x | Operating hours solar |
| outputAnalog3 | Number:ElectricPotential | x | Analog output 3 |
| outputAnalog4 | Number:ElectricPotential | x | Analog output 4 |
| outputSupplyAirFan | Number:ElectricPotential | x | Supply air fan (defrost function) |
| outputExhaustFan | Number:ElectricPotential | x | Exhaust fan |
| outputVSK | Switch | x | Output VSK |
| outputFRH | Switch | x | Output FRH |
| inputAnalog2 | Number:ElectricPotential | x | Analog input 2 |
| inputAnalog3 | Number:ElectricPotential | x | Analog input 3 |
| inputSAX | Switch | x | Input SAX |
| inputSPL | Switch | x | Input SPL |
| ventilationBoardInstalled | Switch | x | Ventilation board installed |
| flowRateHeatSource | Number:VolumetricFlowRate | x | Flow rate heat source |
| linBusInstalled | Switch | x | LIN BUS installed |
| temperatureSuctionEvaporator | Number:Temperature | x | Temperature suction evaporator |
| temperatureSuctionCompressor | Number:Temperature | x | Temperature suction compressor |
| temperatureCompressorHeating | Number:Temperature | x | Temperature compressor heating |
| temperatureOverheating | Number:Temperature | x | Overheating |
| temperatureOverheatingTarget | Number:Temperature | x | Overheating target |
| highPressure | Number:Pressure | x | High pressure |
| lowPressure | Number:Pressure | x | Low pressure |
| outputCompressorHeating | Switch | x | Output compressor heating |
| controlSignalCirculatingPump | Number:Energy | x | Control signal circulating pump |
| fanSpeed | Number | x | Fan speed |
| temperatureSafetyLimitFloorHeating | Switch | x | Safety temperature limiter floor heating |
| powerTargetValue | Number:Energy | x | Power target value |
| powerActualValue | Number:Energy | x | Power actual value |
| temperatureFlowTarget | Number:Temperature | x | Temperature flow set point |
| operatingStatusSECBoard | Number | x | SEC Board operating status |
| fourWayValve | Number | x | Four-way valve |
| compressorSpeed | Number | x | Compressor speed |
| temperatureCompressorEVI | Number:Temperature | x | Compressor temperature EVI (Enhanced Vapour Injection) |
| temperatureIntakeEVI | Number:Temperature | x | Intake temperature EVI |
| temperatureOverheatingEVI | Number:Temperature | x | Overheating EVI |
| temperatureOverheatingTargetEVI | Number:Temperature | x | Overheating EVI target |
| temperatureCondensation | Number:Temperature | x | Condensation temperature |
| temperatureLiquidEEV | Number:Temperature | x | Liquid temperature EEV (electronic expansion valve) |
| temperatureHypothermiaEEV | Number:Temperature | x | Hypothermia EEV |
| pressureEVI | Number:Pressure | x | Pressure EVI |
| voltageInverter | Number:ElectricPotential | x | Voltage inverter |
| temperatureHotGas2 | Number:Temperature | x | Hot gas temperature sensor 2 |
| temperatureHeatSourceInlet2 | Number:Temperature | x | Temperature sensor heat source inlet 2 |
| temperatureIntakeEvaporator2 | Number:Temperature | x | Intake temperature evaporator 2 |
| temperatureIntakeCompressor2 | Number:Temperature | x | Intake temperature compressor 2 |
| temperatureCompressor2Heating | Number:Temperature | x | Temperature compressor 2 heating |
| temperatureOverheating2 | Number:Temperature | x | Overheating 2 |
| temperatureOverheatingTarget2 | Number:Temperature | x | Overheating target 2 |
| highPressure2 | Number:Pressure | x | High pressure 2 |
| lowPressure2 | Number:Pressure | x | Low pressure 2 |
| inputSwitchHighPressure2 | Switch | x | Input pressure switch high pressure 2 |
| outputDefrostValve2 | Switch | x | Output defrost valve 2 |
| outputVBO2 | Switch | x | Output brine pump/fan 2 |
| outputCompressor1_2 | Switch | x | Compressor output 1 / 2 |
| outputCompressorHeating2 | Switch | x | Compressor output heating 2 |
| secondShutdownReason0 | Number | x | Reason shutdown 0 in memory |
| secondShutdownReason1 | Number | x | Reason shutdown 1 in memory |
| secondShutdownReason2 | Number | x | Reason shutdown 2 in memory |
| secondShutdownReason3 | Number | x | Reason shutdown 3 in memory |
| secondShutdownReason4 | Number | x | Reason shutdown 4 in memory |
| secondShutdownTime0 | DateTime | x | Timestamp shutdown 0 in memory |
| secondShutdownTime1 | DateTime | x | Timestamp shutdown 1 in memory |
| secondShutdownTime2 | DateTime | x | Timestamp shutdown 2 in memory |
| secondShutdownTime3 | DateTime | x | Timestamp shutdown 3 in memory |
| secondShutdownTime4 | DateTime | x | Timestamp shutdown 4 in memory |
| temperatureRoom | Number:Temperature | x | Room temperature actual value |
| temperatureRoomTarget | Number:Temperature | x | Room temperature set point |
| temperatureHotWaterTop | Number:Temperature | x | Temperature domestic water top |
| frequencyCompressor | Number:Frequency | x | Compressor frequency |
The following channels are also writable:
| channel | type | advanced | description |
|----------|--------|----------|------------------------------|
| temperatureHeatingParallelShift | Number:Temperature | | Heating temperature (parallel shift) |
| temperatureTargetHotWater_2 | Number:Temperature | | Hot water temperature |
| heatingMode | Number | | Heating mode |
| hotWaterMode | Number | | Hot water operating mode |
| thermalDisinfectionMonday | Switch | x | Thermal disinfection (Monday) |
| thermalDisinfectionTuesday | Switch | x | Thermal disinfection (Tuesday) |
| thermalDisinfectionWednesday | Switch | x | Thermal disinfection (Wednesday) |
| thermalDisinfectionThursday | Switch | x | Thermal disinfection (Thursday) |
| thermalDisinfectionFriday | Switch | x | Thermal disinfection (Friday) |
| thermalDisinfectionSaturday | Switch | x | Thermal disinfection (Saturday) |
| thermalDisinfectionSunday | Switch | x | Thermal disinfection (Sunday) |
| thermalDisinfectionPermanent | Switch | x | Thermal disinfection (Permanent) |
| comfortCoolingMode | Number | | Comfort cooling mode |
| temperatureComfortCoolingATRelease | Number:Temperature | | Comfort cooling AT release |
| temperatureComfortCoolingATReleaseTarget | Number:Temperature | | Comfort cooling AT release target |
| comfortCoolingATExcess | Number:Time | | AT Excess |
| comfortCoolingATUndercut | Number:Time | | AT undercut |
## Example
Below you can find some example textual configuration for a heatpump with some basic functionallity. This can be extended/adjusted according to your needs and depending on the availability of channels (see list above).
_heatpump.things:_
```
Thing luxtronikheatpump:heatpump:heatpump "Heatpump" [
ipAddress="192.168.178.12",
port="8889",
refresh="300"
]
```
_heatpump.items:_
```
Group gHeatpump "Heatpump" <temperature>
Number:Temperature HeatPump_Temp_Outside "Temperature outside [%.1f °C]" <temperature> (gHeatpump) { channel="luxtronikheatpump:heatpump:heatpump:temperatureOutside" }
Number:Temperature HeatPump_Temp_Outside_Avg "Avg. temperature outside [%.1f °C]" <temperature> (gHeatpump) { channel="luxtronikheatpump:heatpump:heatpump:temperatureOutsideMean" }
Number:Time HeatPump_Hours_Heatpump "Operating hours [%d h]" <clock> (gHeatpump) { channel="luxtronikheatpump:heatpump:heatpump:runtimeTotalHeatPump" }
Number:Time HeatPump_Hours_Heating "Operating hours heating [%d h]" <clock> (gHeatpump) { channel="luxtronikheatpump:heatpump:heatpump:runtimeTotalHeating" }
Number:Time HeatPump_Hours_Warmwater "Operating hours hot water [%d h]" <clock> (gHeatpump) { channel="luxtronikheatpump:heatpump:heatpump:runtimeTotalHotWater" }
String HeatPump_State_Ext "State [%s]" (gHeatpump) { channel="luxtronikheatpump:heatpump:heatpump:menuStateFull" }
Number HeatPump_heating_operation_mode "Heating operation mode [%s]" (gHeatpump) { channel="luxtronikheatpump:heatpump:heatpump:heatingMode" }
Number HeatPump_heating_temperature "Heating temperature [%.1f]" (gHeatpump) { channel="luxtronikheatpump:heatpump:heatpump:temperatureHeatingParallelShift" }
Number HeatPump_warmwater_operation_mode "Hot water operation mode [%s]" (gHeatpump) { channel="luxtronikheatpump:heatpump:heatpump:hotWaterMode" }
Number HeatPump_warmwater_temperature "Hot water temperature [%.1f]" (gHeatpump) { channel="luxtronikheatpump:heatpump:heatpump:temperatureHotWaterTarget" }
```
_heatpump.sitemap:_
```
sitemap heatpump label="Heatpump" {
Frame label="Heatpump" {
Text item=HeatPump_State_Ext
Text item=HeatPump_Temperature_1
Text item=HeatPump_Outside_Avg
Text item=HeatPump_Hours_Heatpump
Text item=HeatPump_Hours_Heating
Text item=HeatPump_Hours_Warmwater
Switch item=HeatPump_heating_operation_mode mappings=[0="Auto", 1="Auxiliary heater", 2="Party", 3="Holiday", 4="Off"]
Setpoint item=HeatPump_heating_temperature minValue=-10 maxValue=10 step=0.5
Switch item=HeatPump_warmwater_operation_mode mappings=[0="Auto", 1="Auxiliary heater", 2="Party", 3="Holiday", 4="Off"]
Setpoint item=HeatPump_warmwater_temperature minValue=10 maxValue=65 step=1
}
}
```
## Development Notes
This binding was initially based on the [Novelan/Luxtronik Heat Pump Binding](https://v2.openhab.org/addons/bindings/novelanheatpump1/) for openHAB 1.
Luxtronik control units have an internal webserver which serves a Java applet. This applet can be used to configure some parts of the heat pump. The applet itselves uses a socket connection to fetch and send data to the heatpump.
This socket is also used by this binding. To get some more information on how this socket works you can check out other Luxtronik tools like [Luxtronik2 for NodeJS](https://github.com/coolchip/luxtronik2).
A detailed parameter descriptions for the Java Webinterface can be found in the [Loxwiki](https://www.loxwiki.eu/display/LOX/Java+Webinterface)

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

View File

@ -0,0 +1,265 @@
---
id: resol
label: Resol
title: Resol - Bindings
type: binding
description: "Resol Binding connects to Solar and System Controllers of RESOL - Elektronische Regelungen GmbH, also including branded versions from Viessmann, SOLEX, COSMO, SOLTEX, DeDietrich and many more."
since: 3x
install: manual
---
<!-- Attention authors: Do not edit directly. Please add your changes to the appropriate source repository -->
{% include base.html %}
# Resol Binding
Resol Binding connects to Solar and System Controllers of RESOL - Elektronische Regelungen GmbH, also including branded versions from Viessmann, SOLEX, COSMO, SOLTEX, DeDietrich and many more.
![Resol](doc/RESOL_Logo_de.png)
This binding is based on and includes the [Resol-VBUS-Java library](https://github.com/danielwippermann/resol-vbus-java), developed by Daniel Wippermann.
## Supported Things
### Bridge
For the connection of the VBUS devices a network interface is required.
Supported interfaces are VBUS-LAN, KM1, KM2, DataLogger DL2 and DL3 as live data interface between openHAB and the Resol VBUS via network.
On the DL3 currently there is only the first VBUS channel supported and the sensors directly connected to the DL3 are not accessible via this binding.
Currently only network based bridges are supported and if a USB-VBUS interface shall be used a serial-network proxy has to be used.
In the binding might support USB-type bridges in future.
### Device
On top of the bridge things, which enable access to the VBUS, many - if not all - Resol Controllers and Modules like WMZ heat meters, HKM Heating circuit extensions etc. are supported including branded versions from different suppliers as thing type *device*.
The supported devices include
* Solar controller DeltaSol® A/AX/AX HE
* Solar controller DeltaSol® AL E HE
* Solar controller DeltaSol® CS (Plus)
* Solar controller DeltaSol® B
* Solar controller DeltaSol® BS series
* Solar controller DeltaSol® SLL
* Solar controller DeltaSol® SL
* Solar controller DeltaSol® BX series
* System controller DeltaSol® SLT
* System controller DeltaSol® MX
* System controller DeltaSol® E
* DeltaSol Fresh®
* DeltaSol® Pool
* DeltaSol® Minipool
* DeltaSol® ES
* Frista
* DeltaTherm® HC
* DeltaTherm® FK
* Deltatherm® HT
* DeltaTherm® DH
* Sonnenkraft SKSC3
* Sonnenkraft STRG BX PLUS
* Sonnenkraft SKSC3+
* Sonnenkraft SKSC3HE
* Sonnenkraft SKSR 1/2/3
* Vitosolic 200
* COSMO Multi
* Drainback DeDietrich
* Diemasol C
A more complete list can be found in the doc of the [resol-vbus-java library](http://danielwippermann.github.io/resol-vbus/vbus-packets.html).
### Emulated Extension Module EM
Some controllers like the Deltasol MX can be connected to an extension module, which can be emulated by the thing type *emulatedEM*.
The emulated EM is a virtual device, visible on the VBUS to a Resol controller and provides an interface between openHAB and the controller.
Relay channels are outputs from the controller point of view and therefore read-only in OH.
The sensor channels as inputs for the solar or system controller and intended to be written by OH.
## Discovery
Discovery is tested for VBus-LAN adapters DL2, DL3 and KM2 devices, it should also work for other devices providing a live data port.
After a bridge is detected in the local network the password needs to be given and the things on the VBUS will popup in the inbox.
## Bridge Configuration
The bridge is the device connecting the Resol VBUS to the network, usually a VBus-LAN adapter or integrated in some of the solar controllers like DL3.
For the connection from the Resol binding the bridge requires the configuration of the following parameters:
| Parameter | Type | Required | Description |
|----------------------|---------|----------|------------------------------------------------------------|
| ipAddress | String | yes | IP address or hostname of the VBUS adapter |
| password | String | yes | Password, defaults to 'vbus' for factory setting devices |
| port | Number | no | Port for the TCP connection, defaults to 7053 |
| adapterSerial | String | no | Serialnumber of the device (informative only) |
## Device Configuration
Depending on the solar/heating controller you have attached to your VBUS there will be a "controller" and several other things like heat quantity meters, heating circuit controls, etc.
These do not require any configuration parameters and will pop up in your inbox after the bridge has received data from them.
The name of the devices is usually the Resol name with spaced replaced by _ and a "-Controller" suffix like "DeltaSol_MX-Controller".
For configuration in files you can enable the logging with at least DEBUG level for the resol binding and search the logs for "ThingHandler for (.*) not registered." to identify the names of the things you can add for your VBUS devices.
## Emulated EM Configuration
*emulatedEM* devices cannot be auto-discovered and require beside the bridge the following configuration:
| Parameter | Type | Required | Description |
|-----------|------|----------|-----------------------------------------------------------------------------------------------------------------|
| moduleID | int | yes | The module ID on the VBUS in range 0-15, but further restrictions might apply depending on the resol controller. |
## Device Channels
The channels of a thing are determined automatically based on the received VBUS data and are highly dependent on the used device.
Here is a list of the channels of a DeltaSol MX with a heat quantity meter (HQM) and an extension module EM.
The channels supported for your device can be seen in the UI or in the logs if DEBUG logging is enabled for this binding after data is received from the physical device.
| Channel | Type | Description |
|-----------------------------------|--------------------------|----------------------------------------------------|
| pump_speed_relay_x | Number:Dimensionless | Percentage of the output state of relay 'x' |
| temperature_sensor_x | Number:Temperature | Temperature sensor 'x' of the controller |
| temperature_module_y_sensor_x | Number:Temperature | Temperature sensor 'x' of the extension module 'y' |
| pressure_sensor_x | Number:Pressure | Pressure sensor 'x' |
| humidity_sensor_x | Number:Dimensionless | Humidity sensor 'x' |
| irradiation_sensor_x | Number:Intensity | Sunlight intensity sensor |
| output_m | Number:Dimensionless | PWM/0-10V level value of the output 'm' |
| system_date | DateTime | Date and time of the controller clock |
| error_mask | Number | Bitmask for the different errors |
| error_sensor_line_broken | Number | Sensor line broken status (details for error_mask) |
| error_sensor_line_short-circuited | Number | Sensor short circuit status (details for error_mask) |
| flow_rate_sensor_x | Number:VolumetricFlowRate| Flow rate of sensor 'x' |
| flow_set_temperature | Number:Temperature | Heating circuit set temperature |
| operating_state | Number | Heating circuit operating state |
| heat_quantity | Number:Energy | Total heat quantity (of a HQM) |
| heat_quantity_today | Number:Energy | Todays heat quantity (of a HQM) |
| heat_quantity_week | Number:Energy | This weeks heat quantity (of a HQM) |
| heat_quantity_month | Number:Energy | This months heat quantity (of a HQM) |
| volume_in_total | Number:Volume | Total volume (of a HQM) |
| volume_today | Number:Volume | Todays volume (of a HQM) |
| volume_week | Number:Volume | This weeks volume (of a HQM) |
| volume_month | Number:Volume | This months volume (of a HQM) |
| power | Number:Power | Current power (of a HQM) |
Channels are dynamically created dependent on the devices connected to the VBus.
So far only reading is supported.
The classical channels are for temperature sensors and the like, but also relay outputs with the output level (0-100%) are visible as numerical values with the corresponding unit.
String values are localized as far as possible, but only French, German and English are supported by the underlaying library which is based on the vbus-specification file from Resol.
## EmulatedEM Channels
The channels of an emulated EM modules are as for physical EMs 5 relay channels and 6 input channels.
The relays are virtual outputs and read-only in OH.
The sensors support different types like temperature input which are simulated by a PT1000 resistance value, a switch and the raw resistance value.
Additionally the virtual input device for adjusting the heating circuits as a *BAS* is supported by two different channels for temperature and mode adjustment.
The type of the sensor inputs must be configured in the Resol Controller accordingly.
From all possible sensor channels (temperatureX, switchX, etc.) only one shall be linked to an item at a time, except for BAS which emulates a RCP12 room control unit where both, BasTempAdjustmentX and BasModeX shall be written from OH.
| Channel | Type | Description |
|----------------------|---------------------------|----------------------------------------------------|
| relayX | Number:Dimensionless | Read-only percentage of the virtual output state of relay 'x' as set by the Resol Controller. |
| temperatureX | Number:Temperature | Writable temperature value for the virtual input for sensor 'x'. |
| resistorX | Number:ElectricResistance | Writable resistance value for the virtual input for sensor 'x'. |
| switchX | Switch | Writable switch state for the virtual input for sensor 'x'. |
| BasTempAdjustmentX | Number:Temperature | Writable temperature adjustment for the virtual room control module BAS on the for the virtual input for sensor 'x'. Use together with BasModeX, not effective if BasModeX is OFF or Party. |
| BasModeX | Number | Writable heating circuit mode for the virtual room control module BAS on the for the virtual input for sensor 'x'. Use together with BasTempAdjustmentX.|
## Full Example
For a DeltaSol MX system controller with on extension module EM you can use this example:
resol.things
```
Bridge resol:vbuslan:VBUS "VBUSLAN" [ ipAddress="192.168.0.2", password="vbus", port=7053] {
Thing device DeltaSol_MX-Controller "DeltaSol MX [Controller]" []
Thing device DeltaSol_MX-Heating_circuit-1 "DeltaSol MX [Heating Circuit]" []
Thing device DeltaSol_MX-HQM-1 "DeltaSol MX [WMZ 1] Solar" []
Thing device DeltaSol_MX-Modules "DeltaSol MX [Modules]" []
Thing emulatedEM EM2 "Emulated EM2" [deviceId=2]
}
```
resol.items
```
/*************************************************/
/* Solar system */
/*************************************************/
Number:Temperature SolarTemperature "Solar Collector Temperature [%.1f %unit%]" <temperature> { channel="resol:device:VBUS:DeltaSol_MX-Controller:temperature_sensor_1" }
Number:Temperature TankTemperature "Solar Tank Temperature [%.1f %unit%]" <temperature> { channel="resol:device:VBUS:DeltaSol_MX-Controller:temperature_sensor_2" }
Number:Intensity Irradiation "Irradiation [%.1f %unit%]" <sun> {channel="resol:device:VBUS:DeltaSol_MX-Controller:irradiation_sensor_16"}
Number SolarPump "Solar pump [%.0f %%]" {channel="resol:device:VBUS:DeltaSol_MX-Controller:pump_speed_relay_1"}
/*************************************************/
/* Heating circuit */
/*************************************************/
Number:Temperature FlowSetTemperature "Flow Set Temperature [%.1f %unit%]" <temperature> {channel="resol:device:VBUS:DeltaSol_MX-Heating_circuit-1:flow_set_temperature"}
String HeatCircuit_OperatingState "HeatCircuit OperatingState [%s]" {channel="resol:device:VBUS:DeltaSol_MX-Heating_circuit-1:operating_state"}
/*************************************************/
/* Heat quantity meter */
/*************************************************/
Number:Energy SolarEnergy_today "Solar Energy (today) [%.1f %unit%]" {channel="resol:device:VBUS:DeltaSol_MX-HQM-1:heat_quantity_today"}
Number:Power SolarPower "Solar Power [%.0f %unit%]" {channel="resol:device:VBUS:DeltaSol_MX-HQM-1:power"}
/*************************************************/
/* Physical EM Module 1 */
/*************************************************/
Number:Temperature EM_Temperature_1 "Temperature EM sensor 1 [%.1f %unit%]" <temperature> {channel="resol:device:VBUS:DeltaSol_MX-Modules:temperature_module_1_sensor_1"}
/*************************************************/
/* Virtual EM Module 2, simulated by openHAB */
/*************************************************/
Number:Dimensionless Relay_1 "Virtual Relay 1 on EM2 [%d %%] {channel="resol:emulatedEM:VBUS:EM2:relay_1"}
Number:Dimensionless Emu_Temperature_1 "Virtual temperature input 1 on EM2 [%.1f %unit%] <temperature> {channel="resol:emulatedEM:VBUS:EM2:temperature_1"}
Switch Emu_Switch_2 "Virtual switch input 2 on EM2 " {channel="resol:emulatedEM:VBUS:EM2:switch_2"}
Number:Temperature EM_BAS_Set_Temperature_3 "Set Temperature of virtual room control unit on EM2 sensor 3 [%.1f %unit%]" <temperature> {channel="resol:emulatedEM:VBUS:EM2:bas_temp_adjust_3"}
Number EM_BAS_Mode "Mode of virtual room control unit on EM2 sensor 3 [%.1f %unit%]" <temperature> {channel="resol:emulatedEM:VBUS:EM2:bas_mode_3"}
/*************************************************/
/* Failure handling */
/*************************************************/
Number Errormask "Error mask [%.0f]" {channel="resol:device:VBUS:DeltaSol_MX-Controller:error_mask"}
Number Warningmask "Warning mask [%.0f]" {channel="resol:device:VBUS:DeltaSol_MX-Controller:warning_mask"}
String BrokenSensor "Broken Sensor [%s]" {channel="resol:device:VBUS:DeltaSol_MX-Controller:error_Sensor_line_broken"}
```
resol.sitemap
```
sitemap resol label="DeltaSol MX" {
Frame label="Solar" {
Text item=SolarTemperature valuecolor=[<0="white", <20="blue", <50="green", <80="orange", <120="red", >=120="black"]
Text item=TankTemperature valuecolor=[<30="blue", <50="yellow", <70="orange", >=70="red"]
Text item=Irradiation
Text item=SolarPump valuecolor=[==0="red",==100="green", >50="orange", >0="yellow"]
Text item=SolarPower
Text item=SolarEnergy_today
}
Frame label="Status" {
Text item=Errormask valuecolor=[==0="green", !=0="red"]
Text item=Warningmask valuecolor=[==0="green", !=0="red"]
Text item=BrokenSensor valuecolor=[=="Okay"="green", !="Okay"="red"]
}
Frame label="Emulated EM" {
Default item=Emu_Switch_2
Setpoint item=EM_BAS_Set_Temperature_3 label="Room Temperature Adjust [%.1f °C]" step=0.5 minValue=-15 maxValue=15
}
}
```

View File

@ -0,0 +1,134 @@
---
id: vdr
label: Video Disk Recorder (VDR)
title: Video Disk Recorder (VDR) - Bindings
type: binding
description: "The Video Disk Recorder (VDR) binding allows openHAB to control your own [Video Disk Recorder](https://www.tvdr.de)."
since: 3x
install: manual
---
<!-- Attention authors: Do not edit directly. Please add your changes to the appropriate source repository -->
{% include base.html %}
# Video Disk Recorder (VDR) Binding
The Video Disk Recorder (VDR) binding allows openHAB to control your own [Video Disk Recorder](https://www.tvdr.de).
The binding is based on VDR's own SVDRP (Simple VDR Protocol) connectivity. It supports remote control like changing volume and channels as well as sending key commands to your VDR. Also current and next EPG event data is available.
## Supported Things
The binding provides only one thing type: `vdr`. You can create one thing for each VDR instance at your home.
## Thing Configuration
To configure a VDR, hostname or IP address and the actual SVDRP port are required.
Please note that until VDR version 1.7.15 the standard SVDRP port was 2001 and after that version it changed to 6419.
The VDR configuration file svdrphosts.conf needs to be configured to allow SVDRP access from host where openHAB instance is running.
Please check VDR documentation if you are unsure about this.
| Configuration Parameter | Default | Required | Description |
|-------------------------|------------------|:--------:|--------------------------------------------------------------|
| host | | Yes | Hostname or IP Address of VDR instance |
| port | 6419 | Yes | SVDRP Port of VDR instance |
| refresh | 30 | No | Interval in seconds the data from VDR instance is refreshed |
A typical thing configuration would look like this:
```
Thing vdr:vdr:livingRoom "VDR" @ "LivingRoom" [ host="192.168.0.51", port=6419, refresh=30 ]
```
## Channels
`power`, `channel` and `volume` can be used for basic control of your VDR. `diskUsage` might be used within a rule to notify if disk space for recordings runs short. It is also possible to display custom messages on VDR OSD, please use `message` for this. You can build your own remote control widget in openHAB by using the `keyCode` channel.
Also you can show information about the current channel's program on your VDR by displaying the EPG Event Channels in your favorite openHAB user interface.
To turn on the device VDR is running on please use Wake-On-LAN functionality from Network Binding.
| channel | type | description |
|----------------------|-------------|-----------------------------------------|
| power | Switch | Power State (to switch off VDR) |
| channel | Number | Current Channel Number (can be changed) |
| channelName | String | Name of Current Channel |
| volume | Dimmer | Current Volume |
| recording | Switch | Is currently a Recording Active? |
| diskUsage | Number | Current Disk Usage in % |
| message | String | Send Message to be displayed on VDR |
| keyCode | String | Send Key Code of Remote Control to VDR |
| currentEventTitle | String | Current EPG Event Title |
| currentEventSubTitle | String | Current EPG Event Sub Title |
| currentEventBegin | DateTime | Current EPG Event Begin |
| currentEventEnd | DateTime | Current EPG Event End |
| currentEventDuration | Number:Time | Current EPG Event Duration in Minutes |
| nextEventTitle | String | Next EPG Event Title |
| nextEventSubTitle | String | Next EPG Event Sub Title |
| nextEventBegin | DateTime | Next EPG Event Begin |
| nextEventEnd | DateTime | Next EPG Event End |
| nextEventDuration | Number:Time | Next EPG Event Duration in Minutes |
## Full Example
### Things
```
Thing vdr:vdr:livingRoom "VDR" @ "LivingRoom" [ host="192.168.0.77", port=6419, refresh=30 ]
```
### Items
```
Switch VDR_LivingRoom_Power "Power" {channel="vdr:vdr:livingRoom:power" }
Number VDR_LivingRoom_Channel "Channel Number" {channel="vdr:vdr:livingRoom:channel" }
String VDR_LivingRoom_ChannelName "Channel Name" {channel="vdr:vdr:livingRoom:channelName" }
Dimmer VDR_LivingRoom_Volume "Volume" {channel="vdr:vdr:livingRoom:volume" }
Number VDR_LivingRoom_DiskUsage "Disk [%d %%]" {channel="vdr:vdr:livingRoom:diskUsage" }
Switch VDR_LivingRoom_Recording "Recording" {channel="vdr:vdr:livingRoom:recording" }
String VDR_LivingRoom_Message "Message" {channel="vdr:vdr:livingRoom:message" }
String VDR_LivingRoom_Key "Key Code" {channel="vdr:vdr:livingRoom:keyCode" }
String VDR_LivingRoom_CurrentEventTitle "Title (current)" {channel="vdr:vdr:livingRoom:currentEventTitle" }
String VDR_LivingRoom_CurrentEventSubTitle "Subtitle (current)" {channel="vdr:vdr:livingRoom:currentEventSubTitle" }
DateTime VDR_LivingRoom_CurrentEventBegin "Begin (current) [%1$td.%1$tm.%1$tY %1$tR]" {channel="vdr:vdr:livingRoom:currentEventBegin" }
DateTime VDR_LivingRoom_CurrentEventEnd "End (current) [%1$td.%1$tm.%1$tY %1$tR]" {channel="vdr:vdr:livingRoom:currentEventEnd" }
Number VDR_LivingRoom_CurrentEventDuration "Duration (current) [%d min]" {channel="vdr:vdr:livingRoom:currentEventDuration" }
String VDR_LivingRoom_NextEventTitle "Title (next)" {channel="vdr:vdr:livingRoom:nextEventTitle" }
String VDR_LivingRoom_NextEventSubTitle "Subtitle (next)" {channel="vdr:vdr:livingRoom:nextEventSubTitle" }
DateTime VDR_LivingRoom_NextEventBegin "Begin (next) [%1$td.%1$tm.%1$tY %1$tR]" {channel="vdr:vdr:livingRoom:nextEventBegin" }
DateTime VDR_LivingRoom_NextEventEnd "End (next) [%1$td.%1$tm.%1$tY %1$tR]" {channel="vdr:vdr:livingRoom:nextEventEnd" }
Number VDR_LivingRoom_NextEventDuration "Duration (next) [%d min]" {channel="vdr:vdr:livingRoom:nextEventDuration" }
```
### Sitemap
```
Frame label="VDR" {
Switch item=VDR_LivingRoom_Power
Selection item=VDR_LivingRoom_Channel mappings=[1="DasErste HD", 2="ZDF HD"] visibility=[VDR_LivingRoom_Power==ON]
Text item=VDR_LivingRoom_ChannelName visibility=[VDR_LivingRoom_Power==ON]
Slider item=VDR_LivingRoom_Volume visibility=[VDR_LivingRoom_Power==ON]
Text item=VDR_LivingRoom_DiskUsage
Switch item=VDR_LivingRoom_Recording
Selection item=VDR_LivingRoom_Key visibility=[VDR_LivingRoom_Power==ON]
Frame label="Now" visibility=[VDR_LivingRoom_Power==ON] {
Text item=VDR_LivingRoom_CurrentEventTitle
Text item=VDR_LivingRoom_CurrentEventSubTitle
Text item=VDR_LivingRoom_CurrentEventBegin
Text item=VDR_LivingRoom_CurrentEventEnd
Text item=VDR_LivingRoom_CurrentEventDuration
}
Frame label="Next" visibility=[VDR_LivingRoom_Power==ON] {
Text item=VDR_LivingRoom_NextEventTitle
Text item=VDR_LivingRoom_NextEventSubTitle
Text item=VDR_LivingRoom_NextEventBegin
Text item=VDR_LivingRoom_NextEventEnd
Text item=VDR_LivingRoom_NextEventDuration
}
}
```

View File

@ -0,0 +1,120 @@
---
id: webthing
label: WebThing
title: WebThing - Bindings
type: binding
description: "The WebThing binding supports an interface to smart home device supporting the Web Thing API."
since: 3x
install: manual
---
<!-- Attention authors: Do not edit directly. Please add your changes to the appropriate source repository -->
{% include base.html %}
# WebThing Binding
The WebThing binding supports an interface to smart home device supporting the Web Thing API.
The [Web Thing API](https://iot.mozilla.org/wot/) describes an open and generic standard to discover and link smart home devices
like motion sensors, web-connected displays or awning controls. Devices implementing the Web Thing standard can be integrated
into smart home systems such as openHAB to monitor and control them.
These days, the Web Thing API is primarily used by makers to provide a common API to their physical devices.
For instance, the Web Thing API has been used by makers to provide an open way to control [LEDs on a ESP8266 board](https://github.com/WebThingsIO/webthing-arduino)
or to monitor [a PIR motion sensor on Raspberry Pi](https://pypi.org/project/pi-pir-webthing/).
## Supported Things
As a generic solution, the WebThing binding does not depend on specific devices. All devices implementing the Web Thing API should be accessible.
## Discovery
Once the binding is activated all reachable **WebThing devices will be detected automatically** (via mDNS).
## Binding Configuration
No binding configuration required.
## Thing Configuration
| Parameter | Description | Required |
|----------|--------|-------------|
| webThingURI | the URI of the WebThing | true |
Due to the discovery support, **no manual Thing configuration is required** in general. However, under certain circumstances textual
Thing configuration may be preferred. In this case, the webThingURI has to be configured as shown in the webthing.things file below:
```
Thing webthing:generic:motionsensor [ webThingURI="http://192.168.1.27:9496/" ]
```
## Channels
The supported channels depend on the WebThing device that is connected. Each mappable **WebThing property will be mapped to a dedicated channel, automatically**. For instance, to support the *motion property* of a Motion-Sensor WebThing, a dedicated *motion channel* will be created, automatically.
| Thing | channel | type | description |
|--------|----------|--------|------------------------------|
| WebThing | Automatic | Automatic | All channels will be generated automatically based on the detected WebThing properties |
## Full Example
In the example below WebThings provided by the [Internet Monitor Service](https://pypi.org/project/internet-monitor-webthing/) will be connected.
This service does not require specific hardware or devices. To connect the WebThings, the service has to be installed inside your local network.
### Thing
After installing the WebThing binding you should find the WebThings of your network in the things section of your openHAB administration interface as shown below.
![discovery picture](docs/discovery.png)
Here, the WebThings provided by the *Internet Monitor Service*: the *Internet Connectivity* WebThing as well as the
*Internet Speed Monitor* WebThing have been discovered. To add a WebThing as an openHAB Thing click the 'Add as Thing' button.
![discovery picture](docs/speedmonitor.png)
Alternatively, you may add the WebThing as a openHAB Thing by using a webthing.thing file that has to be located inside the things folder.
```
Thing webthing:generic:speedmonitor [ webThingURI="http://192.168.1.27:9496/0" ]
```
Please consider that the *Internet Monitor Service* in this example supports two WebThings. Both WebThings are bound on the
same hostname and port. However, the WebThing URI path of the speed monitor ends with '/0'. In contrast,
the connectivity WebThing URI path ends with '/1' in this example.
Due to the fact that the WebThing API is based on web technologies, you can validate the WebThing description by opening the WebThing uri in a browser.
![webthing picture](docs/webthing_description.png)
### Items
The *Internet Speed Monitor* WebThing used in this example supports properties such as *downloadspeed*, *uploadspeed* or *ping*.
For each property of the WebThing a dedicated openHAB channel will be created, automatically. The channelUID such
as *webthing:generic:speedmonitor:uploadspeed* is the combination of the thingUID *webthing:generic* and the
WebThing property name *uploadspeed*.
![channels picture](docs/channels.png)
These channels may be linked via the channels tab of the graphical user interface or manually via a webthing.items file as shown below
```
Number uploadSpeed "uploadspeed speed [%.0f]" {channel="webthing:generic:speedmonitor:uploadspeed"}
Number downloadSpeed "download speed [%.0f]" {channel="webthing:generic:speedmonitor:downloadspeed"}
```
### Sitemap
To add the newly linked WebThing items to the sitemap you place a sitemap file such as the internetmonitor.sitemap file shown below
```
sitemap internetmonitor label="Internet Speed Monitor" {
Text item=uploadSpeed
Text item=downloadSpeed
}
```
![sitemap picture](docs/sitemap.png)

View File

@ -0,0 +1,113 @@
---
id: metrics
label: Metrics service
title: Metrics service - System Integrations
type: io
description: "The metrics service provides"
since: 3x
install: manual
---
<!-- Attention authors: Do not edit directly. Please add your changes to the appropriate source repository -->
{% include base.html %}
# Metrics service
The metrics service provides
* an additional REST endpoint to retrieve openHAB core metrics from. This can be used as scrape target for pull-based monitoring systems like [Prometheus](https://prometheus.io/).
* optionally configurable services to export openHAB core metrics to push-based monitoring systems like [InfluxDB](https://www.influxdata.com/).
## Precondition
The openHAB core metrics must be available (OH version >= 3.1.0 M2 is necessary).
## Provided metrics
Currently the following metrics are provided:
- openHAB events counts (per topic)
- openHAB bundle states
- openHAB thing states
- openHAB rule runs (per rule)
- openHAB threadpool stats (per scheduler)
- JVM stats including metrics of
- class loader
- memory
- GarbageCollector
- OS (system load, CPU)
- thread metrics
## Configuration
The configuration for the metrics service is available in the openHAB UI under Settings | Other Services | Metrics service.
Support for pull-based monitoring systems (e. g. Prometheus) is always enabled, since it doesn't imply any significant overhead when not used.
Support for push-based monitoring systems (e. g. InfluxDB) have to be enabled separately.
The following configuration parameters can be set:
|Config param|Description|Default value|
|--|--|--|
|influxMetricsEnabled|Enable the Influx (www.influxdata.com) metrics. Further configuration of the InfluxDB instance necessary.|false|
Refer to the corresponding monitoring system sections for monitoring system specific configuration parameters.
### Supported monitoring systems
For a start, the following formats are supported:
### Prometheus
Once the IO addon is installed, the Prometheus endpoint will be available under:
_<openhab_host>:8080/metrics/prometheus_
Refer to the [Prometheus](https://prometheus.io/) documentation on how to setup a Prometheus instance and add a scrape configuration. A typical scrape config could look like this (excerpt from `/etc/prometheus/prometheus.yml`):
````shell
scrape_configs:
- job_name: 'openhab'
scrape_interval: 1m
scheme: http
metrics_path: /metrics/prometheus
static_configs:
- targets:
- 'openhab.local:8080'
````
Replace `openhab.local` by the openhab host.
#### Available configuration parameters
There are no Prometheus specific configuration paramters.
### InfluxDB
The InfluxDB exporter service will start as soon as the _influxMetricsEnabled_ configuration parameter is set to true.
#### Available configuration parameters
|Config param|Description|Default value|
|--|--|--|
|influxURL|The URL of the InfluxDB instance. Defaults to http://localhost:8086|http://localhost:8086|
|influxDB|The name of the database to use. Defaults to "openhab".|openhab|
|influxUsername|InfluxDB user name|n/a|
|influxPassword|The InfluxDB password (no default).|n/a|
|influxUpdateIntervalInSeconds|Controls how often metrics are exported to InfluxDB (in seconds). Defaults to 300|300|
## Additional metric formats
The metrics service was implemented using [Micrometer](https://micrometer.io), which supports a number of [monitoring systems](https://micrometer.io/docs)
It should be possible to add any of these, especially the ones using a pull mechanism ("scraping") like Prometheus does.
## Grafana
You can now visualize the results in Grafana. Micrometer provides a public [Grafana dashboard here](https://grafana.com/grafana/dashboards/4701).
I adapted it a little bit to include the openHAB metrics. You can download it here [Dashboard](docs/dashboard.json).
This has been tested with Prometheus - for other monitoring systems adaptions to the dashboard might be necessary.
Here are some screenshots:
![Grafana (1)](docs/grafana-1.png)
![Grafana (2)](docs/grafana-2.png)
![Grafana (3)](docs/grafana-3.png)

View File

@ -0,0 +1,228 @@
<?xml version="1.0" encoding="UTF-8"?>
<thing:thing-descriptions bindingId="enphase"
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="envoy">
<label>Envoy</label>
<description>Envoy gateway</description>
<channel-groups>
<channel-group id="production" typeId="envoy-data">
<label>Production</label>
<description>Production data from the solar panels</description>
</channel-group>
<channel-group id="consumption" typeId="envoy-data">
<label>Consumption</label>
<description>Consumption data from the solar panels</description>
</channel-group>
</channel-groups>
<representation-property>serialNumber</representation-property>
<config-description>
<parameter name="serialNumber" type="text" pattern="[0-9]{12}" required="true">
<label>Serial Number</label>
<description>The serial number of the Envoy gateway which can be found on the gateway</description>
</parameter>
<parameter name="hostname" type="text">
<label>Host Name / IP Address</label>
<description>The host name/ip address of the Envoy gateway. Leave empty to auto detect</description>
<advanced>true</advanced>
</parameter>
<parameter name="username" type="text">
<label>User Name</label>
<description>The user name to the Envoy gateway. Leave empty when using the default user name</description>
<default>envoy</default>
<advanced>true</advanced>
</parameter>
<parameter name="password" type="text">
<context>password</context>
<label>Password</label>
<description>The password to the Envoy gateway. Leave empty when using the default password</description>
<advanced>true</advanced>
</parameter>
<parameter name="refresh" type="integer" unit="min">
<label>Refresh Time</label>
<description>Period between updates. The default is 5 minutes, the refresh frequency of the Envoy itself</description>
<default>5</default>
<advanced>true</advanced>
</parameter>
</config-description>
</bridge-type>
<thing-type id="inverter">
<supported-bridge-type-refs>
<bridge-type-ref id="envoy"/>
</supported-bridge-type-refs>
<label>Inverter</label>
<description>Inverter</description>
<channels>
<channel id="lastReportWatts" typeId="last-report-watts"/>
<channel id="maxReportWatts" typeId="max-report-watts"/>
<channel id="lastReportDate" typeId="last-report-date"/>
<channel id="status" typeId="status"/>
<channel id="producing" typeId="producing"/>
<channel id="communicating" typeId="communicating"/>
<channel id="provisioned" typeId="provisioned"/>
<channel id="operating" typeId="operating"/>
</channels>
<properties>
<property name="partNumber"/>
</properties>
<representation-property>serialNumber</representation-property>
<config-description>
<parameter name="serialNumber" type="text" pattern="[0-9]{12}" required="true">
<label>Serial Number</label>
<description>The serial number of the inverter</description>
</parameter>
</config-description>
</thing-type>
<thing-type id="relay">
<supported-bridge-type-refs>
<bridge-type-ref id="envoy"/>
</supported-bridge-type-refs>
<label>Relay Controller</label>
<description>Network system relay controller</description>
<channels>
<channel id="relay" typeId="relay"/>
<channel id="line1Connected" typeId="line-connected">
<label>Line 1 Connection Status</label>
</channel>
<channel id="line2Connected" typeId="line-connected">
<label>Line 2 Connection Status</label>
</channel>
<channel id="line3Connected" typeId="line-connected">
<label>Line 3 Connection Status</label>
</channel>
<channel id="status" typeId="status"/>
<channel id="producing" typeId="producing"/>
<channel id="communicating" typeId="communicating"/>
<channel id="provisioned" typeId="provisioned"/>
<channel id="operating" typeId="operating"/>
</channels>
<properties>
<property name="partNumber"/>
</properties>
<representation-property>serialNumber</representation-property>
<config-description>
<parameter name="serialNumber" type="text" pattern="[0-9]{12}" required="true">
<label>Serial Number</label>
<description>The serial number of the inverter</description>
</parameter>
</config-description>
</thing-type>
<!-- Envoy gateway channels -->
<channel-group-type id="envoy-data">
<label>Envoy Data</label>
<channels>
<channel id="wattHoursToday" typeId="watt-hours-today"/>
<channel id="wattHoursSevenDays" typeId="watt-hours-seven-days"/>
<channel id="wattHoursLifetime" typeId="watt-hours-lifetime"/>
<channel id="wattsNow" typeId="watts-now"/>
</channels>
</channel-group-type>
<channel-type id="watt-hours-today">
<item-type>Number:Energy</item-type>
<label>Produced Today</label>
<description>Watt hours produced today</description>
<state pattern="%d %unit%" readOnly="true"/>
</channel-type>
<channel-type id="watt-hours-seven-days">
<item-type>Number:Energy</item-type>
<label>Produced 7 Days</label>
<description>Watt hours produced the last 7 days</description>
<state pattern="%d %unit%" readOnly="true"/>
</channel-type>
<channel-type id="watt-hours-lifetime">
<item-type>Number:Energy</item-type>
<label>Produced Lifetime</label>
<description>Watt hours produced over the lifetime</description>
<state pattern="%d %unit%" readOnly="true"/>
</channel-type>
<channel-type id="watts-now">
<item-type>Number:Power</item-type>
<label>Latest Power</label>
<description>Latest watts produced</description>
<state pattern="%d %unit%" readOnly="true"/>
</channel-type>
<!-- Inverter channels -->
<channel-type id="last-report-watts">
<item-type>Number:Power</item-type>
<label>Last Report</label>
<description>Last reported power delivery</description>
<state pattern="%d %unit%" readOnly="true"/>
</channel-type>
<channel-type id="max-report-watts">
<item-type>Number:Power</item-type>
<label>Max Report</label>
<description>Maximum reported power</description>
<state pattern="%d %unit%" readOnly="true"/>
</channel-type>
<channel-type id="last-report-date">
<item-type>DateTime</item-type>
<label>Last Report Date</label>
<description>Date of last reported power delivery</description>
<state readOnly="true"/>
</channel-type>
<!-- Relay channels -->
<channel-type id="relay">
<item-type>Contact</item-type>
<label>Relay Status</label>
<state readOnly="true"/>
</channel-type>
<channel-type id="line-connected">
<item-type>Contact</item-type>
<label>Line Connection Status</label>
<description>When closed power line is connected</description>
<state readOnly="true"/>
</channel-type>
<!-- Generic device channels -->
<channel-type id="status">
<item-type>String</item-type>
<label>Status</label>
<description>The status of the Enphase device</description>
<state readOnly="true"/>
</channel-type>
<channel-type id="producing" advanced="true">
<item-type>Switch</item-type>
<label>Producing</label>
<state readOnly="true"/>
</channel-type>
<channel-type id="communicating" advanced="true">
<item-type>Switch</item-type>
<label>Communicating</label>
<state readOnly="true"/>
</channel-type>
<channel-type id="provisioned" advanced="true">
<item-type>Switch</item-type>
<label>Provisioned</label>
<state readOnly="true"/>
</channel-type>
<channel-type id="operating" advanced="true">
<item-type>Switch</item-type>
<label>Operating</label>
<state readOnly="true"/>
</channel-type>
</thing:thing-descriptions>

View File

@ -0,0 +1,259 @@
<?xml version="1.0" encoding="UTF-8"?>
<thing:thing-descriptions bindingId="luxtronikheatpump"
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="heatpump">
<label>Heatpump with Luxtronik Control</label>
<description>Integrates a heatpump with a Luxtronik control.</description>
<channels>
<channel id="temperatureHeatingCircuitFlow" typeId="temperatureHeatingCircuitFlow"/>
<channel id="temperatureHeatingCircuitReturn" typeId="temperatureHeatingCircuitReturn"/>
<channel id="temperatureHeatingCircuitReturnTarget" typeId="temperatureHeatingCircuitReturnTarget"/>
<channel id="temperatureBufferTankReturn" typeId="temperatureBufferTankReturn"/>
<channel id="temperatureHotGas" typeId="temperatureHotGas"/>
<channel id="temperatureOutside" typeId="temperatureOutside"/>
<channel id="temperatureOutsideMean" typeId="temperatureOutsideMean"/>
<channel id="temperatureHotWater" typeId="temperatureHotWater"/>
<channel id="temperatureHotWaterTarget" typeId="temperatureHotWaterTarget"/>
<channel id="temperatureHeatSourceInlet" typeId="temperatureHeatSourceInlet"/>
<channel id="temperatureHeatSourceOutlet" typeId="temperatureHeatSourceOutlet"/>
<channel id="temperatureMixingCircuit1Flow" typeId="temperatureMixingCircuit1Flow"/>
<channel id="temperatureMixingCircuit1FlowTarget" typeId="temperatureMixingCircuit1FlowTarget"/>
<channel id="temperatureRoomStation" typeId="temperatureRoomStation"/>
<channel id="temperatureMixingCircuit2Flow" typeId="temperatureMixingCircuit2Flow"/>
<channel id="temperatureMixingCircuit2FlowTarget" typeId="temperatureMixingCircuit2FlowTarget"/>
<channel id="temperatureSolarCollector" typeId="temperatureSolarCollector"/>
<channel id="temperatureSolarTank" typeId="temperatureSolarTank"/>
<channel id="temperatureExternalEnergySource" typeId="temperatureExternalEnergySource"/>
<channel id="inputASD" typeId="inputASD"/>
<channel id="inputHotWaterThermostat" typeId="inputHotWaterThermostat"/>
<channel id="inputUtilityLock" typeId="inputUtilityLock"/>
<channel id="inputHighPressureCoolingCircuit" typeId="inputHighPressureCoolingCircuit"/>
<channel id="inputMotorProtectionOK" typeId="inputMotorProtectionOK"/>
<channel id="inputLowPressure" typeId="inputLowPressure"/>
<channel id="inputPEX" typeId="inputPEX"/>
<channel id="inputSwimmingPoolThermostat" typeId="inputSwimmingPoolThermostat"/>
<channel id="outputDefrostValve" typeId="outputDefrostValve"/>
<channel id="outputBUP" typeId="outputBUP"/>
<channel id="outputHeatingCirculationPump" typeId="outputHeatingCirculationPump"/>
<channel id="outputMixingCircuit1Open" typeId="outputMixingCircuit1Open"/>
<channel id="outputMixingCircuit1Closed" typeId="outputMixingCircuit1Closed"/>
<channel id="outputVentilation" typeId="outputVentilation"/>
<channel id="outputVBO" typeId="outputVBO"/>
<channel id="outputCompressor1" typeId="outputCompressor1"/>
<channel id="outputCompressor2" typeId="outputCompressor2"/>
<channel id="outputCirculationPump" typeId="outputCirculationPump"/>
<channel id="outputZUP" typeId="outputZUP"/>
<channel id="outputControlSignalAdditionalHeating" typeId="outputControlSignalAdditionalHeating"/>
<channel id="outputFaultSignalAdditionalHeating" typeId="outputFaultSignalAdditionalHeating"/>
<channel id="outputAuxiliaryHeater3" typeId="outputAuxiliaryHeater3"/>
<channel id="outputMixingCircuitPump2" typeId="outputMixingCircuitPump2"/>
<channel id="outputSolarChargePump" typeId="outputSolarChargePump"/>
<channel id="outputSwimmingPoolPump" typeId="outputSwimmingPoolPump"/>
<channel id="outputMixingCircuit2Closed" typeId="outputMixingCircuit2Closed"/>
<channel id="outputMixingCircuit2Open" typeId="outputMixingCircuit2Open"/>
<channel id="runtimeTotalCompressor1" typeId="runtimeTotalCompressor1"/>
<channel id="pulsesCompressor1" typeId="pulsesCompressor1"/>
<channel id="runtimeTotalCompressor2" typeId="runtimeTotalCompressor2"/>
<channel id="pulsesCompressor2" typeId="pulsesCompressor2"/>
<channel id="runtimeTotalSecondHeatGenerator1" typeId="runtimeTotalSecondHeatGenerator1"/>
<channel id="runtimeTotalSecondHeatGenerator2" typeId="runtimeTotalSecondHeatGenerator2"/>
<channel id="runtimeTotalSecondHeatGenerator3" typeId="runtimeTotalSecondHeatGenerator3"/>
<channel id="runtimeTotalHeatPump" typeId="runtimeTotalHeatPump"/>
<channel id="runtimeTotalHeating" typeId="runtimeTotalHeating"/>
<channel id="runtimeTotalHotWater" typeId="runtimeTotalHotWater"/>
<channel id="runtimeTotalCooling" typeId="runtimeTotalCooling"/>
<channel id="runtimeCurrentHeatPump" typeId="runtimeCurrentHeatPump"/>
<channel id="runtimeCurrentSecondHeatGenerator1" typeId="runtimeCurrentSecondHeatGenerator1"/>
<channel id="runtimeCurrentSecondHeatGenerator2" typeId="runtimeCurrentSecondHeatGenerator2"/>
<channel id="mainsOnDelay" typeId="mainsOnDelay"/>
<channel id="switchingCycleLockOff" typeId="switchingCycleLockOff"/>
<channel id="switchingCycleLockOn" typeId="switchingCycleLockOn"/>
<channel id="compressorIdleTime" typeId="compressorIdleTime"/>
<channel id="heatingControllerMoreTime" typeId="heatingControllerMoreTime"/>
<channel id="heatingControllerLessTime" typeId="heatingControllerLessTime"/>
<channel id="runtimeCurrentThermalDisinfection" typeId="runtimeCurrentThermalDisinfection"/>
<channel id="timeHotWaterLock" typeId="timeHotWaterLock"/>
<channel id="bivalenceStage" typeId="bivalenceStage"/>
<channel id="operatingStatus" typeId="operatingStatus"/>
<channel id="errorTime0" typeId="errorTime0"/>
<channel id="errorTime1" typeId="errorTime1"/>
<channel id="errorTime2" typeId="errorTime2"/>
<channel id="errorTime3" typeId="errorTime3"/>
<channel id="errorTime4" typeId="errorTime4"/>
<channel id="errorCode0" typeId="errorCode0"/>
<channel id="errorCode1" typeId="errorCode1"/>
<channel id="errorCode2" typeId="errorCode2"/>
<channel id="errorCode3" typeId="errorCode3"/>
<channel id="errorCode4" typeId="errorCode4"/>
<channel id="errorCountInMemory" typeId="errorCountInMemory"/>
<channel id="shutdownReason0" typeId="shutdownReason0"/>
<channel id="shutdownReason1" typeId="shutdownReason1"/>
<channel id="shutdownReason2" typeId="shutdownReason2"/>
<channel id="shutdownReason3" typeId="shutdownReason3"/>
<channel id="shutdownReason4" typeId="shutdownReason4"/>
<channel id="shutdownTime0" typeId="shutdownTime0"/>
<channel id="shutdownTime1" typeId="shutdownTime1"/>
<channel id="shutdownTime2" typeId="shutdownTime2"/>
<channel id="shutdownTime3" typeId="shutdownTime3"/>
<channel id="shutdownTime4" typeId="shutdownTime4"/>
<channel id="comfortBoardInstalled" typeId="comfortBoardInstalled"/>
<channel id="menuStateLine1" typeId="menuStateLine1"/>
<channel id="menuStateLine2" typeId="menuStateLine2"/>
<channel id="menuStateLine3" typeId="menuStateLine3"/>
<channel id="menuStateTime" typeId="menuStateTime"/>
<channel id="menuStateFull" typeId="menuStateFull"/>
<channel id="bakeoutProgramStage" typeId="bakeoutProgramStage"/>
<channel id="bakeoutProgramTemperature" typeId="bakeoutProgramTemperature"/>
<channel id="bakeoutProgramTime" typeId="bakeoutProgramTime"/>
<channel id="iconHotWater" typeId="iconHotWater"/>
<channel id="iconHeater" typeId="iconHeater"/>
<channel id="iconMixingCircuit1" typeId="iconMixingCircuit1"/>
<channel id="iconMixingCircuit2" typeId="iconMixingCircuit2"/>
<channel id="shortProgramSetting" typeId="shortProgramSetting"/>
<channel id="statusSlave1" typeId="statusSlave1"/>
<channel id="statusSlave2" typeId="statusSlave2"/>
<channel id="statusSlave3" typeId="statusSlave3"/>
<channel id="statusSlave4" typeId="statusSlave4"/>
<channel id="statusSlave5" typeId="statusSlave5"/>
<channel id="currentTimestamp" typeId="currentTimestamp"/>
<channel id="iconMixingCircuit3" typeId="iconMixingCircuit3"/>
<channel id="temperatureMixingCircuit3FlowTarget" typeId="temperatureMixingCircuit3FlowTarget"/>
<channel id="temperatureMixingCircuit3Flow" typeId="temperatureMixingCircuit3Flow"/>
<channel id="outputMixingCircuit3Close" typeId="outputMixingCircuit3Close"/>
<channel id="outputMixingCircuit3Open" typeId="outputMixingCircuit3Open"/>
<channel id="outputMixingCircuitPump3" typeId="outputMixingCircuitPump3"/>
<channel id="timeUntilDefrost" typeId="timeUntilDefrost"/>
<channel id="temperatureRoomStation2" typeId="temperatureRoomStation2"/>
<channel id="temperatureRoomStation3" typeId="temperatureRoomStation3"/>
<channel id="iconTimeSwitchSwimmingPool" typeId="iconTimeSwitchSwimmingPool"/>
<channel id="runtimeTotalSwimmingPool" typeId="runtimeTotalSwimmingPool"/>
<channel id="coolingRelease" typeId="coolingRelease"/>
<channel id="inputAnalog" typeId="inputAnalog"/>
<channel id="iconCirculationPump" typeId="iconCirculationPump"/>
<channel id="heatMeterHeating" typeId="heatMeterHeating"/>
<channel id="heatMeterHotWater" typeId="heatMeterHotWater"/>
<channel id="heatMeterSwimmingPool" typeId="heatMeterSwimmingPool"/>
<channel id="heatMeterTotalSinceReset" typeId="heatMeterTotalSinceReset"/>
<channel id="heatMeterFlowRate" typeId="heatMeterFlowRate"/>
<channel id="outputAnalog1" typeId="outputAnalog1"/>
<channel id="outputAnalog2" typeId="outputAnalog2"/>
<channel id="timeLockSecondHotGasCompressor" typeId="timeLockSecondHotGasCompressor"/>
<channel id="temperatureSupplyAir" typeId="temperatureSupplyAir"/>
<channel id="temperatureExhaustAir" typeId="temperatureExhaustAir"/>
<channel id="runtimeTotalSolar" typeId="runtimeTotalSolar"/>
<channel id="outputAnalog3" typeId="outputAnalog3"/>
<channel id="outputAnalog4" typeId="outputAnalog4"/>
<channel id="outputSupplyAirFan" typeId="outputSupplyAirFan"/>
<channel id="outputExhaustFan" typeId="outputExhaustFan"/>
<channel id="outputVSK" typeId="outputVSK"/>
<channel id="outputFRH" typeId="outputFRH"/>
<channel id="inputAnalog2" typeId="inputAnalog2"/>
<channel id="inputAnalog3" typeId="inputAnalog3"/>
<channel id="inputSAX" typeId="inputSAX"/>
<channel id="inputSPL" typeId="inputSPL"/>
<channel id="ventilationBoardInstalled" typeId="ventilationBoardInstalled"/>
<channel id="flowRateHeatSource" typeId="flowRateHeatSource"/>
<channel id="linBusInstalled" typeId="linBusInstalled"/>
<channel id="temperatureSuctionEvaporator" typeId="temperatureSuctionEvaporator"/>
<channel id="temperatureSuctionCompressor" typeId="temperatureSuctionCompressor"/>
<channel id="temperatureCompressorHeating" typeId="temperatureCompressorHeating"/>
<channel id="temperatureOverheating" typeId="temperatureOverheating"/>
<channel id="temperatureOverheatingTarget" typeId="temperatureOverheatingTarget"/>
<channel id="highPressure" typeId="highPressure"/>
<channel id="lowPressure" typeId="lowPressure"/>
<channel id="outputCompressorHeating" typeId="outputCompressorHeating"/>
<channel id="controlSignalCirculatingPump" typeId="controlSignalCirculatingPump"/>
<channel id="fanSpeed" typeId="fanSpeed"/>
<channel id="temperatureSafetyLimitFloorHeating" typeId="temperatureSafetyLimitFloorHeating"/>
<channel id="powerTargetValue" typeId="powerTargetValue"/>
<channel id="powerActualValue" typeId="powerActualValue"/>
<channel id="temperatureFlowTarget" typeId="temperatureFlowTarget"/>
<channel id="operatingStatusSECBoard" typeId="operatingStatusSECBoard"/>
<channel id="fourWayValve" typeId="fourWayValve"/>
<channel id="compressorSpeed" typeId="compressorSpeed"/>
<channel id="temperatureCompressorEVI" typeId="temperatureCompressorEVI"/>
<channel id="temperatureIntakeEVI" typeId="temperatureIntakeEVI"/>
<channel id="temperatureOverheatingEVI" typeId="temperatureOverheatingEVI"/>
<channel id="temperatureOverheatingTargetEVI" typeId="temperatureOverheatingTargetEVI"/>
<channel id="temperatureCondensation" typeId="temperatureCondensation"/>
<channel id="temperatureLiquidEEV" typeId="temperatureLiquidEEV"/>
<channel id="temperatureHypothermiaEEV" typeId="temperatureHypothermiaEEV"/>
<channel id="pressureEVI" typeId="pressureEVI"/>
<channel id="voltageInverter" typeId="voltageInverter"/>
<channel id="temperatureHotGas2" typeId="temperatureHotGas2"/>
<channel id="temperatureHeatSourceInlet2" typeId="temperatureHeatSourceInlet2"/>
<channel id="temperatureIntakeEvaporator2" typeId="temperatureIntakeEvaporator2"/>
<channel id="temperatureIntakeCompressor2" typeId="temperatureIntakeCompressor2"/>
<channel id="temperatureCompressor2Heating" typeId="temperatureCompressor2Heating"/>
<channel id="temperatureOverheating2" typeId="temperatureOverheating2"/>
<channel id="temperatureOverheatingTarget2" typeId="temperatureOverheatingTarget2"/>
<channel id="highPressure2" typeId="highPressure2"/>
<channel id="lowPressure2" typeId="lowPressure2"/>
<channel id="inputSwitchHighPressure2" typeId="inputSwitchHighPressure2"/>
<channel id="outputDefrostValve2" typeId="outputDefrostValve2"/>
<channel id="outputVBO2" typeId="outputVBO2"/>
<channel id="outputCompressor1_2" typeId="outputCompressor1_2"/>
<channel id="outputCompressorHeating2" typeId="outputCompressorHeating2"/>
<channel id="secondShutdownReason0" typeId="secondShutdownReason0"/>
<channel id="secondShutdownReason1" typeId="secondShutdownReason1"/>
<channel id="secondShutdownReason2" typeId="secondShutdownReason2"/>
<channel id="secondShutdownReason3" typeId="secondShutdownReason3"/>
<channel id="secondShutdownReason4" typeId="secondShutdownReason4"/>
<channel id="secondShutdownTime0" typeId="secondShutdownTime0"/>
<channel id="secondShutdownTime1" typeId="secondShutdownTime1"/>
<channel id="secondShutdownTime2" typeId="secondShutdownTime2"/>
<channel id="secondShutdownTime3" typeId="secondShutdownTime3"/>
<channel id="secondShutdownTime4" typeId="secondShutdownTime4"/>
<channel id="temperatureRoom" typeId="temperatureRoom"/>
<channel id="temperatureRoomTarget" typeId="temperatureRoomTarget"/>
<channel id="temperatureHotWaterTop" typeId="temperatureHotWaterTop"/>
<channel id="frequencyCompressor" typeId="frequencyCompressor"/>
<channel id="temperatureHeatingParallelShift" typeId="temperatureHeatingParallelShift"/>
<channel id="heatingMode" typeId="heatingMode"/>
<channel id="hotWaterMode" typeId="hotWaterMode"/>
<channel id="comfortCoolingMode" typeId="comfortCoolingMode"/>
<channel id="thermalDisinfectionMonday" typeId="thermalDisinfectionMonday"/>
<channel id="thermalDisinfectionTuesday" typeId="thermalDisinfectionTuesday"/>
<channel id="thermalDisinfectionWednesday" typeId="thermalDisinfectionWednesday"/>
<channel id="thermalDisinfectionThursday" typeId="thermalDisinfectionThursday"/>
<channel id="thermalDisinfectionFriday" typeId="thermalDisinfectionFriday"/>
<channel id="thermalDisinfectionSaturday" typeId="thermalDisinfectionSaturday"/>
<channel id="thermalDisinfectionSunday" typeId="thermalDisinfectionSunday"/>
<channel id="thermalDisinfectionPermanent" typeId="thermalDisinfectionPermanent"/>
<channel id="temperatureComfortCoolingATRelease" typeId="temperatureComfortCoolingATRelease"/>
<channel id="temperatureComfortCoolingATReleaseTarget" typeId="temperatureComfortCoolingATReleaseTarget"/>
<channel id="comfortCoolingATExcess" typeId="comfortCoolingATExcess"/>
<channel id="comfortCoolingATUndercut" typeId="comfortCoolingATUndercut"/>
</channels>
<config-description>
<parameter name="ipAddress" type="text" required="true">
<context>network-address</context>
<label>IP Address</label>
<description>IP address of the heat pump to connect to</description>
</parameter>
<parameter name="port" type="integer" required="false">
<label>Port</label>
<default>8889</default>
<description>Port number of the heat pump to connect to. Defaults to 8889. For heatpumps running firmware version
before V1.73, port 8888 needs to be used.</description>
</parameter>
<parameter name="refresh" type="integer" required="false" unit="s" min="1">
<label>Refresh inverval</label>
<default>300</default>
<unitLabel>s</unitLabel>
<description>Refresh inverval in seconds. Defaults to 300</description>
</parameter>
<parameter name="showAllChannels" type="boolean" required="false">
<label>Show all channels</label>
<default>false</default>
<description>By default channels that aren't supported are hidden.</description>
</parameter>
</config-description>
</thing-type>
</thing:thing-descriptions>

View File

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<thing:thing-descriptions bindingId="resol"
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="vbuslan">
<label>Bridge VBusLAN Adapter</label>
<description>This bridge represents the Resol VBus-LAN adapter which can be any device with a TCP/IP live port, either
the standalone device VBus-LAN Adapter, KM2, DL2/3 or similar.
</description>
<representation-property>ipAddress</representation-property>
<config-description>
<parameter name="ipAddress" type="text" required="true">
<context>network-address</context>
<label>IP Address</label>
<description>The IP address of the of the VBus-LAN gateway.</description>
</parameter>
<parameter name="port" type="integer" required="false" min="1024" max="65535">
<label>Live Data Port</label>
<description>Port for live data on the VBUS-LAN gateway.</description>
<default>7053</default>
</parameter>
<parameter name="adapterSerial" type="text" required="false">
<label>Adapter Serial Number</label>
<description>The serial number of the adapter (informative).</description>
</parameter>
<parameter name="password" type="text" required="true">
<label>Password</label>
<description>The password for the VBusLAN connection.</description>
<context>password</context>
</parameter>
<parameter name="refreshInterval" type="integer" required="false" min="5" max="1800" unit="s">
<label>Refresh Interval</label>
<description>Refresh time in seconds to check the connection to the VBus gateway. Data updates are propagated to
openHAB independently from this setting as soon as they are received on the VBus.</description>
<default>300</default>
</parameter>
</config-description>
</bridge-type>
</thing:thing-descriptions>

View File

@ -0,0 +1,212 @@
<?xml version="1.0" encoding="UTF-8"?>
<thing:thing-descriptions bindingId="resol"
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="device">
<supported-bridge-type-refs>
<bridge-type-ref id="vbuslan"/>
</supported-bridge-type-refs>
<label>Resol Device</label>
<description>Solar or system controller (or any other real device on the VBus) from Resol.</description>
</thing-type>
<thing-type id="emulatedEM">
<supported-bridge-type-refs>
<bridge-type-ref id="vbuslan"/>
</supported-bridge-type-refs>
<label>Emulated EM Device</label>
<description>Emulation of an Extension Module (EM) device which can be connected through the VBUS to Resol controllers
which support the EM devices. Replaces a physically available EM by openHAB.</description>
<channels>
<channel id="relay_1" typeId="relay">
<label>Relay 1</label>
</channel>
<channel id="relay_2" typeId="relay">
<label>Relay 2</label>
</channel>
<channel id="relay_3" typeId="relay">
<label>Relay 3</label>
</channel>
<channel id="relay_4" typeId="relay">
<label>Relay 4</label>
</channel>
<channel id="relay_5" typeId="relay">
<label>Relay 5</label>
</channel>
<channel id="switch_1" typeId="switch">
<label>Switch 1</label>
</channel>
<channel id="switch_2" typeId="switch">
<label>Switch 2</label>
</channel>
<channel id="switch_3" typeId="switch">
<label>Switch 3</label>
</channel>
<channel id="switch_4" typeId="switch">
<label>Switch 4</label>
</channel>
<channel id="switch_5" typeId="switch">
<label>Switch 5</label>
</channel>
<channel id="switch_6" typeId="switch">
<label>Switch 6</label>
</channel>
<channel id="temperature_1" typeId="temperature">
<label>Temperature 1</label>
</channel>
<channel id="temperature_2" typeId="temperature">
<label>Temperature 2</label>
</channel>
<channel id="temperature_3" typeId="temperature">
<label>Temperature 3</label>
</channel>
<channel id="temperature_4" typeId="temperature">
<label>Temperature 4</label>
</channel>
<channel id="temperature_5" typeId="temperature">
<label>Temperature 5</label>
</channel>
<channel id="temperature_6" typeId="temperature">
<label>Temperature 6</label>
</channel>
<channel id="resistor_1" typeId="resistance">
<label>Resistor 1</label>
</channel>
<channel id="resistor_2" typeId="resistance">
<label>Resistor 2</label>
</channel>
<channel id="resistor_3" typeId="resistance">
<label>Resistor 3</label>
</channel>
<channel id="resistor_4" typeId="resistance">
<label>Resistor 4</label>
</channel>
<channel id="resistor_5" typeId="resistance">
<label>Resistor 5</label>
</channel>
<channel id="resistor_6" typeId="resistance">
<label>Resistor 6</label>
</channel>
<channel id="bas_temp_adjust_1" typeId="temperatureAdjust">
<label>Temperature Adjustment 1</label>
</channel>
<channel id="bas_temp_adjust_2" typeId="temperatureAdjust">
<label>Temperature Adjustment 2</label>
</channel>
<channel id="bas_temp_adjust_3" typeId="temperatureAdjust">
<label>Temperature Adjustment 3</label>
</channel>
<channel id="bas_temp_adjust_4" typeId="temperatureAdjust">
<label>Temperature Adjustment 4</label>
</channel>
<channel id="bas_temp_adjust_5" typeId="temperatureAdjust">
<label>Temperature Adjustment 5</label>
</channel>
<channel id="bas_temp_adjust_6" typeId="temperatureAdjust">
<label>Temperature Adjustment 6</label>
</channel>
<channel id="bas_mode_1" typeId="operationmode">
<label>Operating Mode 1</label>
</channel>
<channel id="bas_mode_2" typeId="operationmode">
<label>Operating Mode 2</label>
</channel>
<channel id="bas_mode_3" typeId="operationmode">
<label>Operating Mode 3</label>
</channel>
<channel id="bas_mode_4" typeId="operationmode">
<label>Operating Mode 4</label>
</channel>
<channel id="bas_mode_5" typeId="operationmode">
<label>Operating Mode 5</label>
</channel>
<channel id="bas_mode_6" typeId="operationmode">
<label>Operating Mode 6</label>
</channel>
</channels>
<config-description>
<parameter name="deviceId" type="integer" required="true" min="1" max="15">
<label>Module ID</label>
<description>The (sub-)address of the emulated EM device, usable range depends on the used controller.</description>
<default>1</default>
</parameter>
</config-description>
</thing-type>
<channel-type id="None">
<item-type>Number</item-type>
<label>Any</label>
<state readOnly="true"/>
</channel-type>
<channel-type id="NoneHidden" advanced="true">
<item-type>Number</item-type>
<label>Any</label>
<state readOnly="true"/>
</channel-type>
<channel-type id="relay" advanced="false">
<item-type>Number:Dimensionless</item-type>
<label>Relay State</label>
<description>Virtual relay output, will be set by the controller and can be used to communicate data from the Resol
controller to openHAB.</description>
<category>Switch</category>
<state pattern="%d %%" readOnly="true"/>
</channel-type>
<channel-type id="temperature" advanced="false">
<item-type>Number:Temperature</item-type>
<label>Temperature</label>
<description>Virtual temperature sensor input.</description>
<category>Temperature</category>
<state pattern="%.1f %unit%" readOnly="false"/>
</channel-type>
<channel-type id="resistance" advanced="false">
<item-type>Number:ElectricResistance</item-type>
<label>Resistance</label>
<description>Virtual resistance input.</description>
<state pattern="%.1f %unit%" readOnly="false"/>
</channel-type>
<channel-type id="switch" advanced="false">
<item-type>Switch</item-type>
<label>Switch</label>
<description>Virtual switch input.</description>
</channel-type>
<channel-type id="temperatureAdjust" advanced="false">
<item-type>Number:Temperature</item-type>
<label>Temperature Adjustment</label>
<description>Virtual temperature offset on heating circuit of an emulated BAS (RCP12 room control unit).</description>
<category>Temperature</category>
<state pattern="%.1f %unit%" readOnly="false" min="-15" max="15"/>
</channel-type>
<channel-type id="operationmode" advanced="false">
<item-type>Number</item-type>
<label>Operating Mode</label>
<description>Virtual operating mode of the heating circuit controlled by the emulated BAS (RCP12 room control unit).</description>
<state pattern="%d" readOnly="false" min="0" max="4" step="1">
<options>
<option value="0">OFF</option>
<option value="1">Summer</option>
<option value="2">Night</option>
<option value="3">Party</option>
<option value="4">Automatic</option>
</options>
</state>
</channel-type>
</thing:thing-descriptions>

View File

@ -0,0 +1,202 @@
<?xml version="1.0" encoding="UTF-8"?>
<thing:thing-descriptions bindingId="vdr" 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="vdr">
<label>VDR</label>
<description>VDR - The Video Disk Recorder (https://tvdr.de)</description>
<channels>
<channel id="power" typeId="system.power"/>
<channel id="channel" typeId="vdrChannel"/>
<channel id="channelName" typeId="vdrChannelName"/>
<channel id="volume" typeId="system.volume"/>
<channel id="recording" typeId="vdrRecordingActive"/>
<channel id="diskUsage" typeId="vdrDiskUsage"/>
<channel id="message" typeId="vdrMessage"/>
<channel id="keyCode" typeId="vdrKeyCode"/>
<channel id="currentEventTitle" typeId="vdrEventTitle">
<label>Current EPG Event Title</label>
</channel>
<channel id="currentEventSubTitle" typeId="vdrEventSubTitle">
<label>Current EPG Event Sub Title</label>
</channel>
<channel id="currentEventBegin" typeId="vdrEventBegin">
<label>Current EPG Event Begin</label>
</channel>
<channel id="currentEventEnd" typeId="vdrEventEnd">
<label>Current EPG Event End</label>
</channel>
<channel id="currentEventDuration" typeId="vdrEventDuration">
<label>Current EPG Event Duration in Minutes</label>
</channel>
<channel id="nextEventTitle" typeId="vdrEventTitle">
<label>Next EPG Event Title</label>
</channel>
<channel id="nextEventSubTitle" typeId="vdrEventSubTitle">
<label>Next EPG Event Sub Title</label>
</channel>
<channel id="nextEventBegin" typeId="vdrEventBegin">
<label>Next EPG Event Begin</label>
</channel>
<channel id="nextEventEnd" typeId="vdrEventEnd">
<label>Next EPG Event End</label>
</channel>
<channel id="nextEventDuration" typeId="vdrEventDuration">
<label>Next EPG Event Duration in Minutes</label>
</channel>
</channels>
<properties>
<property name="version">VDR Version</property>
</properties>
<config-description>
<parameter name="host" type="text" required="true">
<context>network-address</context>
<label>Hostname</label>
<description>Hostname or IP Address of VDR instance</description>
</parameter>
<parameter name="port" type="integer" required="false">
<label>SVDRP Port</label>
<description>SVDRP Port of VDR instance</description>
<default>6419</default>
</parameter>
<parameter name="refresh" type="integer" min="0" unit="s">
<label>Refresh Interval</label>
<description>Interval in seconds the data from VDR instance is refreshed</description>
<advanced>true</advanced>
<default>30</default>
</parameter>
</config-description>
</thing-type>
<channel-type id="vdrMessage">
<item-type>String</item-type>
<label>Display Message</label>
<description>Send Message to be displayed on VDR</description>
<state readOnly="false"/>
</channel-type>
<channel-type id="vdrChannel">
<item-type>Number</item-type>
<label>Channel Number</label>
<description>Current Channel Number</description>
<state readOnly="false" pattern="%d"/>
</channel-type>
<channel-type id="vdrChannelName">
<item-type>String</item-type>
<label>Channel Name</label>
<description>Current Channel Name</description>
<state readOnly="true"/>
</channel-type>
<channel-type id="vdrRecordingActive">
<item-type>Switch</item-type>
<label>Recording Active</label>
<description>ON if a recording is active</description>
<state readOnly="true"/>
</channel-type>
<channel-type id="vdrDiskUsage">
<item-type>Number</item-type>
<label>Disk Usage</label>
<description>Current Disk Usage in %</description>
<state readOnly="true" min="0" max="100" step="1" pattern="%d %%"/>
</channel-type>
<channel-type id="vdrKeyCode">
<item-type>String</item-type>
<label>VDR Key Code</label>
<description>Send Key Code of Remote Control to VDR</description>
<command>
<options>
<option value="Up">Up</option>
<option value="Down">Down</option>
<option value="Menu">Menu</option>
<option value="Ok">Ok</option>
<option value="Back">Back</option>
<option value="Left">Left</option>
<option value="Right">Right</option>
<option value="Red">Red</option>
<option value="Green">Green</option>
<option value="Yellow">Yellow</option>
<option value="Blue">Blue</option>
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="Info">Info</option>
<option value="Play/Pause">Play/Pause</option>
<option value="Play">Play</option>
<option value="Pause">Pause</option>
<option value="Stop">Stop</option>
<option value="Record">Record</option>
<option value="FastFwd">FastFwd</option>
<option value="FastRew">FastRew</option>
<option value="Next">Next</option>
<option value="Prev">Prev</option>
<option value="Power">Power</option>
<option value="Channel+">Channel+</option>
<option value="Channel-">Channel-</option>
<option value="PrevChannel">PrevChannel</option>
<option value="Volume+">Volume+</option>
<option value="Volume-">Volume-</option>
<option value="Mute">Mute</option>
<option value="Audio">Audio</option>
<option value="Subtitles">Subtitles</option>
<option value="Schedule">Schedule</option>
<option value="Channels">Channels</option>
<option value="Timers">Timers</option>
<option value="Recordings">Recordings</option>
<option value="Setup">Setup</option>
<option value="Commands">Commands</option>
<option value="User0">User0</option>
<option value="User1">User1</option>
<option value="User2">User2</option>
<option value="User3">User3</option>
<option value="User4">User4</option>
<option value="User5">User5</option>
<option value="User6">User6</option>
<option value="User7">User7</option>
<option value="User8">User8</option>
<option value="User9">User9</option>
</options>
</command>
</channel-type>
<channel-type id="vdrEventTitle">
<item-type>String</item-type>
<label>Event Title</label>
<description>Title of EPG Event</description>
<state readOnly="true"/>
</channel-type>
<channel-type id="vdrEventSubTitle">
<item-type>String</item-type>
<label>Event Sub Title</label>
<description>Sub Title of EPG Event</description>
<state readOnly="true"/>
</channel-type>
<channel-type id="vdrEventBegin">
<item-type>DateTime</item-type>
<label>Event Start Time</label>
<description>Start Time of EPG Event</description>
<state readOnly="true"/>
</channel-type>
<channel-type id="vdrEventEnd">
<item-type>DateTime</item-type>
<label>Event End Time</label>
<description>End Time of EPG Event</description>
<state readOnly="true"/>
</channel-type>
<channel-type id="vdrEventDuration">
<item-type>Number:Time</item-type>
<label>Event Duration</label>
<description>Duration of EPG Event in Minutes</description>
<state readOnly="true" pattern="%d %unit%"/>
</channel-type>
</thing:thing-descriptions>

View File

@ -0,0 +1,60 @@
<?xml version="1.0" encoding="UTF-8"?>
<thing:thing-descriptions bindingId="webthing"
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="generic">
<label>WebThing</label>
<description>The WebThing to be connected</description>
<config-description>
<parameter name="webThingURI" type="text" required="true">
<context>url</context>
<label>URI</label>
<description>The URI of the WebThing to be connected. E.g. the URI of a web-connected MotionSensor or a URI of a
web-connected Display</description>
</parameter>
</config-description>
</thing-type>
<channel-type id="number">
<item-type>Number</item-type>
<label>Webthing Binding Channel</label>
<description>Number channel for Webthing Binding</description>
</channel-type>
<channel-type id="string">
<item-type>String</item-type>
<label>Webthing Binding Channel</label>
<description>String channel for Webthing Binding</description>
</channel-type>
<channel-type id="contact">
<item-type>Contact</item-type>
<label>Webthing Binding Channel</label>
<description>Contact channel for Webthing Binding</description>
</channel-type>
<channel-type id="switch">
<item-type>Switch</item-type>
<label>Webthing Binding Channel</label>
<description>Switch channel for Webthing Binding</description>
</channel-type>
<channel-type id="color">
<item-type>Color</item-type>
<label>Webthing Binding Channel</label>
<description>Color channel for Webthing Binding</description>
</channel-type>
<channel-type id="dimmer">
<item-type>Dimmer</item-type>
<label>Webthing Binding Channel</label>
<description>Dimmer channel for Webthing Binding</description>
</channel-type>
</thing:thing-descriptions>