mirror of
https://github.com/openhab/openhab-addons.git
synced 2025-01-10 15:11:59 +01:00
[LuxtronikHeatpump] Initial Contribution (#9669)
Signed-off-by: Stefan Giehl <stefangiehl@gmail.com>
This commit is contained in:
parent
d9ed461950
commit
4f018b8aec
@ -144,6 +144,7 @@
|
|||||||
/bundles/org.openhab.binding.loxone/ @ppieczul
|
/bundles/org.openhab.binding.loxone/ @ppieczul
|
||||||
/bundles/org.openhab.binding.luftdateninfo/ @weymann
|
/bundles/org.openhab.binding.luftdateninfo/ @weymann
|
||||||
/bundles/org.openhab.binding.lutron/ @actong @bobadair
|
/bundles/org.openhab.binding.lutron/ @actong @bobadair
|
||||||
|
/bundles/org.openhab.binding.luxtronikheatpump/ @sgiehl
|
||||||
/bundles/org.openhab.binding.magentatv/ @markus7017
|
/bundles/org.openhab.binding.magentatv/ @markus7017
|
||||||
/bundles/org.openhab.binding.mail/ @openhab/add-ons-maintainers
|
/bundles/org.openhab.binding.mail/ @openhab/add-ons-maintainers
|
||||||
/bundles/org.openhab.binding.max/ @marcelrv
|
/bundles/org.openhab.binding.max/ @marcelrv
|
||||||
|
@ -706,6 +706,11 @@
|
|||||||
<artifactId>org.openhab.binding.lutron</artifactId>
|
<artifactId>org.openhab.binding.lutron</artifactId>
|
||||||
<version>${project.version}</version>
|
<version>${project.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.openhab.addons.bundles</groupId>
|
||||||
|
<artifactId>org.openhab.binding.luxtronikheatpump</artifactId>
|
||||||
|
<version>${project.version}</version>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.openhab.addons.bundles</groupId>
|
<groupId>org.openhab.addons.bundles</groupId>
|
||||||
<artifactId>org.openhab.binding.magentatv</artifactId>
|
<artifactId>org.openhab.binding.magentatv</artifactId>
|
||||||
|
13
bundles/org.openhab.binding.luxtronikheatpump/NOTICE
Normal file
13
bundles/org.openhab.binding.luxtronikheatpump/NOTICE
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
This content is produced and maintained by the openHAB project.
|
||||||
|
|
||||||
|
* Project home: https://www.openhab.org
|
||||||
|
|
||||||
|
== Declared Project Licenses
|
||||||
|
|
||||||
|
This program and the accompanying materials are made available under the terms
|
||||||
|
of the Eclipse Public License 2.0 which is available at
|
||||||
|
https://www.eclipse.org/legal/epl-2.0/.
|
||||||
|
|
||||||
|
== Source Code
|
||||||
|
|
||||||
|
https://github.com/openhab/openhab-addons
|
334
bundles/org.openhab.binding.luxtronikheatpump/README.md
Normal file
334
bundles/org.openhab.binding.luxtronikheatpump/README.md
Normal file
@ -0,0 +1,334 @@
|
|||||||
|
# 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)
|
17
bundles/org.openhab.binding.luxtronikheatpump/pom.xml
Normal file
17
bundles/org.openhab.binding.luxtronikheatpump/pom.xml
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<parent>
|
||||||
|
<groupId>org.openhab.addons.bundles</groupId>
|
||||||
|
<artifactId>org.openhab.addons.reactor.bundles</artifactId>
|
||||||
|
<version>3.1.0-SNAPSHOT</version>
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
<artifactId>org.openhab.binding.luxtronikheatpump</artifactId>
|
||||||
|
|
||||||
|
<name>openHAB Add-ons :: Bundles :: Luxtronik Heatpump Binding</name>
|
||||||
|
|
||||||
|
</project>
|
@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<features name="org.openhab.binding.luxtronikheatpump-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.4.0">
|
||||||
|
<repository>mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/features</repository>
|
||||||
|
|
||||||
|
<feature name="openhab-binding-luxtronikheatpump" description="LuxtronikHeatpump Binding" version="${project.version}">
|
||||||
|
<feature>openhab-runtime-base</feature>
|
||||||
|
<bundle start-level="80">mvn:org.openhab.addons.bundles/org.openhab.binding.luxtronikheatpump/${project.version}</bundle>
|
||||||
|
</feature>
|
||||||
|
</features>
|
@ -0,0 +1,274 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) 2010-2021 Contributors to the openHAB project
|
||||||
|
*
|
||||||
|
* See the NOTICE file(s) distributed with this work for additional
|
||||||
|
* information.
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Public License 2.0 which is available at
|
||||||
|
* http://www.eclipse.org/legal/epl-2.0
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: EPL-2.0
|
||||||
|
*/
|
||||||
|
package org.openhab.binding.luxtronikheatpump.internal;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.time.DateTimeException;
|
||||||
|
import java.time.Instant;
|
||||||
|
import java.time.ZoneId;
|
||||||
|
|
||||||
|
import javax.measure.Unit;
|
||||||
|
|
||||||
|
import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||||
|
import org.eclipse.jdt.annotation.Nullable;
|
||||||
|
import org.openhab.binding.luxtronikheatpump.internal.enums.HeatpumpChannel;
|
||||||
|
import org.openhab.binding.luxtronikheatpump.internal.enums.HeatpumpType;
|
||||||
|
import org.openhab.core.items.Item;
|
||||||
|
import org.openhab.core.library.items.DateTimeItem;
|
||||||
|
import org.openhab.core.library.items.NumberItem;
|
||||||
|
import org.openhab.core.library.items.SwitchItem;
|
||||||
|
import org.openhab.core.library.types.DateTimeType;
|
||||||
|
import org.openhab.core.library.types.DecimalType;
|
||||||
|
import org.openhab.core.library.types.OnOffType;
|
||||||
|
import org.openhab.core.library.types.QuantityType;
|
||||||
|
import org.openhab.core.library.types.StringType;
|
||||||
|
import org.openhab.core.library.unit.SIUnits;
|
||||||
|
import org.openhab.core.library.unit.Units;
|
||||||
|
import org.openhab.core.scheduler.SchedulerRunnable;
|
||||||
|
import org.openhab.core.thing.Thing;
|
||||||
|
import org.openhab.core.types.State;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The {@link ChannelUpdaterJob} updates all channel values
|
||||||
|
*
|
||||||
|
* @author Stefan Giehl - Initial contribution
|
||||||
|
*/
|
||||||
|
@NonNullByDefault
|
||||||
|
public class ChannelUpdaterJob implements SchedulerRunnable, Runnable {
|
||||||
|
|
||||||
|
private final Thing thing;
|
||||||
|
private final LuxtronikHeatpumpConfiguration config;
|
||||||
|
private final LuxtronikTranslationProvider translationProvider;
|
||||||
|
private final Logger logger = LoggerFactory.getLogger(ChannelUpdaterJob.class);
|
||||||
|
private final LuxtronikHeatpumpHandler handler;
|
||||||
|
|
||||||
|
public ChannelUpdaterJob(LuxtronikHeatpumpHandler handler, LuxtronikTranslationProvider translationProvider) {
|
||||||
|
this.translationProvider = translationProvider;
|
||||||
|
this.handler = handler;
|
||||||
|
this.thing = handler.getThing();
|
||||||
|
this.config = this.thing.getConfiguration().as(LuxtronikHeatpumpConfiguration.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Thing getThing() {
|
||||||
|
return thing;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
// connect to heatpump and check if values can be fetched
|
||||||
|
final HeatpumpConnector connector = new HeatpumpConnector(config.ipAddress, config.port);
|
||||||
|
|
||||||
|
try {
|
||||||
|
connector.read();
|
||||||
|
} catch (IOException e) {
|
||||||
|
logger.warn("Could not connect to heatpump (uuid={}, ip={}, port={}): {}", thing.getUID(), config.ipAddress,
|
||||||
|
config.port, e.getMessage());
|
||||||
|
|
||||||
|
handler.setStatusConnectionError();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
handler.setStatusOnline();
|
||||||
|
|
||||||
|
// read all available values
|
||||||
|
Integer[] heatpumpValues = connector.getValues();
|
||||||
|
|
||||||
|
// read all parameters
|
||||||
|
Integer[] heatpumpParams = connector.getParams();
|
||||||
|
Integer[] heatpumpVisibilities = connector.getVisibilities();
|
||||||
|
|
||||||
|
for (HeatpumpChannel channel : HeatpumpChannel.values()) {
|
||||||
|
try {
|
||||||
|
Integer rawValue = getChannelValue(channel, heatpumpValues, heatpumpParams, heatpumpVisibilities);
|
||||||
|
|
||||||
|
if (rawValue == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
State value = convertValueToState(rawValue, channel.getItemClass(), channel.getUnit());
|
||||||
|
|
||||||
|
if (value != null) {
|
||||||
|
handleEventType(value, channel);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
// an exception should actually not occur, but is catched nevertheless in case it does
|
||||||
|
// this ensures the remaining channels are updated even if one fails for some reason
|
||||||
|
logger.warn("An error occurred while updating the channel {}: {}", channel.getCommand(),
|
||||||
|
e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
setExtendedState(heatpumpValues, heatpumpParams, heatpumpVisibilities);
|
||||||
|
|
||||||
|
updateProperties(heatpumpValues);
|
||||||
|
}
|
||||||
|
|
||||||
|
private @Nullable State convertValueToState(Integer rawValue, Class<? extends Item> itemClass,
|
||||||
|
@Nullable Unit<?> unit) {
|
||||||
|
if (itemClass == SwitchItem.class) {
|
||||||
|
return (rawValue == 0) ? OnOffType.OFF : OnOffType.ON;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (itemClass == DateTimeItem.class && rawValue > 0) {
|
||||||
|
try {
|
||||||
|
Instant instant = Instant.ofEpochSecond(rawValue.longValue());
|
||||||
|
return new DateTimeType(instant.atZone(ZoneId.of("UTC")));
|
||||||
|
} catch (DateTimeException e) {
|
||||||
|
logger.warn("Invalid timestamp '{}' received from heatpump: {}", rawValue, e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (itemClass == NumberItem.class) {
|
||||||
|
if (unit == null) {
|
||||||
|
return new DecimalType(rawValue);
|
||||||
|
}
|
||||||
|
if (unit == SIUnits.CELSIUS || unit == Units.KELVIN || unit == Units.KILOWATT_HOUR || unit == Units.PERCENT
|
||||||
|
|| unit == Units.HOUR) {
|
||||||
|
return new QuantityType<>((double) rawValue / 10, unit);
|
||||||
|
} else if (unit == Units.HERTZ || unit == Units.SECOND) {
|
||||||
|
return new QuantityType<>((double) rawValue, unit);
|
||||||
|
} else if (unit == Units.LITRE_PER_MINUTE) {
|
||||||
|
return new QuantityType<>((double) rawValue / 60, unit);
|
||||||
|
} else if (unit == Units.BAR || unit == Units.VOLT) {
|
||||||
|
return new QuantityType<>((double) rawValue / 100, unit);
|
||||||
|
}
|
||||||
|
|
||||||
|
logger.debug("Unhandled unit {} configured for a channel.", unit);
|
||||||
|
return new DecimalType(rawValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private @Nullable Integer getChannelValue(HeatpumpChannel channel, Integer[] heatpumpValues,
|
||||||
|
Integer[] heatpumpParams, Integer[] heatpumpVisibilities) {
|
||||||
|
Integer channelId = channel.getChannelId();
|
||||||
|
|
||||||
|
if (channelId == null) {
|
||||||
|
return null; // no channel id to read defined (for channels handeled separatly)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!channel.isVisible(heatpumpVisibilities) && config.showAllChannels) {
|
||||||
|
logger.debug("Channel {} is not available. Skipped updating it", channel.getCommand());
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
Integer rawValue = null;
|
||||||
|
|
||||||
|
if (channel.isWritable()) {
|
||||||
|
rawValue = heatpumpParams[channelId];
|
||||||
|
} else {
|
||||||
|
if (heatpumpValues.length <= channelId) {
|
||||||
|
return null; // channel not available
|
||||||
|
}
|
||||||
|
rawValue = heatpumpValues[channelId];
|
||||||
|
}
|
||||||
|
|
||||||
|
return rawValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getSoftwareVersion(Integer[] heatpumpValues) {
|
||||||
|
StringBuffer softwareVersion = new StringBuffer("");
|
||||||
|
|
||||||
|
for (int i = 81; i <= 90; i++) {
|
||||||
|
if (heatpumpValues[i] > 0) {
|
||||||
|
softwareVersion.append(Character.toString(heatpumpValues[i]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return softwareVersion.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
private String transformIpAddress(int ip) {
|
||||||
|
return String.format("%d.%d.%d.%d", (ip >> 24) & 0xFF, (ip >> 16) & 0xFF, (ip >> 8) & 0xFF, ip & 0xFF);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void handleEventType(State state, HeatpumpChannel heatpumpCommandType) {
|
||||||
|
handler.updateState(heatpumpCommandType.getCommand(), state);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setExtendedState(Integer[] heatpumpValues, Integer[] heatpumpParams, Integer[] heatpumpVisibilities) {
|
||||||
|
Integer row1 = getChannelValue(HeatpumpChannel.CHANNEL_HEATPUMP_HAUPTMENUSTATUS_ZEILE1, heatpumpValues,
|
||||||
|
heatpumpParams, heatpumpVisibilities);
|
||||||
|
Integer error = getChannelValue(HeatpumpChannel.CHANNEL_HEATPUMP_ERROR_NR0, heatpumpValues, heatpumpParams,
|
||||||
|
heatpumpVisibilities);
|
||||||
|
Integer row2 = getChannelValue(HeatpumpChannel.CHANNEL_HEATPUMP_HAUPTMENUSTATUS_ZEILE2, heatpumpValues,
|
||||||
|
heatpumpParams, heatpumpVisibilities);
|
||||||
|
Integer row3 = getChannelValue(HeatpumpChannel.CHANNEL_HEATPUMP_HAUPTMENUSTATUS_ZEILE3, heatpumpValues,
|
||||||
|
heatpumpParams, heatpumpVisibilities);
|
||||||
|
Integer time = getChannelValue(HeatpumpChannel.CHANNEL_HEATPUMP_HAUPTMENUSTATUS_ZEIT, heatpumpValues,
|
||||||
|
heatpumpParams, heatpumpVisibilities);
|
||||||
|
String state = "";
|
||||||
|
|
||||||
|
if (row1 != null && row1 == 3) {
|
||||||
|
// 3 means error state
|
||||||
|
state = getStateTranslation("errorCodeX", error);
|
||||||
|
} else {
|
||||||
|
state = getStateTranslation("menuStateLine1", row1);
|
||||||
|
}
|
||||||
|
|
||||||
|
var longState = String.format("%s - %s %s - %s", state, getStateTranslation("menuStateLine2", row2),
|
||||||
|
formatHours(time), getStateTranslation("menuStateLine3", row3));
|
||||||
|
|
||||||
|
handleEventType((State) new StringType(longState), HeatpumpChannel.CHANNEL_HEATPUMP_STATUS);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateProperties(Integer[] heatpumpValues) {
|
||||||
|
String heatpumpType = HeatpumpType.fromCode(heatpumpValues[78]).getName();
|
||||||
|
|
||||||
|
setProperty("heatpumpType", heatpumpType);
|
||||||
|
|
||||||
|
// Not sure when Typ 2 should be used
|
||||||
|
// String heatpumpType2 = HeatpumpType.fromCode(heatpumpValues[230]).getName();
|
||||||
|
// setProperty("heatpumpType2", heatpumpType2);
|
||||||
|
|
||||||
|
setProperty("softwareVersion", getSoftwareVersion(heatpumpValues));
|
||||||
|
setProperty("ipAddress", transformIpAddress(heatpumpValues[91]));
|
||||||
|
setProperty("subnetMask", transformIpAddress(heatpumpValues[92]));
|
||||||
|
setProperty("broadcastAddress", transformIpAddress(heatpumpValues[93]));
|
||||||
|
setProperty("gateway", transformIpAddress(heatpumpValues[94]));
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getStateTranslation(String name, @Nullable Integer option) {
|
||||||
|
if (option == null) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
String translation = translationProvider
|
||||||
|
.getText("channel-type.luxtronikheatpump." + name + ".state.option." + option);
|
||||||
|
return translation == null ? "" : translation;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setProperty(String name, String value) {
|
||||||
|
handler.updateProperty(name, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String formatHours(@Nullable Integer value) {
|
||||||
|
String returnValue = "";
|
||||||
|
|
||||||
|
if (value == null) {
|
||||||
|
return returnValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
int intVal = value;
|
||||||
|
|
||||||
|
returnValue += String.format("%02d:", intVal / 3600);
|
||||||
|
intVal %= 3600;
|
||||||
|
returnValue += String.format("%02d:", intVal / 60);
|
||||||
|
intVal %= 60;
|
||||||
|
returnValue += String.format("%02d", intVal);
|
||||||
|
return returnValue;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,208 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) 2010-2021 Contributors to the openHAB project
|
||||||
|
*
|
||||||
|
* See the NOTICE file(s) distributed with this work for additional
|
||||||
|
* information.
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Public License 2.0 which is available at
|
||||||
|
* http://www.eclipse.org/legal/epl-2.0
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: EPL-2.0
|
||||||
|
*/
|
||||||
|
package org.openhab.binding.luxtronikheatpump.internal;
|
||||||
|
|
||||||
|
import java.io.DataInputStream;
|
||||||
|
import java.io.DataOutputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.io.OutputStream;
|
||||||
|
import java.net.Socket;
|
||||||
|
import java.net.UnknownHostException;
|
||||||
|
|
||||||
|
import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The {@link HeatpumpConnector} reads / writes internal states of a Heat pump with Luxtronik control.
|
||||||
|
*
|
||||||
|
* Based on HeatpumpConnector class of novelanheatpump binding
|
||||||
|
*
|
||||||
|
* @author Stefan Giehl - Initial contribution
|
||||||
|
*/
|
||||||
|
@NonNullByDefault
|
||||||
|
public class HeatpumpConnector {
|
||||||
|
|
||||||
|
private static final int SOCKET_PARAM_WRITE_PARAMS = 3002;
|
||||||
|
private static final int SOCKET_PARAM_READ_PARAMS = 3003;
|
||||||
|
private static final int SOCKET_PARAM_READ_VALUES = 3004;
|
||||||
|
private static final int SOCKET_PARAM_READ_VISIBILITIES = 3005;
|
||||||
|
|
||||||
|
private final Logger logger = LoggerFactory.getLogger(HeatpumpConnector.class);
|
||||||
|
|
||||||
|
private String serverIp;
|
||||||
|
private int serverPort;
|
||||||
|
private Integer[] heatpumpValues = new Integer[0];
|
||||||
|
private Integer[] heatpumpParams = new Integer[0];
|
||||||
|
private Integer[] heatpumpVisibilities = new Integer[0];
|
||||||
|
|
||||||
|
public HeatpumpConnector(String serverIp, int serverPort) {
|
||||||
|
this.serverIp = serverIp;
|
||||||
|
this.serverPort = serverPort;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* reads all values from the heatpump via network
|
||||||
|
*
|
||||||
|
* @throws UnknownHostException indicate that the IP address of a host could not be determined.
|
||||||
|
* @throws IOException indicate that no data can be read from the heat pump
|
||||||
|
*/
|
||||||
|
public void read() throws UnknownHostException, IOException {
|
||||||
|
try (Socket sock = new Socket(serverIp, serverPort)) {
|
||||||
|
InputStream in = sock.getInputStream();
|
||||||
|
OutputStream out = sock.getOutputStream();
|
||||||
|
DataInputStream datain = new DataInputStream(in);
|
||||||
|
DataOutputStream dataout = new DataOutputStream(out);
|
||||||
|
|
||||||
|
heatpumpValues = readInt(datain, dataout, SOCKET_PARAM_READ_VALUES);
|
||||||
|
|
||||||
|
// workaround for thermal energies
|
||||||
|
// the thermal energies can be unreasonably high in some cases, probably due to a sign bug in the firmware
|
||||||
|
// trying to correct this issue here
|
||||||
|
for (int i = 151; i <= 154; i++) {
|
||||||
|
if (heatpumpValues[i] >= 214748364) {
|
||||||
|
heatpumpValues[i] -= 214748364;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
heatpumpParams = readInt(datain, dataout, SOCKET_PARAM_READ_PARAMS);
|
||||||
|
heatpumpVisibilities = readInt(datain, dataout, SOCKET_PARAM_READ_VISIBILITIES);
|
||||||
|
|
||||||
|
datain.close();
|
||||||
|
dataout.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* read the parameters of the heat pump
|
||||||
|
*/
|
||||||
|
public Integer[] getParams() {
|
||||||
|
return heatpumpParams;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* set a parameter of the heat pump
|
||||||
|
*
|
||||||
|
* @param param
|
||||||
|
* @param value
|
||||||
|
* @throws IOException indicate that no data can be sent to the heat pump
|
||||||
|
*/
|
||||||
|
public boolean setParam(int param, int value) throws IOException {
|
||||||
|
try (Socket sock = new Socket(serverIp, serverPort)) {
|
||||||
|
InputStream in = sock.getInputStream();
|
||||||
|
OutputStream out = sock.getOutputStream();
|
||||||
|
DataInputStream datain = new DataInputStream(in);
|
||||||
|
DataOutputStream dataout = new DataOutputStream(out);
|
||||||
|
|
||||||
|
while (datain.available() > 0) {
|
||||||
|
datain.readByte();
|
||||||
|
}
|
||||||
|
|
||||||
|
// write command, param and value to heatpump socket
|
||||||
|
dataout.writeInt(SOCKET_PARAM_WRITE_PARAMS);
|
||||||
|
dataout.writeInt(param);
|
||||||
|
dataout.writeInt(value);
|
||||||
|
dataout.flush();
|
||||||
|
|
||||||
|
// first integer on socket output should represent the command
|
||||||
|
int cmd = datain.readInt();
|
||||||
|
datain.readInt();
|
||||||
|
|
||||||
|
datain.close();
|
||||||
|
dataout.close();
|
||||||
|
|
||||||
|
if (cmd != SOCKET_PARAM_WRITE_PARAMS) {
|
||||||
|
logger.debug("Couldn't write parameter {} with value {} to heat pump.", param, value);
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
logger.debug("Parameter {} with value {} successfully written to heat pump.", param, value);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the internal states of the heat pump
|
||||||
|
*
|
||||||
|
* @return a array with all internal data of the heat pump
|
||||||
|
*/
|
||||||
|
public Integer[] getValues() {
|
||||||
|
return heatpumpValues;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the internal visibilities of the heat pump
|
||||||
|
*
|
||||||
|
* @return a array with all internal visibilities of the heat pump
|
||||||
|
*/
|
||||||
|
public Integer[] getVisibilities() {
|
||||||
|
return heatpumpVisibilities;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reads all available values for the given parameter from socket
|
||||||
|
*
|
||||||
|
* @param datain data input stream of socket connection
|
||||||
|
* @param dataout data output stream of socket connection
|
||||||
|
* @param parameter int command to read from socket
|
||||||
|
* @return an array with all values returned from heat pump socket
|
||||||
|
* @throws IOException indicate that no data can be read from the heat pump
|
||||||
|
*/
|
||||||
|
private Integer[] readInt(DataInputStream datain, DataOutputStream dataout, int parameter) throws IOException {
|
||||||
|
Integer[] result = null;
|
||||||
|
while (datain.available() > 0) {
|
||||||
|
datain.readByte();
|
||||||
|
}
|
||||||
|
|
||||||
|
// to receive values we first need to write the command followed by four 0 byte values to the socket
|
||||||
|
dataout.writeInt(parameter);
|
||||||
|
dataout.writeInt(0);
|
||||||
|
dataout.flush();
|
||||||
|
|
||||||
|
// the first integer received from socket should match the written command
|
||||||
|
if (datain.readInt() != parameter) {
|
||||||
|
return new Integer[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (parameter == SOCKET_PARAM_READ_VALUES) {
|
||||||
|
// when reading values the next integer represents some kind of status
|
||||||
|
datain.readInt();
|
||||||
|
}
|
||||||
|
|
||||||
|
// the next integer value should define the number of values that are following
|
||||||
|
// Currently the list or parameters is the longest list and contains around 1050 values
|
||||||
|
// To avoid possible (memory) problems in case the returned number would be unexpected high we limit it to 2000
|
||||||
|
int arraylength = Integer.min(datain.readInt(), 2000);
|
||||||
|
|
||||||
|
logger.debug("Found {} values for {}", arraylength, parameter);
|
||||||
|
|
||||||
|
result = new Integer[arraylength];
|
||||||
|
|
||||||
|
// Note: the visibility params are returned as single byte values
|
||||||
|
// probably as the are used as boolean values (0/1) only
|
||||||
|
if (parameter == SOCKET_PARAM_READ_VISIBILITIES) {
|
||||||
|
byte[] data = datain.readNBytes(arraylength);
|
||||||
|
for (int i = 0; i < data.length; i++) {
|
||||||
|
result[i] = (int) data[i];
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < arraylength; i++) {
|
||||||
|
result[i] = datain.readInt();
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,30 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) 2010-2021 Contributors to the openHAB project
|
||||||
|
*
|
||||||
|
* See the NOTICE file(s) distributed with this work for additional
|
||||||
|
* information.
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Public License 2.0 which is available at
|
||||||
|
* http://www.eclipse.org/legal/epl-2.0
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: EPL-2.0
|
||||||
|
*/
|
||||||
|
package org.openhab.binding.luxtronikheatpump.internal;
|
||||||
|
|
||||||
|
import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||||
|
import org.openhab.core.thing.ThingTypeUID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The {@link LuxtronikHeatpumpBindingConstants} class defines common constants, which are
|
||||||
|
* used across the whole binding.
|
||||||
|
*
|
||||||
|
* @author Stefan Giehl - Initial contribution
|
||||||
|
*/
|
||||||
|
@NonNullByDefault
|
||||||
|
public class LuxtronikHeatpumpBindingConstants {
|
||||||
|
|
||||||
|
public static final String BINDING_ID = "luxtronikheatpump";
|
||||||
|
|
||||||
|
public static final ThingTypeUID THING_TYPE_HEATPUMP = new ThingTypeUID(BINDING_ID, "heatpump");
|
||||||
|
}
|
@ -0,0 +1,39 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) 2010-2021 Contributors to the openHAB project
|
||||||
|
*
|
||||||
|
* See the NOTICE file(s) distributed with this work for additional
|
||||||
|
* information.
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Public License 2.0 which is available at
|
||||||
|
* http://www.eclipse.org/legal/epl-2.0
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: EPL-2.0
|
||||||
|
*/
|
||||||
|
package org.openhab.binding.luxtronikheatpump.internal;
|
||||||
|
|
||||||
|
import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The {@link LuxtronikHeatpumpConfiguration} class contains fields mapping thing configuration parameters.
|
||||||
|
*
|
||||||
|
* @author Stefan Giehl - Initial contribution
|
||||||
|
*/
|
||||||
|
@NonNullByDefault
|
||||||
|
public class LuxtronikHeatpumpConfiguration {
|
||||||
|
|
||||||
|
public String ipAddress = "";
|
||||||
|
public int port = 8889;
|
||||||
|
public int refresh = 60000;
|
||||||
|
public boolean showAllChannels = false;
|
||||||
|
|
||||||
|
public boolean isValid() {
|
||||||
|
return !ipAddress.isEmpty() && port > 0 && refresh > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return new StringBuilder().append("[IP=").append(ipAddress).append(",port=").append(port).append(",refresh=")
|
||||||
|
.append(refresh).append(",showAllChannels=").append(showAllChannels).append("]").toString();
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,335 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) 2010-2021 Contributors to the openHAB project
|
||||||
|
*
|
||||||
|
* See the NOTICE file(s) distributed with this work for additional
|
||||||
|
* information.
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Public License 2.0 which is available at
|
||||||
|
* http://www.eclipse.org/legal/epl-2.0
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: EPL-2.0
|
||||||
|
*/
|
||||||
|
package org.openhab.binding.luxtronikheatpump.internal;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.concurrent.ScheduledFuture;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
import javax.measure.Unit;
|
||||||
|
|
||||||
|
import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||||
|
import org.openhab.binding.luxtronikheatpump.internal.enums.HeatpumpChannel;
|
||||||
|
import org.openhab.binding.luxtronikheatpump.internal.enums.HeatpumpCoolingOperationMode;
|
||||||
|
import org.openhab.binding.luxtronikheatpump.internal.enums.HeatpumpOperationMode;
|
||||||
|
import org.openhab.binding.luxtronikheatpump.internal.exceptions.InvalidChannelException;
|
||||||
|
import org.openhab.binding.luxtronikheatpump.internal.exceptions.InvalidOperationModeException;
|
||||||
|
import org.openhab.core.config.core.Configuration;
|
||||||
|
import org.openhab.core.library.types.DecimalType;
|
||||||
|
import org.openhab.core.library.types.OnOffType;
|
||||||
|
import org.openhab.core.library.types.QuantityType;
|
||||||
|
import org.openhab.core.thing.Channel;
|
||||||
|
import org.openhab.core.thing.ChannelUID;
|
||||||
|
import org.openhab.core.thing.Thing;
|
||||||
|
import org.openhab.core.thing.ThingStatus;
|
||||||
|
import org.openhab.core.thing.ThingStatusDetail;
|
||||||
|
import org.openhab.core.thing.binding.BaseThingHandler;
|
||||||
|
import org.openhab.core.thing.binding.ThingHandlerCallback;
|
||||||
|
import org.openhab.core.thing.binding.builder.ThingBuilder;
|
||||||
|
import org.openhab.core.thing.type.ChannelTypeUID;
|
||||||
|
import org.openhab.core.types.Command;
|
||||||
|
import org.openhab.core.types.RefreshType;
|
||||||
|
import org.openhab.core.types.State;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The {@link LuxtronikHeatpumpHandler} is responsible for handling commands, which are
|
||||||
|
* sent to one of the channels.
|
||||||
|
*
|
||||||
|
* @author Stefan Giehl - Initial contribution
|
||||||
|
*/
|
||||||
|
@NonNullByDefault
|
||||||
|
public class LuxtronikHeatpumpHandler extends BaseThingHandler {
|
||||||
|
|
||||||
|
private final Logger logger = LoggerFactory.getLogger(LuxtronikHeatpumpHandler.class);
|
||||||
|
private final Set<ScheduledFuture<?>> scheduledFutures = new HashSet<>();
|
||||||
|
private static final int RETRY_INTERVAL_SEC = 60;
|
||||||
|
private boolean tiggerChannelUpdate = false;
|
||||||
|
private final LuxtronikTranslationProvider translationProvider;
|
||||||
|
private LuxtronikHeatpumpConfiguration config;
|
||||||
|
|
||||||
|
public LuxtronikHeatpumpHandler(Thing thing, LuxtronikTranslationProvider translationProvider) {
|
||||||
|
super(thing);
|
||||||
|
this.translationProvider = translationProvider;
|
||||||
|
config = new LuxtronikHeatpumpConfiguration();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateState(String channelID, State state) {
|
||||||
|
super.updateState(channelID, state);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateProperty(String name, String value) {
|
||||||
|
super.updateProperty(name, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStatusConnectionError() {
|
||||||
|
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR,
|
||||||
|
"couldn't establish network connection [host '" + config.ipAddress + "']");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStatusOnline() {
|
||||||
|
updateStatus(ThingStatus.ONLINE);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleCommand(ChannelUID channelUID, Command command) {
|
||||||
|
String channelId = channelUID.getIdWithoutGroup();
|
||||||
|
logger.debug("Handle command '{}' for channel {}", command, channelId);
|
||||||
|
if (command == RefreshType.REFRESH) {
|
||||||
|
// ignore resresh command as channels will be updated automatically
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
HeatpumpChannel channel;
|
||||||
|
|
||||||
|
try {
|
||||||
|
channel = HeatpumpChannel.fromString(channelId);
|
||||||
|
} catch (InvalidChannelException e) {
|
||||||
|
logger.debug("Channel '{}' could not be found for thing {}", channelId, thing.getUID());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!channel.isWritable()) {
|
||||||
|
logger.debug("Channel {} is a read-only channel and cannot handle command '{}'", channelId, command);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (command instanceof QuantityType) {
|
||||||
|
QuantityType<?> value = (QuantityType<?>) command;
|
||||||
|
|
||||||
|
Unit<?> unit = channel.getUnit();
|
||||||
|
if (unit != null) {
|
||||||
|
value = value.toUnit(unit);
|
||||||
|
}
|
||||||
|
|
||||||
|
command = new DecimalType(value.floatValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (command instanceof OnOffType) {
|
||||||
|
command = ((OnOffType) command) == OnOffType.ON ? new DecimalType(1) : DecimalType.ZERO;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(command instanceof DecimalType)) {
|
||||||
|
logger.warn("Heatpump operation for item {} must be from type: {}. Received {}", channel.getCommand(),
|
||||||
|
DecimalType.class.getSimpleName(), command.getClass());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Integer param = channel.getChannelId();
|
||||||
|
Integer value = null;
|
||||||
|
|
||||||
|
switch (channel) {
|
||||||
|
case CHANNEL_EINST_BWTDI_AKT_MO:
|
||||||
|
case CHANNEL_EINST_BWTDI_AKT_DI:
|
||||||
|
case CHANNEL_EINST_BWTDI_AKT_MI:
|
||||||
|
case CHANNEL_EINST_BWTDI_AKT_DO:
|
||||||
|
case CHANNEL_EINST_BWTDI_AKT_FR:
|
||||||
|
case CHANNEL_EINST_BWTDI_AKT_SA:
|
||||||
|
case CHANNEL_EINST_BWTDI_AKT_SO:
|
||||||
|
case CHANNEL_EINST_BWTDI_AKT_AL:
|
||||||
|
value = ((DecimalType) command).intValue();
|
||||||
|
break;
|
||||||
|
case CHANNEL_BA_HZ_AKT:
|
||||||
|
case CHANNEL_BA_BW_AKT:
|
||||||
|
value = ((DecimalType) command).intValue();
|
||||||
|
try {
|
||||||
|
// validate the value is valid
|
||||||
|
HeatpumpOperationMode.fromValue(value);
|
||||||
|
} catch (InvalidOperationModeException e) {
|
||||||
|
logger.warn("Heatpump {} mode recevieved invalid value {}: {}", channel.getCommand(), value,
|
||||||
|
e.getMessage());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case CHANNEL_EINST_WK_AKT:
|
||||||
|
case CHANNEL_EINST_BWS_AKT:
|
||||||
|
case CHANNEL_EINST_KUCFTL_AKT:
|
||||||
|
case CHANNEL_SOLLWERT_KUCFTL_AKT:
|
||||||
|
float temperature = ((DecimalType) command).floatValue();
|
||||||
|
value = (int) (temperature * 10);
|
||||||
|
break;
|
||||||
|
case CHANNEL_EINST_BWSTYP_AKT:
|
||||||
|
value = ((DecimalType) command).intValue();
|
||||||
|
try {
|
||||||
|
// validate the value is valid
|
||||||
|
HeatpumpCoolingOperationMode.fromValue(value);
|
||||||
|
} catch (InvalidOperationModeException e) {
|
||||||
|
logger.warn("Heatpump {} mode recevieved invalid value {}: {}", channel.getCommand(), value,
|
||||||
|
e.getMessage());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case CHANNEL_EINST_KUHL_ZEIT_EIN_AKT:
|
||||||
|
case CHANNEL_EINST_KUHL_ZEIT_AUS_AKT:
|
||||||
|
float hours = ((DecimalType) command).floatValue();
|
||||||
|
value = (int) (hours * 10);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
logger.debug("Received unknown channel {}", channelId);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (param != null && value != null) {
|
||||||
|
if (sendParamToHeatpump(param, value)) {
|
||||||
|
logger.debug("Heat pump mode {} set to {}.", channel.getCommand(), value);
|
||||||
|
} else {
|
||||||
|
logger.warn("Failed setting heat pump mode {} to {}", channel.getCommand(), value);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
logger.warn("No valid value given for Heatpump operation {}", channel.getCommand());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void initialize() {
|
||||||
|
config = getConfigAs(LuxtronikHeatpumpConfiguration.class);
|
||||||
|
|
||||||
|
if (!config.isValid()) {
|
||||||
|
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR,
|
||||||
|
"At least one mandatory configuration field is empty");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
updateStatus(ThingStatus.UNKNOWN);
|
||||||
|
|
||||||
|
synchronized (scheduledFutures) {
|
||||||
|
ScheduledFuture<?> future = scheduler.scheduleWithFixedDelay(this::internalInitialize, 0,
|
||||||
|
RETRY_INTERVAL_SEC, TimeUnit.SECONDS);
|
||||||
|
scheduledFutures.add(future);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void internalInitialize() {
|
||||||
|
// connect to heatpump and check if values can be fetched
|
||||||
|
HeatpumpConnector connector = new HeatpumpConnector(config.ipAddress, config.port);
|
||||||
|
|
||||||
|
try {
|
||||||
|
connector.read();
|
||||||
|
} catch (IOException e) {
|
||||||
|
setStatusConnectionError();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// stop trying to establish a connection for initializing the thing once it was established
|
||||||
|
stopJobs();
|
||||||
|
|
||||||
|
// When thing is initialized the first time or and update was triggered, set the available channels
|
||||||
|
if (thing.getProperties().isEmpty() || tiggerChannelUpdate) {
|
||||||
|
updateChannels(connector);
|
||||||
|
}
|
||||||
|
|
||||||
|
setStatusOnline();
|
||||||
|
restartJobs();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void updateConfiguration(Configuration configuration) {
|
||||||
|
tiggerChannelUpdate = true;
|
||||||
|
super.updateConfiguration(configuration);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void dispose() {
|
||||||
|
stopJobs();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateChannels(HeatpumpConnector connector) {
|
||||||
|
Integer[] visibilityValues = connector.getVisibilities();
|
||||||
|
Integer[] heatpumpValues = connector.getValues();
|
||||||
|
Integer[] heatpumpParams = connector.getParams();
|
||||||
|
|
||||||
|
logger.debug("Updating available channels for thing {}", thing.getUID());
|
||||||
|
|
||||||
|
final ThingHandlerCallback callback = getCallback();
|
||||||
|
if (callback == null) {
|
||||||
|
logger.debug("ThingHandlerCallback is null. Skipping migration of last_update channel.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ThingBuilder thingBuilder = editThing();
|
||||||
|
List<Channel> channelList = new ArrayList<>();
|
||||||
|
|
||||||
|
// clear channel list
|
||||||
|
thingBuilder.withoutChannels(thing.getChannels());
|
||||||
|
|
||||||
|
// create list with available channels
|
||||||
|
for (HeatpumpChannel channel : HeatpumpChannel.values()) {
|
||||||
|
Integer channelId = channel.getChannelId();
|
||||||
|
int length = channel.isWritable() ? heatpumpParams.length : heatpumpValues.length;
|
||||||
|
ChannelUID channelUID = new ChannelUID(thing.getUID(), channel.getCommand());
|
||||||
|
ChannelTypeUID channelTypeUID = new ChannelTypeUID(LuxtronikHeatpumpBindingConstants.BINDING_ID,
|
||||||
|
channel.getCommand());
|
||||||
|
if ((channelId != null && length <= channelId)
|
||||||
|
|| (config.showAllChannels == Boolean.FALSE && !channel.isVisible(visibilityValues))) {
|
||||||
|
logger.debug("Hiding channel {}", channel.getCommand());
|
||||||
|
} else {
|
||||||
|
channelList.add(callback.createChannelBuilder(channelUID, channelTypeUID).build());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
thingBuilder.withChannels(channelList);
|
||||||
|
|
||||||
|
updateThing(thingBuilder.build());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void restartJobs() {
|
||||||
|
stopJobs();
|
||||||
|
|
||||||
|
synchronized (scheduledFutures) {
|
||||||
|
if (getThing().getStatus() == ThingStatus.ONLINE) {
|
||||||
|
// Repeat channel update job every configured seconds
|
||||||
|
Runnable channelUpdaterJob = new ChannelUpdaterJob(this, translationProvider);
|
||||||
|
ScheduledFuture<?> future = scheduler.scheduleWithFixedDelay(channelUpdaterJob, 0, config.refresh,
|
||||||
|
TimeUnit.SECONDS);
|
||||||
|
scheduledFutures.add(future);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void stopJobs() {
|
||||||
|
synchronized (scheduledFutures) {
|
||||||
|
for (ScheduledFuture<?> future : scheduledFutures) {
|
||||||
|
if (!future.isDone()) {
|
||||||
|
future.cancel(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
scheduledFutures.clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set a parameter on the Luxtronik heatpump.
|
||||||
|
*
|
||||||
|
* @param param
|
||||||
|
* @param value
|
||||||
|
*/
|
||||||
|
private boolean sendParamToHeatpump(int param, int value) {
|
||||||
|
HeatpumpConnector connector = new HeatpumpConnector(config.ipAddress, config.port);
|
||||||
|
|
||||||
|
try {
|
||||||
|
return connector.setParam(param, value);
|
||||||
|
} catch (IOException e) {
|
||||||
|
setStatusConnectionError();
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,69 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) 2010-2021 Contributors to the openHAB project
|
||||||
|
*
|
||||||
|
* See the NOTICE file(s) distributed with this work for additional
|
||||||
|
* information.
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Public License 2.0 which is available at
|
||||||
|
* http://www.eclipse.org/legal/epl-2.0
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: EPL-2.0
|
||||||
|
*/
|
||||||
|
package org.openhab.binding.luxtronikheatpump.internal;
|
||||||
|
|
||||||
|
import static org.openhab.binding.luxtronikheatpump.internal.LuxtronikHeatpumpBindingConstants.*;
|
||||||
|
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||||
|
import org.eclipse.jdt.annotation.Nullable;
|
||||||
|
import org.openhab.core.i18n.LocaleProvider;
|
||||||
|
import org.openhab.core.i18n.TranslationProvider;
|
||||||
|
import org.openhab.core.thing.Thing;
|
||||||
|
import org.openhab.core.thing.ThingTypeUID;
|
||||||
|
import org.openhab.core.thing.binding.BaseThingHandlerFactory;
|
||||||
|
import org.openhab.core.thing.binding.ThingHandler;
|
||||||
|
import org.openhab.core.thing.binding.ThingHandlerFactory;
|
||||||
|
import org.osgi.service.component.ComponentContext;
|
||||||
|
import org.osgi.service.component.annotations.Activate;
|
||||||
|
import org.osgi.service.component.annotations.Component;
|
||||||
|
import org.osgi.service.component.annotations.Reference;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The {@link LuxtronikHeatpumpHandlerFactory} is responsible for creating things and thing
|
||||||
|
* handlers.
|
||||||
|
*
|
||||||
|
* @author Stefan Giehl - Initial contribution
|
||||||
|
*/
|
||||||
|
@NonNullByDefault
|
||||||
|
@Component(configurationPid = "binding.luxtronikheatpump", service = ThingHandlerFactory.class)
|
||||||
|
public class LuxtronikHeatpumpHandlerFactory extends BaseThingHandlerFactory {
|
||||||
|
|
||||||
|
private static final Set<ThingTypeUID> SUPPORTED_THING_TYPES_UIDS = Set.of(THING_TYPE_HEATPUMP);
|
||||||
|
private final LuxtronikTranslationProvider translationProvider;
|
||||||
|
|
||||||
|
@Activate
|
||||||
|
public LuxtronikHeatpumpHandlerFactory(final @Reference LocaleProvider localeProvider,
|
||||||
|
final @Reference TranslationProvider i18nProvider, ComponentContext componentContext) {
|
||||||
|
super.activate(componentContext);
|
||||||
|
this.translationProvider = new LuxtronikTranslationProvider(getBundleContext().getBundle(), i18nProvider,
|
||||||
|
localeProvider);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean supportsThingType(ThingTypeUID thingTypeUID) {
|
||||||
|
return SUPPORTED_THING_TYPES_UIDS.contains(thingTypeUID);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected @Nullable ThingHandler createHandler(Thing thing) {
|
||||||
|
ThingTypeUID thingTypeUID = thing.getThingTypeUID();
|
||||||
|
|
||||||
|
if (THING_TYPE_HEATPUMP.equals(thingTypeUID)) {
|
||||||
|
return new LuxtronikHeatpumpHandler(thing, translationProvider);
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,54 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) 2010-2021 Contributors to the openHAB project
|
||||||
|
*
|
||||||
|
* See the NOTICE file(s) distributed with this work for additional
|
||||||
|
* information.
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Public License 2.0 which is available at
|
||||||
|
* http://www.eclipse.org/legal/epl-2.0
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: EPL-2.0
|
||||||
|
*/
|
||||||
|
package org.openhab.binding.luxtronikheatpump.internal;
|
||||||
|
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
|
import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||||
|
import org.eclipse.jdt.annotation.Nullable;
|
||||||
|
import org.openhab.core.i18n.LocaleProvider;
|
||||||
|
import org.openhab.core.i18n.TranslationProvider;
|
||||||
|
import org.osgi.framework.Bundle;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@link LuxtronikTranslationProvider} provides i18n message lookup
|
||||||
|
*
|
||||||
|
* @author Stefan Giehl - Initial contribution
|
||||||
|
*/
|
||||||
|
@NonNullByDefault
|
||||||
|
public class LuxtronikTranslationProvider {
|
||||||
|
|
||||||
|
private final Bundle bundle;
|
||||||
|
private final TranslationProvider i18nProvider;
|
||||||
|
private final LocaleProvider localeProvider;
|
||||||
|
|
||||||
|
public LuxtronikTranslationProvider(Bundle bundle, TranslationProvider i18nProvider,
|
||||||
|
LocaleProvider localeProvider) {
|
||||||
|
this.bundle = bundle;
|
||||||
|
this.i18nProvider = i18nProvider;
|
||||||
|
this.localeProvider = localeProvider;
|
||||||
|
}
|
||||||
|
|
||||||
|
public @Nullable String getText(String key, @Nullable Object... arguments) {
|
||||||
|
try {
|
||||||
|
Locale locale = localeProvider.getLocale();
|
||||||
|
return i18nProvider.getText(bundle, key, getDefaultText(key), locale, arguments);
|
||||||
|
} catch (IllegalArgumentException e) {
|
||||||
|
return "Can't to load message for key " + key;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public @Nullable String getDefaultText(String key) {
|
||||||
|
return i18nProvider.getText(bundle, key, key, Locale.ENGLISH);
|
||||||
|
}
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,47 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) 2010-2021 Contributors to the openHAB project
|
||||||
|
*
|
||||||
|
* See the NOTICE file(s) distributed with this work for additional
|
||||||
|
* information.
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Public License 2.0 which is available at
|
||||||
|
* http://www.eclipse.org/legal/epl-2.0
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: EPL-2.0
|
||||||
|
*/
|
||||||
|
package org.openhab.binding.luxtronikheatpump.internal.enums;
|
||||||
|
|
||||||
|
import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||||
|
import org.openhab.binding.luxtronikheatpump.internal.exceptions.InvalidOperationModeException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents all heat pump cooling operation modes
|
||||||
|
*
|
||||||
|
* @author Stefan Giehl - Initial contribution
|
||||||
|
*/
|
||||||
|
@NonNullByDefault
|
||||||
|
public enum HeatpumpCoolingOperationMode {
|
||||||
|
AUTOMATIC(1),
|
||||||
|
OFF(0);
|
||||||
|
|
||||||
|
private int value;
|
||||||
|
|
||||||
|
private HeatpumpCoolingOperationMode(int value) {
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getValue() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HeatpumpCoolingOperationMode fromValue(int value) throws InvalidOperationModeException {
|
||||||
|
for (HeatpumpCoolingOperationMode mode : HeatpumpCoolingOperationMode.values()) {
|
||||||
|
if (mode.value == value) {
|
||||||
|
return mode;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new InvalidOperationModeException("Invalid heat pump cooling operation mode: '" + value + "'");
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,50 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) 2010-2021 Contributors to the openHAB project
|
||||||
|
*
|
||||||
|
* See the NOTICE file(s) distributed with this work for additional
|
||||||
|
* information.
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Public License 2.0 which is available at
|
||||||
|
* http://www.eclipse.org/legal/epl-2.0
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: EPL-2.0
|
||||||
|
*/
|
||||||
|
package org.openhab.binding.luxtronikheatpump.internal.enums;
|
||||||
|
|
||||||
|
import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||||
|
import org.openhab.binding.luxtronikheatpump.internal.exceptions.InvalidOperationModeException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents all heat pump operation modes
|
||||||
|
*
|
||||||
|
* @author Stefan Giehl - Initial contribution
|
||||||
|
*/
|
||||||
|
@NonNullByDefault
|
||||||
|
public enum HeatpumpOperationMode {
|
||||||
|
AUTOMATIC(0),
|
||||||
|
OFF(4),
|
||||||
|
PARTY(2),
|
||||||
|
HOLIDAY(3),
|
||||||
|
AUXILIARY_HEATER(1);
|
||||||
|
|
||||||
|
private int value;
|
||||||
|
|
||||||
|
private HeatpumpOperationMode(int value) {
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getValue() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HeatpumpOperationMode fromValue(int value) throws InvalidOperationModeException {
|
||||||
|
for (HeatpumpOperationMode mode : HeatpumpOperationMode.values()) {
|
||||||
|
if (mode.value == value) {
|
||||||
|
return mode;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new InvalidOperationModeException("Invalid heat pump operation mode: '" + value + "'");
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,131 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) 2010-2021 Contributors to the openHAB project
|
||||||
|
*
|
||||||
|
* See the NOTICE file(s) distributed with this work for additional
|
||||||
|
* information.
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Public License 2.0 which is available at
|
||||||
|
* http://www.eclipse.org/legal/epl-2.0
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: EPL-2.0
|
||||||
|
*/
|
||||||
|
package org.openhab.binding.luxtronikheatpump.internal.enums;
|
||||||
|
|
||||||
|
import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents all heat pump types
|
||||||
|
*
|
||||||
|
* @author Stefan Giehl - Initial contribution
|
||||||
|
*/
|
||||||
|
@NonNullByDefault
|
||||||
|
public enum HeatpumpType {
|
||||||
|
TYPE_ERC(0, "ERC"),
|
||||||
|
TYPE_SW1(1, "SW1"),
|
||||||
|
TYPE_SW2(2, "SW2"),
|
||||||
|
TYPE_WW1(3, "WW1"),
|
||||||
|
TYPE_WW2(4, "WW2"),
|
||||||
|
TYPE_L1I(5, "L1I"),
|
||||||
|
TYPE_L2I(6, "L2I"),
|
||||||
|
TYPE_L1A(7, "L1A"),
|
||||||
|
TYPE_L2A(8, "L2A"),
|
||||||
|
TYPE_KSW(9, "KSW"),
|
||||||
|
TYPE_KLW(10, "KLW"),
|
||||||
|
TYPE_SWC(11, "SWC"),
|
||||||
|
TYPE_LWC(12, "LWC"),
|
||||||
|
TYPE_L2G(13, "L2G"),
|
||||||
|
TYPE_WZS(14, "WZS"),
|
||||||
|
TYPE_L1I407(15, "L1I407"),
|
||||||
|
TYPE_L2I407(16, "L2I407"),
|
||||||
|
TYPE_L1A407(17, "L1A407"),
|
||||||
|
TYPE_L2A407(18, "L2A407"),
|
||||||
|
TYPE_L2G407(19, "L2G407"),
|
||||||
|
TYPE_LWC407(20, "LWC407"),
|
||||||
|
TYPE_L1AREV(21, "L1AREV"),
|
||||||
|
TYPE_L2AREV(22, "L2AREV"),
|
||||||
|
TYPE_WWC1(23, "WWC1"),
|
||||||
|
TYPE_WWC2(24, "WWC2"),
|
||||||
|
TYPE_L2G404(25, "L2G404"),
|
||||||
|
TYPE_WZW(26, "WZW"),
|
||||||
|
TYPE_L1S(27, "L1S"),
|
||||||
|
TYPE_L1H(28, "L1H"),
|
||||||
|
TYPE_L2H(29, "L2H"),
|
||||||
|
TYPE_WZWD(30, "WZWD"),
|
||||||
|
TYPE_ERC2(31, "ERC"),
|
||||||
|
TYPE_WWB_20(40, "WWB_20"),
|
||||||
|
TYPE_LD5(41, "LD5"),
|
||||||
|
TYPE_LD7(42, "LD7"),
|
||||||
|
TYPE_SW_37_45(43, "SW 37_45"),
|
||||||
|
TYPE_SW_58_69(44, "SW 58_69"),
|
||||||
|
TYPE_SW_29_56(45, "SW 29_56"),
|
||||||
|
TYPE_LD5_230V(46, "LD5 (230V)"),
|
||||||
|
TYPE_LD7_230V(47, "LD7 (230 V)"),
|
||||||
|
TYPE_LD9(48, "LD9"),
|
||||||
|
TYPE_LD5_REV(49, "LD5 REV"),
|
||||||
|
TYPE_LD7_REV(50, "LD7 REV"),
|
||||||
|
TYPE_LD5_REV_230V(51, "LD5 REV 230V"),
|
||||||
|
TYPE_LD7_REV_230V(52, "LD7 REV 230V"),
|
||||||
|
TYPE_LD9_REV_230V(53, "LD9 REV 230V"),
|
||||||
|
TYPE_SW_291(54, "SW 291"),
|
||||||
|
TYPE_LW_SEC(55, "LW SEC"),
|
||||||
|
TYPE_HMD_2(56, "HMD 2"),
|
||||||
|
TYPE_MSW_4(57, "MSW 4"),
|
||||||
|
TYPE_MSW_6(58, "MSW 6"),
|
||||||
|
TYPE_MSW_8(59, "MSW 8"),
|
||||||
|
TYPE_MSW_10(60, "MSW 10"),
|
||||||
|
TYPE_MSW_12(61, "MSW 12"),
|
||||||
|
TYPE_MSW_14(62, "MSW 14"),
|
||||||
|
TYPE_MSW_17(63, "MSW 17"),
|
||||||
|
TYPE_MSW_19(64, "MSW 19"),
|
||||||
|
TYPE_MSW_23(65, "MSW 23"),
|
||||||
|
TYPE_MSW_26(66, "MSW 26"),
|
||||||
|
TYPE_MSW_30(67, "MSW 30"),
|
||||||
|
TYPE_MSW_4S(68, "MSW 4S"),
|
||||||
|
TYPE_MSW_6S(69, "MSW 6S"),
|
||||||
|
TYPE_MSW_8S(70, "MSW 8S"),
|
||||||
|
TYPE_MSW_10S(71, "MSW 10S"),
|
||||||
|
TYPE_MSW_13S(72, "MSW 13S"),
|
||||||
|
TYPE_MSW_16S(73, "MSW 16S"),
|
||||||
|
TYPE_MSW2_6S(74, "MSW2-6S"),
|
||||||
|
TYPE_MSW4_16(75, "MSW4-16"),
|
||||||
|
TYPE_LD2AG(76, "LD2AG"),
|
||||||
|
TYPE_LWD90V(77, "LWD90V"),
|
||||||
|
TYPE_MSW3_12(78, "MSW3-12"),
|
||||||
|
TYPE_MSW3_12S(79, "MSW3-12S"),
|
||||||
|
TYPE_MSW2_9S(80, "MSW2-9S"),
|
||||||
|
TYPE_LW12(82, "LW 12"),
|
||||||
|
TYPE_UNKNOWN(-1, "Unknown");
|
||||||
|
|
||||||
|
private final String name;
|
||||||
|
private final Integer code;
|
||||||
|
private static final Logger logger = LoggerFactory.getLogger(HeatpumpType.class);
|
||||||
|
|
||||||
|
private HeatpumpType(Integer code, String name) {
|
||||||
|
this.code = code;
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final HeatpumpType fromCode(Integer code) {
|
||||||
|
for (HeatpumpType error : HeatpumpType.values()) {
|
||||||
|
if (error.code.equals(code)) {
|
||||||
|
return error;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
logger.warn("Unknown heatpump type code {}", code);
|
||||||
|
|
||||||
|
return TYPE_UNKNOWN;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return code + ": " + name;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,395 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) 2010-2021 Contributors to the openHAB project
|
||||||
|
*
|
||||||
|
* See the NOTICE file(s) distributed with this work for additional
|
||||||
|
* information.
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Public License 2.0 which is available at
|
||||||
|
* http://www.eclipse.org/legal/epl-2.0
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: EPL-2.0
|
||||||
|
*/
|
||||||
|
package org.openhab.binding.luxtronikheatpump.internal.enums;
|
||||||
|
|
||||||
|
import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents all heatpump visibily settings
|
||||||
|
*
|
||||||
|
* The names of the enum values are those used in the code if the internal Java applet of the heat pump
|
||||||
|
* The meaning of most of the values is currently unclear, but are included here for completeness only
|
||||||
|
*
|
||||||
|
* @author Stefan Giehl - Initial contribution
|
||||||
|
*/
|
||||||
|
@NonNullByDefault
|
||||||
|
public enum HeatpumpVisibility {
|
||||||
|
/**
|
||||||
|
* Defines if the device has heating capabilities
|
||||||
|
*/
|
||||||
|
HEIZUNG(0, "Heizung"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Defines if the device has hot water capabilities
|
||||||
|
*/
|
||||||
|
BRAUWASSER(1, "Brauwasser"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Defines if the device swimming pool capabilities
|
||||||
|
*/
|
||||||
|
SCHWIMMBAD(2, "Schwimmbad"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Defines if the device has cooling capabilities
|
||||||
|
*/
|
||||||
|
KUHLUNG(3, "Kuhlung"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Defines if the device has ventilation capabilities
|
||||||
|
*/
|
||||||
|
LUEFTUNG(4, "Lueftung"),
|
||||||
|
|
||||||
|
MK1(5, "MK1"),
|
||||||
|
MK2(6, "MK2"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Defines if thermal disinfiction is available
|
||||||
|
*/
|
||||||
|
THERMDESINFEKT(7, "ThermDesinfekt"),
|
||||||
|
ZIRKULATION(8, "Zirkulation"),
|
||||||
|
KUHLTEMP_SOLLTEMPMK1(9, "KuhlTemp_SolltempMK1"),
|
||||||
|
KUHLTEMP_SOLLTEMPMK2(10, "KuhlTemp_SolltempMK2"),
|
||||||
|
KUHLTEMP_ATDIFFMK1(11, "KuhlTemp_ATDiffMK1"),
|
||||||
|
KUHLTEMP_ATDIFFMK2(12, "KuhlTemp_ATDiffMK2"),
|
||||||
|
SERVICE_INFORMATION(13, "Service_Information"),
|
||||||
|
SERVICE_EINSTELLUNG(14, "Service_Einstellung"),
|
||||||
|
SERVICE_SPRACHE(15, "Service_Sprache"),
|
||||||
|
SERVICE_DATUMUHRZEIT(16, "Service_DatumUhrzeit"),
|
||||||
|
SERVICE_AUSHEIZ(17, "Service_Ausheiz"),
|
||||||
|
SERVICE_ANLAGENKONFIGURATION(18, "Service_Anlagenkonfiguration"),
|
||||||
|
SERVICE_IBNASSISTANT(19, "Service_IBNAssistant"),
|
||||||
|
SERVICE_PARAMETERIBNZURUCK(20, "Service_ParameterIBNZuruck"),
|
||||||
|
TEMP_VORLAUF(21, "Temp_Vorlauf"),
|
||||||
|
TEMP_RUCKLAUF(22, "Temp_Rucklauf"),
|
||||||
|
TEMP_RL_SOLL(23, "Temp_RL_Soll"),
|
||||||
|
TEMP_RUECKLEXT(24, "Temp_Ruecklext"),
|
||||||
|
TEMP_HEISSGAS(25, "Temp_Heissgas"),
|
||||||
|
TEMP_AUSSENT(26, "Temp_Aussent"),
|
||||||
|
TEMP_BW_IST(27, "Temp_BW_Ist"),
|
||||||
|
TEMP_BW_SOLL(28, "Temp_BW_Soll"),
|
||||||
|
TEMP_WQ_EIN(29, "Temp_WQ_Ein"),
|
||||||
|
TEMP_KALTEKREIS(30, "Temp_Kaltekreis"),
|
||||||
|
TEMP_MK1_VORLAUF(31, "Temp_MK1_Vorlauf"),
|
||||||
|
TEMP_MK1VL_SOLL(32, "Temp_MK1VL_Soll"),
|
||||||
|
TEMP_RAUMSTATION(33, "Temp_Raumstation"),
|
||||||
|
TEMP_MK2_VORLAUF(34, "Temp_MK2_Vorlauf"),
|
||||||
|
TEMP_MK2VL_SOLL(35, "Temp_MK2VL_Soll"),
|
||||||
|
TEMP_SOLARKOLL(36, "Temp_Solarkoll"),
|
||||||
|
TEMP_SOLARSP(37, "Temp_Solarsp"),
|
||||||
|
TEMP_EXT_ENERG(38, "Temp_Ext_Energ"),
|
||||||
|
IN_ASD(39, "IN_ASD"),
|
||||||
|
IN_BWT(40, "IN_BWT"),
|
||||||
|
IN_EVU(41, "IN_EVU"),
|
||||||
|
IN_HD(42, "IN_HD"),
|
||||||
|
IN_MOT(43, "IN_MOT"),
|
||||||
|
IN_ND(44, "IN_ND"),
|
||||||
|
IN_PEX(45, "IN_PEX"),
|
||||||
|
IN_SWT(46, "IN_SWT"),
|
||||||
|
OUT_ABTAUVENTIL(47, "OUT_Abtauventil"),
|
||||||
|
OUT_BUP(48, "OUT_BUP"),
|
||||||
|
OUT_FUP1(49, "OUT_FUP1"),
|
||||||
|
OUT_HUP(50, "OUT_HUP"),
|
||||||
|
OUT_MISCHER1AUF(51, "OUT_Mischer1Auf"),
|
||||||
|
OUT_MISCHER1ZU(52, "OUT_Mischer1Zu"),
|
||||||
|
OUT_VENTILATION(53, "OUT_Ventilation"),
|
||||||
|
OUT_VENTIL_BOSUP(54, "OUT_Ventil_BOSUP"),
|
||||||
|
OUT_VERDICHTER1(55, "OUT_Verdichter1"),
|
||||||
|
OUT_VERDICHTER2(56, "OUT_Verdichter2"),
|
||||||
|
OUT_ZIP(57, "OUT_ZIP"),
|
||||||
|
OUT_ZUP(58, "OUT_ZUP"),
|
||||||
|
OUT_ZWE1(59, "OUT_ZWE1"),
|
||||||
|
OUT_ZWE2_SST(60, "OUT_ZWE2_SST"),
|
||||||
|
OUT_ZWE3(61, "OUT_ZWE3"),
|
||||||
|
OUT_FUP2(62, "OUT_FUP2"),
|
||||||
|
OUT_SLP(63, "OUT_SLP"),
|
||||||
|
OUT_SUP(64, "OUT_SUP"),
|
||||||
|
OUT_MISCHER2AUF(65, "OUT_Mischer2Auf"),
|
||||||
|
OUT_MISCHER2ZU(66, "OUT_Mischer2Zu"),
|
||||||
|
ABLAUFZ_WP_SEIT(67, "AblaufZ_WP_Seit"),
|
||||||
|
ABLAUFZ_ZWE1_SEIT(68, "AblaufZ_ZWE1_seit"),
|
||||||
|
ABLAUFZ_ZWE2_SEIT(69, "AblaufZ_ZWE2_seit"),
|
||||||
|
ABLAUFZ_ZWE3_SEIT(70, "AblaufZ_ZWE3_seit"),
|
||||||
|
ABLAUFZ_NETZEINV(71, "AblaufZ_Netzeinv"),
|
||||||
|
ABLAUFZ_SSP_ZEIT1(72, "AblaufZ_SSP_Zeit1"),
|
||||||
|
ABLAUFZ_VD_STAND(73, "AblaufZ_VD_Stand"),
|
||||||
|
ABLAUFZ_HRM_ZEIT(74, "AblaufZ_HRM_Zeit"),
|
||||||
|
ABLAUFZ_HRW_ZEIT(75, "AblaufZ_HRW_Zeit"),
|
||||||
|
ABLAUFZ_TDI_SEIT(76, "AblaufZ_TDI_seit"),
|
||||||
|
ABLAUFZ_SPERRE_BW(77, "AblaufZ_Sperre_BW"),
|
||||||
|
BST_BSTDVD1(78, "Bst_BStdVD1"),
|
||||||
|
BST_IMPVD1(79, "Bst_ImpVD1"),
|
||||||
|
BST_DEZVD1(80, "Bst_dEZVD1"),
|
||||||
|
BST_BSTDVD2(81, "Bst_BStdVD2"),
|
||||||
|
BST_IMPVD2(82, "Bst_ImpVD2"),
|
||||||
|
BST_DEZVD2(83, "Bst_dEZVD2"),
|
||||||
|
BST_BSTDZWE1(84, "Bst_BStdZWE1"),
|
||||||
|
BST_BSTDZWE2(85, "Bst_BStdZWE2"),
|
||||||
|
BST_BSTDZWE3(86, "Bst_BStdZWE3"),
|
||||||
|
BST_BSTDWP(87, "Bst_BStdWP"),
|
||||||
|
TEXT_KURZPROGRAMME(88, "Text_Kurzprogramme"),
|
||||||
|
TEXT_ZWANGSHEIZUNG(89, "Text_Zwangsheizung"),
|
||||||
|
TEXT_ZWANGSBRAUCHWASSER(90, "Text_Zwangsbrauchwasser"),
|
||||||
|
TEXT_ABTAUEN(91, "Text_Abtauen"),
|
||||||
|
EINSTTEMP_RUCKLBEGR(92, "EinstTemp_RucklBegr"),
|
||||||
|
EINSTTEMP_HYSTERESEHR(93, "EinstTemp_HystereseHR"),
|
||||||
|
EINSTTEMP_TRERHMAX(94, "EinstTemp_TRErhmax"),
|
||||||
|
EINSTTEMP_FREIG2VD(95, "EinstTemp_Freig2VD"),
|
||||||
|
EINSTTEMP_FREIGZWE(96, "EinstTemp_FreigZWE"),
|
||||||
|
EINSTTEMP_TLUFTABT(97, "EinstTemp_Tluftabt"),
|
||||||
|
EINSTTEMP_TDISOLLTEMP(98, "EinstTemp_TDISolltemp"),
|
||||||
|
EINSTTEMP_HYSTERESEBW(99, "EinstTemp_HystereseBW"),
|
||||||
|
EINSTTEMP_VORL2VDBW(100, "EinstTemp_Vorl2VDBW"),
|
||||||
|
EINSTTEMP_TAUSSENMAX(101, "EinstTemp_TAussenmax"),
|
||||||
|
EINSTTEMP_TAUSSENMIN(102, "EinstTemp_TAussenmin"),
|
||||||
|
EINSTTEMP_TWQMIN(103, "EinstTemp_TWQmin"),
|
||||||
|
EINSTTEMP_THGMAX(104, "EinstTemp_THGmax"),
|
||||||
|
EINSTTEMP_TLABTENDE(105, "EinstTemp_TLABTEnde"),
|
||||||
|
EINSTTEMP_ABSENKBIS(106, "EinstTemp_Absenkbis"),
|
||||||
|
EINSTTEMP_VORLAUFMAX(107, "EinstTemp_Vorlaufmax"),
|
||||||
|
EINSTTEMP_TDIFFEIN(108, "EinstTemp_TDiffEin"),
|
||||||
|
EINSTTEMP_TDIFFAUS(109, "EinstTemp_TDiffAus"),
|
||||||
|
EINSTTEMP_TDIFFMAX(110, "EinstTemp_TDiffmax"),
|
||||||
|
EINSTTEMP_TEEHEIZUNG(111, "EinstTemp_TEEHeizung"),
|
||||||
|
EINSTTEMP_TEEBRAUCHW(112, "EinstTemp_TEEBrauchw"),
|
||||||
|
EINSTTEMP_VORL2VDSW(113, "EinstTemp_Vorl2VDSW"),
|
||||||
|
EINSTTEMP_VLMAXMK1(114, "EinstTemp_VLMaxMk1"),
|
||||||
|
EINSTTEMP_VLMAXMK2(115, "EinstTemp_VLMaxMk2"),
|
||||||
|
PRIORI_BRAUCHWASSER(116, "Priori_Brauchwasser"),
|
||||||
|
PRIORI_HEIZUNG(117, "Priori_Heizung"),
|
||||||
|
PRIORI_SCHWIMMBAD(118, "Priori_Schwimmbad"),
|
||||||
|
SYSEIN_EVUSPERRE(119, "SysEin_EVUSperre"),
|
||||||
|
SYSEIN_RAUMSTATION(120, "SysEin_Raumstation"),
|
||||||
|
SYSEIN_EINBINDUNG(121, "SysEin_Einbindung"),
|
||||||
|
SYSEIN_MISCHKREIS1(122, "SysEin_Mischkreis1"),
|
||||||
|
SYSEIN_MISCHKREIS2(123, "SysEin_Mischkreis2"),
|
||||||
|
SYSEIN_ZWE1ART(124, "SysEin_ZWE1Art"),
|
||||||
|
SYSEIN_ZWE1FKT(125, "SysEin_ZWE1Fkt"),
|
||||||
|
SYSEIN_ZWE2ART(126, "SysEin_ZWE2Art"),
|
||||||
|
SYSEIN_ZWE2FKT(127, "SysEin_ZWE2Fkt"),
|
||||||
|
SYSEIN_ZWE3ART(128, "SysEin_ZWE3Art"),
|
||||||
|
SYSEIN_ZWE3FKT(129, "SysEin_ZWE3Fkt"),
|
||||||
|
SYSEIN_STOERUNG(130, "SysEin_Stoerung"),
|
||||||
|
SYSEIN_BRAUCHWASSER1(131, "SysEin_Brauchwasser1"),
|
||||||
|
SYSEIN_BRAUCHWASSER2(132, "SysEin_Brauchwasser2"),
|
||||||
|
SYSEIN_BRAUCHWASSER3(133, "SysEin_Brauchwasser3"),
|
||||||
|
SYSEIN_BRAUCHWASSER4(134, "SysEin_Brauchwasser4"),
|
||||||
|
SYSEIN_BRAUCHWASSER5(135, "SysEin_Brauchwasser5"),
|
||||||
|
SYSEIN_BWWPMAX(136, "SysEin_BWWPmax"),
|
||||||
|
SYSEIN_ABTZYKMAX(137, "SysEin_Abtzykmax"),
|
||||||
|
SYSEIN_LUFTABT(138, "SysEin_Luftabt"),
|
||||||
|
SYSEIN_LUFTABTMAX(139, "SysEin_LuftAbtmax"),
|
||||||
|
SYSEIN_ABTAUEN1(140, "SysEin_Abtauen1"),
|
||||||
|
SYSEIN_ABTAUEN2(141, "SysEin_Abtauen2"),
|
||||||
|
SYSEIN_PUMPENOPTIM(142, "SysEin_Pumpenoptim"),
|
||||||
|
SYSEIN_ZUSATZPUMPE(143, "SysEin_Zusatzpumpe"),
|
||||||
|
SYSEIN_ZUGANG(144, "SysEin_Zugang"),
|
||||||
|
SYSEIN_SOLEDRDURCHF(145, "SysEin_SoledrDurchf"),
|
||||||
|
SYSEIN_UBERWACHUNGVD(146, "SysEin_UberwachungVD"),
|
||||||
|
SYSEIN_REGELUNGHK(147, "SysEin_RegelungHK"),
|
||||||
|
SYSEIN_REGELUNGMK1(148, "SysEin_RegelungMK1"),
|
||||||
|
SYSEIN_REGELUNGMK2(149, "SysEin_RegelungMK2"),
|
||||||
|
SYSEIN_KUHLUNG(150, "SysEin_Kuhlung"),
|
||||||
|
SYSEIN_AUSHEIZEN(151, "SysEin_Ausheizen"),
|
||||||
|
SYSEIN_ELEKTRANODE(152, "SysEin_ElektrAnode"),
|
||||||
|
SYSEIN_SWBBER(153, "SysEin_SWBBer"),
|
||||||
|
SYSEIN_SWBMIN(154, "SysEin_SWBMin"),
|
||||||
|
SYSEIN_HEIZUNG(155, "SysEin_Heizung"),
|
||||||
|
SYSEIN_PERIODEMK1(156, "SysEin_PeriodeMk1"),
|
||||||
|
SYSEIN_LAUFZEITMK1(157, "SysEin_LaufzeitMk1"),
|
||||||
|
SYSEIN_PERIODEMK2(158, "SysEin_PeriodeMk2"),
|
||||||
|
SYSEIN_LAUFZEITMK2(159, "SysEin_LaufzeitMk2"),
|
||||||
|
SYSEIN_HEIZGRENZE(160, "SysEin_Heizgrenze"),
|
||||||
|
ENLT_HUP(161, "Enlt_HUP"),
|
||||||
|
ENLT_ZUP(162, "Enlt_ZUP"),
|
||||||
|
ENLT_BUP(163, "Enlt_BUP"),
|
||||||
|
ENLT_VENTILATOR_BOSUP(164, "Enlt_Ventilator_BOSUP"),
|
||||||
|
ENLT_MA1(165, "Enlt_MA1"),
|
||||||
|
ENLT_MZ1(166, "Enlt_MZ1"),
|
||||||
|
ENLT_ZIP(167, "Enlt_ZIP"),
|
||||||
|
ENLT_MA2(168, "Enlt_MA2"),
|
||||||
|
ENLT_MZ2(169, "Enlt_MZ2"),
|
||||||
|
ENLT_SUP(170, "Enlt_SUP"),
|
||||||
|
ENLT_SLP(171, "Enlt_SLP"),
|
||||||
|
ENLT_FP2(172, "Enlt_FP2"),
|
||||||
|
ENLT_LAUFZEIT(173, "Enlt_Laufzeit"),
|
||||||
|
ANLGKONF_HEIZUNG(174, "Anlgkonf_Heizung"),
|
||||||
|
ANLGKONF_BRAUCHWARMWASSER(175, "Anlgkonf_Brauchwarmwasser"),
|
||||||
|
ANLGKONF_SCHWIMMBAD(176, "Anlgkonf_Schwimmbad"),
|
||||||
|
HEIZUNG_BETRIEBSART(177, "Heizung_Betriebsart"),
|
||||||
|
HEIZUNG_TEMPERATURPLUSMINUS(178, "Heizung_TemperaturPlusMinus"),
|
||||||
|
HEIZUNG_HEIZKURVEN(179, "Heizung_Heizkurven"),
|
||||||
|
HEIZUNG_ZEITSCHLALTPROGRAMM(180, "Heizung_Zeitschlaltprogramm"),
|
||||||
|
HEIZUNG_HEIZGRENZE(181, "Heizung_Heizgrenze"),
|
||||||
|
MITTELTEMPERATUR(182, "Mitteltemperatur"),
|
||||||
|
DATAENLOGGER(183, "Dataenlogger"),
|
||||||
|
SPRACHEN_DEUTSCH(184, "Sprachen_DEUTSCH"),
|
||||||
|
SPRACHEN_ENGLISH(185, "Sprachen_ENGLISH"),
|
||||||
|
SPRACHEN_FRANCAIS(186, "Sprachen_FRANCAIS"),
|
||||||
|
SPRACHEN_NORWAY(187, "Sprachen_NORWAY"),
|
||||||
|
SPRACHEN_TCHECH(188, "Sprachen_TCHECH"),
|
||||||
|
SPRACHEN_ITALIANO(189, "Sprachen_ITALIANO"),
|
||||||
|
SPRACHEN_NEDERLANDS(190, "Sprachen_NEDERLANDS"),
|
||||||
|
SPRACHEN_SVENSKA(191, "Sprachen_SVENSKA"),
|
||||||
|
SPRACHEN_POLSKI(192, "Sprachen_POLSKI"),
|
||||||
|
SPRACHEN_MAGYARUL(193, "Sprachen_MAGYARUL"),
|
||||||
|
ERRORUSBSPEICHERN(194, "ErrorUSBspeichern"),
|
||||||
|
BST_BSTDHZ(195, "Bst_BStdHz"),
|
||||||
|
BST_BSTDBW(196, "Bst_BStdBW"),
|
||||||
|
BST_BSTDKUE(197, "Bst_BStdKue"),
|
||||||
|
SERVICE_SYSTEMSTEUERUNG(198, "Service_Systemsteuerung"),
|
||||||
|
SERVICE_SYSTEMSTEUERUNG_CONTRAST(199, "Service_Systemsteuerung_Contrast"),
|
||||||
|
SERVICE_SYSTEMSTEUERUNG_WEBSERVER(200, "Service_Systemsteuerung_Webserver"),
|
||||||
|
SERVICE_SYSTEMSTEUERUNG_IPADRESSE(201, "Service_Systemsteuerung_IPAdresse"),
|
||||||
|
SERVICE_SYSTEMSTEUERUNG_FERNWARTUNG(202, "Service_Systemsteuerung_Fernwartung"),
|
||||||
|
PARALLELESCHALTUNG(203, "Paralleleschaltung"),
|
||||||
|
SYSEIN_PARALLELESCHALTUNG(204, "SysEin_Paralleleschaltung"),
|
||||||
|
SPRACHEN_DANSK(205, "Sprachen_DANSK"),
|
||||||
|
SPRACHEN_PORTUGES(206, "Sprachen_PORTUGES"),
|
||||||
|
HEIZKURVE_HEIZUNG(207, "Heizkurve_Heizung"),
|
||||||
|
SYSEIN_MISCHKREIS3(208, "SysEin_Mischkreis3"),
|
||||||
|
MK3(209, "MK3"),
|
||||||
|
TEMP_MK3_VORLAUF(210, "Temp_MK3_Vorlauf"),
|
||||||
|
TEMP_MK3VL_SOLL(211, "Temp_MK3VL_Soll"),
|
||||||
|
OUT_MISCHER3AUF(212, "OUT_Mischer3Auf"),
|
||||||
|
OUT_MISCHER3ZU(213, "OUT_Mischer3Zu"),
|
||||||
|
SYSEIN_REGELUNGMK3(214, "SysEin_RegelungMK3"),
|
||||||
|
SYSEIN_PERIODEMK3(215, "SysEin_PeriodeMk3"),
|
||||||
|
SYSEIN_LAUFZEITMK3(216, "SysEin_LaufzeitMk3"),
|
||||||
|
SYSEIN_KUHL_ZEIT_EIN(217, "SysEin_Kuhl_Zeit_Ein"),
|
||||||
|
SYSEIN_KUHL_ZEIT_AUS(218, "SysEin_Kuhl_Zeit_Aus"),
|
||||||
|
ABLAUFZ_ABTAUIN(219, "AblaufZ_AbtauIn"),
|
||||||
|
WAERMEMENGE_WS(220, "Waermemenge_WS"),
|
||||||
|
WAERMEMENGE_WQ(221, "Waermemenge_WQ"),
|
||||||
|
ENLT_MA3(222, "Enlt_MA3"),
|
||||||
|
ENLT_MZ3(223, "Enlt_MZ3"),
|
||||||
|
ENLT_FP3(224, "Enlt_FP3"),
|
||||||
|
OUT_FUP3(225, "OUT_FUP3"),
|
||||||
|
TEMP_RAUMSTATION2(226, "Temp_Raumstation2"),
|
||||||
|
TEMP_RAUMSTATION3(227, "Temp_Raumstation3"),
|
||||||
|
BST_BSTDSW(228, "Bst_BStdSW"),
|
||||||
|
SPRACHEN_LITAUISCH(229, "Sprachen_LITAUISCH"),
|
||||||
|
SPRACHEN_ESTNICH(230, "Sprachen_ESTNICH"),
|
||||||
|
SYSEIN_FERNWARTUNG(231, "SysEin_Fernwartung"),
|
||||||
|
SPRACHEN_SLOVENISCH(232, "Sprachen_SLOVENISCH"),
|
||||||
|
EINSTTEMP_TA_EG(233, "EinstTemp_TA_EG"),
|
||||||
|
EINST_TVLMAX_EG(234, "Einst_TVLmax_EG"),
|
||||||
|
SYSEIN_POPTNACHLAUF(235, "SysEin_PoptNachlauf"),
|
||||||
|
RFV_K_KUEHLIN(236, "RFV_K_Kuehlin"),
|
||||||
|
SYSEIN_EFFIZIENZPUMPENOM(237, "SysEin_EffizienzpumpeNom"),
|
||||||
|
SYSEIN_EFFIZIENZPUMPEMIN(238, "SysEin_EffizienzpumpeMin"),
|
||||||
|
SYSEIN_EFFIZIENZPUMPE(239, "SysEin_Effizienzpumpe"),
|
||||||
|
SYSEIN_WAERMEMENGE(240, "SysEin_Waermemenge"),
|
||||||
|
SERVICE_WMZ_EFFIZIENZ(241, "Service_WMZ_Effizienz"),
|
||||||
|
SYSEIN_WM_VERSORGUNG_KORREKTUR(242, "SysEin_Wm_Versorgung_Korrektur"),
|
||||||
|
SYSEIN_WM_AUSWERTUNG_KORREKTUR(243, "SysEin_Wm_Auswertung_Korrektur"),
|
||||||
|
IN_ANALOGIN(244, "IN_AnalogIn"),
|
||||||
|
EINS_SN_EINGABE(245, "Eins_SN_Eingabe"),
|
||||||
|
OUT_ANALOG_1(246, "OUT_Analog_1"),
|
||||||
|
OUT_ANALOG_2(247, "OUT_Analog_2"),
|
||||||
|
SOLAR(248, "Solar"),
|
||||||
|
SYSEIN_SOLAR(249, "SysEin_Solar"),
|
||||||
|
EINSTTEMP_TDIFFKOLLMAX(250, "EinstTemp_TDiffKollmax"),
|
||||||
|
ABLAUFZ_HG_SPERRE(251, "AblaufZ_HG_Sperre"),
|
||||||
|
SYSEIN_AKT_KUEHLUNG(252, "SysEin_Akt_Kuehlung"),
|
||||||
|
SYSEIN_VORLAUF_VBO(253, "SysEin_Vorlauf_VBO"),
|
||||||
|
EINST_KRHYST(254, "Einst_KRHyst"),
|
||||||
|
EINST_AKT_KUEHL_SPEICHER_MIN(255, "Einst_Akt_Kuehl_Speicher_min"),
|
||||||
|
EINST_AKT_KUEHL_FREIG_WQE(256, "Einst_Akt_Kuehl_Freig_WQE"),
|
||||||
|
SYSEIN_ABTZYKMIN(257, "SysEin_AbtZykMin"),
|
||||||
|
SYSEIN_VD2_ZEIT_MIN(258, "SysEin_VD2_Zeit_Min"),
|
||||||
|
EINSTTEMP_HYSTERESE_HR_VERKUERZT(259, "EinstTemp_Hysterese_HR_verkuerzt"),
|
||||||
|
EINST_LUF_FEUCHTESCHUTZ_AKT(260, "Einst_Luf_Feuchteschutz_akt"),
|
||||||
|
EINST_LUF_REDUZIERT_AKT(261, "Einst_Luf_Reduziert_akt"),
|
||||||
|
EINST_LUF_NENNLUEFTUNG_AKT(262, "Einst_Luf_Nennlueftung_akt"),
|
||||||
|
EINST_LUF_INTENSIVLUEFTUNG_AKT(263, "Einst_Luf_Intensivlueftung_akt"),
|
||||||
|
TEMPERATUR_LUEFTUNG_ZULUFT(264, "Temperatur_Lueftung_Zuluft"),
|
||||||
|
TEMPERATUR_LUEFTUNG_ABLUFT(265, "Temperatur_Lueftung_Abluft"),
|
||||||
|
OUT_ANALOG_3(266, "OUT_Analog_3"),
|
||||||
|
OUT_ANALOG_4(267, "OUT_Analog_4"),
|
||||||
|
IN_ANALOG_2(268, "IN_Analog_2"),
|
||||||
|
IN_ANALOG_3(269, "IN_Analog_3"),
|
||||||
|
IN_SAX(270, "IN_SAX"),
|
||||||
|
OUT_VZU(271, "OUT_VZU"),
|
||||||
|
OUT_VAB(272, "OUT_VAB"),
|
||||||
|
OUT_VSK(273, "OUT_VSK"),
|
||||||
|
OUT_FRH(274, "OUT_FRH"),
|
||||||
|
KUHLTEMP_SOLLTEMPMK3(275, "KuhlTemp_SolltempMK3"),
|
||||||
|
KUHLTEMP_ATDIFFMK3(276, "KuhlTemp_ATDiffMK3"),
|
||||||
|
IN_SPL(277, "IN_SPL"),
|
||||||
|
SYSEIN_LUEFTUNGSSTUFEN(278, "SysEin_Lueftungsstufen"),
|
||||||
|
SYSEIN_MELDUNG_TDI(279, "SysEin_Meldung_TDI"),
|
||||||
|
SYSEIN_TYP_WZW(280, "SysEin_Typ_WZW"),
|
||||||
|
BACNET(281, "BACnet"),
|
||||||
|
SPRACHEN_SLOWAKISCH(282, "Sprachen_SLOWAKISCH"),
|
||||||
|
SPRACHEN_LETTISCH(283, "Sprachen_LETTISCH"),
|
||||||
|
SPRACHEN_FINNISCH(284, "Sprachen_FINNISCH"),
|
||||||
|
KALIBRIERUNG_LWD(285, "Kalibrierung_LWD"),
|
||||||
|
IN_DURCHFLUSS(286, "IN_Durchfluss"),
|
||||||
|
LIN_ANSAUG_VERDICHTER(287, "LIN_ANSAUG_VERDICHTER"),
|
||||||
|
LIN_VDH(288, "LIN_VDH"),
|
||||||
|
LIN_UH(289, "LIN_UH"),
|
||||||
|
LIN_DRUCK(290, "LIN_Druck"),
|
||||||
|
EINST_SOLLWERT_TRL_KUEHLEN(291, "Einst_Sollwert_TRL_Kuehlen"),
|
||||||
|
ENTL_EXVENTIL(292, "Entl_ExVentil"),
|
||||||
|
EINST_MEDIUM_WAERMEQUELLE(293, "Einst_Medium_Waermequelle"),
|
||||||
|
EINST_MULTISPEICHER(294, "Einst_Multispeicher"),
|
||||||
|
EINST_MINIMALE_RUECKLAUFSOLLTEMPERATUR(295, "Einst_Minimale_Ruecklaufsolltemperatur"),
|
||||||
|
EINST_PKUEHLTIME(296, "Einst_PKuehlTime"),
|
||||||
|
SPRACHEN_TUERKISCH(297, "Sprachen_TUERKISCH"),
|
||||||
|
RBE(298, "RBE"),
|
||||||
|
EINST_LUF_STUFEN_FAKTOR(299, "Einst_Luf_Stufen_Faktor"),
|
||||||
|
FREIGABE_ZEIT_ZWE(300, "Freigabe_Zeit_ZWE"),
|
||||||
|
EINST_MIN_VL_KUEHL(301, "Einst_min_VL_Kuehl"),
|
||||||
|
ZWE1(302, "ZWE1"),
|
||||||
|
ZWE2(303, "ZWE2"),
|
||||||
|
ZWE3(304, "ZWE3"),
|
||||||
|
SEC(305, "SEC"),
|
||||||
|
HZIO(306, "HZIO"),
|
||||||
|
WPIO(307, "WPIO"),
|
||||||
|
LIN_ANSAUG_VERDAMPFER(308, "LIN_ANSAUG_VERDAMPFER"),
|
||||||
|
LIN_MULTI1(309, "LIN_MULTI1"),
|
||||||
|
LIN_MULTI2(310, "LIN_MULTI2"),
|
||||||
|
EINST_LEISTUNG_ZWE(311, "Einst_Leistung_ZWE"),
|
||||||
|
SPRACHEN_ESPANOL(312, "Sprachen_ESPANOL"),
|
||||||
|
TEMP_BW_OBEN(313, "Temp_BW_oben"),
|
||||||
|
MAXIO(314, "MAXIO"),
|
||||||
|
OUT_ABTAUWUNSCH(315, "OUT_Abtauwunsch"),
|
||||||
|
SMARTGRID(316, "SmartGrid"),
|
||||||
|
DREHZAHLGEREGELT(317, "Drehzahlgeregelt"),
|
||||||
|
P155_INVERTER(318, "P155_Inverter"),
|
||||||
|
LEISTUNGSFREIGABE(319, "Leistungsfreigabe"),
|
||||||
|
EINST_VORL_AKT_KUEHL(320, "Einst_Vorl_akt_Kuehl"),
|
||||||
|
EINST_ABTAUEN_IM_WARMWASSER(321, "Einst_Abtauen_im_Warmwasser"),
|
||||||
|
WAERMEMENGE_ZWE(32, "Waermemenge_ZWE");
|
||||||
|
|
||||||
|
private final String name;
|
||||||
|
private final Integer code;
|
||||||
|
|
||||||
|
private HeatpumpVisibility(Integer code, String name) {
|
||||||
|
this.code = code;
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getCode() {
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return code + ": " + name;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,29 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) 2010-2021 Contributors to the openHAB project
|
||||||
|
*
|
||||||
|
* See the NOTICE file(s) distributed with this work for additional
|
||||||
|
* information.
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Public License 2.0 which is available at
|
||||||
|
* http://www.eclipse.org/legal/epl-2.0
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: EPL-2.0
|
||||||
|
*/
|
||||||
|
package org.openhab.binding.luxtronikheatpump.internal.exceptions;
|
||||||
|
|
||||||
|
import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The {@link InvalidChannelException} is thrown if a channel can't be found
|
||||||
|
*
|
||||||
|
* @author Stefan Giehl - Initial contribution
|
||||||
|
*/
|
||||||
|
@NonNullByDefault
|
||||||
|
public class InvalidChannelException extends Exception {
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
public InvalidChannelException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,29 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) 2010-2021 Contributors to the openHAB project
|
||||||
|
*
|
||||||
|
* See the NOTICE file(s) distributed with this work for additional
|
||||||
|
* information.
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Public License 2.0 which is available at
|
||||||
|
* http://www.eclipse.org/legal/epl-2.0
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: EPL-2.0
|
||||||
|
*/
|
||||||
|
package org.openhab.binding.luxtronikheatpump.internal.exceptions;
|
||||||
|
|
||||||
|
import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The {@link InvalidOperationModeException} is thrown for invalid operation modes
|
||||||
|
*
|
||||||
|
* @author Stefan Giehl - Initial contribution
|
||||||
|
*/
|
||||||
|
@NonNullByDefault
|
||||||
|
public class InvalidOperationModeException extends Exception {
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
public InvalidOperationModeException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<binding:binding id="luxtronikheatpump" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:binding="https://openhab.org/schemas/binding/v1.0.0"
|
||||||
|
xsi:schemaLocation="https://openhab.org/schemas/binding/v1.0.0 https://openhab.org/schemas/binding-1.0.0.xsd">
|
||||||
|
|
||||||
|
<name>Luxtronik Heatpump Binding</name>
|
||||||
|
<description>This is the binding for a Heatpump with Luxtronik control.</description>
|
||||||
|
|
||||||
|
</binding:binding>
|
@ -0,0 +1,131 @@
|
|||||||
|
channel-type.luxtronikheatpump.menuStateLine1.state.option.0 = Heat pump runs
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine1.state.option.1 = Heat pump stopped
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine1.state.option.2 = Heat pump coming
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine1.state.option.3 = Error code memory location 0
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine1.state.option.4 = Defrost
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine1.state.option.5 = Wait for LIN connection
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine1.state.option.6 = Compressor heats up
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine1.state.option.7 = Pump flow
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine2.state.option.0 = since
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine2.state.option.1 = in
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine3.state.option.0 = Heating mode
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine3.state.option.1 = No requirement
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine3.state.option.2 = Mains switch-on delay
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine3.state.option.3 = Switching cycle lock
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine3.state.option.4 = Blocking time
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine3.state.option.5 = Service water
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine3.state.option.6 = Info bakeout program
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine3.state.option.7 = Defrost
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine3.state.option.8 = Pump flow
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine3.state.option.9 = Thermal disinfection
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine3.state.option.10 = Cooling mode
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine3.state.option.12 = Swimming pool / Photovoltaics
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine3.state.option.13 = Heating ext. energy source
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine3.state.option.14 = Service water ext. energy source
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine3.state.option.16 = Flow monitoring
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine3.state.option.17 = Second heat generator 1 operation
|
||||||
|
|
||||||
|
channel-type.luxtronikheatpump.operationMode.state.option.0 = Auto
|
||||||
|
channel-type.luxtronikheatpump.operationMode.state.option.1 = Auxiliary heater
|
||||||
|
channel-type.luxtronikheatpump.operationMode.state.option.2 = Party
|
||||||
|
channel-type.luxtronikheatpump.operationMode.state.option.3 = Holiday
|
||||||
|
channel-type.luxtronikheatpump.operationMode.state.option.4 = Off
|
||||||
|
|
||||||
|
channel-type.luxtronikheatpump.SwitchoffX_file_NrX.state.option.1 = Heat pump malfunction
|
||||||
|
channel-type.luxtronikheatpump.SwitchoffX_file_NrX.state.option.2 = Facility malfunction
|
||||||
|
channel-type.luxtronikheatpump.SwitchoffX_file_NrX.state.option.3 = Second heat generator operating mode
|
||||||
|
channel-type.luxtronikheatpump.SwitchoffX_file_NrX.state.option.4 = Utility lock
|
||||||
|
channel-type.luxtronikheatpump.SwitchoffX_file_NrX.state.option.5 = Running dew (LW units only)
|
||||||
|
channel-type.luxtronikheatpump.SwitchoffX_file_NrX.state.option.6 = Temperature application limit maximum
|
||||||
|
channel-type.luxtronikheatpump.SwitchoffX_file_NrX.state.option.7 = Temperature application limit minimum
|
||||||
|
channel-type.luxtronikheatpump.SwitchoffX_file_NrX.state.option.8 = Lower operating limit
|
||||||
|
channel-type.luxtronikheatpump.SwitchoffX_file_NrX.state.option.9 = No requirement
|
||||||
|
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.701 = Error low pressure - Please call fitter
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.702 = Low pressure stop - RESET automatic
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.703 = Antifreeze - Please call fitter
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.704 = Error hot gas - reset in hh:mm
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.705 = Motor protection VEN - Please call fitter
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.706 = Motor protection BCP - Please call fitter
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.707 = Coding of heat pump - Please call fitter
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.708 = Return sensor - Please call fitter
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.709 = Flow sensor - Please call fitter
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.710 = Hot gas sensor - Please call fitter
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.711 = External temp. sensor - Please call fitter
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.712 = Domestic hot water sensor - Please call fitter
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.713 = HS-on sensor - Please call fitter
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.714 = Hot gas SW - Reset in hh:mm
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.715 = High-pressure switch-off - RESET automatic
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.716 = High-pressure fault - Please call fitter
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.717 = Flow HS - Please call fitter
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.718 = Max. outside temp. - reset automatic
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.719 = Min. outside temp. - reset automatic
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.720 = HS temperature - reset automatic in hh:mm
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.721 = Low-pressure switch-off - reset automatic
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.722 = Tempdiff HW - Please call fitter
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.723 = Tempdiff SW - Please call fitter
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.724 = Tempdiff defrosting - Please call fitter
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.725 = System error DHW - Please call fitter
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.726 = Sensor mixing circ 1 - Please call fitter
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.727 = Brine pressure - Please call fitter
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.728 = Sensor HS Off - Please call fitter
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.729 = Rotating field error - Please call fitter
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.730 = Screed heating error - Please call fitter
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.731 = Timeout TDI
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.732 = Cooling fault - Please call fitter
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.733 = Anode fault - Please call fitter
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.734 = Anode fault - Please call fitter
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.735 = Error Ext. En - Please call fitter
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.736 = Error solar collector - Please call fitter
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.737 = Error solar tank - Please call fitter
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.738 = Error mixing circle 2 - Please call fitter
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.739 = Error mixing circle 3 - Please call fitter
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.750 = Return sensor external - Please call fitter
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.751 = Phase monitoring fault
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.752 = Flow error
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.755 = Lost connection to slave - Please call fitter
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.756 = Lost connection to master - Please call fitter
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.757 = Low-pressure fault in W/W-appliance
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.758 = Defrosting malfunction
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.759 = TDI Message
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.760 = Defrosting fault
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.761 = LIN timeout
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.762 = Sensor evaporator intake
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.763 = Sensor compressor intake
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.764 = Sensor compressor heater
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.765 = Overheating
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.766 = Compressors functional range
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.767 = STB E-Rod
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.768 = Flow monitoring
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.769 = Pump control
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.770 = Low superheat
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.771 = High superheat
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.776 = limit of application-CP
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.777 = Expansion valve
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.778 = Low pressure sensor
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.779 = High pressure sensor
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.780 = EVI sensor
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.781 = Liquid temp. sensor before EXV
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.782 = Suction gas EVI temp. sensor
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.783 = Communication SEC board - Inverter
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.784 = VSS lockdown
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.785 = SEC-Board defective
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.786 = Communication SEC board - Inverter
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.787 = VD alert
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.788 = Major VSS fault
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.789 = LIN/Encoding not found
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.790 = Major VSS fault
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.791 = ModBus Inverter
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.792 = LIN-connection lost
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.793 = Inverter Temperature
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.794 = Overvoltage
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.795 = Undervoltage
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.796 = Safety switch off
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.797 = MLRH is not supported
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.798 = ModBus Fan
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.799 = ModBus ASB
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.800 = Desuperheater-error
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.802 = Switchbox fan
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.803 = Switchbox fan
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.806 = ModBus SEC
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.807 = Lost ModBus communication
|
@ -0,0 +1,395 @@
|
|||||||
|
# binding
|
||||||
|
binding.luxtronikheatpump.name = Luxtronik Wärmepumpen Binding
|
||||||
|
binding.luxtronikheatpump.description = Dieses Binding integriert Wärmepumpen mit einer Luxtronik-Steuerung.
|
||||||
|
|
||||||
|
# thing types
|
||||||
|
thing-type.luxtronikheatpump.heatpump.label = Luxtronik Wärmepumpe
|
||||||
|
thing-type.luxtronikheatpump.heatpump.description = Integriert eine Wärmepumpe mit einer Luxtronik-Steuerung.
|
||||||
|
|
||||||
|
# thing type configuration
|
||||||
|
thing-type.config.luxtronikheatpump.heatpump.ipAddress.label = IP Adresse
|
||||||
|
thing-type.config.luxtronikheatpump.heatpump.ipAddress.description = IP Adresse der Wärmepumpe
|
||||||
|
thing-type.config.luxtronikheatpump.heatpump.port.label = Port
|
||||||
|
thing-type.config.luxtronikheatpump.heatpump.port.description = Port der zum Aufbau einer Verbindung zur Wärmepumpe verwendet werden soll. Standardwert ist 8889. Für Wärmepumpen mit einer Firmware version vor V1.73 muss der Port 8888 verwendet werden.
|
||||||
|
thing-type.config.luxtronikheatpump.heatpump.refresh.label = Aktualisierungsintervall
|
||||||
|
thing-type.config.luxtronikheatpump.heatpump.refresh.description = Aktualisierungsintervall in Sekunden. Standardwert ist 300
|
||||||
|
thing-type.config.luxtronikheatpump.heatpump.showAllChannels.label = Zeige auch nicht verfügbare Kanäle
|
||||||
|
thing-type.config.luxtronikheatpump.heatpump.showAllChannels.description = Kanäle die auf einer Wärmepumpe nicht verfügbar sind werden standardmäßig ausgeblendet.
|
||||||
|
|
||||||
|
# channel types
|
||||||
|
channel-type.luxtronikheatpump.temperatureHeatingCircuitFlow.label = Vorlauftemp. Heizkreis
|
||||||
|
channel-type.luxtronikheatpump.temperatureHeatingCircuitReturn.label = Rücklauftemp. Heizkreis
|
||||||
|
channel-type.luxtronikheatpump.temperatureHeatingCircuitReturnTarget.label = Rücklauf-Soll Heizkreis
|
||||||
|
channel-type.luxtronikheatpump.temperatureBufferTankReturn.label = Rücklauftemp. im Trennspeicher
|
||||||
|
channel-type.luxtronikheatpump.temperatureHotGas.label = Heißgastemp.
|
||||||
|
channel-type.luxtronikheatpump.temperatureOutside.label = Außentemp.
|
||||||
|
channel-type.luxtronikheatpump.temperatureOutsideMean.label = Durchschnittstemp. Außen über 24 h (Funktion Heizgrenze)
|
||||||
|
channel-type.luxtronikheatpump.temperatureHotWater.label = Warmwasser Ist-Temp.
|
||||||
|
channel-type.luxtronikheatpump.temperatureHotWaterTarget.label = Warmwasser Soll-Temp.
|
||||||
|
channel-type.luxtronikheatpump.temperatureHeatSourceInlet.label = Wärmequellen-Eintrittstemp.
|
||||||
|
channel-type.luxtronikheatpump.temperatureHeatSourceOutlet.label = Wärmequellen-Austrittstemp.
|
||||||
|
channel-type.luxtronikheatpump.temperatureMixingCircuit1Flow.label = Mischkreis 1 Vorlauftemp.
|
||||||
|
channel-type.luxtronikheatpump.temperatureMixingCircuit1FlowTarget.label = Mischkreis 1 Vorlauf-Soll-Temp.
|
||||||
|
channel-type.luxtronikheatpump.temperatureRoomStation.label = Raumtemp. Raumstation 1
|
||||||
|
channel-type.luxtronikheatpump.temperatureMixingCircuit2Flow.label = Mischkreis 2 Vorlauftemp.
|
||||||
|
channel-type.luxtronikheatpump.temperatureMixingCircuit2FlowTarget.label = Mischkreis 2 Vorlauf-Soll-Temp.
|
||||||
|
channel-type.luxtronikheatpump.temperatureSolarCollector.label = Fühler Solarkollektor
|
||||||
|
channel-type.luxtronikheatpump.temperatureSolarTank.label = Fühler Solarspeicher
|
||||||
|
channel-type.luxtronikheatpump.temperatureExternalEnergySource.label = Fühler externe Energiequelle
|
||||||
|
channel-type.luxtronikheatpump.inputASD.label = Eingang "Abtauende, Soledruck, Durchfluss"
|
||||||
|
channel-type.luxtronikheatpump.inputHotWaterThermostat.label = Eingang "Brauchwarmwasserthermostat"
|
||||||
|
channel-type.luxtronikheatpump.inputUtilityLock.label = Eingang "EVU-Sperre"
|
||||||
|
channel-type.luxtronikheatpump.inputHighPressureCoolingCircuit.label = Eingang "Hochdruck Kältekreis"
|
||||||
|
channel-type.luxtronikheatpump.inputMotorProtectionOK.label = Eingang "Motorschutz OK"
|
||||||
|
channel-type.luxtronikheatpump.inputLowPressure.label = Eingang "Niederdruck"
|
||||||
|
channel-type.luxtronikheatpump.inputPEX.label = Eingang "Überwachungskontakt für Potentiostat"
|
||||||
|
channel-type.luxtronikheatpump.inputSwimmingPoolThermostat.label = Eingang "Schwimmbadthermostat"
|
||||||
|
channel-type.luxtronikheatpump.outputDefrostValve.label = Ausgang "Abtauventil"
|
||||||
|
channel-type.luxtronikheatpump.outputBUP.label = Ausgang "Brauchwasserpumpe/Umstellventil"
|
||||||
|
channel-type.luxtronikheatpump.outputHeatingCirculationPump.label = Ausgang "Heizungsumwälzpumpe"
|
||||||
|
channel-type.luxtronikheatpump.outputMixingCircuit1Open.label = Ausgang "Mischkreis 1 Auf"
|
||||||
|
channel-type.luxtronikheatpump.outputMixingCircuit1Closed.label = Ausgang "Mischkreis 1 Zu"
|
||||||
|
channel-type.luxtronikheatpump.outputVentilation.label = Ausgang "Ventilation (Lüftung)"
|
||||||
|
channel-type.luxtronikheatpump.outputVBO.label = Ausgang "Solepumpe/Ventilator"
|
||||||
|
channel-type.luxtronikheatpump.outputCompressor1.label = Ausgang "Verdichter 1"
|
||||||
|
channel-type.luxtronikheatpump.outputCompressor2.label = Ausgang "Verdichter 2"
|
||||||
|
channel-type.luxtronikheatpump.outputCirculationPump.label = Ausgang "Zirkulationspumpe"
|
||||||
|
channel-type.luxtronikheatpump.outputZUP.label = Ausgang "Zusatzumwälzpumpe"
|
||||||
|
channel-type.luxtronikheatpump.outputControlSignalAdditionalHeating.label = Ausgang "Steuersignal Zusatzheizung v. Heizung"
|
||||||
|
channel-type.luxtronikheatpump.outputFaultSignalAdditionalHeating.label = Ausgang "Steuersignal Zusatzheizung/Störsignal"
|
||||||
|
channel-type.luxtronikheatpump.outputAuxiliaryHeater3.label = Ausgang "Zusatzheizung 3"
|
||||||
|
channel-type.luxtronikheatpump.outputMixingCircuitPump2.label = Ausgang "Pumpe Mischkreis 2"
|
||||||
|
channel-type.luxtronikheatpump.outputSolarChargePump.label = Ausgang "Solarladepumpe"
|
||||||
|
channel-type.luxtronikheatpump.outputSwimmingPoolPump.label = Ausgang "Schwimmbadpumpe"
|
||||||
|
channel-type.luxtronikheatpump.outputMixingCircuit2Closed.label = Ausgang "Mischkreis 2 Zu"
|
||||||
|
channel-type.luxtronikheatpump.outputMixingCircuit2Open.label = Ausgang "Mischkreis 2 Auf"
|
||||||
|
channel-type.luxtronikheatpump.runtimeTotalCompressor1.label = Betriebszeit Verdichter 1
|
||||||
|
channel-type.luxtronikheatpump.pulsesCompressor1.label = Impulse Verdichter 1
|
||||||
|
channel-type.luxtronikheatpump.runtimeTotalCompressor2.label = Betriebszeit Verdichter 2
|
||||||
|
channel-type.luxtronikheatpump.pulsesCompressor2.label = Impulse Verdichter 2
|
||||||
|
channel-type.luxtronikheatpump.runtimeTotalSecondHeatGenerator1.label = Betriebszeit Zweiter Wärmeerzeuger 1
|
||||||
|
channel-type.luxtronikheatpump.runtimeTotalSecondHeatGenerator2.label = Betriebszeit Zweiter Wärmeerzeuger 2
|
||||||
|
channel-type.luxtronikheatpump.runtimeTotalSecondHeatGenerator3.label = Betriebszeit Zweiter Wärmeerzeuger 3
|
||||||
|
channel-type.luxtronikheatpump.runtimeTotalHeatPump.label = Betriebszeit Wärmepumpe
|
||||||
|
channel-type.luxtronikheatpump.runtimeTotalHeating.label = Betriebszeit Heizung
|
||||||
|
channel-type.luxtronikheatpump.runtimeTotalHotWater.label = Betriebszeit Warmwasser
|
||||||
|
channel-type.luxtronikheatpump.runtimeTotalCooling.label = Betriebszeit Kühlung
|
||||||
|
channel-type.luxtronikheatpump.runtimeCurrentHeatPump.label = Wärmepumpe läuft seit
|
||||||
|
channel-type.luxtronikheatpump.runtimeCurrentSecondHeatGenerator1.label = Zweiter Wärmeerzeuger 1 läuft seit
|
||||||
|
channel-type.luxtronikheatpump.runtimeCurrentSecondHeatGenerator2.label = Zweiter Wärmeerzeuger 2 läuft seit
|
||||||
|
channel-type.luxtronikheatpump.mainsOnDelay.label = Netzeinschaltverzögerung
|
||||||
|
channel-type.luxtronikheatpump.switchingCycleLockOff.label = Schaltspielsperre Aus
|
||||||
|
channel-type.luxtronikheatpump.switchingCycleLockOn.label = Schaltspielsperre Ein
|
||||||
|
channel-type.luxtronikheatpump.compressorIdleTime.label = Verdichter-Standzeit
|
||||||
|
channel-type.luxtronikheatpump.heatingControllerMoreTime.label = Heizungsregler Mehr-Zeit
|
||||||
|
channel-type.luxtronikheatpump.heatingControllerLessTime.label = Heizungsregler Weniger-Zeit
|
||||||
|
channel-type.luxtronikheatpump.runtimeCurrentThermalDisinfection.label = Thermische Desinfektion läuft seit
|
||||||
|
channel-type.luxtronikheatpump.timeHotWaterLock.label = Sperre Warmwasser
|
||||||
|
channel-type.luxtronikheatpump.bivalenceStage.label = Bivalenzstufe
|
||||||
|
channel-type.luxtronikheatpump.bivalenceStage.state.option.1 = ein Verdichter darf laufen
|
||||||
|
channel-type.luxtronikheatpump.bivalenceStage.state.option.2 = zwei Verdichter dürfen laufen
|
||||||
|
channel-type.luxtronikheatpump.bivalenceStage.state.option.3 = zusätzlicher Wärmeerzeuger darf mitlaufen
|
||||||
|
channel-type.luxtronikheatpump.operatingStatus.label = Betriebszustand
|
||||||
|
channel-type.luxtronikheatpump.operatingStatus.state.option.0 = Heizen
|
||||||
|
channel-type.luxtronikheatpump.operatingStatus.state.option.1 = Warmwasser
|
||||||
|
channel-type.luxtronikheatpump.operatingStatus.state.option.2 = Schwimmbad / Photovoltaik
|
||||||
|
channel-type.luxtronikheatpump.operatingStatus.state.option.3 = EVU-Sperre
|
||||||
|
channel-type.luxtronikheatpump.operatingStatus.state.option.4 = Abtauen
|
||||||
|
channel-type.luxtronikheatpump.operatingStatus.state.option.5 = Keine Anforderung
|
||||||
|
channel-type.luxtronikheatpump.operatingStatus.state.option.6 = Heizen ext. Energiequelle
|
||||||
|
channel-type.luxtronikheatpump.operatingStatus.state.option.7 = Kühlbetrieb
|
||||||
|
channel-type.luxtronikheatpump.errorTime0.label = Zeitstempel Fehler 0 im Speicher
|
||||||
|
channel-type.luxtronikheatpump.errorTime1.label = Zeitstempel Fehler 1 im Speicher
|
||||||
|
channel-type.luxtronikheatpump.errorTime2.label = Zeitstempel Fehler 2 im Speicher
|
||||||
|
channel-type.luxtronikheatpump.errorTime3.label = Zeitstempel Fehler 3 im Speicher
|
||||||
|
channel-type.luxtronikheatpump.errorTime4.label = Zeitstempel Fehler 4 im Speicher
|
||||||
|
channel-type.luxtronikheatpump.errorCode0.label = Fehlercode Fehler 0 im Speicher
|
||||||
|
channel-type.luxtronikheatpump.errorCode1.label = Fehlercode Fehler 1 im Speicher
|
||||||
|
channel-type.luxtronikheatpump.errorCode2.label = Fehlercode Fehler 2 im Speicher
|
||||||
|
channel-type.luxtronikheatpump.errorCode3.label = Fehlercode Fehler 3 im Speicher
|
||||||
|
channel-type.luxtronikheatpump.errorCode4.label = Fehlercode Fehler 4 im Speicher
|
||||||
|
channel-type.luxtronikheatpump.errorCountInMemory.label = Anzahl der Fehler im Speicher
|
||||||
|
channel-type.luxtronikheatpump.shutdownReason0.label = Grund Abschaltung 0 im Speicher
|
||||||
|
channel-type.luxtronikheatpump.shutdownReason1.label = Grund Abschaltung 1 im Speicher
|
||||||
|
channel-type.luxtronikheatpump.shutdownReason2.label = Grund Abschaltung 2 im Speicher
|
||||||
|
channel-type.luxtronikheatpump.shutdownReason3.label = Grund Abschaltung 3 im Speicher
|
||||||
|
channel-type.luxtronikheatpump.shutdownReason4.label = Grund Abschaltung 4 im Speicher
|
||||||
|
channel-type.luxtronikheatpump.shutdownTime0.label = Zeitstempel Abschaltung 0 im Speicher
|
||||||
|
channel-type.luxtronikheatpump.shutdownTime1.label = Zeitstempel Abschaltung 1 im Speicher
|
||||||
|
channel-type.luxtronikheatpump.shutdownTime2.label = Zeitstempel Abschaltung 2 im Speicher
|
||||||
|
channel-type.luxtronikheatpump.shutdownTime3.label = Zeitstempel Abschaltung 3 im Speicher
|
||||||
|
channel-type.luxtronikheatpump.shutdownTime4.label = Zeitstempel Abschaltung 4 im Speicher
|
||||||
|
channel-type.luxtronikheatpump.comfortBoardInstalled.label = Comfort Platine installiert
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine.label = Status
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine1.label = Status Zeile 1
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine1.state.option.0 = Wärmepumpe läuft
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine1.state.option.1 = Wärmepumpe steht
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine1.state.option.2 = Wärmepumpe kommt
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine1.state.option.3 = Fehlercode Speicherplatz 0
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine1.state.option.4 = Abtauen
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine1.state.option.5 = Warte auf LIN-Verbindung
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine1.state.option.6 = Verdichter heizt auf
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine1.state.option.7 = Pumpenvorlauf
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine2.label = Status Zeile 2
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine2.state.option.0 = seit
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine2.state.option.1 = in
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine3.label = Status Zeile 3
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine3.state.option.0 = Heizbetrieb
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine3.state.option.1 = Keine Anforderung
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine3.state.option.2 = Netz-Einschaltverzögerung
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine3.state.option.3 = Schaltspielsperre
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine3.state.option.4 = Sperrzeit
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine3.state.option.5 = Brauchwasser
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine3.state.option.6 = Info Ausheizprogramm
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine3.state.option.7 = Abtauen
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine3.state.option.8 = Pumpenvorlauf
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine3.state.option.9 = Thermische Desinfektion
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine3.state.option.10 = Kühlbetrieb
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine3.state.option.12 = Schwimmbad / Photovoltaik
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine3.state.option.13 = Heizen ext. Energiequelle
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine3.state.option.14 = Brauchwasser ext. Energiequelle
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine3.state.option.16 = Durchflussüberachung
|
||||||
|
channel-type.luxtronikheatpump.menuStateLine3.state.option.17 = Zweiter Wärmeerzeuger 1 Betrieb
|
||||||
|
channel-type.luxtronikheatpump.menuStateTime.label = Status Zeit Zeile 2
|
||||||
|
channel-type.luxtronikheatpump.bakeoutProgramStage.label = Stufe Ausheizprogramm
|
||||||
|
channel-type.luxtronikheatpump.bakeoutProgramTemperature.label = Temp. Ausheizprogramm
|
||||||
|
channel-type.luxtronikheatpump.bakeoutProgramTime.label = Laufzeit Ausheizprogramm
|
||||||
|
channel-type.luxtronikheatpump.iconHotWater.label = Brauchwasser aktiv/inaktiv Symbol
|
||||||
|
channel-type.luxtronikheatpump.iconHeater.label = Heizung Symbol
|
||||||
|
channel-type.luxtronikheatpump.iconMixingCircuit1.label = Mischkreis 1 Symbol
|
||||||
|
channel-type.luxtronikheatpump.iconMixingCircuit2.label = Mischkreis 2 Symbol
|
||||||
|
channel-type.luxtronikheatpump.shortProgramSetting.label = Einstellung Kurzprogramm
|
||||||
|
channel-type.luxtronikheatpump.statusSlave1.label = Status Slave 1
|
||||||
|
channel-type.luxtronikheatpump.statusSlave2.label = Status Slave 2
|
||||||
|
channel-type.luxtronikheatpump.statusSlave3.label = Status Slave 3
|
||||||
|
channel-type.luxtronikheatpump.statusSlave4.label = Status Slave 4
|
||||||
|
channel-type.luxtronikheatpump.statusSlave5.label = Status Slave 5
|
||||||
|
channel-type.luxtronikheatpump.currentTimestamp.label = Aktuelle Zeit der Wärmepumpe
|
||||||
|
channel-type.luxtronikheatpump.iconMixingCircuit3.label = Mischkreis 3 Symbol
|
||||||
|
channel-type.luxtronikheatpump.temperatureMixingCircuit3FlowTarget.label = Mischkreis 3 Vorlauf-Soll-Temp.
|
||||||
|
channel-type.luxtronikheatpump.temperatureMixingCircuit3Flow.label = Mischkreis 3 Vorlauftemp.
|
||||||
|
channel-type.luxtronikheatpump.outputMixingCircuit3Close.label = Ausgang "Mischkreis 3 Zu"
|
||||||
|
channel-type.luxtronikheatpump.outputMixingCircuit3Open.label = Ausgang "Mischkreis 3 Auf"
|
||||||
|
channel-type.luxtronikheatpump.outputMixingCircuitPump3.label = Pumpe Mischkreis 3
|
||||||
|
channel-type.luxtronikheatpump.timeUntilDefrost.label = Zeit bis Abtauen
|
||||||
|
channel-type.luxtronikheatpump.temperatureRoomStation2.label = Raumtemp. Raumstation 2
|
||||||
|
channel-type.luxtronikheatpump.temperatureRoomStation3.label = Raumtemp. Raumstation 3
|
||||||
|
channel-type.luxtronikheatpump.iconTimeSwitchSwimmingPool.label = Schaltuhr-Schwimmbad-Symbol
|
||||||
|
channel-type.luxtronikheatpump.runtimeTotalSwimmingPool.label = Betriebszeit Schwimmbad
|
||||||
|
channel-type.luxtronikheatpump.coolingRelease.label = Freigabe Kühlung
|
||||||
|
channel-type.luxtronikheatpump.inputAnalog.label = Analoges Eingangssignal
|
||||||
|
channel-type.luxtronikheatpump.iconCirculationPump.label = Zirkulationspumpensymbol
|
||||||
|
channel-type.luxtronikheatpump.heatMeterHeating.label = Wärmemengenzähler Heizung
|
||||||
|
channel-type.luxtronikheatpump.heatMeterHotWater.label = Wärmemengenzähler Brauchwasser
|
||||||
|
channel-type.luxtronikheatpump.heatMeterSwimmingPool.label = Wärmemengenzähler Schwimmbad
|
||||||
|
channel-type.luxtronikheatpump.heatMeterTotalSinceReset.label = Wärmemengenzähler Gesamt (seit Reset)
|
||||||
|
channel-type.luxtronikheatpump.heatMeterFlowRate.label = Wärmemengenzähler Durchfluss
|
||||||
|
channel-type.luxtronikheatpump.outputAnalog1.label = Analog Ausgang 1
|
||||||
|
channel-type.luxtronikheatpump.outputAnalog2.label = Analog Ausgang 2
|
||||||
|
channel-type.luxtronikheatpump.timeLockSecondHotGasCompressor.label = Sperre zweiter Verdichter Heißgas
|
||||||
|
channel-type.luxtronikheatpump.temperatureSupplyAir.label = Zulufttemp.
|
||||||
|
channel-type.luxtronikheatpump.temperatureExhaustAir.label = Ablufttemp.
|
||||||
|
channel-type.luxtronikheatpump.runtimeTotalSolar.label = Betriebszeit Solar
|
||||||
|
channel-type.luxtronikheatpump.outputAnalog3.label = Analog Ausgang 3
|
||||||
|
channel-type.luxtronikheatpump.outputAnalog4.label = Analog Ausgang 4
|
||||||
|
channel-type.luxtronikheatpump.outputSupplyAirFan.label = Zuluft Ventilator (Abtaufunktion)
|
||||||
|
channel-type.luxtronikheatpump.outputExhaustFan.label = Abluft Ventilator
|
||||||
|
channel-type.luxtronikheatpump.outputVSK.label = Ausgang VSK
|
||||||
|
channel-type.luxtronikheatpump.outputFRH.label = Ausgang FRH
|
||||||
|
channel-type.luxtronikheatpump.inputAnalog2.label = Analog Eingang 2
|
||||||
|
channel-type.luxtronikheatpump.inputAnalog3.label = Analog Eingang 3
|
||||||
|
channel-type.luxtronikheatpump.inputSAX.label = Eingang SAX
|
||||||
|
channel-type.luxtronikheatpump.inputSPL.label = Eingang SPL
|
||||||
|
channel-type.luxtronikheatpump.ventilationBoardInstalled.label = Lüftungsplatine verbaut
|
||||||
|
channel-type.luxtronikheatpump.flowRateHeatSource.label = Durchfluss Wärmequelle
|
||||||
|
channel-type.luxtronikheatpump.linBusInstalled.label = LIN BUS verbaut
|
||||||
|
channel-type.luxtronikheatpump.temperatureSuctionEvaporator.label = Temp. Ansaug Verdampfer
|
||||||
|
channel-type.luxtronikheatpump.temperatureSuctionCompressor.label = Temp. Ansaug Verdichter
|
||||||
|
channel-type.luxtronikheatpump.temperatureCompressorHeating.label = Temp. Verdichter Heizung
|
||||||
|
channel-type.luxtronikheatpump.temperatureOverheating.label = Überhitzung
|
||||||
|
channel-type.luxtronikheatpump.temperatureOverheatingTarget.label = Überhitzung Soll
|
||||||
|
channel-type.luxtronikheatpump.highPressure.label = Hochdruck
|
||||||
|
channel-type.luxtronikheatpump.lowPressure.label = Niederdruck
|
||||||
|
channel-type.luxtronikheatpump.outputCompressorHeating.label = Ausgang Verdichterheizung
|
||||||
|
channel-type.luxtronikheatpump.controlSignalCirculatingPump.label = Steuersignal Umwälzpumpe
|
||||||
|
channel-type.luxtronikheatpump.fanSpeed.label = Ventilatordrehzahl
|
||||||
|
channel-type.luxtronikheatpump.temperatureSafetyLimitFloorHeating.label = Sicherheits-Temp.-Begrenzer Fußbodenheizung
|
||||||
|
channel-type.luxtronikheatpump.powerTargetValue.label = Leistung Sollwert
|
||||||
|
channel-type.luxtronikheatpump.powerActualValue.label = Leistung Istwert
|
||||||
|
channel-type.luxtronikheatpump.temperatureFlowTarget.label = Temp. Vorlauf Soll
|
||||||
|
channel-type.luxtronikheatpump.operatingStatusSECBoard.label = Betriebszustand SEC Board
|
||||||
|
channel-type.luxtronikheatpump.operatingStatusSECBoard.state.option0 = Aus
|
||||||
|
channel-type.luxtronikheatpump.operatingStatusSECBoard.state.option1 = Kühlung
|
||||||
|
channel-type.luxtronikheatpump.operatingStatusSECBoard.state.option2 = Heizung
|
||||||
|
channel-type.luxtronikheatpump.operatingStatusSECBoard.state.option3 = Störung
|
||||||
|
channel-type.luxtronikheatpump.operatingStatusSECBoard.state.option4 = Übergang
|
||||||
|
channel-type.luxtronikheatpump.operatingStatusSECBoard.state.option5 = Abtauen
|
||||||
|
channel-type.luxtronikheatpump.operatingStatusSECBoard.state.option6 = Warte
|
||||||
|
channel-type.luxtronikheatpump.operatingStatusSECBoard.state.option7 = Warte
|
||||||
|
channel-type.luxtronikheatpump.operatingStatusSECBoard.state.option8 = Übergang
|
||||||
|
channel-type.luxtronikheatpump.operatingStatusSECBoard.state.option9 = Stop
|
||||||
|
channel-type.luxtronikheatpump.operatingStatusSECBoard.state.option10 = Manuell
|
||||||
|
channel-type.luxtronikheatpump.operatingStatusSECBoard.state.option11 = Simulation Start
|
||||||
|
channel-type.luxtronikheatpump.operatingStatusSECBoard.state.option12 = EVU-Sperre
|
||||||
|
channel-type.luxtronikheatpump.fourWayValve.label = Vierwegeventil
|
||||||
|
channel-type.luxtronikheatpump.compressorSpeed.label = Verdichterdrehzahl
|
||||||
|
channel-type.luxtronikheatpump.temperatureCompressorEVI.label = Verdichtertemp. EVI (Enhanced Vapour Injection)
|
||||||
|
channel-type.luxtronikheatpump.temperatureIntakeEVI.label = Ansaugtemp. EVI
|
||||||
|
channel-type.luxtronikheatpump.temperatureOverheatingEVI.label = Überhitzung EVI
|
||||||
|
channel-type.luxtronikheatpump.temperatureOverheatingTargetEVI.label = Überhitzung EVI Sollwert
|
||||||
|
channel-type.luxtronikheatpump.temperatureCondensation.label = Kondensationstemp.
|
||||||
|
channel-type.luxtronikheatpump.temperatureLiquidEEV.label = Flüssigtemp. EEV (elektronisches Expansionsventil)
|
||||||
|
channel-type.luxtronikheatpump.temperatureHypothermiaEEV.label = Unterkühlung EEV
|
||||||
|
channel-type.luxtronikheatpump.pressureEVI.label = Druck EVI
|
||||||
|
channel-type.luxtronikheatpump.voltageInverter.label = Spannung Inverter
|
||||||
|
channel-type.luxtronikheatpump.temperatureHotGas2.label = Temp.-Fühler Heißgas 2
|
||||||
|
channel-type.luxtronikheatpump.temperatureHeatSourceInlet2.label = Temp.-Fühler Wärmequelleneintritt 2
|
||||||
|
channel-type.luxtronikheatpump.temperatureIntakeEvaporator2.label = Ansaugtemp. Verdampfer 2
|
||||||
|
channel-type.luxtronikheatpump.temperatureIntakeCompressor2.label = Ansaugtemp. Verdichter 2
|
||||||
|
channel-type.luxtronikheatpump.temperatureCompressor2Heating.label = Temp. Verdichter 2 Heizung
|
||||||
|
channel-type.luxtronikheatpump.temperatureOverheating2.label = Überhitzung 2
|
||||||
|
channel-type.luxtronikheatpump.temperatureOverheatingTarget2.label = Überhitzung Soll 2
|
||||||
|
channel-type.luxtronikheatpump.highPressure2.label = Hochdruck 2
|
||||||
|
channel-type.luxtronikheatpump.lowPressure2.label = Niederdruck 2
|
||||||
|
channel-type.luxtronikheatpump.inputSwitchHighPressure2.label = Eingang Druckschalter Hochdruck 2
|
||||||
|
channel-type.luxtronikheatpump.outputDefrostValve2.label = Ausgang Abtauventil 2
|
||||||
|
channel-type.luxtronikheatpump.outputVBO2.label = Ausgang Solepumpe/Ventilator 2
|
||||||
|
channel-type.luxtronikheatpump.outputCompressor1_2.label = Ausgang Verdichter 1 / 2
|
||||||
|
channel-type.luxtronikheatpump.outputCompressorHeating2.label = Ausgang Verdichter Heizung 2
|
||||||
|
channel-type.luxtronikheatpump.secondShutdownReason0.label = Grund Abschaltung 0 im Speicher 2
|
||||||
|
channel-type.luxtronikheatpump.secondShutdownReason1.label = Grund Abschaltung 1 im Speicher 2
|
||||||
|
channel-type.luxtronikheatpump.secondShutdownReason2.label = Grund Abschaltung 2 im Speicher 2
|
||||||
|
channel-type.luxtronikheatpump.secondShutdownReason3.label = Grund Abschaltung 3 im Speicher 2
|
||||||
|
channel-type.luxtronikheatpump.secondShutdownReason4.label = Grund Abschaltung 4 im Speicher 2
|
||||||
|
channel-type.luxtronikheatpump.secondShutdownTime0.label = Zeitstempel Abschaltung 0 im Speicher 2
|
||||||
|
channel-type.luxtronikheatpump.secondShutdownTime1.label = Zeitstempel Abschaltung 1 im Speicher 2
|
||||||
|
channel-type.luxtronikheatpump.secondShutdownTime2.label = Zeitstempel Abschaltung 2 im Speicher 2
|
||||||
|
channel-type.luxtronikheatpump.secondShutdownTime3.label = Zeitstempel Abschaltung 3 im Speicher 2
|
||||||
|
channel-type.luxtronikheatpump.secondShutdownTime4.label = Zeitstempel Abschaltung 4 im Speicher 2
|
||||||
|
channel-type.luxtronikheatpump.temperatureRoom.label = Raumtemp. Istwert
|
||||||
|
channel-type.luxtronikheatpump.temperatureRoomTarget.label = Raumtemp. Sollwert
|
||||||
|
channel-type.luxtronikheatpump.temperatureHotWaterTop.label = Temp. Brauchwasser Oben
|
||||||
|
channel-type.luxtronikheatpump.frequencyCompressor.label = Verdichterfrequenz
|
||||||
|
channel-type.luxtronikheatpump.temperatureHeatingParallelShift.label = Heizung Temp. (Parallelverschiebung)
|
||||||
|
channel-type.luxtronikheatpump.heatingMode.label = Heizung Betriebsart
|
||||||
|
channel-type.luxtronikheatpump.hotWaterMode.label = Warmwasser Betriebsart
|
||||||
|
channel-type.luxtronikheatpump.thermalDisinfectionMonday.label = Thermische Desinfektion (Mo)
|
||||||
|
channel-type.luxtronikheatpump.thermalDisinfectionTuesday.label = Thermische Desinfektion (Di)
|
||||||
|
channel-type.luxtronikheatpump.thermalDisinfectionWednesday.label = Thermische Desinfektion (Mi)
|
||||||
|
channel-type.luxtronikheatpump.thermalDisinfectionThursday.label = Thermische Desinfektion (Do)
|
||||||
|
channel-type.luxtronikheatpump.thermalDisinfectionFriday.label = Thermische Desinfektion (Fr)
|
||||||
|
channel-type.luxtronikheatpump.thermalDisinfectionSaturday.label = Thermische Desinfektion (Sa)
|
||||||
|
channel-type.luxtronikheatpump.thermalDisinfectionSunday.label = Thermische Desinfektion (So)
|
||||||
|
channel-type.luxtronikheatpump.thermalDisinfectionPermanent.label = Thermische Desinfektion (Dauerbetrieb)
|
||||||
|
channel-type.luxtronikheatpump.comfortCoolingMode.label = Comfort Kühlung Betriebsart
|
||||||
|
channel-type.luxtronikheatpump.comfortCoolingMode.state.option.0 = Aus
|
||||||
|
channel-type.luxtronikheatpump.comfortCoolingMode.state.option.1 = Auto
|
||||||
|
channel-type.luxtronikheatpump.temperatureComfortCoolingATRelease.label = Comfort Kühlung AT-Freigabe
|
||||||
|
channel-type.luxtronikheatpump.temperatureComfortCoolingATReleaseTarget.label = Comfort Kühlung AT-Freigabe Sollwert
|
||||||
|
channel-type.luxtronikheatpump.comfortCoolingATExcess.label = AT-Überschreitung
|
||||||
|
channel-type.luxtronikheatpump.comfortCoolingATUndercut.label = AT-Unterschreitung
|
||||||
|
|
||||||
|
channel-type.luxtronikheatpump.operationMode.state.option.0 = Auto
|
||||||
|
channel-type.luxtronikheatpump.operationMode.state.option.1 = Zuheizer
|
||||||
|
channel-type.luxtronikheatpump.operationMode.state.option.2 = Party
|
||||||
|
channel-type.luxtronikheatpump.operationMode.state.option.3 = Ferien
|
||||||
|
channel-type.luxtronikheatpump.operationMode.state.option.4 = Aus
|
||||||
|
|
||||||
|
channel-type.luxtronikheatpump.SwitchoffX_file_NrX.state.option.1 = Wärmepumpe Störung
|
||||||
|
channel-type.luxtronikheatpump.SwitchoffX_file_NrX.state.option.2 = Anlagenstörung
|
||||||
|
channel-type.luxtronikheatpump.SwitchoffX_file_NrX.state.option.3 = Betriebsart Zweiter Wärmeerzeuger
|
||||||
|
channel-type.luxtronikheatpump.SwitchoffX_file_NrX.state.option.4 = EVU-Sperre
|
||||||
|
channel-type.luxtronikheatpump.SwitchoffX_file_NrX.state.option.5 = Lauftabtau (nur LW-Geräte)
|
||||||
|
channel-type.luxtronikheatpump.SwitchoffX_file_NrX.state.option.6 = Temperatur Einsatzgrenze maximal
|
||||||
|
channel-type.luxtronikheatpump.SwitchoffX_file_NrX.state.option.7 = Temperatur Einsatzgrenze minimal
|
||||||
|
channel-type.luxtronikheatpump.SwitchoffX_file_NrX.state.option.8 = Untere Einsatzgrenze
|
||||||
|
channel-type.luxtronikheatpump.SwitchoffX_file_NrX.state.option.9 = Keine Anforderung
|
||||||
|
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.701 = Niederdruckstörung - Bitte Inst. rufen
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.702 = Niederdrucksperre - RESET automatisch
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.703 = Frostschutz - Bitte Inst. rufen
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.704 = Heißgasstörung - Reset in hh:mm
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.705 = Motorschutz VEN - Bitte Inst. rufen
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.706 = Motorschutz BSUP - Bitte Inst. rufen
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.707 = Kodierung Wärmepumpe - Bitte Inst. rufen
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.708 = Fühler Rücklauf - Bitte Inst. rufen
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.709 = Fühler Vorlauf - Bitte Inst. rufen
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.710 = Fühler Heißgas - Bitte Inst. rufen
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.711 = Fühler Außentemp. - Bitte Inst. rufen
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.712 = Fühler Trinkwarmwasser - Bitte Inst. rufen
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.713 = Fühler WQ-Eintritt - Bitte Inst. rufen
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.714 = Heißgas Warmwasser - Reset in hh:mm
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.715 = Hochdruck-Abschaltung - RESET automatisch
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.716 = Hochdruckstörung - Bitte Inst rufen
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.717 = Durchfluss-WQ - Bitte Inst. rufen
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.718 = Maximale Außentemperatur - RESET automatisch
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.719 = Minimale Außentemperatur - RESET automatisch
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.720 = Minimale WQ-Temperatur - RESET automatisch in hh:mm
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.721 = Niederdruckabschaltung - RESET automatisch
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.722 = Temperaturdifferenz Heizwasser - Bitte Inst. rufen
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.723 = Temperaturdifferenz Warmwasser - Bitte Inst. rufen
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.724 = Temperaturdifferenz Abtauen - Bitte Inst. rufen
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.725 = Anlagenfehler Warmwasser - Bitte Inst. rufen
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.726 = Fühler Mischkreis 1 - Bitte Inst. rufen
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.727 = Soledruck - Bitte Inst. rufen
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.728 = Fühler WQ-Austritt - Bitte Inst. rufen
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.729 = Drehfeldfehler - Bitte Inst. rufen
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.730 = Leistung Ausheizen - Bitte Inst. rufen
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.731 = Zeitüberschreitung TDI
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.732 = Störung Kühlung - Bitte Inst. rufen
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.733 = Störung Anode - Bitte Inst. rufen
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.734 = Störung Anode - Bitte Inst. rufen
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.735 = Fühler Externe Energiequelle - Bitte Inst. rufen
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.736 = Fühler Solarkollektor - Bitte Inst. rufen
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.737 = Fühler Solarspeicher - Bitte Inst. rufen
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.738 = Fühler Mischkreis 2 - Bitte Inst. rufen
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.739 = Fühler Mischkreis 3 - Bitte Inst. rufen
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.750 = Fühler Rücklauf extern - Bitte Inst. rufen
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.751 = Phasenüberwachungsfehler
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.752 = Phasenüberwachungs- / Durchflussfehler
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.755 = Verbindung zu Slave verloren - Bitte Inst. rufen
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.756 = Verbindung zu Master verloren - Bitte Inst. rufen
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.757 = ND-Störung bei W/W-Gerät
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.758 = Störung Abtauung
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.759 = Meldung TDI
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.760 = Störung Abtauung
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.761 = LIN-Verbindung unterbrochen
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.762 = Fühler Ansaug-Verdichter
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.763 = Fühler Ansaug-Verdampfer
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.764 = Fühler Verdichterheizung
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.765 = Überhitzung
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.766 = Einsatzgrenzen-VD
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.767 = STB E-Stab
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.768 = Durchflussüberwachung
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.769 = Pumpenansteuerung
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.770 = Niedrige Überhitzung
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.771 = Hohe Überhitzung
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.776 = Einsatzgrenzen-VD
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.777 = Expansionsventil
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.778 = Fühler Niederdruck
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.779 = Fühler Hochdruck
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.780 = Fühler EVI
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.781 = Fühler Flüssig, vor Ex-Ventil
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.782 = Fühler EVI Sauggas
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.783 = Kommunikation SEC-Platine / Inverter
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.784 = VSS gesperrt
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.785 = SEC-Platine defekt
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.786 = Kommunikation SEC-Platine / Inverter
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.787 = VD Alarm
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.788 = Schwerw. Inverter Fehler
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.789 = LIN/Kodierung nicht vorhanden
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.790 = Schwerw. Inverter Fehler
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.791 = ModBus Inverter
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.792 = LIN-Verbindung unterbrochen
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.793 = Inverter Temperatur
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.794 = Überspannung
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.795 = Unterspannung
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.796 = Sicherheitsabschaltung
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.797 = MLRH wird nicht unterstützt
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.798 = ModBus Ventilator
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.799 = ModBus ASB
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.800 = Enthitzer-Fehler
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.802 = Ventilator Schaltkasten
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.803 = Ventilator Schaltkasten
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.806 = ModBus SEC
|
||||||
|
channel-type.luxtronikheatpump.errorCodeX.state.option.807 = ModBus Verbindung verloren
|
File diff suppressed because it is too large
Load Diff
@ -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>
|
@ -175,6 +175,7 @@
|
|||||||
<module>org.openhab.binding.loxone</module>
|
<module>org.openhab.binding.loxone</module>
|
||||||
<module>org.openhab.binding.luftdateninfo</module>
|
<module>org.openhab.binding.luftdateninfo</module>
|
||||||
<module>org.openhab.binding.lutron</module>
|
<module>org.openhab.binding.lutron</module>
|
||||||
|
<module>org.openhab.binding.luxtronikheatpump</module>
|
||||||
<module>org.openhab.binding.magentatv</module>
|
<module>org.openhab.binding.magentatv</module>
|
||||||
<module>org.openhab.binding.mail</module>
|
<module>org.openhab.binding.mail</module>
|
||||||
<module>org.openhab.binding.max</module>
|
<module>org.openhab.binding.max</module>
|
||||||
|
Loading…
Reference in New Issue
Block a user