Skip to content

Commit 8971f61

Browse files
Merge pull request #166 from CharlesGillanders/improve-vitapower
2 parents fa7b644 + 15f925e commit 8971f61

File tree

5 files changed

+232
-3
lines changed

5 files changed

+232
-3
lines changed

custom_components/alphaess/const.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,10 @@
1616
INVERTER_COUNT = 0
1717
INVERTER_LIST = []
1818

19+
KNOWN_INVERTERS = ["Storion-S5", "SMILE5-INV", "VT1000", "SMILE-T10-HV-INV"] # List of known inverters
20+
1921
# Set blacklist for certain inverters from certain sensors
20-
INVERTER_SETTING_BLACKLIST = [] # Blacklist sensors for setting discharge/charge amount and sending discharge and charge amount
22+
INVERTER_SETTING_BLACKLIST = ["VT1000"] # Blacklist sensors for setting discharge/charge amount and sending discharge and charge amount
2123
LIMITED_INVERTER_SENSOR_LIST = ["Storion-S5"] # Blacklist sensors for showing data relating to getlastpowerdata and other data points
2224

2325
# Inverters who do not support "getlastpowerdata"

custom_components/alphaess/coordinator.py

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,8 @@ def __init__(self, hass: HomeAssistant, client: alphaess.alphaess) -> None:
6262
self.hass = hass
6363

6464
# Reduce the throttle count lower due to the reduced API calls it makes
65-
if all(inverter not in self.model_list for inverter in LOWER_INVERTER_API_CALL_LIST) and len(self.model_list) > 0:
65+
if all(inverter not in self.model_list for inverter in LOWER_INVERTER_API_CALL_LIST) and len(
66+
self.model_list) > 0:
6667
self.has_throttle = False
6768
set_throttle_count_lower()
6869

@@ -124,6 +125,13 @@ async def _async_update_data(self):
124125
if invertor.get("minv") is not None:
125126
inverterdata["Model"] = await process_value(invertor.get("minv"))
126127

128+
if invertor.get("mbat") is not None:
129+
inverterdata["Battery Model"] = await process_value(invertor.get("mbat"))
130+
131+
inverterdata["Inverter nominal Power"] = await process_value(invertor.get("poinv"))
132+
inverterdata["Pv nominal Power"] = await process_value(invertor.get("popv"))
133+
134+
127135
inverterdata["EMS Status"] = await process_value(invertor.get("emsStatus"))
128136
inverterdata["Maximum Battery Capacity"] = await process_value(invertor.get("usCapacity"))
129137
inverterdata["Current Capacity"] = await process_value(invertor.get("surplusCobat"))
@@ -164,6 +172,7 @@ async def _async_update_data(self):
164172
_soc = await safe_get(_powerdata, "soc")
165173
_gridpowerdetails = _powerdata.get("pgridDetail", {})
166174
_pvpowerdetails = _powerdata.get("ppvDetail", {})
175+
_getEVdetails = _powerdata.get("pevDetail", {})
167176

168177
inverterdata["Instantaneous Battery SOC"] = _soc
169178

