Fix flux switch update interval (#17458)

This commit is contained in:
Anders Melchiorsen 2018-10-18 23:04:22 +02:00 committed by GitHub
parent 10c1378195
commit cc4d29d42a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 225 additions and 211 deletions

View File

@ -19,7 +19,7 @@ from homeassistant.components.switch import DOMAIN, SwitchDevice
from homeassistant.const import ( from homeassistant.const import (
ATTR_ENTITY_ID, CONF_NAME, CONF_PLATFORM, CONF_LIGHTS, CONF_MODE, ATTR_ENTITY_ID, CONF_NAME, CONF_PLATFORM, CONF_LIGHTS, CONF_MODE,
SERVICE_TURN_ON) SERVICE_TURN_ON)
from homeassistant.helpers.event import track_time_change from homeassistant.helpers.event import track_time_interval
from homeassistant.helpers.sun import get_astral_event_date from homeassistant.helpers.sun import get_astral_event_date
from homeassistant.util import slugify from homeassistant.util import slugify
from homeassistant.util.color import ( from homeassistant.util.color import (
@ -180,8 +180,10 @@ class FluxSwitch(SwitchDevice):
# Make initial update # Make initial update
self.flux_update() self.flux_update()
self.unsub_tracker = track_time_change( self.unsub_tracker = track_time_interval(
self.hass, self.flux_update, second=[0, self._interval]) self.hass,
self.flux_update,
datetime.timedelta(seconds=self._interval))
self.schedule_update_ha_state() self.schedule_update_ha_state()

View File

@ -183,8 +183,9 @@ class TestSwitchFlux(unittest.TestCase):
return sunrise_time return sunrise_time
return sunset_time return sunset_time
with patch('homeassistant.util.dt.now', return_value=test_time): with patch('homeassistant.components.switch.flux.dt_now',
with patch('homeassistant.helpers.sun.get_astral_event_date', return_value=test_time), \
patch('homeassistant.helpers.sun.get_astral_event_date',
side_effect=event_date): side_effect=event_date):
assert setup_component(self.hass, switch.DOMAIN, { assert setup_component(self.hass, switch.DOMAIN, {
switch.DOMAIN: { switch.DOMAIN: {
@ -229,8 +230,9 @@ class TestSwitchFlux(unittest.TestCase):
return sunrise_time return sunrise_time
return sunset_time return sunset_time
with patch('homeassistant.util.dt.now', return_value=test_time): with patch('homeassistant.components.switch.flux.dt_now',
with patch('homeassistant.helpers.sun.get_astral_event_date', return_value=test_time), \
patch('homeassistant.helpers.sun.get_astral_event_date',
side_effect=event_date): side_effect=event_date):
assert setup_component(self.hass, switch.DOMAIN, { assert setup_component(self.hass, switch.DOMAIN, {
switch.DOMAIN: { switch.DOMAIN: {
@ -322,8 +324,9 @@ class TestSwitchFlux(unittest.TestCase):
return sunrise_time return sunrise_time
return sunset_time return sunset_time
with patch('homeassistant.util.dt.now', return_value=test_time): with patch('homeassistant.components.switch.flux.dt_now',
with patch('homeassistant.helpers.sun.get_astral_event_date', return_value=test_time), \
patch('homeassistant.helpers.sun.get_astral_event_date',
side_effect=event_date): side_effect=event_date):
assert setup_component(self.hass, switch.DOMAIN, { assert setup_component(self.hass, switch.DOMAIN, {
switch.DOMAIN: { switch.DOMAIN: {
@ -372,8 +375,9 @@ class TestSwitchFlux(unittest.TestCase):
return sunrise_time return sunrise_time
return sunset_time return sunset_time
with patch('homeassistant.util.dt.now', return_value=test_time): with patch('homeassistant.components.switch.flux.dt_now',
with patch('homeassistant.helpers.sun.get_astral_event_date', return_value=test_time), \
patch('homeassistant.helpers.sun.get_astral_event_date',
side_effect=event_date): side_effect=event_date):
assert setup_component(self.hass, switch.DOMAIN, { assert setup_component(self.hass, switch.DOMAIN, {
switch.DOMAIN: { switch.DOMAIN: {
@ -423,8 +427,9 @@ class TestSwitchFlux(unittest.TestCase):
return sunrise_time return sunrise_time
return sunset_time return sunset_time
with patch('homeassistant.util.dt.now', return_value=test_time): with patch('homeassistant.components.switch.flux.dt_now',
with patch('homeassistant.helpers.sun.get_astral_event_date', return_value=test_time), \
patch('homeassistant.helpers.sun.get_astral_event_date',
side_effect=event_date): side_effect=event_date):
assert setup_component(self.hass, switch.DOMAIN, { assert setup_component(self.hass, switch.DOMAIN, {
switch.DOMAIN: { switch.DOMAIN: {
@ -523,8 +528,9 @@ class TestSwitchFlux(unittest.TestCase):
return sunrise_time return sunrise_time
return sunset_time return sunset_time
with patch('homeassistant.util.dt.now', return_value=test_time): with patch('homeassistant.components.switch.flux.dt_now',
with patch('homeassistant.helpers.sun.get_astral_event_date', return_value=test_time), \
patch('homeassistant.helpers.sun.get_astral_event_date',
side_effect=event_date): side_effect=event_date):
assert setup_component(self.hass, switch.DOMAIN, { assert setup_component(self.hass, switch.DOMAIN, {
switch.DOMAIN: { switch.DOMAIN: {
@ -573,8 +579,9 @@ class TestSwitchFlux(unittest.TestCase):
return sunrise_time return sunrise_time
return sunset_time return sunset_time
with patch('homeassistant.util.dt.now', return_value=test_time): with patch('homeassistant.components.switch.flux.dt_now',
with patch('homeassistant.helpers.sun.get_astral_event_date', return_value=test_time), \
patch('homeassistant.helpers.sun.get_astral_event_date',
side_effect=event_date): side_effect=event_date):
assert setup_component(self.hass, switch.DOMAIN, { assert setup_component(self.hass, switch.DOMAIN, {
switch.DOMAIN: { switch.DOMAIN: {
@ -620,8 +627,9 @@ class TestSwitchFlux(unittest.TestCase):
return sunrise_time return sunrise_time
return sunset_time return sunset_time
with patch('homeassistant.util.dt.now', return_value=test_time): with patch('homeassistant.components.switch.flux.dt_now',
with patch('homeassistant.helpers.sun.get_astral_event_date', return_value=test_time), \
patch('homeassistant.helpers.sun.get_astral_event_date',
side_effect=event_date): side_effect=event_date):
assert setup_component(self.hass, switch.DOMAIN, { assert setup_component(self.hass, switch.DOMAIN, {
switch.DOMAIN: { switch.DOMAIN: {
@ -669,8 +677,9 @@ class TestSwitchFlux(unittest.TestCase):
return sunrise_time return sunrise_time
return sunset_time return sunset_time
with patch('homeassistant.util.dt.now', return_value=test_time): with patch('homeassistant.components.switch.flux.dt_now',
with patch('homeassistant.helpers.sun.get_astral_event_date', return_value=test_time), \
patch('homeassistant.helpers.sun.get_astral_event_date',
side_effect=event_date): side_effect=event_date):
assert setup_component(self.hass, switch.DOMAIN, { assert setup_component(self.hass, switch.DOMAIN, {
switch.DOMAIN: { switch.DOMAIN: {
@ -731,8 +740,9 @@ class TestSwitchFlux(unittest.TestCase):
print('sunset {}'.format(sunset_time)) print('sunset {}'.format(sunset_time))
return sunset_time return sunset_time
with patch('homeassistant.util.dt.now', return_value=test_time): with patch('homeassistant.components.switch.flux.dt_now',
with patch('homeassistant.helpers.sun.get_astral_event_date', return_value=test_time), \
patch('homeassistant.helpers.sun.get_astral_event_date',
side_effect=event_date): side_effect=event_date):
assert setup_component(self.hass, switch.DOMAIN, { assert setup_component(self.hass, switch.DOMAIN, {
switch.DOMAIN: { switch.DOMAIN: {
@ -783,8 +793,9 @@ class TestSwitchFlux(unittest.TestCase):
return sunrise_time return sunrise_time
return sunset_time return sunset_time
with patch('homeassistant.util.dt.now', return_value=test_time): with patch('homeassistant.components.switch.flux.dt_now',
with patch('homeassistant.helpers.sun.get_astral_event_date', return_value=test_time), \
patch('homeassistant.helpers.sun.get_astral_event_date',
side_effect=event_date): side_effect=event_date):
assert setup_component(self.hass, switch.DOMAIN, { assert setup_component(self.hass, switch.DOMAIN, {
switch.DOMAIN: { switch.DOMAIN: {
@ -827,8 +838,9 @@ class TestSwitchFlux(unittest.TestCase):
return sunrise_time return sunrise_time
return sunset_time return sunset_time
with patch('homeassistant.util.dt.now', return_value=test_time): with patch('homeassistant.components.switch.flux.dt_now',
with patch('homeassistant.helpers.sun.get_astral_event_date', return_value=test_time), \
patch('homeassistant.helpers.sun.get_astral_event_date',
side_effect=event_date): side_effect=event_date):
assert setup_component(self.hass, switch.DOMAIN, { assert setup_component(self.hass, switch.DOMAIN, {
switch.DOMAIN: { switch.DOMAIN: {