Add additional energy sensors to Eve Energy (#64826)

This commit is contained in:
Jc2k 2022-01-24 17:46:45 +00:00 committed by GitHub
parent c8a63d4ffc
commit 24ee4256b9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 407 additions and 0 deletions

View file

@ -18,6 +18,7 @@ from homeassistant.const import (
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
CONCENTRATION_PARTS_PER_MILLION, CONCENTRATION_PARTS_PER_MILLION,
ELECTRIC_CURRENT_AMPERE, ELECTRIC_CURRENT_AMPERE,
ELECTRIC_POTENTIAL_VOLT,
ENERGY_KILO_WATT_HOUR, ENERGY_KILO_WATT_HOUR,
LIGHT_LUX, LIGHT_LUX,
PERCENTAGE, PERCENTAGE,
@ -76,6 +77,27 @@ SIMPLE_SENSOR: dict[str, HomeKitSensorEntityDescription] = {
state_class=SensorStateClass.MEASUREMENT, state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=POWER_WATT, native_unit_of_measurement=POWER_WATT,
), ),
CharacteristicsTypes.Vendor.EVE_ENERGY_KW_HOUR: HomeKitSensorEntityDescription(
key=CharacteristicsTypes.Vendor.EVE_ENERGY_KW_HOUR,
name="Energy kWh",
device_class=SensorDeviceClass.ENERGY,
state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=ENERGY_KILO_WATT_HOUR,
),
CharacteristicsTypes.Vendor.EVE_ENERGY_VOLTAGE: HomeKitSensorEntityDescription(
key=CharacteristicsTypes.Vendor.EVE_ENERGY_VOLTAGE,
name="Volts",
device_class=SensorDeviceClass.VOLTAGE,
state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=ELECTRIC_POTENTIAL_VOLT,
),
CharacteristicsTypes.Vendor.EVE_ENERGY_AMPERE: HomeKitSensorEntityDescription(
key=CharacteristicsTypes.Vendor.EVE_ENERGY_AMPERE,
name="Amps",
device_class=SensorDeviceClass.CURRENT,
state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=ELECTRIC_CURRENT_AMPERE,
),
CharacteristicsTypes.Vendor.KOOGEEK_REALTIME_ENERGY: HomeKitSensorEntityDescription( CharacteristicsTypes.Vendor.KOOGEEK_REALTIME_ENERGY: HomeKitSensorEntityDescription(
key=CharacteristicsTypes.Vendor.KOOGEEK_REALTIME_ENERGY, key=CharacteristicsTypes.Vendor.KOOGEEK_REALTIME_ENERGY,
name="Real Time Energy", name="Real Time Energy",

View file

@ -0,0 +1,299 @@
[
{
"aid": 1,
"services": [
{
"characteristics": [
{
"format": "string",
"iid": 2,
"perms": [
"pr"
],
"type": "00000023-0000-1000-8000-0026BB765291",
"value": "Eve Energy 50FF"
},
{
"format": "bool",
"iid": 3,
"perms": [
"pw"
],
"type": "00000014-0000-1000-8000-0026BB765291"
},
{
"format": "string",
"iid": 4,
"perms": [
"pr"
],
"type": "00000020-0000-1000-8000-0026BB765291",
"value": "Elgato"
},
{
"format": "string",
"iid": 5,
"perms": [
"pr"
],
"type": "00000021-0000-1000-8000-0026BB765291",
"value": "Eve Energy 20EAO8601"
},
{
"format": "string",
"iid": 6,
"perms": [
"pr"
],
"type": "00000030-0000-1000-8000-0026BB765291",
"value": "AA00A0A00000"
},
{
"format": "string",
"iid": 7,
"perms": [
"pr"
],
"type": "00000052-0000-1000-8000-0026BB765291",
"value": "1.2.9"
},
{
"format": "string",
"iid": 8,
"perms": [
"pr"
],
"type": "00000053-0000-1000-8000-0026BB765291",
"value": "1.0.0"
}
],
"iid": 1,
"type": "0000003E-0000-1000-8000-0026BB765291"
},
{
"characteristics": [
{
"format": "string",
"iid": 18,
"perms": [
"pr"
],
"type": "00000023-0000-1000-8000-0026BB765291",
"value": "Logging"
},
{
"format": "data",
"iid": 19,
"perms": [
"pr",
"pw"
],
"type": "E863F11E-079E-48FF-8F27-9C2605A29F52",
"value": "HwABDigAuAQKAGLrnNSTogf+"
},
{
"format": "uint32",
"iid": 20,
"maxValue": 4294967295,
"minStep": 1,
"minValue": 0,
"perms": [
"pr",
"pw"
],
"type": "E863F112-079E-48FF-8F27-9C2605A29F52",
"value": 0
},
{
"format": "data",
"iid": 21,
"perms": [
"pw"
],
"type": "E863F11C-079E-48FF-8F27-9C2605A29F52"
},
{
"format": "data",
"iid": 22,
"perms": [
"pw"
],
"type": "E863F121-079E-48FF-8F27-9C2605A29F52"
},
{
"format": "data",
"iid": 23,
"perms": [
"pr"
],
"type": "E863F116-079E-48FF-8F27-9C2605A29F52",
"value": "QFUeAAAAAAAAAAAABQsCDAINAgcCDgEkDQAQaCMBAAEAAAABAA=="
},
{
"format": "data",
"iid": 24,
"perms": [
"pr"
],
"type": "E863F117-079E-48FF-8F27-9C2605A29F52",
"value": "EmojAQABAAAADwAAAAAAAAAA"
},
{
"format": "tlv8",
"iid": 25,
"perms": [
"pr"
],
"type": "E863F131-079E-48FF-8F27-9C2605A29F52",
"value": "AAIoAAMCuAQEDEZWMzVHMUEwMjkyOAYCJA0HBGgjAQALAgAABQEAAgRoOQAAXwQAAAAAGQKWABQBAw8EAAAAAEUFBQAAAABGCQUAAAAOAABCBkQRBRQABQMAAAAAAAAAAAAAAABHEQVzG0Uc3xy4HXgAAAA8AAAASAYFAAAAAABKBgUAAAAAABoEAAAAAGABZNAEE7sdAJsEQFUeANIA"
},
{
"format": "tlv8",
"iid": 26,
"perms": [
"pw"
],
"type": "E863F11D-079E-48FF-8F27-9C2605A29F52"
}
],
"iid": 17,
"type": "E863F007-079E-48FF-8F27-9C2605A29F52",
"hidden": true
},
{
"characteristics": [
{
"format": "string",
"iid": 29,
"perms": [
"pr"
],
"type": "00000023-0000-1000-8000-0026BB765291",
"value": "Eve Energy"
},
{
"format": "bool",
"iid": 30,
"perms": [
"pr",
"pw",
"ev"
],
"type": "00000025-0000-1000-8000-0026BB765291",
"value": false
},
{
"format": "bool",
"iid": 31,
"perms": [
"pr",
"ev"
],
"type": "00000026-0000-1000-8000-0026BB765291",
"value": true
},
{
"format": "float",
"iid": 32,
"maxValue": 380,
"minStep": 0.1,
"minValue": 0,
"perms": [
"pr"
],
"type": "E863F10A-079E-48FF-8F27-9C2605A29F52",
"value": 0.4000000059604645
},
{
"format": "float",
"iid": 33,
"maxValue": 16,
"minStep": 0.1,
"minValue": 0,
"perms": [
"pr"
],
"type": "E863F126-079E-48FF-8F27-9C2605A29F52",
"value": 0
},
{
"format": "float",
"iid": 34,
"maxValue": 5000,
"minStep": 0.1,
"minValue": 0,
"perms": [
"pr",
"ev"
],
"type": "E863F10D-079E-48FF-8F27-9C2605A29F52",
"value": 0
},
{
"format": "float",
"iid": 35,
"minStep": 0.1,
"minValue": 0,
"perms": [
"pr"
],
"type": "E863F10C-079E-48FF-8F27-9C2605A29F52",
"value": 0.28999999165534973
},
{
"format": "uint8",
"iid": 36,
"maxValue": 1,
"minStep": 1,
"minValue": 0,
"perms": [
"pr",
"pw",
"ev"
],
"type": "000000A7-0000-1000-8000-0026BB765291",
"value": 0
}
],
"iid": 28,
"type": "00000047-0000-1000-8000-0026BB765291",
"primary": true
},
{
"characteristics": [
{
"format": "string",
"iid": 100001,
"perms": [
"pr"
],
"type": "E863F155-079E-48FF-8F27-9C2605A29F52",
"value": "03:29:72:EF:97:2F"
},
{
"format": "uint16",
"iid": 100002,
"perms": [
"pr"
],
"type": "E863F156-079E-48FF-8F27-9C2605A29F52",
"value": 7
},
{
"format": "uint8",
"iid": 100003,
"perms": [
"pr",
"ev"
],
"type": "E863F157-079E-48FF-8F27-9C2605A29F52",
"value": 0
}
],
"hidden": true,
"iid": 100000,
"type": "E863F00B-079E-48FF-8F27-9C2605A29F52"
}
]
}
]

View file

@ -0,0 +1,86 @@
"""Make sure that Eve Degree (via Eve Extend) is enumerated properly."""
from homeassistant.components.sensor import SensorStateClass
from homeassistant.const import (
ELECTRIC_CURRENT_AMPERE,
ELECTRIC_POTENTIAL_VOLT,
ENERGY_KILO_WATT_HOUR,
POWER_WATT,
)
from homeassistant.helpers.entity import EntityCategory
from tests.components.homekit_controller.common import (
HUB_TEST_ACCESSORY_ID,
DeviceTestInfo,
EntityTestInfo,
assert_devices_and_entities_created,
setup_accessories_from_file,
setup_test_accessories,
)
async def test_eve_degree_setup(hass):
"""Test that the accessory can be correctly setup in HA."""
accessories = await setup_accessories_from_file(hass, "eve_energy.json")
await setup_test_accessories(hass, accessories)
await assert_devices_and_entities_created(
hass,
DeviceTestInfo(
unique_id=HUB_TEST_ACCESSORY_ID,
name="Eve Energy 50FF",
model="Eve Energy 20EAO8601",
manufacturer="Elgato",
sw_version="1.2.9",
hw_version="1.0.0",
serial_number="AA00A0A00000",
devices=[],
entities=[
EntityTestInfo(
entity_id="switch.eve_energy_50ff",
unique_id="homekit-AA00A0A00000-28",
friendly_name="Eve Energy 50FF",
state="off",
),
EntityTestInfo(
entity_id="sensor.eve_energy_50ff_amps",
unique_id="homekit-AA00A0A00000-aid:1-sid:28-cid:33",
friendly_name="Eve Energy 50FF Amps",
unit_of_measurement=ELECTRIC_CURRENT_AMPERE,
capabilities={"state_class": SensorStateClass.MEASUREMENT},
state="0",
),
EntityTestInfo(
entity_id="sensor.eve_energy_50ff_volts",
unique_id="homekit-AA00A0A00000-aid:1-sid:28-cid:32",
friendly_name="Eve Energy 50FF Volts",
unit_of_measurement=ELECTRIC_POTENTIAL_VOLT,
capabilities={"state_class": SensorStateClass.MEASUREMENT},
state="0.400000005960464",
),
EntityTestInfo(
entity_id="sensor.eve_energy_50ff_real_time_energy",
unique_id="homekit-AA00A0A00000-aid:1-sid:28-cid:34",
friendly_name="Eve Energy 50FF Real Time Energy",
unit_of_measurement=POWER_WATT,
capabilities={"state_class": SensorStateClass.MEASUREMENT},
state="0",
),
EntityTestInfo(
entity_id="sensor.eve_energy_50ff_energy_kwh",
unique_id="homekit-AA00A0A00000-aid:1-sid:28-cid:35",
friendly_name="Eve Energy 50FF Energy kWh",
capabilities={"state_class": SensorStateClass.MEASUREMENT},
unit_of_measurement=ENERGY_KILO_WATT_HOUR,
state="0.28999999165535",
),
EntityTestInfo(
entity_id="button.eve_energy_50ff_identify",
unique_id="homekit-AA00A0A00000-aid:1-sid:1-cid:3",
friendly_name="Eve Energy 50FF Identify",
entity_category=EntityCategory.DIAGNOSTIC,
state="unknown",
),
],
),
)