[LuxtronikHeatpump] Initial Contribution (#9669)
Signed-off-by: Stefan Giehl <stefangiehl@gmail.com>
This commit is contained in:
@@ -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>
|
||||
Reference in New Issue
Block a user