Increase precision of Huisbaasje gas readings (#120138)

This commit is contained in:
Bouke Haarsma 2024-06-22 11:46:11 +02:00 committed by GitHub
parent 5e71eb4e0d
commit ed2ad5ceaa
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 30 additions and 32 deletions

View File

@ -54,7 +54,6 @@ class HuisbaasjeSensorEntityDescription(SensorEntityDescription):
"""Class describing Airly sensor entities.""" """Class describing Airly sensor entities."""
sensor_type: str = SENSOR_TYPE_RATE sensor_type: str = SENSOR_TYPE_RATE
precision: int = 0
SENSORS_INFO = [ SENSORS_INFO = [
@ -105,7 +104,7 @@ SENSORS_INFO = [
key=SOURCE_TYPE_ELECTRICITY_IN, key=SOURCE_TYPE_ELECTRICITY_IN,
sensor_type=SENSOR_TYPE_THIS_DAY, sensor_type=SENSOR_TYPE_THIS_DAY,
state_class=SensorStateClass.TOTAL_INCREASING, state_class=SensorStateClass.TOTAL_INCREASING,
precision=3, suggested_display_precision=3,
), ),
HuisbaasjeSensorEntityDescription( HuisbaasjeSensorEntityDescription(
translation_key="energy_consumption_off_peak_today", translation_key="energy_consumption_off_peak_today",
@ -114,7 +113,7 @@ SENSORS_INFO = [
key=SOURCE_TYPE_ELECTRICITY_IN_LOW, key=SOURCE_TYPE_ELECTRICITY_IN_LOW,
sensor_type=SENSOR_TYPE_THIS_DAY, sensor_type=SENSOR_TYPE_THIS_DAY,
state_class=SensorStateClass.TOTAL_INCREASING, state_class=SensorStateClass.TOTAL_INCREASING,
precision=3, suggested_display_precision=3,
), ),
HuisbaasjeSensorEntityDescription( HuisbaasjeSensorEntityDescription(
translation_key="energy_production_peak_today", translation_key="energy_production_peak_today",
@ -123,7 +122,7 @@ SENSORS_INFO = [
key=SOURCE_TYPE_ELECTRICITY_OUT, key=SOURCE_TYPE_ELECTRICITY_OUT,
sensor_type=SENSOR_TYPE_THIS_DAY, sensor_type=SENSOR_TYPE_THIS_DAY,
state_class=SensorStateClass.TOTAL_INCREASING, state_class=SensorStateClass.TOTAL_INCREASING,
precision=3, suggested_display_precision=3,
), ),
HuisbaasjeSensorEntityDescription( HuisbaasjeSensorEntityDescription(
translation_key="energy_production_off_peak_today", translation_key="energy_production_off_peak_today",
@ -132,7 +131,7 @@ SENSORS_INFO = [
key=SOURCE_TYPE_ELECTRICITY_OUT_LOW, key=SOURCE_TYPE_ELECTRICITY_OUT_LOW,
sensor_type=SENSOR_TYPE_THIS_DAY, sensor_type=SENSOR_TYPE_THIS_DAY,
state_class=SensorStateClass.TOTAL_INCREASING, state_class=SensorStateClass.TOTAL_INCREASING,
precision=3, suggested_display_precision=3,
), ),
HuisbaasjeSensorEntityDescription( HuisbaasjeSensorEntityDescription(
translation_key="energy_today", translation_key="energy_today",
@ -141,7 +140,7 @@ SENSORS_INFO = [
state_class=SensorStateClass.TOTAL, state_class=SensorStateClass.TOTAL,
key=SOURCE_TYPE_ELECTRICITY, key=SOURCE_TYPE_ELECTRICITY,
sensor_type=SENSOR_TYPE_THIS_DAY, sensor_type=SENSOR_TYPE_THIS_DAY,
precision=1, suggested_display_precision=1,
), ),
HuisbaasjeSensorEntityDescription( HuisbaasjeSensorEntityDescription(
translation_key="energy_week", translation_key="energy_week",
@ -150,7 +149,7 @@ SENSORS_INFO = [
state_class=SensorStateClass.TOTAL, state_class=SensorStateClass.TOTAL,
key=SOURCE_TYPE_ELECTRICITY, key=SOURCE_TYPE_ELECTRICITY,
sensor_type=SENSOR_TYPE_THIS_WEEK, sensor_type=SENSOR_TYPE_THIS_WEEK,
precision=1, suggested_display_precision=1,
), ),
HuisbaasjeSensorEntityDescription( HuisbaasjeSensorEntityDescription(
translation_key="energy_month", translation_key="energy_month",
@ -159,7 +158,7 @@ SENSORS_INFO = [
state_class=SensorStateClass.TOTAL, state_class=SensorStateClass.TOTAL,
key=SOURCE_TYPE_ELECTRICITY, key=SOURCE_TYPE_ELECTRICITY,
sensor_type=SENSOR_TYPE_THIS_MONTH, sensor_type=SENSOR_TYPE_THIS_MONTH,
precision=1, suggested_display_precision=1,
), ),
HuisbaasjeSensorEntityDescription( HuisbaasjeSensorEntityDescription(
translation_key="energy_year", translation_key="energy_year",
@ -168,7 +167,7 @@ SENSORS_INFO = [
state_class=SensorStateClass.TOTAL, state_class=SensorStateClass.TOTAL,
key=SOURCE_TYPE_ELECTRICITY, key=SOURCE_TYPE_ELECTRICITY,
sensor_type=SENSOR_TYPE_THIS_YEAR, sensor_type=SENSOR_TYPE_THIS_YEAR,
precision=1, suggested_display_precision=1,
), ),
HuisbaasjeSensorEntityDescription( HuisbaasjeSensorEntityDescription(
translation_key="current_gas", translation_key="current_gas",
@ -176,7 +175,7 @@ SENSORS_INFO = [
sensor_type=SENSOR_TYPE_RATE, sensor_type=SENSOR_TYPE_RATE,
state_class=SensorStateClass.MEASUREMENT, state_class=SensorStateClass.MEASUREMENT,
key=SOURCE_TYPE_GAS, key=SOURCE_TYPE_GAS,
precision=1, suggested_display_precision=2,
), ),
HuisbaasjeSensorEntityDescription( HuisbaasjeSensorEntityDescription(
translation_key="gas_today", translation_key="gas_today",
@ -185,7 +184,7 @@ SENSORS_INFO = [
key=SOURCE_TYPE_GAS, key=SOURCE_TYPE_GAS,
sensor_type=SENSOR_TYPE_THIS_DAY, sensor_type=SENSOR_TYPE_THIS_DAY,
state_class=SensorStateClass.TOTAL_INCREASING, state_class=SensorStateClass.TOTAL_INCREASING,
precision=1, suggested_display_precision=2,
), ),
HuisbaasjeSensorEntityDescription( HuisbaasjeSensorEntityDescription(
translation_key="gas_week", translation_key="gas_week",
@ -194,7 +193,7 @@ SENSORS_INFO = [
key=SOURCE_TYPE_GAS, key=SOURCE_TYPE_GAS,
sensor_type=SENSOR_TYPE_THIS_WEEK, sensor_type=SENSOR_TYPE_THIS_WEEK,
state_class=SensorStateClass.TOTAL_INCREASING, state_class=SensorStateClass.TOTAL_INCREASING,
precision=1, suggested_display_precision=2,
), ),
HuisbaasjeSensorEntityDescription( HuisbaasjeSensorEntityDescription(
translation_key="gas_month", translation_key="gas_month",
@ -203,7 +202,7 @@ SENSORS_INFO = [
key=SOURCE_TYPE_GAS, key=SOURCE_TYPE_GAS,
sensor_type=SENSOR_TYPE_THIS_MONTH, sensor_type=SENSOR_TYPE_THIS_MONTH,
state_class=SensorStateClass.TOTAL_INCREASING, state_class=SensorStateClass.TOTAL_INCREASING,
precision=1, suggested_display_precision=2,
), ),
HuisbaasjeSensorEntityDescription( HuisbaasjeSensorEntityDescription(
translation_key="gas_year", translation_key="gas_year",
@ -212,7 +211,7 @@ SENSORS_INFO = [
key=SOURCE_TYPE_GAS, key=SOURCE_TYPE_GAS,
sensor_type=SENSOR_TYPE_THIS_YEAR, sensor_type=SENSOR_TYPE_THIS_YEAR,
state_class=SensorStateClass.TOTAL_INCREASING, state_class=SensorStateClass.TOTAL_INCREASING,
precision=1, suggested_display_precision=2,
), ),
] ]
@ -253,7 +252,6 @@ class HuisbaasjeSensor(
self.entity_description = description self.entity_description = description
self._source_type = description.key self._source_type = description.key
self._sensor_type = description.sensor_type self._sensor_type = description.sensor_type
self._precision = description.precision
self._attr_unique_id = ( self._attr_unique_id = (
f"{DOMAIN}_{user_id}_{description.key}_{description.sensor_type}" f"{DOMAIN}_{user_id}_{description.key}_{description.sensor_type}"
) )
@ -266,7 +264,7 @@ class HuisbaasjeSensor(
self.entity_description.sensor_type self.entity_description.sensor_type
] ]
) is not None: ) is not None:
return round(data, self._precision) return data
return None return None
@property @property

View File

@ -59,7 +59,7 @@ async def test_setup_entry(hass: HomeAssistant) -> None:
# Assert data is loaded # Assert data is loaded
current_power = hass.states.get("sensor.current_power") current_power = hass.states.get("sensor.current_power")
assert current_power.state == "1012.0" assert current_power.state == "1011.66666666667"
assert ( assert (
current_power.attributes.get(ATTR_DEVICE_CLASS) == SensorDeviceClass.POWER current_power.attributes.get(ATTR_DEVICE_CLASS) == SensorDeviceClass.POWER
) )
@ -72,7 +72,7 @@ async def test_setup_entry(hass: HomeAssistant) -> None:
) )
current_power_in = hass.states.get("sensor.current_power_in_peak") current_power_in = hass.states.get("sensor.current_power_in_peak")
assert current_power_in.state == "1012.0" assert current_power_in.state == "1011.66666666667"
assert ( assert (
current_power_in.attributes.get(ATTR_DEVICE_CLASS) current_power_in.attributes.get(ATTR_DEVICE_CLASS)
== SensorDeviceClass.POWER == SensorDeviceClass.POWER
@ -134,7 +134,7 @@ async def test_setup_entry(hass: HomeAssistant) -> None:
energy_consumption_peak_today = hass.states.get( energy_consumption_peak_today = hass.states.get(
"sensor.energy_consumption_peak_today" "sensor.energy_consumption_peak_today"
) )
assert energy_consumption_peak_today.state == "2.67" assert energy_consumption_peak_today.state == "2.669999453"
assert ( assert (
energy_consumption_peak_today.attributes.get(ATTR_DEVICE_CLASS) energy_consumption_peak_today.attributes.get(ATTR_DEVICE_CLASS)
== SensorDeviceClass.ENERGY == SensorDeviceClass.ENERGY
@ -151,7 +151,7 @@ async def test_setup_entry(hass: HomeAssistant) -> None:
energy_consumption_off_peak_today = hass.states.get( energy_consumption_off_peak_today = hass.states.get(
"sensor.energy_consumption_off_peak_today" "sensor.energy_consumption_off_peak_today"
) )
assert energy_consumption_off_peak_today.state == "0.627" assert energy_consumption_off_peak_today.state == "0.626666416"
assert ( assert (
energy_consumption_off_peak_today.attributes.get(ATTR_DEVICE_CLASS) energy_consumption_off_peak_today.attributes.get(ATTR_DEVICE_CLASS)
== SensorDeviceClass.ENERGY == SensorDeviceClass.ENERGY
@ -168,7 +168,7 @@ async def test_setup_entry(hass: HomeAssistant) -> None:
energy_production_peak_today = hass.states.get( energy_production_peak_today = hass.states.get(
"sensor.energy_production_peak_today" "sensor.energy_production_peak_today"
) )
assert energy_production_peak_today.state == "1.512" assert energy_production_peak_today.state == "1.51234"
assert ( assert (
energy_production_peak_today.attributes.get(ATTR_DEVICE_CLASS) energy_production_peak_today.attributes.get(ATTR_DEVICE_CLASS)
== SensorDeviceClass.ENERGY == SensorDeviceClass.ENERGY
@ -185,7 +185,7 @@ async def test_setup_entry(hass: HomeAssistant) -> None:
energy_production_off_peak_today = hass.states.get( energy_production_off_peak_today = hass.states.get(
"sensor.energy_production_off_peak_today" "sensor.energy_production_off_peak_today"
) )
assert energy_production_off_peak_today.state == "1.093" assert energy_production_off_peak_today.state == "1.09281"
assert ( assert (
energy_production_off_peak_today.attributes.get(ATTR_DEVICE_CLASS) energy_production_off_peak_today.attributes.get(ATTR_DEVICE_CLASS)
== SensorDeviceClass.ENERGY == SensorDeviceClass.ENERGY
@ -200,7 +200,7 @@ async def test_setup_entry(hass: HomeAssistant) -> None:
) )
energy_today = hass.states.get("sensor.energy_today") energy_today = hass.states.get("sensor.energy_today")
assert energy_today.state == "3.3" assert energy_today.state == "3.296665869"
assert ( assert (
energy_today.attributes.get(ATTR_DEVICE_CLASS) == SensorDeviceClass.ENERGY energy_today.attributes.get(ATTR_DEVICE_CLASS) == SensorDeviceClass.ENERGY
) )
@ -211,7 +211,7 @@ async def test_setup_entry(hass: HomeAssistant) -> None:
) )
energy_this_week = hass.states.get("sensor.energy_this_week") energy_this_week = hass.states.get("sensor.energy_this_week")
assert energy_this_week.state == "17.5" assert energy_this_week.state == "17.509996085"
assert ( assert (
energy_this_week.attributes.get(ATTR_DEVICE_CLASS) energy_this_week.attributes.get(ATTR_DEVICE_CLASS)
== SensorDeviceClass.ENERGY == SensorDeviceClass.ENERGY
@ -225,7 +225,7 @@ async def test_setup_entry(hass: HomeAssistant) -> None:
) )
energy_this_month = hass.states.get("sensor.energy_this_month") energy_this_month = hass.states.get("sensor.energy_this_month")
assert energy_this_month.state == "103.3" assert energy_this_month.state == "103.28830788"
assert ( assert (
energy_this_month.attributes.get(ATTR_DEVICE_CLASS) energy_this_month.attributes.get(ATTR_DEVICE_CLASS)
== SensorDeviceClass.ENERGY == SensorDeviceClass.ENERGY
@ -239,7 +239,7 @@ async def test_setup_entry(hass: HomeAssistant) -> None:
) )
energy_this_year = hass.states.get("sensor.energy_this_year") energy_this_year = hass.states.get("sensor.energy_this_year")
assert energy_this_year.state == "673.0" assert energy_this_year.state == "672.97811773"
assert ( assert (
energy_this_year.attributes.get(ATTR_DEVICE_CLASS) energy_this_year.attributes.get(ATTR_DEVICE_CLASS)
== SensorDeviceClass.ENERGY == SensorDeviceClass.ENERGY
@ -264,7 +264,7 @@ async def test_setup_entry(hass: HomeAssistant) -> None:
) )
gas_today = hass.states.get("sensor.gas_today") gas_today = hass.states.get("sensor.gas_today")
assert gas_today.state == "1.1" assert gas_today.state == "1.07"
assert gas_today.attributes.get(ATTR_DEVICE_CLASS) == SensorDeviceClass.GAS assert gas_today.attributes.get(ATTR_DEVICE_CLASS) == SensorDeviceClass.GAS
assert ( assert (
gas_today.attributes.get(ATTR_STATE_CLASS) gas_today.attributes.get(ATTR_STATE_CLASS)
@ -276,7 +276,7 @@ async def test_setup_entry(hass: HomeAssistant) -> None:
) )
gas_this_week = hass.states.get("sensor.gas_this_week") gas_this_week = hass.states.get("sensor.gas_this_week")
assert gas_this_week.state == "5.6" assert gas_this_week.state == "5.634224386"
assert gas_this_week.attributes.get(ATTR_DEVICE_CLASS) == SensorDeviceClass.GAS assert gas_this_week.attributes.get(ATTR_DEVICE_CLASS) == SensorDeviceClass.GAS
assert ( assert (
gas_this_week.attributes.get(ATTR_STATE_CLASS) gas_this_week.attributes.get(ATTR_STATE_CLASS)
@ -288,7 +288,7 @@ async def test_setup_entry(hass: HomeAssistant) -> None:
) )
gas_this_month = hass.states.get("sensor.gas_this_month") gas_this_month = hass.states.get("sensor.gas_this_month")
assert gas_this_month.state == "39.1" assert gas_this_month.state == "39.14"
assert gas_this_month.attributes.get(ATTR_DEVICE_CLASS) == SensorDeviceClass.GAS assert gas_this_month.attributes.get(ATTR_DEVICE_CLASS) == SensorDeviceClass.GAS
assert ( assert (
gas_this_month.attributes.get(ATTR_STATE_CLASS) gas_this_month.attributes.get(ATTR_STATE_CLASS)
@ -300,7 +300,7 @@ async def test_setup_entry(hass: HomeAssistant) -> None:
) )
gas_this_year = hass.states.get("sensor.gas_this_year") gas_this_year = hass.states.get("sensor.gas_this_year")
assert gas_this_year.state == "116.7" assert gas_this_year.state == "116.73"
assert gas_this_year.attributes.get(ATTR_DEVICE_CLASS) == SensorDeviceClass.GAS assert gas_this_year.attributes.get(ATTR_DEVICE_CLASS) == SensorDeviceClass.GAS
assert ( assert (
gas_this_year.attributes.get(ATTR_STATE_CLASS) gas_this_year.attributes.get(ATTR_STATE_CLASS)
@ -349,13 +349,13 @@ async def test_setup_entry_absent_measurement(hass: HomeAssistant) -> None:
await hass.async_block_till_done() await hass.async_block_till_done()
# Assert data is loaded # Assert data is loaded
assert hass.states.get("sensor.current_power").state == "1012.0" assert hass.states.get("sensor.current_power").state == "1011.66666666667"
assert hass.states.get("sensor.current_power_in_peak").state == "unknown" assert hass.states.get("sensor.current_power_in_peak").state == "unknown"
assert hass.states.get("sensor.current_power_in_off_peak").state == "unknown" assert hass.states.get("sensor.current_power_in_off_peak").state == "unknown"
assert hass.states.get("sensor.current_power_out_peak").state == "unknown" assert hass.states.get("sensor.current_power_out_peak").state == "unknown"
assert hass.states.get("sensor.current_power_out_off_peak").state == "unknown" assert hass.states.get("sensor.current_power_out_off_peak").state == "unknown"
assert hass.states.get("sensor.current_gas").state == "unknown" assert hass.states.get("sensor.current_gas").state == "unknown"
assert hass.states.get("sensor.energy_today").state == "3.3" assert hass.states.get("sensor.energy_today").state == "3.296665869"
assert ( assert (
hass.states.get("sensor.energy_consumption_peak_today").state == "unknown" hass.states.get("sensor.energy_consumption_peak_today").state == "unknown"
) )