mirror of
https://github.com/home-assistant/core.git
synced 2025-07-20 11:47:06 +00:00
Don't expose services in Utility_Meter unless tariffs are available (#20878)
* only expose services when tariffs configured * don't register services multiple times
This commit is contained in:
parent
9c92880b5a
commit
9cab597bc4
@ -51,6 +51,7 @@ async def async_setup(hass, config):
|
|||||||
"""Set up an Utility Meter."""
|
"""Set up an Utility Meter."""
|
||||||
component = EntityComponent(_LOGGER, DOMAIN, hass)
|
component = EntityComponent(_LOGGER, DOMAIN, hass)
|
||||||
hass.data[DATA_UTILITY] = {}
|
hass.data[DATA_UTILITY] = {}
|
||||||
|
register_services = False
|
||||||
|
|
||||||
for meter, conf in config.get(DOMAIN).items():
|
for meter, conf in config.get(DOMAIN).items():
|
||||||
_LOGGER.debug("Setup %s.%s", DOMAIN, meter)
|
_LOGGER.debug("Setup %s.%s", DOMAIN, meter)
|
||||||
@ -80,21 +81,23 @@ async def async_setup(hass, config):
|
|||||||
})
|
})
|
||||||
hass.async_create_task(discovery.async_load_platform(
|
hass.async_create_task(discovery.async_load_platform(
|
||||||
hass, SENSOR_DOMAIN, DOMAIN, tariff_confs, config))
|
hass, SENSOR_DOMAIN, DOMAIN, tariff_confs, config))
|
||||||
|
register_services = True
|
||||||
|
|
||||||
component.async_register_entity_service(
|
if register_services:
|
||||||
SERVICE_RESET, SERVICE_METER_SCHEMA,
|
component.async_register_entity_service(
|
||||||
'async_reset_meters'
|
SERVICE_RESET, SERVICE_METER_SCHEMA,
|
||||||
)
|
'async_reset_meters'
|
||||||
|
)
|
||||||
|
|
||||||
component.async_register_entity_service(
|
component.async_register_entity_service(
|
||||||
SERVICE_SELECT_TARIFF, SERVICE_SELECT_TARIFF_SCHEMA,
|
SERVICE_SELECT_TARIFF, SERVICE_SELECT_TARIFF_SCHEMA,
|
||||||
'async_select_tariff'
|
'async_select_tariff'
|
||||||
)
|
)
|
||||||
|
|
||||||
component.async_register_entity_service(
|
component.async_register_entity_service(
|
||||||
SERVICE_SELECT_NEXT_TARIFF, SERVICE_METER_SCHEMA,
|
SERVICE_SELECT_NEXT_TARIFF, SERVICE_METER_SCHEMA,
|
||||||
'async_next_tariff'
|
'async_next_tariff'
|
||||||
)
|
)
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
@ -150,6 +153,7 @@ class TariffSelect(RestoreEntity):
|
|||||||
|
|
||||||
async def async_reset_meters(self):
|
async def async_reset_meters(self):
|
||||||
"""Reset all sensors of this meter."""
|
"""Reset all sensors of this meter."""
|
||||||
|
_LOGGER.debug("reset meter %s", self.entity_id)
|
||||||
async_dispatcher_send(self.hass, SIGNAL_RESET_METER,
|
async_dispatcher_send(self.hass, SIGNAL_RESET_METER,
|
||||||
self.entity_id)
|
self.entity_id)
|
||||||
|
|
||||||
|
@ -189,6 +189,7 @@ class UtilityMeterSensor(RestoreEntity):
|
|||||||
if self._tariff != tariff_entity_state.state:
|
if self._tariff != tariff_entity_state.state:
|
||||||
return
|
return
|
||||||
|
|
||||||
|
_LOGGER.debug("tracking source: %s", self._sensor_source_id)
|
||||||
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)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user