Don't expose services in Utility_Meter unless tariffs are available (#20878)
* only expose services when tariffs configured * don't register services multiple timespull/20973/head
parent
9c92880b5a
commit
9cab597bc4
|
@ -51,6 +51,7 @@ async def async_setup(hass, config):
|
|||
"""Set up an Utility Meter."""
|
||||
component = EntityComponent(_LOGGER, DOMAIN, hass)
|
||||
hass.data[DATA_UTILITY] = {}
|
||||
register_services = False
|
||||
|
||||
for meter, conf in config.get(DOMAIN).items():
|
||||
_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, SENSOR_DOMAIN, DOMAIN, tariff_confs, config))
|
||||
register_services = True
|
||||
|
||||
component.async_register_entity_service(
|
||||
SERVICE_RESET, SERVICE_METER_SCHEMA,
|
||||
'async_reset_meters'
|
||||
)
|
||||
if register_services:
|
||||
component.async_register_entity_service(
|
||||
SERVICE_RESET, SERVICE_METER_SCHEMA,
|
||||
'async_reset_meters'
|
||||
)
|
||||
|
||||
component.async_register_entity_service(
|
||||
SERVICE_SELECT_TARIFF, SERVICE_SELECT_TARIFF_SCHEMA,
|
||||
'async_select_tariff'
|
||||
)
|
||||
component.async_register_entity_service(
|
||||
SERVICE_SELECT_TARIFF, SERVICE_SELECT_TARIFF_SCHEMA,
|
||||
'async_select_tariff'
|
||||
)
|
||||
|
||||
component.async_register_entity_service(
|
||||
SERVICE_SELECT_NEXT_TARIFF, SERVICE_METER_SCHEMA,
|
||||
'async_next_tariff'
|
||||
)
|
||||
component.async_register_entity_service(
|
||||
SERVICE_SELECT_NEXT_TARIFF, SERVICE_METER_SCHEMA,
|
||||
'async_next_tariff'
|
||||
)
|
||||
|
||||
return True
|
||||
|
||||
|
@ -150,6 +153,7 @@ class TariffSelect(RestoreEntity):
|
|||
|
||||
async def async_reset_meters(self):
|
||||
"""Reset all sensors of this meter."""
|
||||
_LOGGER.debug("reset meter %s", self.entity_id)
|
||||
async_dispatcher_send(self.hass, SIGNAL_RESET_METER,
|
||||
self.entity_id)
|
||||
|
||||
|
|
|
@ -189,6 +189,7 @@ class UtilityMeterSensor(RestoreEntity):
|
|||
if self._tariff != tariff_entity_state.state:
|
||||
return
|
||||
|
||||
_LOGGER.debug("tracking source: %s", self._sensor_source_id)
|
||||
self._collecting = async_track_state_change(
|
||||
self.hass, self._sensor_source_id, self.async_reading)
|
||||
|
||||
|
|
Loading…
Reference in New Issue