Non numeric sensors in nibe broken (#184116)

This commit is contained in:
Joakim Plate
2026-10-05 16:06:06 +00:00
committed by Franck Nijhof
parent 3082b3ca09
commit 2c0cf54118
3 changed files with 53 additions and 2 deletions
@@ -249,7 +249,8 @@ class Sensor(CoilEntity, SensorEntity):
if state_class := NATURE_TO_STATE_CLASS.get(coil.nature):
self._attr_state_class = state_class
self._attr_suggested_display_precision = ceil(log10(abs(coil.factor)))
if not coil.mappings:
self._attr_suggested_display_precision = ceil(log10(abs(coil.factor)))
@override
def _async_read_coil(self, data: CoilData):
@@ -226,6 +226,56 @@
'state': '0',
})
# ---
# name: test_entities[Model.F1155-data0][sensor.supply_pump_state_ep14_43431-entry]
EntityRegistryEntrySnapshot({
'aliases': list([
None,
]),
'area_id': None,
'capabilities': None,
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'sensor',
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
'entity_id': 'sensor.supply_pump_state_ep14_43431',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'object_id_base': None,
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'Supply Pump State EP14',
'platform': 'nibe_heatpump',
'previous_unique_id': None,
'suggested_object_id': 'supply_pump_state_ep14_43431',
'supported_features': 0,
'translation_key': None,
'unique_id': 'mock_entry_unique_id-43431',
'unit_of_measurement': None,
})
# ---
# name: test_entities[Model.F1155-data0][sensor.supply_pump_state_ep14_43431-state]
StateSnapshot({
'attributes': ReadOnlyDict({
<EntityStateAttribute.FRIENDLY_NAME: 'friendly_name'>: 'F1155 Supply Pump State EP14',
}),
'context': <ANY>,
'entity_id': 'sensor.supply_pump_state_ep14_43431',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'OFF',
})
# ---
# name: test_entities[Model.SMOS40-data1][sensor.current_outdoor_temperature_bt1_30002-entry]
EntityRegistryEntrySnapshot({
'aliases': list([
@@ -26,7 +26,7 @@ async def fixture_single_platform():
@pytest.mark.parametrize(
("model", "data"),
[
(Model.F1155, {43005: 1234, 40004: 20.0, 40321: 50, 40317: 0}),
(Model.F1155, {43005: 1234, 40004: 20.0, 40321: 50, 40317: 0, 43431: "OFF"}),
(Model.SMOS40, {40019: 1234, 30002: 20.0, 31855: 50}),
],
)