[guntamatic] Added 'biosmart' and 'generic' thingtype, robustness improvements on control interface (#12146)

* * added 'biosmart' and 'generic' type. * robustness improvements on control interface

Signed-off-by: Michael Weger <weger.michael@gmx.net>
This commit is contained in:
MikeTheTux 2022-02-09 21:02:59 +01:00 committed by GitHub
parent b23254fc3a
commit 70e57e43e2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 298 additions and 52 deletions

View File

@ -5,39 +5,41 @@ The Guntamatic Binding can be used to monitor and control [Guntamatic Heating Sy
## Supported Things
The Guntamatic Binding was developed and tested using Guntamatic Biostar 15kW Pellets Heating System, running Firmware 3.2d.
It should work for all other Guntamatic Heating Systems as well, that support the same web interface.
It should work for all other Guntamatic Heating Systems as well, that support the same web interface (Pellets, WoodChips, EnergyGrain as well as Log Heating Systems).
## Things
Guntamatic Heating Systems supported as Thing Types:
| Name | Thing Type ID | Status |
|---------------|---------------|-----------------------------------|
| Biostar | `biostar` | tested via 15kW, firmware 3.2d |
| Powerchip | `powerchip` | untested |
| Powercorn | `powercorn` | untested |
| Biocom | `biocom` | untested |
| Pro | `pro` | untested |
| Therm | `therm` | untested |
| Name | Thing Type ID | Heating System Type | Binding Development Status |
|---------------|---------------|----------------------|--------------------------------------------------|
| Biostar | `biostar` | Pellets | tested via 15kW, firmware 3.2d, German & English |
| Biosmart | `biosmart` | Logs | tested via 22kW, firmware 3.2f, German |
| Powerchip | `powerchip` | WoodChips | tested via 100kW, firmware 3.2d, French |
| Powercorn | `powercorn` | EnergyGrain | untested |
| Biocom | `biocom` | Pellets | untested |
| Pro | `pro` | Pellets or WoodChips | untested |
| Therm | `therm` | Pellets | untested |
| Generic | `generic` | - | use, if none from above |
### Thing Configuration
| Parameter | Description | Default |
|------------------|-----------------------------------------------------------------------------|-----------------|
| `hostname` | Hostname or IP address of the Guntamatic Heating System | |
| `key` | Optional, but required to read protected parameters and to control the Guntamatic Heating System.<br/>The key needs to be requested from Guntamatic support, e.g. via https://www.guntamatic.com/en/contact/. | |
| `refreshInterval` | Interval the Guntamatic Heating System is polled in seconds | `60` |
| `encoding` | Code page used by the Guntamatic Heating System | `windows-1252` |
| Parameter | Description | Default |
|--------------------|-----------------------------------------------------------------------------|-----------------|
| `hostname` | Hostname or IP address of the Guntamatic Heating System | |
| `key` | Optional, but required to read protected parameters and to control the Guntamatic Heating System.<br/>The key needs to be requested from Guntamatic support, e.g. via https://www.guntamatic.com/en/contact/. | |
| `refreshInterval` | Interval the Guntamatic Heating System is polled in seconds | `60` |
| `encoding` | Code page used by the Guntamatic Heating System | `windows-1252` |
### Properties
| Property | Description |
|---------------------|---------------------------------------------------------------|
| `extraWwHeat` | Parameter used by `controlExtraWwHeat` channels |
| `boilerApproval` | Parameter used by `controlBoilerApproval` channel |
| `heatCircProgram` | Parameter used by `controlHeatCircProgram` channels |
| `program` | Parameter used by `controlProgram` channel |
| `wwHeat` | Parameter used by `controlWwHeat` channels |
| Property | Description | Supported |
|---------------------|---------------------------------------------------------------|---------------------------------------------------|
| `extraWwHeat` | Parameter used by `controlExtraWwHeat` channels | all |
| `boilerApproval` | Parameter used by `controlBoilerApproval` channel | Biostar, Powerchip, Powercorn, Biocom, Pro, Therm |
| `heatCircProgram` | Parameter used by `controlHeatCircProgram` channels | all |
| `program` | Parameter used by `controlProgram` channel | all |
| `wwHeat` | Parameter used by `controlWwHeat` channels | all |
## Channels
@ -45,10 +47,10 @@ Guntamatic Heating Systems supported as Thing Types:
The Guntamatic Heating System can be controlled using the following channels:
| Channel | Description | Type | Unit | Security Access Level | ReadOnly | Advanced |
|-----------------------|-----------------------------------------------------------|-------|:---------:|:-------------------------:|:--------:|:--------:|
| `controlBoilerApproval` | Set Boiler Approval (`AUTO`, `OFF`, `ON`) | `String` | | 🔐 W1 | R/W | true |
| `controlProgram` | Set Program (`OFF`, `NORMAL`, `WARMWATER`, `MANUAL`) | `String` | | 🔐 W1 | R/W | false |
| Channel | Description | Type | Unit | Security Access Level | ReadOnly | Advanced |
|-----------------------|---------------------------------------------------------------------------|-------|:---------:|:-------------------------:|:--------:|:--------:|
| `controlBoilerApproval` | Set Boiler Approval (`AUTO`, `OFF`, `ON`) | `String` | | 🔐 W1 | R/W | true |
| `controlProgram` | Set Program (`OFF`, `NORMAL`, `WARMWATER`, `MANUAL`<sup id="a1">[1](#f1)</sup>) | `String` | | 🔐 W1 | R/W | false |
| `controlHeatCircProgram0` | Set Heat Circle 0 Program (`OFF`, `NORMAL`, `HEAT`, `LOWER`) | `String` | | 🔐 W1 | R/W | true |
| `controlHeatCircProgram1` | Set Heat Circle 1 Program (`OFF`, `NORMAL`, `HEAT`, `LOWER`) | `String` | | 🔐 W1 | R/W | true |
| `controlHeatCircProgram2` | Set Heat Circle 2 Program (`OFF`, `NORMAL`, `HEAT`, `LOWER`) | `String` | | 🔐 W1 | R/W | true |
@ -58,18 +60,22 @@ The Guntamatic Heating System can be controlled using the following channels:
| `controlHeatCircProgram6` | Set Heat Circle 6 Program (`OFF`, `NORMAL`, `HEAT`, `LOWER`) | `String` | | 🔐 W1 | R/W | true |
| `controlHeatCircProgram7` | Set Heat Circle 7 Program (`OFF`, `NORMAL`, `HEAT`, `LOWER`) | `String` | | 🔐 W1 | R/W | true |
| `controlHeatCircProgram8` | Set Heat Circle 8 Program (`OFF`, `NORMAL`, `HEAT`, `LOWER`) | `String` | | 🔐 W1 | R/W | true |
| `controlWwHeat0` | Trigger Warm Water Circle 0 (`RECHARGE`) | `String` | | 🔐 W1 | R/W | true |
| `controlWwHeat1` | Trigger Warm Water Circle 1 (`RECHARGE`) | `String` | | 🔐 W1 | R/W | true |
| `controlWwHeat2` | Trigger Warm Water Circle 2 (`RECHARGE`) | `String` | | 🔐 W1 | R/W | true |
| `controlExtraWwHeat0` | Trigger Extra Warm Water Circle 0 (`RECHARGE`) | `String` | | 🔐 W1 | R/W | true |
| `controlExtraWwHeat1` | Trigger Extra Warm Water Circle 1 (`RECHARGE`) | `String` | | 🔐 W1 | R/W | true |
| `controlExtraWwHeat2` | Trigger Extra Warm Water Circle 2 (`RECHARGE`) | `String` | | 🔐 W1 | R/W | true |
| `controlWwHeat0` | Trigger Warm Water Circle 0 (`RECHARGE`) | `String` | | 🔐 W1 | R/W | true |
| `controlWwHeat1` | Trigger Warm Water Circle 1 (`RECHARGE`) | `String` | | 🔐 W1 | R/W | true |
| `controlWwHeat2` | Trigger Warm Water Circle 2 (`RECHARGE`) | `String` | | 🔐 W1 | R/W | true |
| `controlExtraWwHeat0` | Trigger Extra Warm Water Circle 0 (`RECHARGE`) | `String` | | 🔐 W1 | R/W | true |
| `controlExtraWwHeat1` | Trigger Extra Warm Water Circle 1 (`RECHARGE`) | `String` | | 🔐 W1 | R/W | true |
| `controlExtraWwHeat2` | Trigger Extra Warm Water Circle 2 (`RECHARGE`) | `String` | | 🔐 W1 | R/W | true |
- <b id="f1">1)</b> ... `MANUAL` is supported by Biostar, Powerchip, Powercorn, Biocom, Pro as well as Therm only [](#a1)
#### Response of Control Channels
- `{"ack":"confirmation message"}` ... in case of success
- `{"err":"error message"}` ... in case of error
The reaction of the Guntamatic Heating System can be monitored via the corresponding data channel. E.g. `programHc1` if you triggered `controlHeatCircProgram1`. The data channel gets updated with the next cyclic update (according to the `refreshInterval` configuration).
### Monitoring Channels
The Binding dynamically generates Channels, derived from the data provided from the actual Guntamatic Heating System.

View File

@ -31,11 +31,13 @@ public class GuntamaticBindingConstants {
// List of all Thing Type UIDs
public static final ThingTypeUID THING_TYPE_BIOSTAR = new ThingTypeUID(BINDING_ID, "biostar");
public static final ThingTypeUID THING_TYPE_BIOSMART = new ThingTypeUID(BINDING_ID, "biosmart");
public static final ThingTypeUID THING_TYPE_POWERCHIP = new ThingTypeUID(BINDING_ID, "powerchip");
public static final ThingTypeUID THING_TYPE_POWERCORN = new ThingTypeUID(BINDING_ID, "powercorn");
public static final ThingTypeUID THING_TYPE_BIOCOM = new ThingTypeUID(BINDING_ID, "biocom");
public static final ThingTypeUID THING_TYPE_PRO = new ThingTypeUID(BINDING_ID, "pro");
public static final ThingTypeUID THING_TYPE_THERM = new ThingTypeUID(BINDING_ID, "therm");
public static final ThingTypeUID THING_TYPE_GENERIC = new ThingTypeUID(BINDING_ID, "generic");
// List of all Channel ids
public static final String CHANNEL_CONTROLBOILERAPPROVAL = "controlBoilerApproval";
@ -56,7 +58,14 @@ public class GuntamaticBindingConstants {
public static final String CHANNEL_CONTROLEXTRAWWHEAT1 = "controlExtraWwHeat1";
public static final String CHANNEL_CONTROLEXTRAWWHEAT2 = "controlExtraWwHeat2";
public static final List<String> CHANNELIDS = Arrays.asList(CHANNEL_CONTROLBOILERAPPROVAL, CHANNEL_CONTROLPROGRAM,
public static final List<String> STATIC_CHANNEL_IDS = Arrays.asList(CHANNEL_CONTROLBOILERAPPROVAL,
CHANNEL_CONTROLPROGRAM, CHANNEL_CONTROLHEATCIRCPROGRAM0, CHANNEL_CONTROLHEATCIRCPROGRAM1,
CHANNEL_CONTROLHEATCIRCPROGRAM2, CHANNEL_CONTROLHEATCIRCPROGRAM3, CHANNEL_CONTROLHEATCIRCPROGRAM4,
CHANNEL_CONTROLHEATCIRCPROGRAM5, CHANNEL_CONTROLHEATCIRCPROGRAM6, CHANNEL_CONTROLHEATCIRCPROGRAM7,
CHANNEL_CONTROLHEATCIRCPROGRAM8, CHANNEL_CONTROLWWHEAT0, CHANNEL_CONTROLWWHEAT1, CHANNEL_CONTROLWWHEAT2,
CHANNEL_CONTROLEXTRAWWHEAT0, CHANNEL_CONTROLEXTRAWWHEAT1, CHANNEL_CONTROLEXTRAWWHEAT2);
public static final List<String> STATIC_CHANNEL_IDS_WOBOILERAPP = Arrays.asList(CHANNEL_CONTROLPROGRAM,
CHANNEL_CONTROLHEATCIRCPROGRAM0, CHANNEL_CONTROLHEATCIRCPROGRAM1, CHANNEL_CONTROLHEATCIRCPROGRAM2,
CHANNEL_CONTROLHEATCIRCPROGRAM3, CHANNEL_CONTROLHEATCIRCPROGRAM4, CHANNEL_CONTROLHEATCIRCPROGRAM5,
CHANNEL_CONTROLHEATCIRCPROGRAM6, CHANNEL_CONTROLHEATCIRCPROGRAM7, CHANNEL_CONTROLHEATCIRCPROGRAM8,

View File

@ -47,6 +47,7 @@ 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.ThingTypeUID;
import org.openhab.core.thing.binding.BaseThingHandler;
import org.openhab.core.thing.binding.builder.ChannelBuilder;
import org.openhab.core.thing.binding.builder.ThingBuilder;
@ -83,11 +84,21 @@ public class GuntamaticHandler extends BaseThingHandler {
SIUnits.CELSIUS, NUMBER_TEMPERATURE, ImperialUnits.FAHRENHEIT, NUMBER_TEMPERATURE, SIUnits.CUBIC_METRE,
NUMBER_VOLUME, Units.DAY, NUMBER_TIME, Units.HOUR, NUMBER_TIME);
private static final Map<String, String> MAP_COMMAND_PARAM_APPROVAL = Map.of("AUTO", "0", "OFF", "1", "ON", "2");
private static final Map<String, String> MAP_COMMAND_PARAM_PROG = Map.of("OFF", "0", "NORMAL", "1", "WARMWATER",
"2", "MANUAL", "8");
private static final Map<String, String> MAP_COMMAND_PARAM_PROG_WOMANU = Map.of("OFF", "0", "NORMAL", "1",
"WARMWATER", "2");
private static final Map<String, String> MAP_COMMAND_PARAM_HC = Map.of("OFF", "0", "NORMAL", "1", "HEAT", "2",
"LOWER", "3");
private static final Map<String, String> MAP_COMMAND_PARAM_WW = Map.of("RECHARGE", "0");
private final Logger logger = LoggerFactory.getLogger(GuntamaticHandler.class);
private final HttpClient httpClient;
private @Nullable ScheduledFuture<?> pollingFuture = null;
private List<String> staticChannelIDs;
private GuntamaticConfiguration config = new GuntamaticConfiguration();
private Boolean channelsInitialized = false;
private GuntamaticChannelTypeProvider guntamaticChannelTypeProvider;
@ -96,10 +107,11 @@ public class GuntamaticHandler extends BaseThingHandler {
private Map<Integer, Unit<?>> units = new HashMap<>();
public GuntamaticHandler(Thing thing, HttpClient httpClient,
GuntamaticChannelTypeProvider guntamaticChannelTypeProvider) {
GuntamaticChannelTypeProvider guntamaticChannelTypeProvider, List<String> staticChannelIDs) {
super(thing);
this.httpClient = httpClient;
this.guntamaticChannelTypeProvider = guntamaticChannelTypeProvider;
this.staticChannelIDs = staticChannelIDs;
}
@Override
@ -107,13 +119,25 @@ public class GuntamaticHandler extends BaseThingHandler {
if (!(command instanceof RefreshType)) {
if (!config.key.isBlank()) {
String param;
Map<String, String> map;
String channelID = channelUID.getId();
switch (channelID) {
case CHANNEL_CONTROLBOILERAPPROVAL:
param = getThing().getProperties().get(PARAMETER_BOILERAPPROVAL);
map = MAP_COMMAND_PARAM_APPROVAL;
break;
case CHANNEL_CONTROLPROGRAM:
param = getThing().getProperties().get(PARAMETER_PROGRAM);
ThingTypeUID thingTypeUID = getThing().getThingTypeUID();
if (THING_TYPE_BIOSTAR.equals(thingTypeUID) || THING_TYPE_POWERCHIP.equals(thingTypeUID)
|| THING_TYPE_POWERCORN.equals(thingTypeUID) || THING_TYPE_BIOCOM.equals(thingTypeUID)
|| THING_TYPE_PRO.equals(thingTypeUID) || THING_TYPE_THERM.equals(thingTypeUID)) {
map = MAP_COMMAND_PARAM_PROG;
} else {
map = MAP_COMMAND_PARAM_PROG_WOMANU;
}
break;
case CHANNEL_CONTROLHEATCIRCPROGRAM0:
case CHANNEL_CONTROLHEATCIRCPROGRAM1:
@ -126,23 +150,36 @@ public class GuntamaticHandler extends BaseThingHandler {
case CHANNEL_CONTROLHEATCIRCPROGRAM8:
param = getThing().getProperties().get(PARAMETER_HEATCIRCPROGRAM).replace("x",
channelID.substring(channelID.length() - 1));
map = MAP_COMMAND_PARAM_HC;
break;
case CHANNEL_CONTROLWWHEAT0:
case CHANNEL_CONTROLWWHEAT1:
case CHANNEL_CONTROLWWHEAT2:
param = getThing().getProperties().get(PARAMETER_WWHEAT).replace("x",
channelID.substring(channelID.length() - 1));
map = MAP_COMMAND_PARAM_WW;
break;
case CHANNEL_CONTROLEXTRAWWHEAT0:
case CHANNEL_CONTROLEXTRAWWHEAT1:
case CHANNEL_CONTROLEXTRAWWHEAT2:
param = getThing().getProperties().get(PARAMETER_EXTRAWWHEAT).replace("x",
channelID.substring(channelID.length() - 1));
map = MAP_COMMAND_PARAM_WW;
break;
default:
return;
}
String response = sendGetRequest(PARSET_URL, "syn=" + param, "value=" + command.toString());
String cmd = command.toString().trim();
if (map.containsValue(cmd)) {
// cmd = cmd;
} else if (map.containsKey(cmd)) {
cmd = map.get(cmd);
} else {
logger.warn("Invalid command '{}' for channel '{}' received ", cmd, channelID);
return;
}
String response = sendGetRequest(PARSET_URL, "syn=" + param, "value=" + cmd);
if (response != null) {
State newState = new StringType(response);
updateState(channelID, newState);
@ -232,7 +269,8 @@ public class GuntamaticHandler extends BaseThingHandler {
String[] daqdesc = html.split("\\n");
List<Channel> channelList = new ArrayList<>();
for (String channelID : CHANNELIDS) {
// make sure that static channels are present
for (String channelID : staticChannelIDs) {
Channel channel = thing.getChannel(channelID);
if (channel == null) {
logger.warn("Static Channel '{}' is not present: remove and re-add Thing", channelID);
@ -241,6 +279,7 @@ public class GuntamaticHandler extends BaseThingHandler {
}
}
// add dynamic channels, based on data provided by Guntamatic Heating System
for (int i = 0; i < daqdesc.length; i++) {
String[] param = daqdesc[i].split(";");
String label = param[0].replace("C02", "CO2");
@ -401,8 +440,10 @@ public class GuntamaticHandler extends BaseThingHandler {
parseAndUpdate(response);
} else if (url.equals(DAQDESC_URL)) {
parseAndInit(response);
} else {
logger.debug(req);
// PARSET_URL via return
}
// PARSET_URL via return
return response;
} catch (IllegalArgumentException e) {
errorReason = String.format("IllegalArgumentException: %s",

View File

@ -14,6 +14,7 @@ package org.openhab.binding.guntamatic.internal;
import static org.openhab.binding.guntamatic.internal.GuntamaticBindingConstants.*;
import java.util.List;
import java.util.Set;
import org.eclipse.jdt.annotation.NonNullByDefault;
@ -39,8 +40,9 @@ import org.osgi.service.component.annotations.Reference;
@Component(configurationPid = "binding.guntamatic", service = ThingHandlerFactory.class)
public class GuntamaticHandlerFactory extends BaseThingHandlerFactory {
private static final Set<ThingTypeUID> SUPPORTED_THING_TYPES_UIDS = Set.of(THING_TYPE_BIOSTAR, THING_TYPE_POWERCHIP,
THING_TYPE_POWERCORN, THING_TYPE_BIOCOM, THING_TYPE_PRO, THING_TYPE_THERM);
private static final Set<ThingTypeUID> SUPPORTED_THING_TYPES_UIDS = Set.of(THING_TYPE_BIOSTAR, THING_TYPE_BIOSMART,
THING_TYPE_POWERCHIP, THING_TYPE_POWERCORN, THING_TYPE_BIOCOM, THING_TYPE_PRO, THING_TYPE_THERM,
THING_TYPE_GENERIC);
private final HttpClient httpClient;
private GuntamaticChannelTypeProvider guntamaticChannelTypeProvider;
@ -60,9 +62,18 @@ public class GuntamaticHandlerFactory extends BaseThingHandlerFactory {
@Override
protected @Nullable ThingHandler createHandler(Thing thing) {
ThingTypeUID thingTypeUID = thing.getThingTypeUID();
List<String> staticChannelIDs;
if (THING_TYPE_BIOSTAR.equals(thingTypeUID) || THING_TYPE_POWERCHIP.equals(thingTypeUID)
|| THING_TYPE_POWERCORN.equals(thingTypeUID) || THING_TYPE_BIOCOM.equals(thingTypeUID)
|| THING_TYPE_PRO.equals(thingTypeUID) || THING_TYPE_THERM.equals(thingTypeUID)) {
staticChannelIDs = STATIC_CHANNEL_IDS;
} else {
staticChannelIDs = STATIC_CHANNEL_IDS_WOBOILERAPP;
}
if (supportsThingType(thingTypeUID)) {
return new GuntamaticHandler(thing, httpClient, guntamaticChannelTypeProvider);
return new GuntamaticHandler(thing, httpClient, guntamaticChannelTypeProvider, staticChannelIDs);
}
return null;

View File

@ -6,7 +6,7 @@ binding.guntamatic.description = Binding for Guntamatic Heating Systems.
# thing types
thing-type.guntamatic.biocom.label = Guntamatic Biocom
thing-type.guntamatic.biocom.description = Guntamatic Biocom Heating System. Untested! Please provide Feedback!
thing-type.guntamatic.biocom.description = Guntamatic Biocom Pellets Heating System. Untested! Please provide Feedback!
thing-type.guntamatic.biocom.channel.controlBoilerApproval.label = Set Boiler Approval
thing-type.guntamatic.biocom.channel.controlExtraWwHeat0.label = Trigger Extra Warm Water Circle 0
thing-type.guntamatic.biocom.channel.controlExtraWwHeat1.label = Trigger Extra Warm Water Circle 1
@ -24,8 +24,26 @@ thing-type.guntamatic.biocom.channel.controlProgram.label = Set Program
thing-type.guntamatic.biocom.channel.controlWwHeat0.label = Trigger Warm Water Circle 0
thing-type.guntamatic.biocom.channel.controlWwHeat1.label = Trigger Warm Water Circle 1
thing-type.guntamatic.biocom.channel.controlWwHeat2.label = Trigger Warm Water Circle 2
thing-type.guntamatic.biosmart.label = Guntamatic Biosmart
thing-type.guntamatic.biosmart.description = Guntamatic Biosmart Log Heating System
thing-type.guntamatic.biosmart.channel.controlExtraWwHeat0.label = Trigger Extra Warm Water Circle 0
thing-type.guntamatic.biosmart.channel.controlExtraWwHeat1.label = Trigger Extra Warm Water Circle 1
thing-type.guntamatic.biosmart.channel.controlExtraWwHeat2.label = Trigger Extra Warm Water Circle 2
thing-type.guntamatic.biosmart.channel.controlHeatCircProgram0.label = Set Heat Circle 0 Program
thing-type.guntamatic.biosmart.channel.controlHeatCircProgram1.label = Set Heat Circle 1 Program
thing-type.guntamatic.biosmart.channel.controlHeatCircProgram2.label = Set Heat Circle 2 Program
thing-type.guntamatic.biosmart.channel.controlHeatCircProgram3.label = Set Heat Circle 3 Program
thing-type.guntamatic.biosmart.channel.controlHeatCircProgram4.label = Set Heat Circle 4 Program
thing-type.guntamatic.biosmart.channel.controlHeatCircProgram5.label = Set Heat Circle 5 Program
thing-type.guntamatic.biosmart.channel.controlHeatCircProgram6.label = Set Heat Circle 6 Program
thing-type.guntamatic.biosmart.channel.controlHeatCircProgram7.label = Set Heat Circle 7 Program
thing-type.guntamatic.biosmart.channel.controlHeatCircProgram8.label = Set Heat Circle 8 Program
thing-type.guntamatic.biosmart.channel.controlProgram.label = Set Program
thing-type.guntamatic.biosmart.channel.controlWwHeat0.label = Trigger Warm Water Circle 0
thing-type.guntamatic.biosmart.channel.controlWwHeat1.label = Trigger Warm Water Circle 1
thing-type.guntamatic.biosmart.channel.controlWwHeat2.label = Trigger Warm Water Circle 2
thing-type.guntamatic.biostar.label = Guntamatic Biostar
thing-type.guntamatic.biostar.description = Guntamatic Biostar Heating System
thing-type.guntamatic.biostar.description = Guntamatic Biostar Pellets Heating System
thing-type.guntamatic.biostar.channel.controlBoilerApproval.label = Set Boiler Approval
thing-type.guntamatic.biostar.channel.controlExtraWwHeat0.label = Trigger Extra Warm Water Circle 0
thing-type.guntamatic.biostar.channel.controlExtraWwHeat1.label = Trigger Extra Warm Water Circle 1
@ -43,8 +61,26 @@ thing-type.guntamatic.biostar.channel.controlProgram.label = Set Program
thing-type.guntamatic.biostar.channel.controlWwHeat0.label = Trigger Warm Water Circle 0
thing-type.guntamatic.biostar.channel.controlWwHeat1.label = Trigger Warm Water Circle 1
thing-type.guntamatic.biostar.channel.controlWwHeat2.label = Trigger Warm Water Circle 2
thing-type.guntamatic.generic.label = Guntamatic Generic
thing-type.guntamatic.generic.description = Generic Guntamatic Heating System. Use this type, if your Heating System is none of the others. Please provide Feedback!
thing-type.guntamatic.generic.channel.controlExtraWwHeat0.label = Trigger Extra Warm Water Circle 0
thing-type.guntamatic.generic.channel.controlExtraWwHeat1.label = Trigger Extra Warm Water Circle 1
thing-type.guntamatic.generic.channel.controlExtraWwHeat2.label = Trigger Extra Warm Water Circle 2
thing-type.guntamatic.generic.channel.controlHeatCircProgram0.label = Set Heat Circle 0 Program
thing-type.guntamatic.generic.channel.controlHeatCircProgram1.label = Set Heat Circle 1 Program
thing-type.guntamatic.generic.channel.controlHeatCircProgram2.label = Set Heat Circle 2 Program
thing-type.guntamatic.generic.channel.controlHeatCircProgram3.label = Set Heat Circle 3 Program
thing-type.guntamatic.generic.channel.controlHeatCircProgram4.label = Set Heat Circle 4 Program
thing-type.guntamatic.generic.channel.controlHeatCircProgram5.label = Set Heat Circle 5 Program
thing-type.guntamatic.generic.channel.controlHeatCircProgram6.label = Set Heat Circle 6 Program
thing-type.guntamatic.generic.channel.controlHeatCircProgram7.label = Set Heat Circle 7 Program
thing-type.guntamatic.generic.channel.controlHeatCircProgram8.label = Set Heat Circle 8 Program
thing-type.guntamatic.generic.channel.controlProgram.label = Set Program
thing-type.guntamatic.generic.channel.controlWwHeat0.label = Trigger Warm Water Circle 0
thing-type.guntamatic.generic.channel.controlWwHeat1.label = Trigger Warm Water Circle 1
thing-type.guntamatic.generic.channel.controlWwHeat2.label = Trigger Warm Water Circle 2
thing-type.guntamatic.powerchip.label = Guntamatic Powerchip
thing-type.guntamatic.powerchip.description = Guntamatic Powerchip Heating System. Untested! Please provide Feedback!
thing-type.guntamatic.powerchip.description = Guntamatic Powerchip WoodChip Heating System
thing-type.guntamatic.powerchip.channel.controlBoilerApproval.label = Set Boiler Approval
thing-type.guntamatic.powerchip.channel.controlExtraWwHeat0.label = Trigger Extra Warm Water Circle 0
thing-type.guntamatic.powerchip.channel.controlExtraWwHeat1.label = Trigger Extra Warm Water Circle 1
@ -63,7 +99,7 @@ thing-type.guntamatic.powerchip.channel.controlWwHeat0.label = Trigger Warm Wate
thing-type.guntamatic.powerchip.channel.controlWwHeat1.label = Trigger Warm Water Circle 1
thing-type.guntamatic.powerchip.channel.controlWwHeat2.label = Trigger Warm Water Circle 2
thing-type.guntamatic.powercorn.label = Guntamatic Powercorn
thing-type.guntamatic.powercorn.description = Guntamatic Powercorn Heating System. Untested! Please provide Feedback!
thing-type.guntamatic.powercorn.description = Guntamatic Powercorn EnergyGrain Heating System. Untested! Please provide Feedback!
thing-type.guntamatic.powercorn.channel.controlBoilerApproval.label = Set Boiler Approval
thing-type.guntamatic.powercorn.channel.controlExtraWwHeat0.label = Trigger Extra Warm Water Circle 0
thing-type.guntamatic.powercorn.channel.controlExtraWwHeat1.label = Trigger Extra Warm Water Circle 1
@ -82,7 +118,7 @@ thing-type.guntamatic.powercorn.channel.controlWwHeat0.label = Trigger Warm Wate
thing-type.guntamatic.powercorn.channel.controlWwHeat1.label = Trigger Warm Water Circle 1
thing-type.guntamatic.powercorn.channel.controlWwHeat2.label = Trigger Warm Water Circle 2
thing-type.guntamatic.pro.label = Guntamatic Pro
thing-type.guntamatic.pro.description = Guntamatic Pro Heating System. Untested! Please provide Feedback!
thing-type.guntamatic.pro.description = Guntamatic Pro Pellets or WoodChip Heating System. Untested! Please provide Feedback!
thing-type.guntamatic.pro.channel.controlBoilerApproval.label = Set Boiler Approval
thing-type.guntamatic.pro.channel.controlExtraWwHeat0.label = Trigger Extra Warm Water Circle 0
thing-type.guntamatic.pro.channel.controlExtraWwHeat1.label = Trigger Extra Warm Water Circle 1
@ -101,7 +137,7 @@ thing-type.guntamatic.pro.channel.controlWwHeat0.label = Trigger Warm Water Circ
thing-type.guntamatic.pro.channel.controlWwHeat1.label = Trigger Warm Water Circle 1
thing-type.guntamatic.pro.channel.controlWwHeat2.label = Trigger Warm Water Circle 2
thing-type.guntamatic.therm.label = Guntamatic Therm
thing-type.guntamatic.therm.description = Guntamatic Therm Heating System. Untested! Please provide Feedback!
thing-type.guntamatic.therm.description = Guntamatic Therm Pellets Heating System. Untested! Please provide Feedback!
thing-type.guntamatic.therm.channel.controlBoilerApproval.label = Set Boiler Approval
thing-type.guntamatic.therm.channel.controlExtraWwHeat0.label = Trigger Extra Warm Water Circle 0
thing-type.guntamatic.therm.channel.controlExtraWwHeat1.label = Trigger Extra Warm Water Circle 1
@ -153,6 +189,11 @@ channel-type.guntamatic.controlProgram.state.option.0 = OFF
channel-type.guntamatic.controlProgram.state.option.1 = NORMAL
channel-type.guntamatic.controlProgram.state.option.2 = WARMWATER
channel-type.guntamatic.controlProgram.state.option.8 = MANUAL
channel-type.guntamatic.controlProgramWOManu.label = Set Program
channel-type.guntamatic.controlProgramWOManu.description = Set Program of the Guntamatic Heating System (OFF, NORMAL, WARMWATER)
channel-type.guntamatic.controlProgramWOManu.state.option.0 = OFF
channel-type.guntamatic.controlProgramWOManu.state.option.1 = NORMAL
channel-type.guntamatic.controlProgramWOManu.state.option.2 = WARMWATER
channel-type.guntamatic.controlWwHeat.label = Trigger Warm Water Circle
channel-type.guntamatic.controlWwHeat.description = Trigger Warm Water Circle of the Guntamatic Heating System (RECHARGE)
channel-type.guntamatic.controlWwHeat.state.option.0 = RECHARGE

View File

@ -7,7 +7,7 @@
<thing-type id="biostar">
<label>Guntamatic Biostar</label>
<description>Guntamatic Biostar Heating System</description>
<description>Guntamatic Biostar Pellets Heating System</description>
<channels>
<channel id="controlBoilerApproval" typeId="controlBoilerApproval">
@ -71,10 +71,73 @@
</properties>
<config-description-ref uri="thing-type:guntamatic:heatingsystem"/>
</thing-type>
<thing-type id="biosmart">
<label>Guntamatic Biosmart</label>
<description>Guntamatic Biosmart Log Heating System</description>
<channels>
<channel id="controlProgram" typeId="controlProgramWOManu">
<label>Set Program</label>
</channel>
<channel id="controlHeatCircProgram0" typeId="controlHeatCircProgram">
<label>Set Heat Circle 0 Program</label>
</channel>
<channel id="controlHeatCircProgram1" typeId="controlHeatCircProgram">
<label>Set Heat Circle 1 Program</label>
</channel>
<channel id="controlHeatCircProgram2" typeId="controlHeatCircProgram">
<label>Set Heat Circle 2 Program</label>
</channel>
<channel id="controlHeatCircProgram3" typeId="controlHeatCircProgram">
<label>Set Heat Circle 3 Program</label>
</channel>
<channel id="controlHeatCircProgram4" typeId="controlHeatCircProgram">
<label>Set Heat Circle 4 Program</label>
</channel>
<channel id="controlHeatCircProgram5" typeId="controlHeatCircProgram">
<label>Set Heat Circle 5 Program</label>
</channel>
<channel id="controlHeatCircProgram6" typeId="controlHeatCircProgram">
<label>Set Heat Circle 6 Program</label>
</channel>
<channel id="controlHeatCircProgram7" typeId="controlHeatCircProgram">
<label>Set Heat Circle 7 Program</label>
</channel>
<channel id="controlHeatCircProgram8" typeId="controlHeatCircProgram">
<label>Set Heat Circle 8 Program</label>
</channel>
<channel id="controlWwHeat0" typeId="controlWwHeat">
<label>Trigger Warm Water Circle 0</label>
</channel>
<channel id="controlWwHeat1" typeId="controlWwHeat">
<label>Trigger Warm Water Circle 1</label>
</channel>
<channel id="controlWwHeat2" typeId="controlWwHeat">
<label>Trigger Warm Water Circle 2</label>
</channel>
<channel id="controlExtraWwHeat0" typeId="controlExtraWwHeat">
<label>Trigger Extra Warm Water Circle 0</label>
</channel>
<channel id="controlExtraWwHeat1" typeId="controlExtraWwHeat">
<label>Trigger Extra Warm Water Circle 1</label>
</channel>
<channel id="controlExtraWwHeat2" typeId="controlExtraWwHeat">
<label>Trigger Extra Warm Water Circle 2</label>
</channel>
</channels>
<properties>
<property name="program">PR001</property>
<property name="heatCircProgram">HKx01</property>
<property name="wwHeat">BKx06</property>
<property name="extraWwHeat">ZKx06</property>
</properties>
<config-description-ref uri="thing-type:guntamatic:heatingsystem"/>
</thing-type>
<thing-type id="powerchip">
<label>Guntamatic Powerchip</label>
<description>Guntamatic Powerchip Heating System. Untested! Please provide Feedback!</description>
<description>Guntamatic Powerchip WoodChip Heating System</description>
<channels>
<channel id="controlBoilerApproval" typeId="controlBoilerApproval">
@ -141,7 +204,7 @@
<thing-type id="powercorn">
<label>Guntamatic Powercorn</label>
<description>Guntamatic Powercorn Heating System. Untested! Please provide Feedback!</description>
<description>Guntamatic Powercorn EnergyGrain Heating System. Untested! Please provide Feedback!</description>
<channels>
<channel id="controlBoilerApproval" typeId="controlBoilerApproval">
@ -208,7 +271,7 @@
<thing-type id="biocom">
<label>Guntamatic Biocom</label>
<description>Guntamatic Biocom Heating System. Untested! Please provide Feedback!</description>
<description>Guntamatic Biocom Pellets Heating System. Untested! Please provide Feedback!</description>
<channels>
<channel id="controlBoilerApproval" typeId="controlBoilerApproval">
@ -275,7 +338,7 @@
<thing-type id="pro">
<label>Guntamatic Pro</label>
<description>Guntamatic Pro Heating System. Untested! Please provide Feedback!</description>
<description>Guntamatic Pro Pellets or WoodChip Heating System. Untested! Please provide Feedback!</description>
<channels>
<channel id="controlBoilerApproval" typeId="controlBoilerApproval">
@ -342,7 +405,7 @@
<thing-type id="therm">
<label>Guntamatic Therm</label>
<description>Guntamatic Therm Heating System. Untested! Please provide Feedback!</description>
<description>Guntamatic Therm Pellets Heating System. Untested! Please provide Feedback!</description>
<channels>
<channel id="controlBoilerApproval" typeId="controlBoilerApproval">
@ -406,7 +469,70 @@
</properties>
<config-description-ref uri="thing-type:guntamatic:heatingsystem"/>
</thing-type>
<thing-type id="generic">
<label>Guntamatic Generic</label>
<description>Generic Guntamatic Heating System. Use this type, if your Heating System is none of the others. Please
provide Feedback!</description>
<channels>
<channel id="controlProgram" typeId="controlProgramWOManu">
<label>Set Program</label>
</channel>
<channel id="controlHeatCircProgram0" typeId="controlHeatCircProgram">
<label>Set Heat Circle 0 Program</label>
</channel>
<channel id="controlHeatCircProgram1" typeId="controlHeatCircProgram">
<label>Set Heat Circle 1 Program</label>
</channel>
<channel id="controlHeatCircProgram2" typeId="controlHeatCircProgram">
<label>Set Heat Circle 2 Program</label>
</channel>
<channel id="controlHeatCircProgram3" typeId="controlHeatCircProgram">
<label>Set Heat Circle 3 Program</label>
</channel>
<channel id="controlHeatCircProgram4" typeId="controlHeatCircProgram">
<label>Set Heat Circle 4 Program</label>
</channel>
<channel id="controlHeatCircProgram5" typeId="controlHeatCircProgram">
<label>Set Heat Circle 5 Program</label>
</channel>
<channel id="controlHeatCircProgram6" typeId="controlHeatCircProgram">
<label>Set Heat Circle 6 Program</label>
</channel>
<channel id="controlHeatCircProgram7" typeId="controlHeatCircProgram">
<label>Set Heat Circle 7 Program</label>
</channel>
<channel id="controlHeatCircProgram8" typeId="controlHeatCircProgram">
<label>Set Heat Circle 8 Program</label>
</channel>
<channel id="controlWwHeat0" typeId="controlWwHeat">
<label>Trigger Warm Water Circle 0</label>
</channel>
<channel id="controlWwHeat1" typeId="controlWwHeat">
<label>Trigger Warm Water Circle 1</label>
</channel>
<channel id="controlWwHeat2" typeId="controlWwHeat">
<label>Trigger Warm Water Circle 2</label>
</channel>
<channel id="controlExtraWwHeat0" typeId="controlExtraWwHeat">
<label>Trigger Extra Warm Water Circle 0</label>
</channel>
<channel id="controlExtraWwHeat1" typeId="controlExtraWwHeat">
<label>Trigger Extra Warm Water Circle 1</label>
</channel>
<channel id="controlExtraWwHeat2" typeId="controlExtraWwHeat">
<label>Trigger Extra Warm Water Circle 2</label>
</channel>
</channels>
<properties>
<property name="program">PR001</property>
<property name="heatCircProgram">HKx01</property>
<property name="wwHeat">BKx06</property>
<property name="extraWwHeat">ZKx06</property>
</properties>
<config-description-ref uri="thing-type:guntamatic:heatingsystem"/>
</thing-type>
<channel-type id="controlProgram" advanced="false">
<item-type>String</item-type>
@ -421,6 +547,18 @@
</options>
</state>
</channel-type>
<channel-type id="controlProgramWOManu" advanced="false">
<item-type>String</item-type>
<label>Set Program</label>
<description>Set Program of the Guntamatic Heating System (OFF, NORMAL, WARMWATER)</description>
<state>
<options>
<option value="0">OFF</option>
<option value="1">NORMAL</option>
<option value="2">WARMWATER</option>
</options>
</state>
</channel-type>
<channel-type id="controlBoilerApproval" advanced="true">
<item-type>String</item-type>
<label>Set Boiler Approval</label>