Include future statistics in history/list_statistic_ids (#52942)

* Include future statistics in history/list_statistic_ids

* Improve tests
This commit is contained in:
Erik Montnemery 2021-07-14 11:54:55 +02:00 committed by GitHub
parent 30d465e9dd
commit ddc788bf8e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 149 additions and 18 deletions

View file

@ -196,6 +196,7 @@ def list_statistic_ids(
) -> list[dict[str, str] | None]:
"""Return statistic_ids and meta data."""
units = hass.config.units
statistic_ids = {}
with session_scope(hass=hass) as session:
metadata = _get_metadata(hass, session, None, statistic_type)
@ -203,7 +204,26 @@ def list_statistic_ids(
unit = _configured_unit(meta["unit_of_measurement"], units)
meta["unit_of_measurement"] = unit
return list(metadata.values())
statistic_ids = {
meta["statistic_id"]: meta["unit_of_measurement"]
for meta in metadata.values()
}
for platform in hass.data[DOMAIN].values():
if not hasattr(platform, "list_statistic_ids"):
continue
platform_statistic_ids = platform.list_statistic_ids(hass, statistic_type)
for statistic_id, unit in platform_statistic_ids.items():
unit = _configured_unit(unit, units)
platform_statistic_ids[statistic_id] = unit
statistic_ids = {**statistic_ids, **platform_statistic_ids}
return [
{"statistic_id": _id, "unit_of_measurement": unit}
for _id, unit in statistic_ids.items()
]
def statistics_during_period(