MWh is valid unit for energy dashboard (#73929)

MWh is valid unit for energy
This commit is contained in:
Jaroslav Hanslík 2022-06-29 11:42:52 +02:00 committed by GitHub
parent ebf21d1bd7
commit 5b73cb10c1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 8 deletions

View File

@ -10,6 +10,7 @@ from homeassistant.components import recorder, sensor
from homeassistant.const import (
ATTR_DEVICE_CLASS,
ENERGY_KILO_WATT_HOUR,
ENERGY_MEGA_WATT_HOUR,
ENERGY_WATT_HOUR,
STATE_UNAVAILABLE,
STATE_UNKNOWN,
@ -23,7 +24,11 @@ from .const import DOMAIN
ENERGY_USAGE_DEVICE_CLASSES = (sensor.SensorDeviceClass.ENERGY,)
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(
f"/{unit}" for units in ENERGY_USAGE_UNITS.values() for unit in units

View File

@ -4,6 +4,11 @@ from unittest.mock import patch
import pytest
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.setup import async_setup_component
@ -60,16 +65,18 @@ async def test_validation_empty_config(hass):
@pytest.mark.parametrize(
"state_class, extra",
"state_class, energy_unit, extra",
[
("total_increasing", {}),
("total", {}),
("total", {"last_reset": "abc"}),
("measurement", {"last_reset": "abc"}),
("total_increasing", ENERGY_KILO_WATT_HOUR, {}),
("total_increasing", ENERGY_MEGA_WATT_HOUR, {}),
("total_increasing", ENERGY_WATT_HOUR, {}),
("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(
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."""
for key in ("device_cons", "battery_import", "battery_export", "solar_production"):
@ -78,7 +85,7 @@ async def test_validation(
"123",
{
"device_class": "energy",
"unit_of_measurement": "kWh",
"unit_of_measurement": energy_unit,
"state_class": state_class,
**extra,
},