From 66ba0cb1d332ae3474bb8cd3de6f6f0c53621af0 Mon Sep 17 00:00:00 2001 From: Gertjan Date: Wed, 15 Feb 2023 15:53:44 +0100 Subject: [PATCH] Fixed float number validation in sensor component (#88074) --- homeassistant/components/sensor/__init__.py | 2 +- tests/components/sensor/test_init.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/homeassistant/components/sensor/__init__.py b/homeassistant/components/sensor/__init__.py index 30395c3a0a5..75c37ab7b7d 100644 --- a/homeassistant/components/sensor/__init__.py +++ b/homeassistant/components/sensor/__init__.py @@ -548,7 +548,7 @@ class SensorEntity(Entity): numerical_value: int | float | Decimal if not isinstance(value, (int, float, Decimal)): try: - if isinstance(value, str) and "." not in value: + if isinstance(value, str) and "." not in value and "e" not in value: numerical_value = int(value) else: numerical_value = float(value) # type:ignore[arg-type] diff --git a/tests/components/sensor/test_init.py b/tests/components/sensor/test_init.py index 466554de1ca..365e93a13ee 100644 --- a/tests/components/sensor/test_init.py +++ b/tests/components/sensor/test_init.py @@ -1727,6 +1727,7 @@ async def test_non_numeric_validation_raise( [ (13, "13"), (17.50, "17.5"), + ("1e-05", "1e-05"), (Decimal(18.50), "18.5"), ("19.70", "19.70"), (None, STATE_UNKNOWN),