@@ -179,10 +188,19 @@ async def _async_update_data(self):
179188
inverterdata["Instantaneous PPV2"] = await safe_get(_pvpowerdetails, "ppv2")
180189
inverterdata["Instantaneous PPV3"] = await safe_get(_pvpowerdetails, "ppv3")
181190
inverterdata["Instantaneous PPV4"] = await safe_get(_pvpowerdetails, "ppv4")
191+
inverterdata["pmeterDc"] = await safe_get(_pvpowerdetails, "pmeterDc")
192+
inverterdata["pev"] = await safe_get(_powerdata, "pev")
193+
inverterdata["Electric Vehicle Power One"] = await safe_get(_getEVdetails, "ev1Power")
194+
inverterdata["Electric Vehicle Power Two"] = await safe_get(_getEVdetails, "ev2Power")
195+
inverterdata["Electric Vehicle Power Three"] = await safe_get(_getEVdetails, "ev3Power")
196+
inverterdata["Electric Vehicle Power Four"] = await safe_get(_getEVdetails, "ev4Power")
182197
inverterdata["Instantaneous Grid I/O Total"] = await safe_get(_powerdata, "pgrid")
183198
inverterdata["Instantaneous Grid I/O L1"] = await safe_get(_gridpowerdetails, "pmeterL1")
184199
inverterdata["Instantaneous Grid I/O L2"] = await safe_get(_gridpowerdetails, "pmeterL2")
185200
inverterdata["Instantaneous Grid I/O L3"] = await safe_get(_gridpowerdetails, "pmeterL3")
201+
inverterdata["PrealL1"] = await safe_get(_powerdata, "prealL1")
202+
inverterdata["PrealL2"] = await safe_get(_powerdata, "prealL1")
203+
inverterdata["PrealL3"] = await safe_get(_powerdata, "prealL1")
186204

187205
# Get Charge Config
188206
_charge_config = invertor.get("ChargeConfig", {})

custom_components/alphaess/enums.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,3 +51,15 @@ class AlphaESSNames(str, Enum):
5151
DischargeTime2 = "Discharge Period 2"
5252
ChargeRange = "Charging Range"
5353
Total_Generation = "Total Generation"
54+
ElectricVehiclePowerOne = "Electric Vehicle Power One"
55+
ElectricVehiclePowerTwo = "Electric Vehicle Power Two"
56+
ElectricVehiclePowerThree = "Electric Vehicle Power Three"
57+
ElectricVehiclePowerFour = "Electric Vehicle Power Four"
58+
pev = "pev"
59+
pmeterDc = "pmeterDc"
60+
PrealL1 = "PrealL1"
61+
PrealL2 = "PrealL2"
62+
PrealL3 = "PrealL3"
63+
mbat = "Battery Model"
64+
popv = "Pv nominal Power"
65+
poinv = "Inverter nominal Power"

custom_components/alphaess/manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"requirements": [
1616
"alphaessopenapi==0.0.11"
1717
],
18-
"version": "0.5.7"
18+
"version": "0.5.8"
1919
}
2020

2121

custom_components/alphaess/sensorlist.py

