Make rfxtrx RfyDevices have sun automation switches (#38210)

* RfyDevices have sun automation

* We must accept sun automation commands for switch

* Add test for Rfy sun automation
This commit is contained in:
Joakim Plate 2020-07-25 22:56:58 +02:00 committed by GitHub
parent 85c856cfa3
commit fd11748a1a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 21 additions and 0 deletions

View File

@ -7,12 +7,14 @@ COMMAND_ON_LIST = [
"Stop", "Stop",
"Open (inline relay)", "Open (inline relay)",
"Stop (inline relay)", "Stop (inline relay)",
"Enable sun automation",
] ]
COMMAND_OFF_LIST = [ COMMAND_OFF_LIST = [
"Off", "Off",
"Down", "Down",
"Close (inline relay)", "Close (inline relay)",
"Disable sun automation",
] ]
ATTR_EVENT = "event" ATTR_EVENT = "event"

View File

@ -37,6 +37,7 @@ async def async_setup_entry(
isinstance(event.device, rfxtrxmod.LightingDevice) isinstance(event.device, rfxtrxmod.LightingDevice)
and not event.device.known_to_be_dimmable and not event.device.known_to_be_dimmable
and not event.device.known_to_be_rollershutter and not event.device.known_to_be_rollershutter
or isinstance(event.device, rfxtrxmod.RfyDevice)
) )
# Add switch from config file # Add switch from config file

View File

@ -8,6 +8,9 @@ from homeassistant.setup import async_setup_component
from tests.common import mock_restore_cache from tests.common import mock_restore_cache
EVENT_RFY_ENABLE_SUN_AUTO = "081a00000301010113"
EVENT_RFY_DISABLE_SUN_AUTO = "081a00000301010114"
async def test_one_switch(hass, rfxtrx): async def test_one_switch(hass, rfxtrx):
"""Test with 1 switch.""" """Test with 1 switch."""
@ -133,3 +136,18 @@ async def test_discover_switch(hass, rfxtrx_automatic):
state = hass.states.get("switch.ac_118cdeb_2") state = hass.states.get("switch.ac_118cdeb_2")
assert state assert state
assert state.state == "on" assert state.state == "on"
async def test_discover_rfy_sun_switch(hass, rfxtrx_automatic):
"""Test with discovery of switches."""
rfxtrx = rfxtrx_automatic
await rfxtrx.signal(EVENT_RFY_DISABLE_SUN_AUTO)
state = hass.states.get("switch.rfy_030101_1")
assert state
assert state.state == "off"
await rfxtrx.signal(EVENT_RFY_ENABLE_SUN_AUTO)
state = hass.states.get("switch.rfy_030101_1")
assert state
assert state.state == "on"