fix entity_id & messurement
This commit is contained in:
parent
050c3ddcf3
commit
52b0e8c099
@ -80,13 +80,12 @@ async def async_setup_entry(hass, entry, async_add_entities):
|
||||
class Sensor(CoordinatorEntity, BinarySensorEntity):
|
||||
def __init__(self, coordinator, deviceinfo, entry_id, id, family_key, device_key, name, device_class, state_class, native_unit_of_measurement, subkey=None):
|
||||
super().__init__(coordinator)
|
||||
self._entry_id = entry_id
|
||||
# self._entry_id = entry_id
|
||||
self._deviceinfo = deviceinfo
|
||||
self._family_key = family_key
|
||||
self._device_key = device_key
|
||||
self._subkey = subkey
|
||||
self._id = id
|
||||
|
||||
self._key_id = id
|
||||
self._attr_name = name
|
||||
self._attr_unique_id = f"{entry_id}_{family_key}_{device_key}_{id}"
|
||||
if subkey:
|
||||
@ -106,10 +105,10 @@ class Sensor(CoordinatorEntity, BinarySensorEntity):
|
||||
device = family["devices"][self._device_key]
|
||||
if self._subkey:
|
||||
if self._subkey in device and isinstance(device[self._subkey], dict):
|
||||
return device[self._subkey].get(self._id, 'Unbekannt')
|
||||
return device[self._subkey].get(self._key_id, None)
|
||||
else:
|
||||
return device.get(self._subkey, [])[self._id] if isinstance(device.get(self._subkey, []), list) else device.get(self._subkey, {}).get(self._id, 'Unbekannt')
|
||||
return device.get(self._id, 'Unbekannt')
|
||||
return device.get(self._subkey, [])[self._key_id] if isinstance(device.get(self._subkey, []), list) else device.get(self._subkey, {}).get(self._key_id, None)
|
||||
return device.get(self._key_id, None)
|
||||
|
||||
@property
|
||||
def device_info(self) -> DeviceInfo:
|
||||
|
55
sensor.py
55
sensor.py
@ -38,10 +38,10 @@ async def async_setup_entry(hass, entry, async_add_entities):
|
||||
{'id': 'batteryLevel', 'name': 'Ladung Speicher komplett', 'device_class': "battery", 'state_class': None, 'native_unit_of_measurement': "%"},
|
||||
{'id': 'batterySoc', 'name': 'Ladung Speicher 1 (Kopf)', 'device_class': "battery", 'state_class': None, 'native_unit_of_measurement': "%"},
|
||||
{'id': 'deviceCount', 'name': 'Speicheranzahl', 'device_class': None, 'state_class': None, 'native_unit_of_measurement': None},
|
||||
{'id': 'chargeRemaining', 'name': 'verbleibende Ladung', 'device_class': "battery", 'state_class': None, 'native_unit_of_measurement': "%"},
|
||||
{'id': 'dischargeRemaining', 'name': 'verbleibende Entladung', 'device_class': "battery", 'state_class': None, 'native_unit_of_measurement': "%"},
|
||||
{'id': 'inputPower', 'name': 'Eingangsleistung', 'device_class': "power", 'state_class': None, 'native_unit_of_measurement': "W"},
|
||||
{'id': 'outputPower', 'name': 'Ausgangsleistung', 'device_class': "power", 'state_class': None, 'native_unit_of_measurement': "W"},
|
||||
{'id': 'chargeRemaining', 'name': 'verbleibende Ladung', 'device_class': "battery", 'state_class': "measurement", 'native_unit_of_measurement': "%"},
|
||||
{'id': 'dischargeRemaining', 'name': 'verbleibende Entladung', 'device_class': "battery", 'state_class': "measurement", 'native_unit_of_measurement': "%"},
|
||||
{'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': 'firmwareVersion', 'name': 'Firmware-Version', '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},
|
||||
@ -49,15 +49,15 @@ async def async_setup_entry(hass, entry, async_add_entities):
|
||||
]
|
||||
if device.get('battery1Soc',None) != None:
|
||||
sensor_keys.append(
|
||||
{'id': 'battery1Soc', 'name': 'Ladung Speicher 2', 'device_class': "battery", 'state_class': None, 'native_unit_of_measurement': "%"},
|
||||
{'id': 'battery1Soc', 'name': 'Ladung Speicher 2', 'device_class': "battery", 'state_class': "measurement", 'native_unit_of_measurement': "%"},
|
||||
)
|
||||
if device.get('battery2Soc',None) != None:
|
||||
sensor_keys.append(
|
||||
{'id': 'battery2Soc', 'name': 'Ladung Speicher 3', 'device_class': "battery", 'state_class': None, 'native_unit_of_measurement': "%"},
|
||||
{'id': 'battery2Soc', 'name': 'Ladung Speicher 3', 'device_class': "battery", 'state_class': "measurement", 'native_unit_of_measurement': "%"},
|
||||
)
|
||||
if device.get('battery3Soc',None) != None:
|
||||
sensor_keys.append(
|
||||
{'id': 'battery3Soc', 'name': 'Ladung Speicher 4', 'device_class': "battery", 'state_class': None, 'native_unit_of_measurement': "%"},
|
||||
{'id': 'battery3Soc', 'name': 'Ladung Speicher 4', 'device_class': "battery", 'state_class': "measurement", 'native_unit_of_measurement': "%"},
|
||||
)
|
||||
|
||||
for sensor in sensor_keys:
|
||||
@ -83,7 +83,7 @@ async def async_setup_entry(hass, entry, async_add_entities):
|
||||
device_key,
|
||||
f'Speicher 1 MPPT 1 Eingangsspannung',
|
||||
"voltage", #sensor['device_class'],
|
||||
None, #sensor['state_class'],
|
||||
"measurement", #sensor['state_class'],
|
||||
"V", #sensor['native_unit_of_measurement']
|
||||
"batteryMppt1Data"
|
||||
))
|
||||
@ -96,7 +96,7 @@ async def async_setup_entry(hass, entry, async_add_entities):
|
||||
device_key,
|
||||
f'Speicher 1 MPPT 1 Eingangsstrom ',
|
||||
"current", #sensor['device_class'],
|
||||
None, #sensor['state_class'],
|
||||
"measurement", #sensor['state_class'],
|
||||
"A", #sensor['native_unit_of_measurement']
|
||||
"batteryMppt1Data"
|
||||
))
|
||||
@ -109,7 +109,7 @@ async def async_setup_entry(hass, entry, async_add_entities):
|
||||
device_key,
|
||||
f'Speicher 1 MPPT 1 Eingangsleistung',
|
||||
"power", #sensor['device_class'],
|
||||
None, #sensor['state_class'],
|
||||
"measurement", #sensor['state_class'],
|
||||
"W", #sensor['native_unit_of_measurement']
|
||||
"batteryMppt1Data"
|
||||
))
|
||||
@ -123,7 +123,7 @@ async def async_setup_entry(hass, entry, async_add_entities):
|
||||
device_key,
|
||||
f'Speicher 1 MPPT 2 Eingangsspannung',
|
||||
"voltage", #sensor['device_class'],
|
||||
None, #sensor['state_class'],
|
||||
"measurement", #sensor['state_class'],
|
||||
"V", #sensor['native_unit_of_measurement']
|
||||
"batteryMppt2Data"
|
||||
))
|
||||
@ -136,7 +136,7 @@ async def async_setup_entry(hass, entry, async_add_entities):
|
||||
device_key,
|
||||
f'Speicher 1 MPPT 2 Eingangsstrom ',
|
||||
"current", #sensor['device_class'],
|
||||
None, #sensor['state_class'],
|
||||
"measurement", #sensor['state_class'],
|
||||
"A", #sensor['native_unit_of_measurement']
|
||||
"batteryMppt2Data"
|
||||
))
|
||||
@ -149,7 +149,7 @@ async def async_setup_entry(hass, entry, async_add_entities):
|
||||
device_key,
|
||||
f'Speicher 1 MPPT 2 Eingangsleistung',
|
||||
"power", #sensor['device_class'],
|
||||
None, #sensor['state_class'],
|
||||
"measurement", #sensor['state_class'],
|
||||
"W", #sensor['native_unit_of_measurement']
|
||||
"batteryMppt2Data"
|
||||
))
|
||||
@ -163,7 +163,7 @@ async def async_setup_entry(hass, entry, async_add_entities):
|
||||
device_key,
|
||||
f'Speicher 2 MPPT 1 Eingangsspannung',
|
||||
"voltage", #sensor['device_class'],
|
||||
None, #sensor['state_class'],
|
||||
"measurement", #sensor['state_class'],
|
||||
"V", #sensor['native_unit_of_measurement']
|
||||
"battery1MpptData"
|
||||
))
|
||||
@ -176,7 +176,7 @@ async def async_setup_entry(hass, entry, async_add_entities):
|
||||
device_key,
|
||||
f'Speicher 2 MPPT 1 Eingangsstrom ',
|
||||
"current", #sensor['device_class'],
|
||||
None, #sensor['state_class'],
|
||||
"measurement", #sensor['state_class'],
|
||||
"A", #sensor['native_unit_of_measurement']
|
||||
"battery1MpptData"
|
||||
))
|
||||
@ -189,7 +189,7 @@ async def async_setup_entry(hass, entry, async_add_entities):
|
||||
device_key,
|
||||
f'Speicher 2 MPPT 1 Eingangsleistung',
|
||||
"power", #sensor['device_class'],
|
||||
None, #sensor['state_class'],
|
||||
"measurement", #sensor['state_class'],
|
||||
"W", #sensor['native_unit_of_measurement']
|
||||
"battery1MpptData"
|
||||
))
|
||||
@ -203,7 +203,7 @@ async def async_setup_entry(hass, entry, async_add_entities):
|
||||
device_key,
|
||||
f'Speicher 3 MPPT 1 Eingangsspannung',
|
||||
"voltage", #sensor['device_class'],
|
||||
None, #sensor['state_class'],
|
||||
"measurement", #sensor['state_class'],
|
||||
"V", #sensor['native_unit_of_measurement']
|
||||
"battery2MpptData"
|
||||
))
|
||||
@ -216,7 +216,7 @@ async def async_setup_entry(hass, entry, async_add_entities):
|
||||
device_key,
|
||||
f'Speicher 3 MPPT 1 Eingangsstrom ',
|
||||
"current", #sensor['device_class'],
|
||||
None, #sensor['state_class'],
|
||||
"measurement", #sensor['state_class'],
|
||||
"A", #sensor['native_unit_of_measurement']
|
||||
"battery2MpptData"
|
||||
))
|
||||
@ -229,7 +229,7 @@ async def async_setup_entry(hass, entry, async_add_entities):
|
||||
device_key,
|
||||
f'Speicher 3 MPPT 1 Eingangsleistung',
|
||||
"power", #sensor['device_class'],
|
||||
None, #sensor['state_class'],
|
||||
"measurement", #sensor['state_class'],
|
||||
"W", #sensor['native_unit_of_measurement']
|
||||
"battery2MpptData"
|
||||
))
|
||||
@ -243,7 +243,7 @@ async def async_setup_entry(hass, entry, async_add_entities):
|
||||
device_key,
|
||||
f'Speicher 4 MPPT 1 Eingangsspannung',
|
||||
"voltage", #sensor['device_class'],
|
||||
None, #sensor['state_class'],
|
||||
"measurement", #sensor['state_class'],
|
||||
"V", #sensor['native_unit_of_measurement']
|
||||
"battery3MpptData"
|
||||
))
|
||||
@ -256,7 +256,7 @@ async def async_setup_entry(hass, entry, async_add_entities):
|
||||
device_key,
|
||||
f'Speicher 4 MPPT 1 Eingangsstrom ',
|
||||
"current", #sensor['device_class'],
|
||||
None, #sensor['state_class'],
|
||||
"measurement", #sensor['state_class'],
|
||||
"A", #sensor['native_unit_of_measurement']
|
||||
"battery3MpptData"
|
||||
))
|
||||
@ -269,7 +269,7 @@ async def async_setup_entry(hass, entry, async_add_entities):
|
||||
device_key,
|
||||
f'Speicher 4 MPPT 1 Eingangsleistung',
|
||||
"power", #sensor['device_class'],
|
||||
None, #sensor['state_class'],
|
||||
"measurement", #sensor['state_class'],
|
||||
"W", #sensor['native_unit_of_measurement']
|
||||
"battery3MpptData"
|
||||
))
|
||||
@ -280,13 +280,12 @@ async def async_setup_entry(hass, entry, async_add_entities):
|
||||
class Sensor(CoordinatorEntity, SensorEntity):
|
||||
def __init__(self, coordinator, deviceinfo, entry_id, id, family_key, device_key, name, device_class, state_class, native_unit_of_measurement, subkey=None):
|
||||
super().__init__(coordinator)
|
||||
self._entry_id = entry_id
|
||||
# self._entry_id = f"{entry_id}_{family_key}_{device_key}_{id}"
|
||||
self._deviceinfo = deviceinfo
|
||||
self._family_key = family_key
|
||||
self._device_key = device_key
|
||||
self._subkey = subkey
|
||||
self._id = id
|
||||
|
||||
self._key_id = id
|
||||
self._attr_name = name
|
||||
self._attr_unique_id = f"{entry_id}_{family_key}_{device_key}_{id}"
|
||||
if subkey:
|
||||
@ -306,10 +305,10 @@ class Sensor(CoordinatorEntity, SensorEntity):
|
||||
device = family["devices"][self._device_key]
|
||||
if self._subkey:
|
||||
if self._subkey in device and isinstance(device[self._subkey], dict):
|
||||
return device[self._subkey].get(self._id, 'Unbekannt')
|
||||
return device[self._subkey].get(self._key_id, None)
|
||||
else:
|
||||
return device.get(self._subkey, [])[self._id] if isinstance(device.get(self._subkey, []), list) else device.get(self._subkey, {}).get(self._id, 'Unbekannt')
|
||||
return device.get(self._id, 'Unbekannt')
|
||||
return device.get(self._subkey, [])[self._key_id] if isinstance(device.get(self._subkey, []), list) else device.get(self._subkey, {}).get(self._key_id, None)
|
||||
return device.get(self._key_id, None)
|
||||
|
||||
@property
|
||||
def device_info(self) -> DeviceInfo:
|
||||
|
Loading…
x
Reference in New Issue
Block a user