Lines changed: 197 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,106 @@
266266
state_class=None,
267267
entity_category=EntityCategory.DIAGNOSTIC,
268268
icon="mdi:battery-lock-open",
269+
),
270+
AlphaESSSensorDescription(
271+
key=AlphaESSNames.mbat,
272+
name="Battery Model",
273+
native_unit_of_measurement=None,
274+
state_class=None,
275+
entity_category=EntityCategory.DIAGNOSTIC,
276+
icon="mdi:battery-heart-variant",
277+
),
278+
AlphaESSSensorDescription(
279+
key=AlphaESSNames.poinv,
280+
name="Inverter nominal Power",
281+
native_unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR,
282+
state_class=None,
283+
device_class=SensorDeviceClass.ENERGY,
284+
entity_category=EntityCategory.DIAGNOSTIC,
285+
icon="mdi:lightning-bolt",
286+
),
287+
AlphaESSSensorDescription(
288+
key=AlphaESSNames.popv,
289+
name="Pv nominal Power",
290+
native_unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR,
291+
state_class=None,
292+
device_class=SensorDeviceClass.ENERGY,
293+
entity_category=EntityCategory.DIAGNOSTIC,
294+
icon="mdi:lightning-bolt",
295+
),
296+
AlphaESSSensorDescription(
297+
key=AlphaESSNames.pmeterDc,
298+
name="pmeterDc",
299+
native_unit_of_measurement=UnitOfPower.WATT,
300+
device_class=SensorDeviceClass.POWER,
301+
state_class=SensorStateClass.MEASUREMENT,
302+
icon="mdi:current-dc",
303+
),
304+
AlphaESSSensorDescription(
305+
key=AlphaESSNames.ElectricVehiclePowerOne,
306+
name="Electric Vehicle Power One",
307+
native_unit_of_measurement=UnitOfPower.WATT,
308+
device_class=SensorDeviceClass.POWER,
309+
state_class=SensorStateClass.MEASUREMENT,
310+
icon="mdi:car-electric",
311+
),
312+
AlphaESSSensorDescription(
313+
key=AlphaESSNames.ElectricVehiclePowerTwo,
314+
name="Electric Vehicle Power Two",
315+
native_unit_of_measurement=UnitOfPower.WATT,
316+
device_class=SensorDeviceClass.POWER,
317+
state_class=SensorStateClass.MEASUREMENT,
318+
icon="mdi:car-electric",
319+
),
320+
AlphaESSSensorDescription(
321+
key=AlphaESSNames.ElectricVehiclePowerThree,
322+
name="Electric Vehicle Power Three",
323+
native_unit_of_measurement=UnitOfPower.WATT,
324+
device_class=SensorDeviceClass.POWER,
325+
state_class=SensorStateClass.MEASUREMENT,
326+
icon="mdi:car-electric",
327+
),
328+
AlphaESSSensorDescription(
329+
key=AlphaESSNames.ElectricVehiclePowerFour,
330+
name="Electric Vehicle Power Four",
331+
native_unit_of_measurement=UnitOfPower.WATT,
332+
device_class=SensorDeviceClass.POWER,
333+
state_class=SensorStateClass.MEASUREMENT,
334+
icon="mdi:car-electric",
335+
),
336+
AlphaESSSensorDescription(
337+
key=AlphaESSNames.pev,
338+
name="pev",
339+
native_unit_of_measurement=UnitOfPower.WATT,
340+
device_class=SensorDeviceClass.POWER,
341+
state_class=SensorStateClass.MEASUREMENT,
342+
icon="mdi:flash",
343+
),
344+
AlphaESSSensorDescription(
345+
key=AlphaESSNames.PrealL1,
346+
name="PrealL1",
347+
native_unit_of_measurement=UnitOfPower.WATT,
348+
device_class=SensorDeviceClass.POWER,
349+
state_class=SensorStateClass.MEASUREMENT,
350+
icon="mdi:flash",
351+
),
352+
AlphaESSSensorDescription(
353+
key=AlphaESSNames.PrealL2,
354+
name="PrealL2",
355+
native_unit_of_measurement=UnitOfPower.WATT,
356+
device_class=SensorDeviceClass.POWER,
357+
state_class=SensorStateClass.MEASUREMENT,
358+
icon="mdi:flash",
359+
),
360+
AlphaESSSensorDescription(
361+
key=AlphaESSNames.PrealL3,
362+
name="PrealL3",
363+
native_unit_of_measurement=UnitOfPower.WATT,
364+
device_class=SensorDeviceClass.POWER,
365+
state_class=SensorStateClass.MEASUREMENT,
366+
icon="mdi:flash",
269367
)
368+
270369
]
271370

