mirror of
https://github.com/home-assistant/core.git
synced 2025-07-24 21:57:51 +00:00
MWh is valid unit for energy dashboard (#73929)
MWh is valid unit for energy
This commit is contained in:
parent
ebf21d1bd7
commit
5b73cb10c1
@ -10,6 +10,7 @@ from homeassistant.components import recorder, sensor
|
|||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
ATTR_DEVICE_CLASS,
|
ATTR_DEVICE_CLASS,
|
||||||
ENERGY_KILO_WATT_HOUR,
|
ENERGY_KILO_WATT_HOUR,
|
||||||
|
ENERGY_MEGA_WATT_HOUR,
|
||||||
ENERGY_WATT_HOUR,
|
ENERGY_WATT_HOUR,
|
||||||
STATE_UNAVAILABLE,
|
STATE_UNAVAILABLE,
|
||||||
STATE_UNKNOWN,
|
STATE_UNKNOWN,
|
||||||
@ -23,7 +24,11 @@ from .const import DOMAIN
|
|||||||
|
|
||||||
ENERGY_USAGE_DEVICE_CLASSES = (sensor.SensorDeviceClass.ENERGY,)
|
ENERGY_USAGE_DEVICE_CLASSES = (sensor.SensorDeviceClass.ENERGY,)
|
||||||
ENERGY_USAGE_UNITS = {
|
ENERGY_USAGE_UNITS = {
|
||||||
sensor.SensorDeviceClass.ENERGY: (ENERGY_KILO_WATT_HOUR, ENERGY_WATT_HOUR)
|
sensor.SensorDeviceClass.ENERGY: (
|
||||||
|
ENERGY_KILO_WATT_HOUR,
|
||||||
|
ENERGY_MEGA_WATT_HOUR,
|
||||||
|
ENERGY_WATT_HOUR,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
ENERGY_PRICE_UNITS = tuple(
|
ENERGY_PRICE_UNITS = tuple(
|
||||||
f"/{unit}" for units in ENERGY_USAGE_UNITS.values() for unit in units
|
f"/{unit}" for units in ENERGY_USAGE_UNITS.values() for unit in units
|
||||||
|
@ -4,6 +4,11 @@ from unittest.mock import patch
|
|||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from homeassistant.components.energy import async_get_manager, validate
|
from homeassistant.components.energy import async_get_manager, validate
|
||||||
|
from homeassistant.const import (
|
||||||
|
ENERGY_KILO_WATT_HOUR,
|
||||||
|
ENERGY_MEGA_WATT_HOUR,
|
||||||
|
ENERGY_WATT_HOUR,
|
||||||
|
)
|
||||||
from homeassistant.helpers.json import JSON_DUMP
|
from homeassistant.helpers.json import JSON_DUMP
|
||||||
from homeassistant.setup import async_setup_component
|
from homeassistant.setup import async_setup_component
|
||||||
|
|
||||||
@ -60,16 +65,18 @@ async def test_validation_empty_config(hass):
|
|||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
"state_class, extra",
|
"state_class, energy_unit, extra",
|
||||||
[
|
[
|
||||||
("total_increasing", {}),
|
("total_increasing", ENERGY_KILO_WATT_HOUR, {}),
|
||||||
("total", {}),
|
("total_increasing", ENERGY_MEGA_WATT_HOUR, {}),
|
||||||
("total", {"last_reset": "abc"}),
|
("total_increasing", ENERGY_WATT_HOUR, {}),
|
||||||
("measurement", {"last_reset": "abc"}),
|
("total", ENERGY_KILO_WATT_HOUR, {}),
|
||||||
|
("total", ENERGY_KILO_WATT_HOUR, {"last_reset": "abc"}),
|
||||||
|
("measurement", ENERGY_KILO_WATT_HOUR, {"last_reset": "abc"}),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
async def test_validation(
|
async def test_validation(
|
||||||
hass, mock_energy_manager, mock_get_metadata, state_class, extra
|
hass, mock_energy_manager, mock_get_metadata, state_class, energy_unit, extra
|
||||||
):
|
):
|
||||||
"""Test validating success."""
|
"""Test validating success."""
|
||||||
for key in ("device_cons", "battery_import", "battery_export", "solar_production"):
|
for key in ("device_cons", "battery_import", "battery_export", "solar_production"):
|
||||||
@ -78,7 +85,7 @@ async def test_validation(
|
|||||||
"123",
|
"123",
|
||||||
{
|
{
|
||||||
"device_class": "energy",
|
"device_class": "energy",
|
||||||
"unit_of_measurement": "kWh",
|
"unit_of_measurement": energy_unit,
|
||||||
"state_class": state_class,
|
"state_class": state_class,
|
||||||
**extra,
|
**extra,
|
||||||
},
|
},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user