Skip to content

Commit 8be0b11

Browse files
authored
Added new PM_TYPES and more robust handling (#137)
1 parent 2743372 commit 8be0b11

File tree

1 file changed

+27
-10
lines changed

1 file changed

+27
-10
lines changed

e3dc/_rscpTags.py

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3620,6 +3620,9 @@ class PowermeterType(Enum):
36203620
PM_TYPE_UNUSED = 0x06
36213621
PM_TYPE_WALLBOX = 0x07
36223622
PM_TYPE_FARM_ADDITIONAL = 0x08
3623+
PM_TYPE_DATA_DISPLAY = 0x09
3624+
PM_TYPE_REGULATION_BYPASS = 0x0A
3625+
PM_TYPE_ADDITIONAL_PRODUCTION_NO_STORAGE = 0x0B
36233626

36243627

36253628
class PviType(Enum):
@@ -3797,13 +3800,20 @@ def getStrPowermeterType(powermetertype: int | str | PowermeterType) -> str:
37973800
37983801
Returns:
37993802
str: The name of the power meter type as a string.
3803+
Returns "PM_TYPE_UNDEFINED" for unknown types.
38003804
"""
3801-
if isinstance(powermetertype, int):
3802-
powermetertype = PowermeterType(powermetertype)
3803-
elif isinstance(powermetertype, str):
3804-
powermetertype = PowermeterType[powermetertype]
3805+
try:
3806+
if isinstance(powermetertype, int):
3807+
powermetertype = PowermeterType(powermetertype)
3808+
elif isinstance(powermetertype, str):
3809+
powermetertype = PowermeterType[powermetertype]
38053810

3806-
return powermetertype.name
3811+
return powermetertype.name
3812+
except (ValueError, KeyError) as e:
3813+
print(
3814+
f"Warning: Unknown PowermeterType '{powermetertype}' encountered. Returning PM_TYPE_UNDEFINED. Error: {e}"
3815+
)
3816+
return PowermeterType.PM_TYPE_UNDEFINED.name
38073817

38083818

38093819
def getStrPviType(pvitype: int | str | PviType) -> str:
@@ -3817,10 +3827,17 @@ def getStrPviType(pvitype: int | str | PviType) -> str:
38173827
38183828
Returns:
38193829
str: The name of the pvi type as a string.
3830+
Returns "PVI_TYPE_UNDEFINED" for unknown types.
38203831
"""
3821-
if isinstance(pvitype, int):
3822-
pvitype = PviType(pvitype)
3823-
elif isinstance(pvitype, str):
3824-
pvitype = PviType[pvitype]
3832+
try:
3833+
if isinstance(pvitype, int):
3834+
pvitype = PviType(pvitype)
3835+
elif isinstance(pvitype, str):
3836+
pvitype = PviType[pvitype]
38253837

3826-
return pvitype.name
3838+
return pvitype.name
3839+
except (ValueError, KeyError) as e:
3840+
print(
3841+
f"Warning: Unknown PviType '{pvitype}' encountered. Returning PVI_TYPE_UNDEFINED. Error: {e}"
3842+
)
3843+
return PviType.PVI_TYPE_UNDEFINED.name

0 commit comments

Comments
 (0)