mirror of
https://github.com/home-assistant/core.git
synced 2025-07-08 05:47:10 +00:00
* don't cancel tariff that are paused * test tariffs
This commit is contained in:
parent
e90d980e67
commit
167d8cbaba
@ -118,7 +118,8 @@ class UtilityMeterSensor(RestoreEntity):
|
|||||||
self._collecting = async_track_state_change(
|
self._collecting = async_track_state_change(
|
||||||
self.hass, self._sensor_source_id, self.async_reading)
|
self.hass, self._sensor_source_id, self.async_reading)
|
||||||
else:
|
else:
|
||||||
self._collecting()
|
if self._collecting:
|
||||||
|
self._collecting()
|
||||||
self._collecting = None
|
self._collecting = None
|
||||||
|
|
||||||
_LOGGER.debug("%s - %s - source <%s>", self._name,
|
_LOGGER.debug("%s - %s - source <%s>", self._name,
|
||||||
|
@ -6,10 +6,11 @@ from unittest.mock import patch
|
|||||||
from contextlib import contextmanager
|
from contextlib import contextmanager
|
||||||
|
|
||||||
from tests.common import async_fire_time_changed
|
from tests.common import async_fire_time_changed
|
||||||
from homeassistant.const import EVENT_HOMEASSISTANT_START
|
from homeassistant.const import EVENT_HOMEASSISTANT_START, ATTR_ENTITY_ID
|
||||||
from homeassistant.setup import async_setup_component
|
from homeassistant.setup import async_setup_component
|
||||||
import homeassistant.util.dt as dt_util
|
import homeassistant.util.dt as dt_util
|
||||||
from homeassistant.components.utility_meter.const import DOMAIN
|
from homeassistant.components.utility_meter.const import (
|
||||||
|
DOMAIN, SERVICE_SELECT_TARIFF, ATTR_TARIFF)
|
||||||
from homeassistant.components.sensor import DOMAIN as SENSOR_DOMAIN
|
from homeassistant.components.sensor import DOMAIN as SENSOR_DOMAIN
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
@ -31,7 +32,7 @@ async def test_state(hass):
|
|||||||
'utility_meter': {
|
'utility_meter': {
|
||||||
'energy_bill': {
|
'energy_bill': {
|
||||||
'source': 'sensor.energy',
|
'source': 'sensor.energy',
|
||||||
}
|
'tariffs': ['onpeak', 'midpeak', 'offpeak']},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -51,11 +52,43 @@ async def test_state(hass):
|
|||||||
force_update=True)
|
force_update=True)
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
state = hass.states.get('sensor.energy_bill')
|
state = hass.states.get('sensor.energy_bill_onpeak')
|
||||||
assert state is not None
|
assert state is not None
|
||||||
|
|
||||||
assert state.state == '1'
|
assert state.state == '1'
|
||||||
|
|
||||||
|
state = hass.states.get('sensor.energy_bill_midpeak')
|
||||||
|
assert state is not None
|
||||||
|
assert state.state == '0'
|
||||||
|
|
||||||
|
state = hass.states.get('sensor.energy_bill_offpeak')
|
||||||
|
assert state is not None
|
||||||
|
assert state.state == '0'
|
||||||
|
|
||||||
|
await hass.services.async_call(DOMAIN, SERVICE_SELECT_TARIFF, {
|
||||||
|
ATTR_ENTITY_ID: 'utility_meter.energy_bill', ATTR_TARIFF: 'offpeak'
|
||||||
|
}, blocking=True)
|
||||||
|
|
||||||
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
|
now = dt_util.utcnow() + timedelta(seconds=20)
|
||||||
|
with patch('homeassistant.util.dt.utcnow',
|
||||||
|
return_value=now):
|
||||||
|
hass.states.async_set(entity_id, 6, {"unit_of_measurement": "kWh"},
|
||||||
|
force_update=True)
|
||||||
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
|
state = hass.states.get('sensor.energy_bill_onpeak')
|
||||||
|
assert state is not None
|
||||||
|
assert state.state == '1'
|
||||||
|
|
||||||
|
state = hass.states.get('sensor.energy_bill_midpeak')
|
||||||
|
assert state is not None
|
||||||
|
assert state.state == '0'
|
||||||
|
|
||||||
|
state = hass.states.get('sensor.energy_bill_offpeak')
|
||||||
|
assert state is not None
|
||||||
|
assert state.state == '3'
|
||||||
|
|
||||||
|
|
||||||
async def test_net_consumption(hass):
|
async def test_net_consumption(hass):
|
||||||
"""Test utility sensor state."""
|
"""Test utility sensor state."""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user