Skip to content

Commit

Permalink
Add support for DomesticHotWaterTank (#247)
Browse files Browse the repository at this point in the history
  • Loading branch information
iMicknl committed Sep 3, 2020
1 parent cae20b7 commit 7a19a7c
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 3 deletions.
3 changes: 2 additions & 1 deletion custom_components/tahoma/const.py
Expand Up @@ -21,16 +21,17 @@
# Used to map the Somfy widget and ui_class to the Home Assistant platform
TAHOMA_TYPES = {
"AdjustableSlatsRollerShutter": COVER,
"Alarm": ALARM_CONTROL_PANEL,
"AirFlowSensor": BINARY_SENSOR, # widgetName, uiClass is AirSensor (sensor)
"AirSensor": SENSOR,
"Alarm": ALARM_CONTROL_PANEL,
"AtlanticElectricalHeater": CLIMATE, # widgetName, uiClass is HeatingSystem (not supported)
"Awning": COVER,
"CarButtonSensor": BINARY_SENSOR,
"ConsumptionSensor": SENSOR,
"ContactSensor": BINARY_SENSOR,
"Curtain": COVER,
"DimmerExteriorHeating": CLIMATE, # widgetName, uiClass is ExteriorHeatingSystem (not supported)
"DomesticHotWaterTank": SWITCH, # widgetName, uiClass is WaterHeatingSystem (not supported)
"DoorLock": LOCK,
"ElectricitySensor": SENSOR,
"ExteriorScreen": COVER,
Expand Down
13 changes: 11 additions & 2 deletions custom_components/tahoma/switch.py
Expand Up @@ -7,7 +7,7 @@
DOMAIN as SWITCH,
SwitchEntity,
)
from homeassistant.const import STATE_ON
from homeassistant.const import STATE_OFF, STATE_ON

from .const import COMMAND_OFF, COMMAND_ON, CORE_ON_OFF_STATE, DOMAIN
from .tahoma_device import TahomaDevice
Expand All @@ -17,8 +17,11 @@
COMMAND_CYCLE = "cycle"
COMMAND_MEMORIZED_VOLUME = "memorizedVolume"
COMMAND_RING_WITH_SINGLE_SIMPLE_SEQUENCE = "ringWithSingleSimpleSequence"
COMMAND_SET_FORCE_HEATING = "setForceHeating"
COMMAND_STANDARD = "standard"

IO_FORCE_HEATING_STATE = "io:ForceHeatingState"

DEVICE_CLASS_SIREN = "siren"

ICON_BELL_RING = "mdi:bell-ring"
Expand Down Expand Up @@ -65,6 +68,9 @@ async def async_turn_on(self, **_):
if self.has_command(COMMAND_ON):
await self.async_execute_command(COMMAND_ON)

elif self.has_command(COMMAND_SET_FORCE_HEATING):
await self.async_execute_command(COMMAND_SET_FORCE_HEATING, STATE_ON)

elif self.has_command(COMMAND_RING_WITH_SINGLE_SIMPLE_SEQUENCE):
await self.async_execute_command(
COMMAND_RING_WITH_SINGLE_SIMPLE_SEQUENCE, # https://www.tahomalink.com/enduser-mobile-web/steer-html5-client/vendor/somfy/io/siren/const.js
Expand All @@ -85,6 +91,9 @@ async def async_turn_off(self, **_):
COMMAND_STANDARD,
)

elif self.has_command(COMMAND_SET_FORCE_HEATING):
await self.async_execute_command(COMMAND_SET_FORCE_HEATING, STATE_OFF)

elif self.has_command(COMMAND_OFF):
await self.async_execute_command(COMMAND_OFF)

Expand All @@ -96,4 +105,4 @@ async def async_toggle(self, **_):
@property
def is_on(self):
"""Get whether the switch is in on state."""
return self.select_state(CORE_ON_OFF_STATE) == STATE_ON
return self.select_state(CORE_ON_OFF_STATE, IO_FORCE_HEATING_STATE) == STATE_ON

0 comments on commit 7a19a7c

Please sign in to comment.