Skip to content

Commit

Permalink
[LuxtronikHeatpump] Adds additional channels (openhab#11860)
Browse files Browse the repository at this point in the history
* Adds channels available on newer heatpumps

Signed-off-by: Stefan Giehl <[email protected]>
Signed-off-by: Jamie Townsend <[email protected]>
  • Loading branch information
sgiehl authored and Nemer_Daud committed Jan 28, 2022
1 parent 98665c1 commit 8a17520
Show file tree
Hide file tree
Showing 6 changed files with 208 additions and 5 deletions.
32 changes: 32 additions & 0 deletions bundles/org.openhab.binding.luxtronikheatpump/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -247,6 +247,38 @@ The following channels are holding read only values:
| temperatureRoomTarget | Number:Temperature | x | Room temperature set point |
| temperatureHotWaterTop | Number:Temperature | x | Temperature domestic water top |
| frequencyCompressor | Number:Frequency | x | Compressor frequency |
| channel232 | Number | x | Channel 232 |
| channel233 | Number | x | Channel 233 |
| channel234 | Number | x | Channel 234 |
| channel235 | Number | x | Channel 235 |
| frequencyCompressorTarget | Number:Frequency | x | Compressor Target Frequency |
| channel237 | Number | x | Channel 237 |
| channel238 | Number | x | Channel 238 |
| channel239 | Number | x | Channel 239 |
| channel240 | Number | x | Channel 240 |
| channel241 | Number | x | Channel 241 |
| channel242 | Number | x | Channel 242 |
| channel243 | Number | x | Channel 243 |
| channel244 | Number | x | Channel 244 |
| channel245 | Number | x | Channel 245 |
| channel246 | Number | x | Channel 246 |
| channel247 | Number | x | Channel 247 |
| channel248 | Number | x | Channel 248 |
| channel249 | Number | x | Channel 249 |
| channel250 | Number | x | Channel 250 |
| channel251 | Number | x | Channel 251 |
| channel252 | Number | x | Channel 252 |
| channel253 | Number | x | Channel 253 |
| flowRateHeatSource2 | Number:VolumetricFlowRate | x | Flow Rate Heat Source |
| channel255 | Number | x | Channel 255 |
| channel256 | Number | x | Channel 256 |
| heatingPowerActualValue | Number:Power | x | Heating Power Actual Value |
| channel258 | Number | x | Channel 258 |
| channel259 | Number | x | Channel 259 |
| channel260 | Number | x | Channel 260 |

The usage of the numbered channels above is currently unknown. If you are able to directly match one of the values to any value reported by your heat pump, feel free to report back on the forum, so we are able to give the channel a proper name instead.


The following channels are also writable:
| channel | type | advanced | description |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ public void run() {
if (SIUnits.CELSIUS.equals(unit) || Units.KELVIN.equals(unit) || Units.KILOWATT_HOUR.equals(unit)
|| Units.PERCENT.equals(unit) || Units.HOUR.equals(unit)) {
return new QuantityType<>((double) rawValue / 10, unit);
} else if (Units.HERTZ.equals(unit) || Units.SECOND.equals(unit)) {
} else if (Units.HERTZ.equals(unit) || Units.SECOND.equals(unit) || Units.WATT.equals(unit)) {
return new QuantityType<>((double) rawValue, unit);
} else if (Units.LITRE_PER_MINUTE.equals(unit)) {
return new QuantityType<>((double) rawValue / 60, unit);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1193,6 +1193,42 @@ public enum HeatpumpChannel {
*/
CHANNEL_CODE_FREQ_VD(231, "frequencyCompressor", NumberItem.class, Units.HERTZ, false, null),

// For Heatpumps with a software version > 3.X the socket serves up to 260 values
// As those heatpumps do no longer serve a java applet, but use a web ui, that uses
// a web socket connection instead it's not possible to look up the channels in the
// code. The following channels are determined based on their values and which value
// they match on a heat pump

CHANNEL_232(232, "channel232", NumberItem.class, null, false, null),
CHANNEL_233(233, "channel233", NumberItem.class, null, false, null),
CHANNEL_234(234, "channel234", NumberItem.class, null, false, null),
CHANNEL_235(235, "channel235", NumberItem.class, null, false, null),
CHANNEL_236(236, "frequencyCompressorTarget", NumberItem.class, Units.HERTZ, false, null),
CHANNEL_237(237, "channel237", NumberItem.class, null, false, null),
CHANNEL_238(238, "channel238", NumberItem.class, null, false, null),
CHANNEL_239(239, "channel239", NumberItem.class, null, false, null),
CHANNEL_240(240, "channel240", NumberItem.class, null, false, null),
CHANNEL_241(241, "channel241", NumberItem.class, null, false, null),
CHANNEL_242(242, "channel242", NumberItem.class, null, false, null),
CHANNEL_243(243, "channel243", NumberItem.class, null, false, null),
CHANNEL_244(244, "channel244", NumberItem.class, null, false, null),
CHANNEL_245(245, "channel245", NumberItem.class, null, false, null),
CHANNEL_246(246, "channel246", NumberItem.class, null, false, null),
CHANNEL_247(247, "channel247", NumberItem.class, null, false, null),
CHANNEL_248(248, "channel248", NumberItem.class, null, false, null),
CHANNEL_249(249, "channel249", NumberItem.class, null, false, null),
CHANNEL_250(250, "channel250", NumberItem.class, null, false, null),
CHANNEL_251(251, "channel251", NumberItem.class, null, false, null),
CHANNEL_252(252, "channel252", NumberItem.class, null, false, null),
CHANNEL_253(253, "channel253", NumberItem.class, null, false, null),
CHANNEL_254(254, "flowRateHeatSource2", NumberItem.class, Units.LITRE_PER_MINUTE, false, null),
CHANNEL_255(255, "channel255", NumberItem.class, null, false, null),
CHANNEL_256(256, "channel256", NumberItem.class, null, false, null),
CHANNEL_257(257, "heatingPowerActualValue", NumberItem.class, Units.WATT, false, null),
CHANNEL_258(258, "channel258", NumberItem.class, null, false, null),
CHANNEL_259(259, "channel259", NumberItem.class, null, false, null),
CHANNEL_260(260, "channel260", NumberItem.class, null, false, null),

// Changeable Parameters
// https://www.loxwiki.eu/display/LOX/Java+Webinterface?preview=/13306044/13307658/3003.txt

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,32 @@ binding.luxtronikheatpump.description = This is the binding for a Heatpump with

thing-type.luxtronikheatpump.heatpump.label = Heatpump with Luxtronik Control
thing-type.luxtronikheatpump.heatpump.description = Integrates a heatpump with a Luxtronik control.
thing-type.luxtronikheatpump.heatpump.channel.channel232.label = Channel 232
thing-type.luxtronikheatpump.heatpump.channel.channel233.label = Channel 233
thing-type.luxtronikheatpump.heatpump.channel.channel234.label = Channel 234
thing-type.luxtronikheatpump.heatpump.channel.channel235.label = Channel 235
thing-type.luxtronikheatpump.heatpump.channel.channel237.label = Channel 237
thing-type.luxtronikheatpump.heatpump.channel.channel238.label = Channel 238
thing-type.luxtronikheatpump.heatpump.channel.channel239.label = Channel 239
thing-type.luxtronikheatpump.heatpump.channel.channel240.label = Channel 240
thing-type.luxtronikheatpump.heatpump.channel.channel241.label = Channel 241
thing-type.luxtronikheatpump.heatpump.channel.channel242.label = Channel 242
thing-type.luxtronikheatpump.heatpump.channel.channel243.label = Channel 243
thing-type.luxtronikheatpump.heatpump.channel.channel244.label = Channel 244
thing-type.luxtronikheatpump.heatpump.channel.channel245.label = Channel 245
thing-type.luxtronikheatpump.heatpump.channel.channel246.label = Channel 246
thing-type.luxtronikheatpump.heatpump.channel.channel247.label = Channel 247
thing-type.luxtronikheatpump.heatpump.channel.channel248.label = Channel 248
thing-type.luxtronikheatpump.heatpump.channel.channel249.label = Channel 249
thing-type.luxtronikheatpump.heatpump.channel.channel250.label = Channel 250
thing-type.luxtronikheatpump.heatpump.channel.channel251.label = Channel 251
thing-type.luxtronikheatpump.heatpump.channel.channel252.label = Channel 252
thing-type.luxtronikheatpump.heatpump.channel.channel253.label = Channel 253
thing-type.luxtronikheatpump.heatpump.channel.channel255.label = Channel 255
thing-type.luxtronikheatpump.heatpump.channel.channel256.label = Channel 256
thing-type.luxtronikheatpump.heatpump.channel.channel258.label = Channel 258
thing-type.luxtronikheatpump.heatpump.channel.channel259.label = Channel 259
thing-type.luxtronikheatpump.heatpump.channel.channel260.label = Channel 260

# thing types config

Expand Down Expand Up @@ -52,8 +78,10 @@ channel-type.luxtronikheatpump.errorTime3.label = Timestamp Error 3
channel-type.luxtronikheatpump.errorTime4.label = Timestamp Error 4
channel-type.luxtronikheatpump.fanSpeed.label = Fan Speed
channel-type.luxtronikheatpump.flowRateHeatSource.label = Flow Rate Heat Source
channel-type.luxtronikheatpump.flowRateHeatSource2.label = Flow Rate Heat Source
channel-type.luxtronikheatpump.fourWayValve.label = Four-way Valve
channel-type.luxtronikheatpump.frequencyCompressor.label = Compressor Frequency
channel-type.luxtronikheatpump.frequencyCompressorTarget.label = Compressor Target Frequency
channel-type.luxtronikheatpump.heatMeterFlowRate.label = Heat Meter Flow Rate
channel-type.luxtronikheatpump.heatMeterHeating.label = Heat Meter Heating
channel-type.luxtronikheatpump.heatMeterHotWater.label = Heat Meter Domestic Water
Expand All @@ -62,6 +90,7 @@ channel-type.luxtronikheatpump.heatMeterTotalSinceReset.label = Total Heat Meter
channel-type.luxtronikheatpump.heatingControllerLessTime.label = Heating Controller Less Time
channel-type.luxtronikheatpump.heatingControllerMoreTime.label = Heating Controller More Time
channel-type.luxtronikheatpump.heatingMode.label = Heating Mode
channel-type.luxtronikheatpump.heatingPowerActualValue.label = Heating Power Actual Value
channel-type.luxtronikheatpump.highPressure.label = High Pressure
channel-type.luxtronikheatpump.highPressure2.label = High Pressure 2
channel-type.luxtronikheatpump.hotWaterMode.label = Hot Water Operating Mode
Expand Down Expand Up @@ -266,9 +295,12 @@ channel-type.luxtronikheatpump.thermalDisinfectionWednesday.label = Thermal Disi
channel-type.luxtronikheatpump.timeHotWaterLock.label = Hot Water Lock
channel-type.luxtronikheatpump.timeLockSecondHotGasCompressor.label = Lock 2nd Compressor Hot Gas
channel-type.luxtronikheatpump.timeUntilDefrost.label = Time until Defrost
channel-type.luxtronikheatpump.unknown.label = Unknown Channel
channel-type.luxtronikheatpump.ventilationBoardInstalled.label = Ventilation Board Installed
channel-type.luxtronikheatpump.voltageInverter.label = Voltage Inverter

# channel types

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
Expand Down Expand Up @@ -366,7 +398,6 @@ 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

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
Expand All @@ -393,7 +424,6 @@ channel-type.luxtronikheatpump.menuStateLine3.state.option.13 = Heating ext. ene
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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1946,6 +1946,30 @@
<state pattern="%.1f %unit%" readOnly="true"/>
</channel-type>

<channel-type id="frequencyCompressorTarget" advanced="true">
<item-type>Number:Frequency</item-type>
<label>Compressor Target Frequency</label>
<state pattern="%.1f %unit%" readOnly="true"/>
</channel-type>

<channel-type id="flowRateHeatSource2" advanced="true">
<item-type>Number:VolumetricFlowRate</item-type>
<label>Flow Rate Heat Source</label>
<state pattern="%.1f %unit%" readOnly="true"/>
</channel-type>

<channel-type id="heatingPowerActualValue" advanced="true">
<item-type>Number:Power</item-type>
<label>Heating Power Actual Value</label>
<state pattern="%.1f %unit%" readOnly="true"/>
</channel-type>

<channel-type id="unknown" advanced="true">
<item-type>Number</item-type>
<label>Unknown Channel</label>
<state readOnly="true"/>
</channel-type>


<channel-type id="temperatureHeatingParallelShift">
<item-type>Number:Temperature</item-type>
Expand Down Expand Up @@ -2072,14 +2096,14 @@
<item-type>Number:Time</item-type>
<label>AT Excess</label>
<category>Time</category>
<state pattern="%.1f %unit%" step="1"></state>
<state pattern="%.1f %unit%" step="0.5" min="0" max="12"></state>
</channel-type>

<channel-type id="comfortCoolingATUndercut">
<item-type>Number:Time</item-type>
<label>AT Undercut</label>
<category>Time</category>
<state pattern="%.1f %unit%" step="1"></state>
<state pattern="%.1f %unit%" step="0.5" min="0" max="12"></state>
</channel-type>

</thing:thing-descriptions>
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,87 @@
<channel id="temperatureRoomTarget" typeId="temperatureRoomTarget"/>
<channel id="temperatureHotWaterTop" typeId="temperatureHotWaterTop"/>
<channel id="frequencyCompressor" typeId="frequencyCompressor"/>
<channel id="channel232" typeId="unknown">
<label>Channel 232</label>
</channel>
<channel id="channel233" typeId="unknown">
<label>Channel 233</label>
</channel>
<channel id="channel234" typeId="unknown">
<label>Channel 234</label>
</channel>
<channel id="channel235" typeId="unknown">
<label>Channel 235</label>
</channel>
<channel id="frequencyCompressorTarget" typeId="frequencyCompressorTarget"/>
<channel id="channel237" typeId="unknown">
<label>Channel 237</label>
</channel>
<channel id="channel238" typeId="unknown">
<label>Channel 238</label>
</channel>
<channel id="channel239" typeId="unknown">
<label>Channel 239</label>
</channel>
<channel id="channel240" typeId="unknown">
<label>Channel 240</label>
</channel>
<channel id="channel241" typeId="unknown">
<label>Channel 241</label>
</channel>
<channel id="channel242" typeId="unknown">
<label>Channel 242</label>
</channel>
<channel id="channel243" typeId="unknown">
<label>Channel 243</label>
</channel>
<channel id="channel244" typeId="unknown">
<label>Channel 244</label>
</channel>
<channel id="channel245" typeId="unknown">
<label>Channel 245</label>
</channel>
<channel id="channel246" typeId="unknown">
<label>Channel 246</label>
</channel>
<channel id="channel247" typeId="unknown">
<label>Channel 247</label>
</channel>
<channel id="channel248" typeId="unknown">
<label>Channel 248</label>
</channel>
<channel id="channel249" typeId="unknown">
<label>Channel 249</label>
</channel>
<channel id="channel250" typeId="unknown">
<label>Channel 250</label>
</channel>
<channel id="channel251" typeId="unknown">
<label>Channel 251</label>
</channel>
<channel id="channel252" typeId="unknown">
<label>Channel 252</label>
</channel>
<channel id="channel253" typeId="unknown">
<label>Channel 253</label>
</channel>
<channel id="flowRateHeatSource2" typeId="flowRateHeatSource2"/>
<channel id="channel255" typeId="unknown">
<label>Channel 255</label>
</channel>
<channel id="channel256" typeId="unknown">
<label>Channel 256</label>
</channel>
<channel id="heatingPowerActualValue" typeId="heatingPowerActualValue"/>
<channel id="channel258" typeId="unknown">
<label>Channel 258</label>
</channel>
<channel id="channel259" typeId="unknown">
<label>Channel 259</label>
</channel>
<channel id="channel260" typeId="unknown">
<label>Channel 260</label>
</channel>

<channel id="temperatureHeatingParallelShift" typeId="temperatureHeatingParallelShift"/>
<channel id="heatingMode" typeId="heatingMode"/>
Expand Down

0 comments on commit 8a17520

Please sign in to comment.