[openwebnet] added channel "function" for Central Unit (#12483)

* added channel "function" for Central Unit

Signed-off-by: Conte Andrea <andrea@conte.com>
This commit is contained in:
Conte Andrea
2022-03-16 19:10:46 +01:00
committed by GitHub
parent b1827c773d
commit 7b8529e9bc
4 changed files with 32 additions and 9 deletions

View File

@@ -280,9 +280,9 @@ public class OpenWebNetThermoregulationHandler extends OpenWebNetThingHandler {
super.handleMessage(msg);
if (isCentralUnit) {
if (msg.isCommand()) {
updateModeAndFunction((Thermoregulation) msg);
}
// there isn't a message used for setting OK for battery status so let's assume
// it's OK and then change to KO if according message is received
updateCUBatteryStatus(CU_BATTERY_OK);
if (msg.getWhat() == Thermoregulation.WhatThermo.REMOTE_CONTROL_DISABLED) {
updateCURemoteControlStatus(CU_REMOTE_CONTROL_DISABLED);
@@ -290,8 +290,21 @@ public class OpenWebNetThermoregulationHandler extends OpenWebNetThingHandler {
updateCURemoteControlStatus(CU_REMOTE_CONTROL_ENABLED);
} else if (msg.getWhat() == Thermoregulation.WhatThermo.BATTERY_KO) {
updateCUBatteryStatus(CU_BATTERY_KO);
} // must intercept all possibile WHATs (will be implemented soon)
else if (msg.getWhat() == Thermoregulation.WhatThermo.AT_LEAST_ONE_PROBE_OFF) {
logger.debug("handleMessage() Ignoring unsupported WHAT {}. Frame={}", msg.getWhat(), msg);
} else if (msg.getWhat() == Thermoregulation.WhatThermo.AT_LEAST_ONE_PROBE_ANTIFREEZE) {
logger.debug("handleMessage() Ignoring unsupported WHAT {}. Frame={}", msg.getWhat(), msg);
} else if (msg.getWhat() == Thermoregulation.WhatThermo.AT_LEAST_ONE_PROBE_MANUAL) {
logger.debug("handleMessage() Ignoring unsupported WHAT {}. Frame={}", msg.getWhat(), msg);
} else if (msg.getWhat() == Thermoregulation.WhatThermo.FAILURE_DISCOVERED) {
logger.debug("handleMessage() Ignoring unsupported WHAT {}. Frame={}", msg.getWhat(), msg);
} else if (msg.getWhat() == Thermoregulation.WhatThermo.RELEASE_SENSOR_LOCAL_ADJUST) {
logger.debug("handleMessage() Ignoring unsupported WHAT {}. Frame={}", msg.getWhat(), msg);
} else {
// check and eventually parse mode and function
updateModeAndFunction((Thermoregulation) msg);
}
return;
}
@@ -439,9 +452,6 @@ public class OpenWebNetThermoregulationHandler extends OpenWebNetThingHandler {
// TODO: 4 zone central -> zone #0 CAN be also a zone with its temp.. with 99-zones central no!
// let's assume it's a 99 zone
try {
// there isn't a message used for setting OK for battery status so let's assume
// it's OK and then change to KO if according message is received
updateCUBatteryStatus(CU_BATTERY_OK);
send(Thermoregulation.requestStatus("#0"));
} catch (OWNException e) {
logger.warn("refreshDevice() central unit returned OWNException {}", e.getMessage());

View File

@@ -17,6 +17,7 @@
<!-- read only -->
<channel id="remoteControl" typeId="remoteControl"/>
<channel id="batteryStatus" typeId="batteryStatus"/>
<channel id="function" typeId="functionCentralUnit"/>
<!-- read/write -->
<channel id="setpointTemperature" typeId="setpointTemperature"/>
<channel id="mode" typeId="modeCentralUnit"/>

View File

@@ -66,6 +66,18 @@
</state>
</channel-type>
<channel-type id="functionCentralUnit">
<item-type>String</item-type>
<label>Thermo Function</label>
<description>Thermo function of the Central Unit</description>
<state readOnly="true">
<options>
<option value="HEATING">Heating</option>
<option value="COOLING">Cooling</option>
</options>
</state>
</channel-type>
<channel-type id="setpointTemperature">
<item-type>Number:Temperature</item-type>
<label>Setpoint Temperature</label>