add yield, homePower & earning entitys

This commit is contained in:
Simon Zeyer 2025-06-06 08:00:51 +00:00
parent 52b0e8c099
commit eb716dafe9
2 changed files with 9 additions and 4 deletions

View File

@ -13,5 +13,6 @@ def get_merged_device_data(coordinator):
if device["deviceType"] == "ENERGY_STORAGE_BATTERY": if device["deviceType"] == "ENERGY_STORAGE_BATTERY":
space = family["spaces"].get(device["spaceId"], {}) space = family["spaces"].get(device["spaceId"], {})
device = {**device, **space.get("battery",{})} # Merge statistics into device device = {**device, **space.get("battery",{})} # Merge statistics into device
device = {**device, **space.get("today", {})} # Merge earnings into device
ret[family['id']]['devices'][device['deviceId']] = device ret[family['id']]['devices'][device['deviceId']] = device
return ret return ret

View File

@ -12,15 +12,16 @@ async def async_setup_entry(hass, entry, async_add_entities):
for family_key in data: for family_key in data:
family = data[family_key] family = data[family_key]
if "devices" not in family:
continue
# Geräteinformationen
for device_key in family["devices"]: for device_key in family["devices"]:
device = family["devices"][device_key] device = family["devices"][device_key]
device_info = DeviceInfo( device_info = DeviceInfo(
identifiers={(DOMAIN, device["deviceId"], device.get("deviceSn",""))}, identifiers={(DOMAIN, device["deviceId"], device.get("deviceSn",""))},
name=device.get("stationName", "Unbekanntes Gerät"), name=device.get("stationName", "Unbekanntes Gerät"),
serial_number=device.get("deviceSn", "Unbekannt"), serial_number=device.get("deviceSn", "Unbekannt"),
suggested_area=family.get("name", "Unbekannt"), suggested_area=family.get("name", None),
manufacturer="Sunlit Solar", manufacturer="Sunlit Solar",
model=device.get("deviceType", "Unbekanntes Modell"), model=device.get("deviceType", "Unbekanntes Modell"),
) )
@ -29,7 +30,7 @@ async def async_setup_entry(hass, entry, async_add_entities):
identifiers={(DOMAIN, device["deviceId"], device.get("deviceSn",""))}, identifiers={(DOMAIN, device["deviceId"], device.get("deviceSn",""))},
name="Speicher", name="Speicher",
serial_number=device.get("deviceSn", "Unbekannt"), serial_number=device.get("deviceSn", "Unbekannt"),
suggested_area=family.get("name", "Unbekannt"), suggested_area=family.get("name", None),
manufacturer="Sunlit Solar", manufacturer="Sunlit Solar",
model=device.get("deviceType", "Unbekanntes Modell"), model=device.get("deviceType", "Unbekanntes Modell"),
) )
@ -43,6 +44,9 @@ async def async_setup_entry(hass, entry, async_add_entities):
{'id': 'inputPower', 'name': 'Eingangsleistung', 'device_class': "power", 'state_class': "measurement", 'native_unit_of_measurement': "W"}, {'id': 'inputPower', 'name': 'Eingangsleistung', 'device_class': "power", 'state_class': "measurement", 'native_unit_of_measurement': "W"},
{'id': 'outputPower', 'name': 'Ausgangsleistung', 'device_class': "power", 'state_class': "measurement", 'native_unit_of_measurement': "W"}, {'id': 'outputPower', 'name': 'Ausgangsleistung', 'device_class': "power", 'state_class': "measurement", 'native_unit_of_measurement': "W"},
{'id': 'firmwareVersion', 'name': 'Firmware-Version', 'device_class': None, 'state_class': None, 'native_unit_of_measurement': None}, {'id': 'firmwareVersion', 'name': 'Firmware-Version', 'device_class': None, 'state_class': None, 'native_unit_of_measurement': None},
{'id': 'yield', 'name': 'Ertrag', 'device_class': "energy", 'state_class': "measurement", 'native_unit_of_measurement': "kWh"},
{'id': 'earning', 'name': 'Einnahmen', 'device_class': "monetary", 'state_class': "measurement", 'native_unit_of_measurement': "EUR"},
{'id': 'homePower', 'name': 'Stromverbrauch', 'device_class': "power", 'state_class': "measurement", 'native_unit_of_measurement': "W"},
# {'id': 'status', 'name': 'Status', 'value': device.get('status', 'Unbekannt'), 'device_class': None, 'state_class': None, 'native_unit_of_measurement': None}, # {'id': 'status', 'name': 'Status', 'value': device.get('status', 'Unbekannt'), 'device_class': None, 'state_class': None, 'native_unit_of_measurement': None},
# {'id': 'status', 'name': 'Status', 'value': device.get('status', 'Unbekannt'), 'device_class': None, 'state_class': None, 'native_unit_of_measurement': None}, # {'id': 'status', 'name': 'Status', 'value': device.get('status', 'Unbekannt'), 'device_class': None, 'state_class': None, 'native_unit_of_measurement': None},
# {'id': 'status', 'name': 'Status', 'value': device.get('status', 'Unbekannt'), 'device_class': None, 'state_class': None, 'native_unit_of_measurement': None}, # {'id': 'status', 'name': 'Status', 'value': device.get('status', 'Unbekannt'), 'device_class': None, 'state_class': None, 'native_unit_of_measurement': None},