mirror of
https://github.com/openhab/openhab-addons.git
synced 2025-01-25 14:55:55 +01:00
[tado] Add channel for remaining time of open window override (#17576)
* [tado] Add open window override remaining time channel Signed-off-by: AndrewFG <software@whitebear.ch> Signed-off-by: Ciprian Pascu <contact@ciprianpascu.ro>
This commit is contained in:
parent
cb445d4e07
commit
a146c81406
@ -79,7 +79,8 @@ Name | Type | Description | Read/Write | Zone type
|
|||||||
`verticalSwing`<sup>2)</sup> | String | Vertical swing state, one of <sup>3)</sup> `OFF`, `ON`, `UP`, `MID_UP`, `MID`, `MID_DOWN`, `DOWN`, `AUTO` | RW | `AC`
|
`verticalSwing`<sup>2)</sup> | String | Vertical swing state, one of <sup>3)</sup> `OFF`, `ON`, `UP`, `MID_UP`, `MID`, `MID_DOWN`, `DOWN`, `AUTO` | RW | `AC`
|
||||||
`horizontalSwing`<sup>2)</sup> | String | Horizontal swing state, one of <sup>3)</sup> `OFF`, `ON`, `LEFT`, `MID_LEFT`, `MID`, `MID_RIGHT`, `RIGHT`, `AUTO` | RW | `AC`
|
`horizontalSwing`<sup>2)</sup> | String | Horizontal swing state, one of <sup>3)</sup> `OFF`, `ON`, `LEFT`, `MID_LEFT`, `MID`, `MID_RIGHT`, `RIGHT`, `AUTO` | RW | `AC`
|
||||||
`batteryLowAlarm` | Switch | A control device in the Zone has a low battery | R | Any Zone
|
`batteryLowAlarm` | Switch | A control device in the Zone has a low battery | R | Any Zone
|
||||||
`openWindowDetected` | Switch | An open window has been detected in the Zone | R | Any Zone
|
`openWindowDetected` | Switch | An open window has been detected in the Zone | R | `HEATING`, `AC`
|
||||||
|
`openWindowRemainingTime` | Number:Time | The remaining Open Window heating/cooling Override time in the Zone | R | `HEATING`, `AC`
|
||||||
`light` | Switch | State (`ON`, `OFF`) of the control panel light | RW | `AC`
|
`light` | Switch | State (`ON`, `OFF`) of the control panel light | RW | `AC`
|
||||||
|
|
||||||
You will see some of the above mentioned Channels only if your tado° device supports the respective function.
|
You will see some of the above mentioned Channels only if your tado° device supports the respective function.
|
||||||
|
@ -130,6 +130,8 @@ public class TadoBindingConstants {
|
|||||||
public static final String CHANNEL_ZONE_BATTERY_LOW_ALARM = "batteryLowAlarm";
|
public static final String CHANNEL_ZONE_BATTERY_LOW_ALARM = "batteryLowAlarm";
|
||||||
// open window detected channel
|
// open window detected channel
|
||||||
public static final String CHANNEL_ZONE_OPEN_WINDOW_DETECTED = "openWindowDetected";
|
public static final String CHANNEL_ZONE_OPEN_WINDOW_DETECTED = "openWindowDetected";
|
||||||
|
// open window heating/cooling override remaining time channel
|
||||||
|
public static final String CHANNEL_ZONE_OPEN_WINDOW_REMAINING_TIME = "openWindowRemainingTime";
|
||||||
|
|
||||||
public static final String CHANNEL_MOBILE_DEVICE_AT_HOME = "atHome";
|
public static final String CHANNEL_MOBILE_DEVICE_AT_HOME = "atHome";
|
||||||
|
|
||||||
|
@ -31,6 +31,7 @@ import org.openhab.binding.tado.swagger.codegen.api.model.CoolingZoneSetting;
|
|||||||
import org.openhab.binding.tado.swagger.codegen.api.model.GenericZoneSetting;
|
import org.openhab.binding.tado.swagger.codegen.api.model.GenericZoneSetting;
|
||||||
import org.openhab.binding.tado.swagger.codegen.api.model.HeatingZoneSetting;
|
import org.openhab.binding.tado.swagger.codegen.api.model.HeatingZoneSetting;
|
||||||
import org.openhab.binding.tado.swagger.codegen.api.model.HotWaterZoneSetting;
|
import org.openhab.binding.tado.swagger.codegen.api.model.HotWaterZoneSetting;
|
||||||
|
import org.openhab.binding.tado.swagger.codegen.api.model.OpenWindow;
|
||||||
import org.openhab.binding.tado.swagger.codegen.api.model.Overlay;
|
import org.openhab.binding.tado.swagger.codegen.api.model.Overlay;
|
||||||
import org.openhab.binding.tado.swagger.codegen.api.model.OverlayTerminationConditionType;
|
import org.openhab.binding.tado.swagger.codegen.api.model.OverlayTerminationConditionType;
|
||||||
import org.openhab.binding.tado.swagger.codegen.api.model.PercentageDataPoint;
|
import org.openhab.binding.tado.swagger.codegen.api.model.PercentageDataPoint;
|
||||||
@ -262,6 +263,18 @@ public class TadoZoneStateAdapter {
|
|||||||
return OnOffType.OFF;
|
return OnOffType.OFF;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public State getOpenWindowRemainingTime() {
|
||||||
|
int seconds = 0;
|
||||||
|
OpenWindow openWindow = zoneState.getOpenWindow();
|
||||||
|
if (openWindow != null) {
|
||||||
|
Integer remainingSeconds = openWindow.getRemainingTimeInSeconds();
|
||||||
|
if (remainingSeconds != 0) {
|
||||||
|
seconds = remainingSeconds.intValue();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return new QuantityType<>(seconds, Units.SECOND);
|
||||||
|
}
|
||||||
|
|
||||||
public State getLight() {
|
public State getLight() {
|
||||||
if (zoneState.getSetting().getType() == TadoSystemType.AIR_CONDITIONING) {
|
if (zoneState.getSetting().getType() == TadoSystemType.AIR_CONDITIONING) {
|
||||||
Power result = ((CoolingZoneSetting) zoneState.getSetting()).getLight();
|
Power result = ((CoolingZoneSetting) zoneState.getSetting()).getLight();
|
||||||
|
@ -350,6 +350,9 @@ public class TadoZoneHandler extends BaseHomeThingHandler {
|
|||||||
|
|
||||||
updateState(TadoBindingConstants.CHANNEL_ZONE_OPEN_WINDOW_DETECTED, state.getOpenWindowDetected());
|
updateState(TadoBindingConstants.CHANNEL_ZONE_OPEN_WINDOW_DETECTED, state.getOpenWindowDetected());
|
||||||
|
|
||||||
|
updateState(TadoBindingConstants.CHANNEL_ZONE_OPEN_WINDOW_REMAINING_TIME,
|
||||||
|
state.getOpenWindowRemainingTime());
|
||||||
|
|
||||||
updateDynamicStateDescriptions(zoneState);
|
updateDynamicStateDescriptions(zoneState);
|
||||||
|
|
||||||
onSuccessfulOperation();
|
onSuccessfulOperation();
|
||||||
@ -514,6 +517,8 @@ public class TadoZoneHandler extends BaseHomeThingHandler {
|
|||||||
capabilitiesSupport.batteryLowAlarm());
|
capabilitiesSupport.batteryLowAlarm());
|
||||||
removeListProcessChannel(removeList, TadoBindingConstants.CHANNEL_ZONE_OPEN_WINDOW_DETECTED,
|
removeListProcessChannel(removeList, TadoBindingConstants.CHANNEL_ZONE_OPEN_WINDOW_DETECTED,
|
||||||
capabilitiesSupport.openWindow());
|
capabilitiesSupport.openWindow());
|
||||||
|
removeListProcessChannel(removeList, TadoBindingConstants.CHANNEL_ZONE_OPEN_WINDOW_REMAINING_TIME,
|
||||||
|
capabilitiesSupport.openWindow());
|
||||||
removeListProcessChannel(removeList, TadoBindingConstants.CHANNEL_ZONE_LIGHT, capabilitiesSupport.light());
|
removeListProcessChannel(removeList, TadoBindingConstants.CHANNEL_ZONE_LIGHT, capabilitiesSupport.light());
|
||||||
removeListProcessChannel(removeList, TadoBindingConstants.CHANNEL_ZONE_HORIZONTAL_SWING,
|
removeListProcessChannel(removeList, TadoBindingConstants.CHANNEL_ZONE_HORIZONTAL_SWING,
|
||||||
capabilitiesSupport.horizontalSwing());
|
capabilitiesSupport.horizontalSwing());
|
||||||
|
@ -84,6 +84,8 @@ channel-type.tado.light.label = Light
|
|||||||
channel-type.tado.light.description = State of control panel light (only if supported by AC)
|
channel-type.tado.light.description = State of control panel light (only if supported by AC)
|
||||||
channel-type.tado.openWindowDetected.label = Open Window Detected
|
channel-type.tado.openWindowDetected.label = Open Window Detected
|
||||||
channel-type.tado.openWindowDetected.description = Indicates if an open window has been detected
|
channel-type.tado.openWindowDetected.description = Indicates if an open window has been detected
|
||||||
|
channel-type.tado.openWindowRemainingTime.label = Override Remaining Time
|
||||||
|
channel-type.tado.openWindowRemainingTime.description = The remaining Open Window heating/cooling Override time in the Zone
|
||||||
channel-type.tado.operationMode.label = Zone Operation Mode
|
channel-type.tado.operationMode.label = Zone Operation Mode
|
||||||
channel-type.tado.operationMode.description = Active operation mode (schedule, manual, timer or until next change)
|
channel-type.tado.operationMode.description = Active operation mode (schedule, manual, timer or until next change)
|
||||||
channel-type.tado.operationMode.state.option.SCHEDULE = Schedule
|
channel-type.tado.operationMode.state.option.SCHEDULE = Schedule
|
||||||
|
@ -55,6 +55,7 @@
|
|||||||
<channel typeId="overlayExpiry" id="overlayExpiry"/>
|
<channel typeId="overlayExpiry" id="overlayExpiry"/>
|
||||||
<channel typeId="timerDuration" id="timerDuration"/>
|
<channel typeId="timerDuration" id="timerDuration"/>
|
||||||
<channel typeId="openWindowDetected" id="openWindowDetected"/>
|
<channel typeId="openWindowDetected" id="openWindowDetected"/>
|
||||||
|
<channel typeId="openWindowRemainingTime" id="openWindowRemainingTime"/>
|
||||||
<channel typeId="system.low-battery" id="batteryLowAlarm">
|
<channel typeId="system.low-battery" id="batteryLowAlarm">
|
||||||
<label>Battery Low Alarm</label>
|
<label>Battery Low Alarm</label>
|
||||||
<description>ON if one or more devices in the zone have a low battery</description>
|
<description>ON if one or more devices in the zone have a low battery</description>
|
||||||
@ -63,7 +64,7 @@
|
|||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<property name="vendor">tado°</property>
|
<property name="vendor">tado°</property>
|
||||||
<property name="thingTypeVersion">1</property>
|
<property name="thingTypeVersion">2</property>
|
||||||
</properties>
|
</properties>
|
||||||
<representation-property>id</representation-property>
|
<representation-property>id</representation-property>
|
||||||
|
|
||||||
@ -307,4 +308,12 @@
|
|||||||
<state readOnly="true"/>
|
<state readOnly="true"/>
|
||||||
</channel-type>
|
</channel-type>
|
||||||
|
|
||||||
|
<channel-type id="openWindowRemainingTime">
|
||||||
|
<item-type>Number:Time</item-type>
|
||||||
|
<label>Override Remaining Time</label>
|
||||||
|
<description>The remaining Open Window heating/cooling Override time in the Zone</description>
|
||||||
|
<category>Window</category>
|
||||||
|
<state readOnly="true" pattern="%.0f %unit%"/>
|
||||||
|
</channel-type>
|
||||||
|
|
||||||
</thing:thing-descriptions>
|
</thing:thing-descriptions>
|
||||||
|
@ -14,6 +14,13 @@
|
|||||||
<description>Current humidity in %</description>
|
<description>Current humidity in %</description>
|
||||||
</update-channel>
|
</update-channel>
|
||||||
</instruction-set>
|
</instruction-set>
|
||||||
|
|
||||||
|
<instruction-set targetVersion="2">
|
||||||
|
<add-channel id="openWindowRemainingTime">
|
||||||
|
<type>tado:openWindowRemainingTime</type>
|
||||||
|
</add-channel>
|
||||||
|
</instruction-set>
|
||||||
|
|
||||||
</thing-type>
|
</thing-type>
|
||||||
|
|
||||||
</update:update-descriptions>
|
</update:update-descriptions>
|
||||||
|
Loading…
Reference in New Issue
Block a user