[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:
parent
b23254fc3a
commit
70e57e43e2
|
@ -5,39 +5,41 @@ The Guntamatic Binding can be used to monitor and control [Guntamatic Heating Sy
|
||||||
## Supported Things
|
## Supported Things
|
||||||
|
|
||||||
The Guntamatic Binding was developed and tested using Guntamatic Biostar 15kW Pellets Heating System, running Firmware 3.2d.
|
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
|
## Things
|
||||||
|
|
||||||
Guntamatic Heating Systems supported as Thing Types:
|
Guntamatic Heating Systems supported as Thing Types:
|
||||||
|
|
||||||
| Name | Thing Type ID | Status |
|
| Name | Thing Type ID | Heating System Type | Binding Development Status |
|
||||||
|---------------|---------------|-----------------------------------|
|
|---------------|---------------|----------------------|--------------------------------------------------|
|
||||||
| Biostar | `biostar` | tested via 15kW, firmware 3.2d |
|
| Biostar | `biostar` | Pellets | tested via 15kW, firmware 3.2d, German & English |
|
||||||
| Powerchip | `powerchip` | untested |
|
| Biosmart | `biosmart` | Logs | tested via 22kW, firmware 3.2f, German |
|
||||||
| Powercorn | `powercorn` | untested |
|
| Powerchip | `powerchip` | WoodChips | tested via 100kW, firmware 3.2d, French |
|
||||||
| Biocom | `biocom` | untested |
|
| Powercorn | `powercorn` | EnergyGrain | untested |
|
||||||
| Pro | `pro` | untested |
|
| Biocom | `biocom` | Pellets | untested |
|
||||||
| Therm | `therm` | untested |
|
| Pro | `pro` | Pellets or WoodChips | untested |
|
||||||
|
| Therm | `therm` | Pellets | untested |
|
||||||
|
| Generic | `generic` | - | use, if none from above |
|
||||||
|
|
||||||
### Thing Configuration
|
### Thing Configuration
|
||||||
|
|
||||||
| Parameter | Description | Default |
|
| Parameter | Description | Default |
|
||||||
|------------------|-----------------------------------------------------------------------------|-----------------|
|
|--------------------|-----------------------------------------------------------------------------|-----------------|
|
||||||
| `hostname` | Hostname or IP address of the Guntamatic Heating System | |
|
| `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/. | |
|
| `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` |
|
| `refreshInterval` | Interval the Guntamatic Heating System is polled in seconds | `60` |
|
||||||
| `encoding` | Code page used by the Guntamatic Heating System | `windows-1252` |
|
| `encoding` | Code page used by the Guntamatic Heating System | `windows-1252` |
|
||||||
|
|
||||||
### Properties
|
### Properties
|
||||||
|
|
||||||
| Property | Description |
|
| Property | Description | Supported |
|
||||||
|---------------------|---------------------------------------------------------------|
|
|---------------------|---------------------------------------------------------------|---------------------------------------------------|
|
||||||
| `extraWwHeat` | Parameter used by `controlExtraWwHeat` channels |
|
| `extraWwHeat` | Parameter used by `controlExtraWwHeat` channels | all |
|
||||||
| `boilerApproval` | Parameter used by `controlBoilerApproval` channel |
|
| `boilerApproval` | Parameter used by `controlBoilerApproval` channel | Biostar, Powerchip, Powercorn, Biocom, Pro, Therm |
|
||||||
| `heatCircProgram` | Parameter used by `controlHeatCircProgram` channels |
|
| `heatCircProgram` | Parameter used by `controlHeatCircProgram` channels | all |
|
||||||
| `program` | Parameter used by `controlProgram` channel |
|
| `program` | Parameter used by `controlProgram` channel | all |
|
||||||
| `wwHeat` | Parameter used by `controlWwHeat` channels |
|
| `wwHeat` | Parameter used by `controlWwHeat` channels | all |
|
||||||
|
|
||||||
## Channels
|
## Channels
|
||||||
|
|
||||||
|
@ -45,10 +47,10 @@ Guntamatic Heating Systems supported as Thing Types:
|
||||||
|
|
||||||
The Guntamatic Heating System can be controlled using the following channels:
|
The Guntamatic Heating System can be controlled using the following channels:
|
||||||
|
|
||||||
| Channel | Description | Type | Unit | Security Access Level | ReadOnly | Advanced |
|
| Channel | Description | Type | Unit | Security Access Level | ReadOnly | Advanced |
|
||||||
|-----------------------|-----------------------------------------------------------|-------|:---------:|:-------------------------:|:--------:|:--------:|
|
|-----------------------|---------------------------------------------------------------------------|-------|:---------:|:-------------------------:|:--------:|:--------:|
|
||||||
| `controlBoilerApproval` | Set Boiler Approval (`AUTO`, `OFF`, `ON`) | `String` | | 🔐 W1 | R/W | true |
|
| `controlBoilerApproval` | Set Boiler Approval (`AUTO`, `OFF`, `ON`) | `String` | | 🔐 W1 | R/W | true |
|
||||||
| `controlProgram` | Set Program (`OFF`, `NORMAL`, `WARMWATER`, `MANUAL`) | `String` | | 🔐 W1 | R/W | false |
|
| `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 |
|
| `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 |
|
| `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 |
|
| `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 |
|
| `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 |
|
| `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 |
|
| `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 |
|
| `controlWwHeat0` | Trigger Warm Water Circle 0 (`RECHARGE`) | `String` | | 🔐 W1 | R/W | true |
|
||||||
| `controlWwHeat1` | Trigger Warm Water Circle 1 (`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 |
|
| `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 |
|
| `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 |
|
| `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 |
|
| `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
|
#### Response of Control Channels
|
||||||
|
|
||||||
- `{"ack":"confirmation message"}` ... in case of success
|
- `{"ack":"confirmation message"}` ... in case of success
|
||||||
- `{"err":"error message"}` ... in case of error
|
- `{"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
|
### Monitoring Channels
|
||||||
|
|
||||||
The Binding dynamically generates Channels, derived from the data provided from the actual Guntamatic Heating System.
|
The Binding dynamically generates Channels, derived from the data provided from the actual Guntamatic Heating System.
|
||||||
|
|
|
@ -31,11 +31,13 @@ public class GuntamaticBindingConstants {
|
||||||
|
|
||||||
// List of all Thing Type UIDs
|
// List of all Thing Type UIDs
|
||||||
public static final ThingTypeUID THING_TYPE_BIOSTAR = new ThingTypeUID(BINDING_ID, "biostar");
|
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_POWERCHIP = new ThingTypeUID(BINDING_ID, "powerchip");
|
||||||
public static final ThingTypeUID THING_TYPE_POWERCORN = new ThingTypeUID(BINDING_ID, "powercorn");
|
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_BIOCOM = new ThingTypeUID(BINDING_ID, "biocom");
|
||||||
public static final ThingTypeUID THING_TYPE_PRO = new ThingTypeUID(BINDING_ID, "pro");
|
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_THERM = new ThingTypeUID(BINDING_ID, "therm");
|
||||||
|
public static final ThingTypeUID THING_TYPE_GENERIC = new ThingTypeUID(BINDING_ID, "generic");
|
||||||
|
|
||||||
// List of all Channel ids
|
// List of all Channel ids
|
||||||
public static final String CHANNEL_CONTROLBOILERAPPROVAL = "controlBoilerApproval";
|
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_CONTROLEXTRAWWHEAT1 = "controlExtraWwHeat1";
|
||||||
public static final String CHANNEL_CONTROLEXTRAWWHEAT2 = "controlExtraWwHeat2";
|
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_CONTROLHEATCIRCPROGRAM0, CHANNEL_CONTROLHEATCIRCPROGRAM1, CHANNEL_CONTROLHEATCIRCPROGRAM2,
|
||||||
CHANNEL_CONTROLHEATCIRCPROGRAM3, CHANNEL_CONTROLHEATCIRCPROGRAM4, CHANNEL_CONTROLHEATCIRCPROGRAM5,
|
CHANNEL_CONTROLHEATCIRCPROGRAM3, CHANNEL_CONTROLHEATCIRCPROGRAM4, CHANNEL_CONTROLHEATCIRCPROGRAM5,
|
||||||
CHANNEL_CONTROLHEATCIRCPROGRAM6, CHANNEL_CONTROLHEATCIRCPROGRAM7, CHANNEL_CONTROLHEATCIRCPROGRAM8,
|
CHANNEL_CONTROLHEATCIRCPROGRAM6, CHANNEL_CONTROLHEATCIRCPROGRAM7, CHANNEL_CONTROLHEATCIRCPROGRAM8,
|
||||||
|
|
|
@ -47,6 +47,7 @@ import org.openhab.core.thing.ChannelUID;
|
||||||
import org.openhab.core.thing.Thing;
|
import org.openhab.core.thing.Thing;
|
||||||
import org.openhab.core.thing.ThingStatus;
|
import org.openhab.core.thing.ThingStatus;
|
||||||
import org.openhab.core.thing.ThingStatusDetail;
|
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.BaseThingHandler;
|
||||||
import org.openhab.core.thing.binding.builder.ChannelBuilder;
|
import org.openhab.core.thing.binding.builder.ChannelBuilder;
|
||||||
import org.openhab.core.thing.binding.builder.ThingBuilder;
|
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,
|
SIUnits.CELSIUS, NUMBER_TEMPERATURE, ImperialUnits.FAHRENHEIT, NUMBER_TEMPERATURE, SIUnits.CUBIC_METRE,
|
||||||
NUMBER_VOLUME, Units.DAY, NUMBER_TIME, Units.HOUR, NUMBER_TIME);
|
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 Logger logger = LoggerFactory.getLogger(GuntamaticHandler.class);
|
||||||
private final HttpClient httpClient;
|
private final HttpClient httpClient;
|
||||||
|
|
||||||
private @Nullable ScheduledFuture<?> pollingFuture = null;
|
private @Nullable ScheduledFuture<?> pollingFuture = null;
|
||||||
|
|
||||||
|
private List<String> staticChannelIDs;
|
||||||
private GuntamaticConfiguration config = new GuntamaticConfiguration();
|
private GuntamaticConfiguration config = new GuntamaticConfiguration();
|
||||||
private Boolean channelsInitialized = false;
|
private Boolean channelsInitialized = false;
|
||||||
private GuntamaticChannelTypeProvider guntamaticChannelTypeProvider;
|
private GuntamaticChannelTypeProvider guntamaticChannelTypeProvider;
|
||||||
|
@ -96,10 +107,11 @@ public class GuntamaticHandler extends BaseThingHandler {
|
||||||
private Map<Integer, Unit<?>> units = new HashMap<>();
|
private Map<Integer, Unit<?>> units = new HashMap<>();
|
||||||
|
|
||||||
public GuntamaticHandler(Thing thing, HttpClient httpClient,
|
public GuntamaticHandler(Thing thing, HttpClient httpClient,
|
||||||
GuntamaticChannelTypeProvider guntamaticChannelTypeProvider) {
|
GuntamaticChannelTypeProvider guntamaticChannelTypeProvider, List<String> staticChannelIDs) {
|
||||||
super(thing);
|
super(thing);
|
||||||
this.httpClient = httpClient;
|
this.httpClient = httpClient;
|
||||||
this.guntamaticChannelTypeProvider = guntamaticChannelTypeProvider;
|
this.guntamaticChannelTypeProvider = guntamaticChannelTypeProvider;
|
||||||
|
this.staticChannelIDs = staticChannelIDs;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -107,13 +119,25 @@ public class GuntamaticHandler extends BaseThingHandler {
|
||||||
if (!(command instanceof RefreshType)) {
|
if (!(command instanceof RefreshType)) {
|
||||||
if (!config.key.isBlank()) {
|
if (!config.key.isBlank()) {
|
||||||
String param;
|
String param;
|
||||||
|
Map<String, String> map;
|
||||||
String channelID = channelUID.getId();
|
String channelID = channelUID.getId();
|
||||||
switch (channelID) {
|
switch (channelID) {
|
||||||
case CHANNEL_CONTROLBOILERAPPROVAL:
|
case CHANNEL_CONTROLBOILERAPPROVAL:
|
||||||
param = getThing().getProperties().get(PARAMETER_BOILERAPPROVAL);
|
param = getThing().getProperties().get(PARAMETER_BOILERAPPROVAL);
|
||||||
|
map = MAP_COMMAND_PARAM_APPROVAL;
|
||||||
break;
|
break;
|
||||||
case CHANNEL_CONTROLPROGRAM:
|
case CHANNEL_CONTROLPROGRAM:
|
||||||
param = getThing().getProperties().get(PARAMETER_PROGRAM);
|
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;
|
break;
|
||||||
case CHANNEL_CONTROLHEATCIRCPROGRAM0:
|
case CHANNEL_CONTROLHEATCIRCPROGRAM0:
|
||||||
case CHANNEL_CONTROLHEATCIRCPROGRAM1:
|
case CHANNEL_CONTROLHEATCIRCPROGRAM1:
|
||||||
|
@ -126,23 +150,36 @@ public class GuntamaticHandler extends BaseThingHandler {
|
||||||
case CHANNEL_CONTROLHEATCIRCPROGRAM8:
|
case CHANNEL_CONTROLHEATCIRCPROGRAM8:
|
||||||
param = getThing().getProperties().get(PARAMETER_HEATCIRCPROGRAM).replace("x",
|
param = getThing().getProperties().get(PARAMETER_HEATCIRCPROGRAM).replace("x",
|
||||||
channelID.substring(channelID.length() - 1));
|
channelID.substring(channelID.length() - 1));
|
||||||
|
map = MAP_COMMAND_PARAM_HC;
|
||||||
break;
|
break;
|
||||||
case CHANNEL_CONTROLWWHEAT0:
|
case CHANNEL_CONTROLWWHEAT0:
|
||||||
case CHANNEL_CONTROLWWHEAT1:
|
case CHANNEL_CONTROLWWHEAT1:
|
||||||
case CHANNEL_CONTROLWWHEAT2:
|
case CHANNEL_CONTROLWWHEAT2:
|
||||||
param = getThing().getProperties().get(PARAMETER_WWHEAT).replace("x",
|
param = getThing().getProperties().get(PARAMETER_WWHEAT).replace("x",
|
||||||
channelID.substring(channelID.length() - 1));
|
channelID.substring(channelID.length() - 1));
|
||||||
|
map = MAP_COMMAND_PARAM_WW;
|
||||||
break;
|
break;
|
||||||
case CHANNEL_CONTROLEXTRAWWHEAT0:
|
case CHANNEL_CONTROLEXTRAWWHEAT0:
|
||||||
case CHANNEL_CONTROLEXTRAWWHEAT1:
|
case CHANNEL_CONTROLEXTRAWWHEAT1:
|
||||||
case CHANNEL_CONTROLEXTRAWWHEAT2:
|
case CHANNEL_CONTROLEXTRAWWHEAT2:
|
||||||
param = getThing().getProperties().get(PARAMETER_EXTRAWWHEAT).replace("x",
|
param = getThing().getProperties().get(PARAMETER_EXTRAWWHEAT).replace("x",
|
||||||
channelID.substring(channelID.length() - 1));
|
channelID.substring(channelID.length() - 1));
|
||||||
|
map = MAP_COMMAND_PARAM_WW;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return;
|
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) {
|
if (response != null) {
|
||||||
State newState = new StringType(response);
|
State newState = new StringType(response);
|
||||||
updateState(channelID, newState);
|
updateState(channelID, newState);
|
||||||
|
@ -232,7 +269,8 @@ public class GuntamaticHandler extends BaseThingHandler {
|
||||||
String[] daqdesc = html.split("\\n");
|
String[] daqdesc = html.split("\\n");
|
||||||
List<Channel> channelList = new ArrayList<>();
|
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);
|
Channel channel = thing.getChannel(channelID);
|
||||||
if (channel == null) {
|
if (channel == null) {
|
||||||
logger.warn("Static Channel '{}' is not present: remove and re-add Thing", channelID);
|
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++) {
|
for (int i = 0; i < daqdesc.length; i++) {
|
||||||
String[] param = daqdesc[i].split(";");
|
String[] param = daqdesc[i].split(";");
|
||||||
String label = param[0].replace("C02", "CO2");
|
String label = param[0].replace("C02", "CO2");
|
||||||
|
@ -401,8 +440,10 @@ public class GuntamaticHandler extends BaseThingHandler {
|
||||||
parseAndUpdate(response);
|
parseAndUpdate(response);
|
||||||
} else if (url.equals(DAQDESC_URL)) {
|
} else if (url.equals(DAQDESC_URL)) {
|
||||||
parseAndInit(response);
|
parseAndInit(response);
|
||||||
|
} else {
|
||||||
|
logger.debug(req);
|
||||||
|
// PARSET_URL via return
|
||||||
}
|
}
|
||||||
// PARSET_URL via return
|
|
||||||
return response;
|
return response;
|
||||||
} catch (IllegalArgumentException e) {
|
} catch (IllegalArgumentException e) {
|
||||||
errorReason = String.format("IllegalArgumentException: %s",
|
errorReason = String.format("IllegalArgumentException: %s",
|
||||||
|
|
|
@ -14,6 +14,7 @@ package org.openhab.binding.guntamatic.internal;
|
||||||
|
|
||||||
import static org.openhab.binding.guntamatic.internal.GuntamaticBindingConstants.*;
|
import static org.openhab.binding.guntamatic.internal.GuntamaticBindingConstants.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import org.eclipse.jdt.annotation.NonNullByDefault;
|
import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||||
|
@ -39,8 +40,9 @@ import org.osgi.service.component.annotations.Reference;
|
||||||
@Component(configurationPid = "binding.guntamatic", service = ThingHandlerFactory.class)
|
@Component(configurationPid = "binding.guntamatic", service = ThingHandlerFactory.class)
|
||||||
public class GuntamaticHandlerFactory extends BaseThingHandlerFactory {
|
public class GuntamaticHandlerFactory extends BaseThingHandlerFactory {
|
||||||
|
|
||||||
private static final Set<ThingTypeUID> SUPPORTED_THING_TYPES_UIDS = Set.of(THING_TYPE_BIOSTAR, THING_TYPE_POWERCHIP,
|
private static final Set<ThingTypeUID> SUPPORTED_THING_TYPES_UIDS = Set.of(THING_TYPE_BIOSTAR, THING_TYPE_BIOSMART,
|
||||||
THING_TYPE_POWERCORN, THING_TYPE_BIOCOM, THING_TYPE_PRO, THING_TYPE_THERM);
|
THING_TYPE_POWERCHIP, THING_TYPE_POWERCORN, THING_TYPE_BIOCOM, THING_TYPE_PRO, THING_TYPE_THERM,
|
||||||
|
THING_TYPE_GENERIC);
|
||||||
|
|
||||||
private final HttpClient httpClient;
|
private final HttpClient httpClient;
|
||||||
private GuntamaticChannelTypeProvider guntamaticChannelTypeProvider;
|
private GuntamaticChannelTypeProvider guntamaticChannelTypeProvider;
|
||||||
|
@ -60,9 +62,18 @@ public class GuntamaticHandlerFactory extends BaseThingHandlerFactory {
|
||||||
@Override
|
@Override
|
||||||
protected @Nullable ThingHandler createHandler(Thing thing) {
|
protected @Nullable ThingHandler createHandler(Thing thing) {
|
||||||
ThingTypeUID thingTypeUID = thing.getThingTypeUID();
|
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)) {
|
if (supportsThingType(thingTypeUID)) {
|
||||||
return new GuntamaticHandler(thing, httpClient, guntamaticChannelTypeProvider);
|
return new GuntamaticHandler(thing, httpClient, guntamaticChannelTypeProvider, staticChannelIDs);
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -6,7 +6,7 @@ binding.guntamatic.description = Binding for Guntamatic Heating Systems.
|
||||||
# thing types
|
# thing types
|
||||||
|
|
||||||
thing-type.guntamatic.biocom.label = Guntamatic Biocom
|
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.controlBoilerApproval.label = Set Boiler Approval
|
||||||
thing-type.guntamatic.biocom.channel.controlExtraWwHeat0.label = Trigger Extra Warm Water Circle 0
|
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
|
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.controlWwHeat0.label = Trigger Warm Water Circle 0
|
||||||
thing-type.guntamatic.biocom.channel.controlWwHeat1.label = Trigger Warm Water Circle 1
|
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.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.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.controlBoilerApproval.label = Set Boiler Approval
|
||||||
thing-type.guntamatic.biostar.channel.controlExtraWwHeat0.label = Trigger Extra Warm Water Circle 0
|
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
|
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.controlWwHeat0.label = Trigger Warm Water Circle 0
|
||||||
thing-type.guntamatic.biostar.channel.controlWwHeat1.label = Trigger Warm Water Circle 1
|
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.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.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.controlBoilerApproval.label = Set Boiler Approval
|
||||||
thing-type.guntamatic.powerchip.channel.controlExtraWwHeat0.label = Trigger Extra Warm Water Circle 0
|
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
|
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.controlWwHeat1.label = Trigger Warm Water Circle 1
|
||||||
thing-type.guntamatic.powerchip.channel.controlWwHeat2.label = Trigger Warm Water Circle 2
|
thing-type.guntamatic.powerchip.channel.controlWwHeat2.label = Trigger Warm Water Circle 2
|
||||||
thing-type.guntamatic.powercorn.label = Guntamatic Powercorn
|
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.controlBoilerApproval.label = Set Boiler Approval
|
||||||
thing-type.guntamatic.powercorn.channel.controlExtraWwHeat0.label = Trigger Extra Warm Water Circle 0
|
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
|
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.controlWwHeat1.label = Trigger Warm Water Circle 1
|
||||||
thing-type.guntamatic.powercorn.channel.controlWwHeat2.label = Trigger Warm Water Circle 2
|
thing-type.guntamatic.powercorn.channel.controlWwHeat2.label = Trigger Warm Water Circle 2
|
||||||
thing-type.guntamatic.pro.label = Guntamatic Pro
|
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.controlBoilerApproval.label = Set Boiler Approval
|
||||||
thing-type.guntamatic.pro.channel.controlExtraWwHeat0.label = Trigger Extra Warm Water Circle 0
|
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
|
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.controlWwHeat1.label = Trigger Warm Water Circle 1
|
||||||
thing-type.guntamatic.pro.channel.controlWwHeat2.label = Trigger Warm Water Circle 2
|
thing-type.guntamatic.pro.channel.controlWwHeat2.label = Trigger Warm Water Circle 2
|
||||||
thing-type.guntamatic.therm.label = Guntamatic Therm
|
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.controlBoilerApproval.label = Set Boiler Approval
|
||||||
thing-type.guntamatic.therm.channel.controlExtraWwHeat0.label = Trigger Extra Warm Water Circle 0
|
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
|
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.1 = NORMAL
|
||||||
channel-type.guntamatic.controlProgram.state.option.2 = WARMWATER
|
channel-type.guntamatic.controlProgram.state.option.2 = WARMWATER
|
||||||
channel-type.guntamatic.controlProgram.state.option.8 = MANUAL
|
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.label = Trigger Warm Water Circle
|
||||||
channel-type.guntamatic.controlWwHeat.description = Trigger Warm Water Circle of the Guntamatic Heating System (RECHARGE)
|
channel-type.guntamatic.controlWwHeat.description = Trigger Warm Water Circle of the Guntamatic Heating System (RECHARGE)
|
||||||
channel-type.guntamatic.controlWwHeat.state.option.0 = RECHARGE
|
channel-type.guntamatic.controlWwHeat.state.option.0 = RECHARGE
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<thing-type id="biostar">
|
<thing-type id="biostar">
|
||||||
|
|
||||||
<label>Guntamatic Biostar</label>
|
<label>Guntamatic Biostar</label>
|
||||||
<description>Guntamatic Biostar Heating System</description>
|
<description>Guntamatic Biostar Pellets Heating System</description>
|
||||||
|
|
||||||
<channels>
|
<channels>
|
||||||
<channel id="controlBoilerApproval" typeId="controlBoilerApproval">
|
<channel id="controlBoilerApproval" typeId="controlBoilerApproval">
|
||||||
|
@ -71,10 +71,73 @@
|
||||||
</properties>
|
</properties>
|
||||||
<config-description-ref uri="thing-type:guntamatic:heatingsystem"/>
|
<config-description-ref uri="thing-type:guntamatic:heatingsystem"/>
|
||||||
</thing-type>
|
</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">
|
<thing-type id="powerchip">
|
||||||
|
|
||||||
<label>Guntamatic Powerchip</label>
|
<label>Guntamatic Powerchip</label>
|
||||||
<description>Guntamatic Powerchip Heating System. Untested! Please provide Feedback!</description>
|
<description>Guntamatic Powerchip WoodChip Heating System</description>
|
||||||
|
|
||||||
<channels>
|
<channels>
|
||||||
<channel id="controlBoilerApproval" typeId="controlBoilerApproval">
|
<channel id="controlBoilerApproval" typeId="controlBoilerApproval">
|
||||||
|
@ -141,7 +204,7 @@
|
||||||
<thing-type id="powercorn">
|
<thing-type id="powercorn">
|
||||||
|
|
||||||
<label>Guntamatic Powercorn</label>
|
<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>
|
<channels>
|
||||||
<channel id="controlBoilerApproval" typeId="controlBoilerApproval">
|
<channel id="controlBoilerApproval" typeId="controlBoilerApproval">
|
||||||
|
@ -208,7 +271,7 @@
|
||||||
<thing-type id="biocom">
|
<thing-type id="biocom">
|
||||||
|
|
||||||
<label>Guntamatic Biocom</label>
|
<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>
|
<channels>
|
||||||
<channel id="controlBoilerApproval" typeId="controlBoilerApproval">
|
<channel id="controlBoilerApproval" typeId="controlBoilerApproval">
|
||||||
|
@ -275,7 +338,7 @@
|
||||||
<thing-type id="pro">
|
<thing-type id="pro">
|
||||||
|
|
||||||
<label>Guntamatic Pro</label>
|
<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>
|
<channels>
|
||||||
<channel id="controlBoilerApproval" typeId="controlBoilerApproval">
|
<channel id="controlBoilerApproval" typeId="controlBoilerApproval">
|
||||||
|
@ -342,7 +405,7 @@
|
||||||
<thing-type id="therm">
|
<thing-type id="therm">
|
||||||
|
|
||||||
<label>Guntamatic Therm</label>
|
<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>
|
<channels>
|
||||||
<channel id="controlBoilerApproval" typeId="controlBoilerApproval">
|
<channel id="controlBoilerApproval" typeId="controlBoilerApproval">
|
||||||
|
@ -406,7 +469,70 @@
|
||||||
</properties>
|
</properties>
|
||||||
<config-description-ref uri="thing-type:guntamatic:heatingsystem"/>
|
<config-description-ref uri="thing-type:guntamatic:heatingsystem"/>
|
||||||
</thing-type>
|
</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">
|
<channel-type id="controlProgram" advanced="false">
|
||||||
<item-type>String</item-type>
|
<item-type>String</item-type>
|
||||||
|
@ -421,6 +547,18 @@
|
||||||
</options>
|
</options>
|
||||||
</state>
|
</state>
|
||||||
</channel-type>
|
</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">
|
<channel-type id="controlBoilerApproval" advanced="true">
|
||||||
<item-type>String</item-type>
|
<item-type>String</item-type>
|
||||||
<label>Set Boiler Approval</label>
|
<label>Set Boiler Approval</label>
|
||||||
|
|
Loading…
Reference in New Issue