forked from home-assistant/core
Add DC voltage and current to Kostal inverter (#54878)
This commit is contained in:
@@ -10,8 +10,12 @@ from homeassistant.const import (
|
||||
ATTR_ICON,
|
||||
ATTR_UNIT_OF_MEASUREMENT,
|
||||
DEVICE_CLASS_BATTERY,
|
||||
DEVICE_CLASS_CURRENT,
|
||||
DEVICE_CLASS_ENERGY,
|
||||
DEVICE_CLASS_POWER,
|
||||
DEVICE_CLASS_VOLTAGE,
|
||||
ELECTRIC_CURRENT_AMPERE,
|
||||
ELECTRIC_POTENTIAL_VOLT,
|
||||
ENERGY_KILO_WATT_HOUR,
|
||||
PERCENTAGE,
|
||||
POWER_WATT,
|
||||
@@ -135,6 +139,28 @@ SENSOR_PROCESS_DATA = [
|
||||
},
|
||||
"format_round",
|
||||
),
|
||||
(
|
||||
"devices:local:pv1",
|
||||
"U",
|
||||
"DC1 Voltage",
|
||||
{
|
||||
ATTR_UNIT_OF_MEASUREMENT: ELECTRIC_POTENTIAL_VOLT,
|
||||
ATTR_DEVICE_CLASS: DEVICE_CLASS_VOLTAGE,
|
||||
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
|
||||
},
|
||||
"format_round",
|
||||
),
|
||||
(
|
||||
"devices:local:pv1",
|
||||
"I",
|
||||
"DC1 Current",
|
||||
{
|
||||
ATTR_UNIT_OF_MEASUREMENT: ELECTRIC_CURRENT_AMPERE,
|
||||
ATTR_DEVICE_CLASS: DEVICE_CLASS_CURRENT,
|
||||
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
|
||||
},
|
||||
"format_float",
|
||||
),
|
||||
(
|
||||
"devices:local:pv2",
|
||||
"P",
|
||||
@@ -146,6 +172,28 @@ SENSOR_PROCESS_DATA = [
|
||||
},
|
||||
"format_round",
|
||||
),
|
||||
(
|
||||
"devices:local:pv2",
|
||||
"U",
|
||||
"DC2 Voltage",
|
||||
{
|
||||
ATTR_UNIT_OF_MEASUREMENT: ELECTRIC_POTENTIAL_VOLT,
|
||||
ATTR_DEVICE_CLASS: DEVICE_CLASS_VOLTAGE,
|
||||
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
|
||||
},
|
||||
"format_round",
|
||||
),
|
||||
(
|
||||
"devices:local:pv2",
|
||||
"I",
|
||||
"DC2 Current",
|
||||
{
|
||||
ATTR_UNIT_OF_MEASUREMENT: ELECTRIC_CURRENT_AMPERE,
|
||||
ATTR_DEVICE_CLASS: DEVICE_CLASS_CURRENT,
|
||||
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
|
||||
},
|
||||
"format_float",
|
||||
),
|
||||
(
|
||||
"devices:local:pv3",
|
||||
"P",
|
||||
@@ -157,6 +205,28 @@ SENSOR_PROCESS_DATA = [
|
||||
},
|
||||
"format_round",
|
||||
),
|
||||
(
|
||||
"devices:local:pv3",
|
||||
"U",
|
||||
"DC3 Voltage",
|
||||
{
|
||||
ATTR_UNIT_OF_MEASUREMENT: ELECTRIC_POTENTIAL_VOLT,
|
||||
ATTR_DEVICE_CLASS: DEVICE_CLASS_VOLTAGE,
|
||||
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
|
||||
},
|
||||
"format_round",
|
||||
),
|
||||
(
|
||||
"devices:local:pv3",
|
||||
"I",
|
||||
"DC3 Current",
|
||||
{
|
||||
ATTR_UNIT_OF_MEASUREMENT: ELECTRIC_CURRENT_AMPERE,
|
||||
ATTR_DEVICE_CLASS: DEVICE_CLASS_CURRENT,
|
||||
ATTR_STATE_CLASS: STATE_CLASS_MEASUREMENT,
|
||||
},
|
||||
"format_float",
|
||||
),
|
||||
(
|
||||
"devices:local",
|
||||
"PV2Bat_P",
|
||||
|
@@ -231,6 +231,14 @@ class PlenticoreDataFormatter:
|
||||
except (TypeError, ValueError):
|
||||
return state
|
||||
|
||||
@staticmethod
|
||||
def format_float(state: str) -> int | str:
|
||||
"""Return the given state value as float rounded to three decimal places."""
|
||||
try:
|
||||
return round(float(state), 3)
|
||||
except (TypeError, ValueError):
|
||||
return state
|
||||
|
||||
@staticmethod
|
||||
def format_energy(state: str) -> float | str:
|
||||
"""Return the given state value as energy value, scaled to kWh."""
|
||||
|
Reference in New Issue
Block a user