272371
LIMITED_SENSOR_DESCRIPTIONS: List[AlphaESSSensorDescription] = [
@@ -449,6 +548,104 @@
449548
state_class=None,
450549
entity_category=EntityCategory.DIAGNOSTIC,
451550
icon="mdi:battery-lock-open",
551+
),
552+
AlphaESSSensorDescription(
553+
key=AlphaESSNames.mbat,
554+
name="Battery Model",
555+
native_unit_of_measurement=None,
556+
state_class=None,
557+
entity_category=EntityCategory.DIAGNOSTIC,
558+
icon="mdi:battery-heart-variant",
559+
),
560+
AlphaESSSensorDescription(
561+
key=AlphaESSNames.poinv,
562+
name="Inverter nominal Power",
563+
native_unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR,
564+
state_class=None,
565+
device_class=SensorDeviceClass.ENERGY,
566+
entity_category=EntityCategory.DIAGNOSTIC,
567+
icon="mdi:lightning-bolt",
568+
),
569+
AlphaESSSensorDescription(
570+
key=AlphaESSNames.popv,
571+
name="Pv nominal Power",
572+
native_unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR,
573+
state_class=None,
574+
device_class=SensorDeviceClass.ENERGY,
575+
entity_category=EntityCategory.DIAGNOSTIC,
576+
icon="mdi:lightning-bolt",
577+
),
578+
AlphaESSSensorDescription(
579+
key=AlphaESSNames.pmeterDc,
580+
name="pmeterDc",
581+
native_unit_of_measurement=UnitOfPower.WATT,
582+
device_class=SensorDeviceClass.POWER,
583+
state_class=SensorStateClass.MEASUREMENT,
584+
icon="mdi:current-dc",
585+
),
586+
AlphaESSSensorDescription(
587+
key=AlphaESSNames.ElectricVehiclePowerOne,
588+
name="Electric Vehicle Power One",
589+
native_unit_of_measurement=UnitOfPower.WATT,
590+
device_class=SensorDeviceClass.POWER,
591+
state_class=SensorStateClass.MEASUREMENT,
592+
icon="mdi:car-electric",
593+
),
594+
AlphaESSSensorDescription(
595+
key=AlphaESSNames.ElectricVehiclePowerTwo,
596+
name="Electric Vehicle Power Two",
597+
native_unit_of_measurement=UnitOfPower.WATT,
598+
device_class=SensorDeviceClass.POWER,
599+
state_class=SensorStateClass.MEASUREMENT,
600+
icon="mdi:car-electric",
601+
),
602+
AlphaESSSensorDescription(
603+
key=AlphaESSNames.ElectricVehiclePowerThree,
604+
name="Electric Vehicle Power Three",
605+
native_unit_of_measurement=UnitOfPower.WATT,
606+
device_class=SensorDeviceClass.POWER,
607+
state_class=SensorStateClass.MEASUREMENT,
608+
icon="mdi:car-electric",
609+
),
610+
AlphaESSSensorDescription(
611+
key=AlphaESSNames.ElectricVehiclePowerFour,
612+
name="Electric Vehicle Power Four",
613+
native_unit_of_measurement=UnitOfPower.WATT,
614+
device_class=SensorDeviceClass.POWER,
615+
state_class=SensorStateClass.MEASUREMENT,
616+
icon="mdi:car-electric",
617+
),
618+
AlphaESSSensorDescription(
619+
key=AlphaESSNames.pev,
620+
name="pev",
621+
native_unit_of_measurement=UnitOfPower.WATT,
622+
device_class=SensorDeviceClass.POWER,
623+
state_class=SensorStateClass.MEASUREMENT,
624+
icon="mdi:flash",
625+
),
626+
AlphaESSSensorDescription(
627+
key=AlphaESSNames.PrealL1,
628+
name="PrealL1",
629+
native_unit_of_measurement=UnitOfPower.WATT,
630+
device_class=SensorDeviceClass.POWER,
631+
state_class=SensorStateClass.MEASUREMENT,
632+
icon="mdi:flash",
633+
),
634+
AlphaESSSensorDescription(
635+
key=AlphaESSNames.PrealL2,
636+
name="PrealL2",
637+
native_unit_of_measurement=UnitOfPower.WATT,
638+
device_class=SensorDeviceClass.POWER,
639+
state_class=SensorStateClass.MEASUREMENT,
640+
icon="mdi:flash",
641+
),
642+
AlphaESSSensorDescription(
643+
key=AlphaESSNames.PrealL3,
644+
name="PrealL3",
645+
native_unit_of_measurement=UnitOfPower.WATT,
646+
device_class=SensorDeviceClass.POWER,
647+
state_class=SensorStateClass.MEASUREMENT,
648+
icon="mdi:flash",
452649
)
453650
]
454651

0 commit comments

Comments
 (0)