mirror of
https://github.com/home-assistant/core.git
synced 2025-07-21 12:17:07 +00:00
Fix statistics graphs not loading with data_rate, electric_current, voltage, information, and unitless units (#87202)
* Add missing converts to recorder/statistics_during_period API This was resulting in the stats graphs not loading on the frontend * its in two places
This commit is contained in:
parent
3e087ac88c
commit
22698b1cc5
@ -15,13 +15,18 @@ from homeassistant.helpers import config_validation as cv
|
|||||||
from homeassistant.helpers.json import JSON_DUMP
|
from homeassistant.helpers.json import JSON_DUMP
|
||||||
from homeassistant.util import dt as dt_util
|
from homeassistant.util import dt as dt_util
|
||||||
from homeassistant.util.unit_conversion import (
|
from homeassistant.util.unit_conversion import (
|
||||||
|
DataRateConverter,
|
||||||
DistanceConverter,
|
DistanceConverter,
|
||||||
|
ElectricCurrentConverter,
|
||||||
|
ElectricPotentialConverter,
|
||||||
EnergyConverter,
|
EnergyConverter,
|
||||||
|
InformationConverter,
|
||||||
MassConverter,
|
MassConverter,
|
||||||
PowerConverter,
|
PowerConverter,
|
||||||
PressureConverter,
|
PressureConverter,
|
||||||
SpeedConverter,
|
SpeedConverter,
|
||||||
TemperatureConverter,
|
TemperatureConverter,
|
||||||
|
UnitlessRatioConverter,
|
||||||
VolumeConverter,
|
VolumeConverter,
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -47,6 +52,24 @@ from .util import (
|
|||||||
|
|
||||||
_LOGGER: logging.Logger = logging.getLogger(__package__)
|
_LOGGER: logging.Logger = logging.getLogger(__package__)
|
||||||
|
|
||||||
|
UNIT_SCHEMA = vol.Schema(
|
||||||
|
{
|
||||||
|
vol.Optional("data_rate"): vol.In(DataRateConverter.VALID_UNITS),
|
||||||
|
vol.Optional("distance"): vol.In(DistanceConverter.VALID_UNITS),
|
||||||
|
vol.Optional("electric_current"): vol.In(ElectricCurrentConverter.VALID_UNITS),
|
||||||
|
vol.Optional("voltage"): vol.In(ElectricPotentialConverter.VALID_UNITS),
|
||||||
|
vol.Optional("energy"): vol.In(EnergyConverter.VALID_UNITS),
|
||||||
|
vol.Optional("information"): vol.In(InformationConverter.VALID_UNITS),
|
||||||
|
vol.Optional("mass"): vol.In(MassConverter.VALID_UNITS),
|
||||||
|
vol.Optional("power"): vol.In(PowerConverter.VALID_UNITS),
|
||||||
|
vol.Optional("pressure"): vol.In(PressureConverter.VALID_UNITS),
|
||||||
|
vol.Optional("speed"): vol.In(SpeedConverter.VALID_UNITS),
|
||||||
|
vol.Optional("temperature"): vol.In(TemperatureConverter.VALID_UNITS),
|
||||||
|
vol.Optional("unitless"): vol.In(UnitlessRatioConverter.VALID_UNITS),
|
||||||
|
vol.Optional("volume"): vol.In(VolumeConverter.VALID_UNITS),
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@callback
|
@callback
|
||||||
def async_setup(hass: HomeAssistant) -> None:
|
def async_setup(hass: HomeAssistant) -> None:
|
||||||
@ -93,18 +116,7 @@ def _ws_get_statistic_during_period(
|
|||||||
vol.Optional("types"): vol.All(
|
vol.Optional("types"): vol.All(
|
||||||
[vol.Any("max", "mean", "min", "change")], vol.Coerce(set)
|
[vol.Any("max", "mean", "min", "change")], vol.Coerce(set)
|
||||||
),
|
),
|
||||||
vol.Optional("units"): vol.Schema(
|
vol.Optional("units"): UNIT_SCHEMA,
|
||||||
{
|
|
||||||
vol.Optional("distance"): vol.In(DistanceConverter.VALID_UNITS),
|
|
||||||
vol.Optional("energy"): vol.In(EnergyConverter.VALID_UNITS),
|
|
||||||
vol.Optional("mass"): vol.In(MassConverter.VALID_UNITS),
|
|
||||||
vol.Optional("power"): vol.In(PowerConverter.VALID_UNITS),
|
|
||||||
vol.Optional("pressure"): vol.In(PressureConverter.VALID_UNITS),
|
|
||||||
vol.Optional("speed"): vol.In(SpeedConverter.VALID_UNITS),
|
|
||||||
vol.Optional("temperature"): vol.In(TemperatureConverter.VALID_UNITS),
|
|
||||||
vol.Optional("volume"): vol.In(VolumeConverter.VALID_UNITS),
|
|
||||||
}
|
|
||||||
),
|
|
||||||
**PERIOD_SCHEMA.schema,
|
**PERIOD_SCHEMA.schema,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@ -211,18 +223,7 @@ async def ws_handle_get_statistics_during_period(
|
|||||||
vol.Optional("end_time"): str,
|
vol.Optional("end_time"): str,
|
||||||
vol.Optional("statistic_ids"): [str],
|
vol.Optional("statistic_ids"): [str],
|
||||||
vol.Required("period"): vol.Any("5minute", "hour", "day", "week", "month"),
|
vol.Required("period"): vol.Any("5minute", "hour", "day", "week", "month"),
|
||||||
vol.Optional("units"): vol.Schema(
|
vol.Optional("units"): UNIT_SCHEMA,
|
||||||
{
|
|
||||||
vol.Optional("distance"): vol.In(DistanceConverter.VALID_UNITS),
|
|
||||||
vol.Optional("energy"): vol.In(EnergyConverter.VALID_UNITS),
|
|
||||||
vol.Optional("mass"): vol.In(MassConverter.VALID_UNITS),
|
|
||||||
vol.Optional("power"): vol.In(PowerConverter.VALID_UNITS),
|
|
||||||
vol.Optional("pressure"): vol.In(PressureConverter.VALID_UNITS),
|
|
||||||
vol.Optional("speed"): vol.In(SpeedConverter.VALID_UNITS),
|
|
||||||
vol.Optional("temperature"): vol.In(TemperatureConverter.VALID_UNITS),
|
|
||||||
vol.Optional("volume"): vol.In(VolumeConverter.VALID_UNITS),
|
|
||||||
}
|
|
||||||
),
|
|
||||||
vol.Optional("types"): vol.All(
|
vol.Optional("types"): vol.All(
|
||||||
[vol.Any("last_reset", "max", "mean", "min", "state", "sum")],
|
[vol.Any("last_reset", "max", "mean", "min", "state", "sum")],
|
||||||
vol.Coerce(set),
|
vol.Coerce(set),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user