From: Conte Andrea Date: Wed, 16 Mar 2022 18:10:46 +0000 (+0100) Subject: [openwebnet] added channel "function" for Central Unit (#12483) X-Git-Url: https://git.basschouten.com/?a=commitdiff_plain;h=7b8529e9bca2ed6748f9e993c0dd224b08bf7619;p=openhab-addons.git [openwebnet] added channel "function" for Central Unit (#12483) * added channel "function" for Central Unit Signed-off-by: Conte Andrea --- diff --git a/bundles/org.openhab.binding.openwebnet/README.md b/bundles/org.openhab.binding.openwebnet/README.md index 8bf44fa5ae..0124e26b0e 100644 --- a/bundles/org.openhab.binding.openwebnet/README.md +++ b/bundles/org.openhab.binding.openwebnet/README.md @@ -176,8 +176,8 @@ The (optional) Central Unit can be configured defining a `bus_themo_cu` Thing. | Channel Type ID (channel ID) | Applies to Thing Type IDs | Item Type | Description | Read/Write | Advanced | | ---------------------------- | -------------------------------------- | ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------: | :------: | | `temperature` | `bus_thermo_zone`, `bus_thermo_sensor` | Number:Temperature | The zone currently sensed temperature | R | N | -| `setpointTemperature` | `bus_thermo_zone`, `bus_thermo_cu` | Number:Temperature | The zone or Central Unit setpoint temperature | R/W | N | -| `function` | `bus_thermo_zone` | String | The zone set thermo function: `COOLING`, `HEATING` or `GENERIC` (heating + cooling) | R/W | N | +| `setpointTemperature` | `bus_thermo_zone`, `bus_thermo_cu` | Number:Temperature | The zone or Central Unit setpoint temperature | R/W | N | +| `function` | `bus_thermo_zone`, `bus_thermo_cu` | String | The zone set thermo function (`COOLING`, `HEATING`, `GENERIC`) or the Central Unit thermo function (`COOLING`, `HEATING`) | R/W | N | | `mode` | `bus_thermo_zone`, `bus_thermo_cu` | String | The zone set mode (`MANUAL`, `PROTECTION`, `OFF`) or the Central Unit set mode ( `MANUAL`, `PROTECTION`, `OFF`, `WEEKLY`, `SCENARIO`) | R/W | N | | `speedFanCoil` | `bus_thermo_zone` | String | The zone fancoil speed: `AUTO`, `SPEED_1`, `SPEED_2`, `SPEED_3` | R/W | N | | `actuators` | `bus_thermo_zone` | String | The zone actuator(s) status: `OFF`, `ON`, `OPENED`, `CLOSED` , `STOP`, `OFF_FAN_COIL`, `ON_SPEED_1`, `ON_SPEED_2`, `ON_SPEED_3`, `OFF_SPEED_1`, `OFF_SPEED_2`, `OFF_SPEED_3` | R | Y | diff --git a/bundles/org.openhab.binding.openwebnet/src/main/java/org/openhab/binding/openwebnet/internal/handler/OpenWebNetThermoregulationHandler.java b/bundles/org.openhab.binding.openwebnet/src/main/java/org/openhab/binding/openwebnet/internal/handler/OpenWebNetThermoregulationHandler.java index 340f6a342b..f9af4e14a3 100644 --- a/bundles/org.openhab.binding.openwebnet/src/main/java/org/openhab/binding/openwebnet/internal/handler/OpenWebNetThermoregulationHandler.java +++ b/bundles/org.openhab.binding.openwebnet/src/main/java/org/openhab/binding/openwebnet/internal/handler/OpenWebNetThermoregulationHandler.java @@ -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()); diff --git a/bundles/org.openhab.binding.openwebnet/src/main/resources/OH-INF/thing/BusThermoCentralUnit.xml b/bundles/org.openhab.binding.openwebnet/src/main/resources/OH-INF/thing/BusThermoCentralUnit.xml index 8f77cedf3d..e893e62847 100644 --- a/bundles/org.openhab.binding.openwebnet/src/main/resources/OH-INF/thing/BusThermoCentralUnit.xml +++ b/bundles/org.openhab.binding.openwebnet/src/main/resources/OH-INF/thing/BusThermoCentralUnit.xml @@ -17,6 +17,7 @@ + diff --git a/bundles/org.openhab.binding.openwebnet/src/main/resources/OH-INF/thing/channels.xml b/bundles/org.openhab.binding.openwebnet/src/main/resources/OH-INF/thing/channels.xml index a2b4c2343e..fafa4086ed 100644 --- a/bundles/org.openhab.binding.openwebnet/src/main/resources/OH-INF/thing/channels.xml +++ b/bundles/org.openhab.binding.openwebnet/src/main/resources/OH-INF/thing/channels.xml @@ -66,6 +66,18 @@ + + String + + Thermo function of the Central Unit + + + + + + + + Number:Temperature