mirror of
https://github.com/home-assistant/core.git
synced 2025-07-19 11:17:21 +00:00
spaceapi: fix sensor values (#132099)
This commit is contained in:
parent
25d092c8eb
commit
6f3a230524
@ -1,6 +1,7 @@
|
||||
"""Support for the SpaceAPI."""
|
||||
|
||||
from contextlib import suppress
|
||||
import math
|
||||
|
||||
import voluptuous as vol
|
||||
|
||||
@ -254,7 +255,17 @@ class APISpaceApiView(HomeAssistantView):
|
||||
"""Get data from a sensor."""
|
||||
if not (sensor_state := hass.states.get(sensor)):
|
||||
return None
|
||||
sensor_data = {ATTR_NAME: sensor_state.name, ATTR_VALUE: sensor_state.state}
|
||||
|
||||
# SpaceAPI sensor values must be numbers
|
||||
try:
|
||||
state = float(sensor_state.state)
|
||||
except ValueError:
|
||||
state = math.nan
|
||||
sensor_data = {
|
||||
ATTR_NAME: sensor_state.name,
|
||||
ATTR_VALUE: state,
|
||||
}
|
||||
|
||||
if ATTR_SENSOR_LOCATION in sensor_state.attributes:
|
||||
sensor_data[ATTR_LOCATION] = sensor_state.attributes[ATTR_SENSOR_LOCATION]
|
||||
else:
|
||||
|
@ -6,7 +6,12 @@ from unittest.mock import patch
|
||||
from aiohttp.test_utils import TestClient
|
||||
import pytest
|
||||
|
||||
from homeassistant.components.spaceapi import DOMAIN, SPACEAPI_VERSION, URL_API_SPACEAPI
|
||||
from homeassistant.components.spaceapi import (
|
||||
ATTR_SENSOR_LOCATION,
|
||||
DOMAIN,
|
||||
SPACEAPI_VERSION,
|
||||
URL_API_SPACEAPI,
|
||||
)
|
||||
from homeassistant.const import ATTR_UNIT_OF_MEASUREMENT, PERCENTAGE, UnitOfTemperature
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.setup import async_setup_component
|
||||
@ -27,7 +32,7 @@ CONFIG = {
|
||||
"icon_closed": "https://home-assistant.io/close.png",
|
||||
},
|
||||
"sensors": {
|
||||
"temperature": ["test.temp1", "test.temp2"],
|
||||
"temperature": ["test.temp1", "test.temp2", "test.temp3"],
|
||||
"humidity": ["test.hum1"],
|
||||
},
|
||||
"spacefed": {"spacenet": True, "spacesaml": False, "spacephone": True},
|
||||
@ -67,17 +72,23 @@ SENSOR_OUTPUT = {
|
||||
"location": "Home",
|
||||
"name": "temp1",
|
||||
"unit": UnitOfTemperature.CELSIUS,
|
||||
"value": "25",
|
||||
"value": 25.0,
|
||||
},
|
||||
{
|
||||
"location": "outside",
|
||||
"name": "temp2",
|
||||
"unit": UnitOfTemperature.CELSIUS,
|
||||
"value": 23.0,
|
||||
},
|
||||
{
|
||||
"location": "Home",
|
||||
"name": "temp2",
|
||||
"name": "temp3",
|
||||
"unit": UnitOfTemperature.CELSIUS,
|
||||
"value": "23",
|
||||
"value": None,
|
||||
},
|
||||
],
|
||||
"humidity": [
|
||||
{"location": "Home", "name": "hum1", "unit": PERCENTAGE, "value": "88"}
|
||||
{"location": "Home", "name": "hum1", "unit": PERCENTAGE, "value": 88.0}
|
||||
],
|
||||
}
|
||||
|
||||
@ -96,6 +107,19 @@ def mock_client(hass: HomeAssistant, hass_client: ClientSessionGenerator) -> Tes
|
||||
hass.states.async_set(
|
||||
"test.temp2",
|
||||
23,
|
||||
attributes={
|
||||
ATTR_UNIT_OF_MEASUREMENT: UnitOfTemperature.CELSIUS,
|
||||
ATTR_SENSOR_LOCATION: "outside",
|
||||
},
|
||||
)
|
||||
hass.states.async_set(
|
||||
"test.temp3",
|
||||
"foo",
|
||||
attributes={ATTR_UNIT_OF_MEASUREMENT: UnitOfTemperature.CELSIUS},
|
||||
)
|
||||
hass.states.async_set(
|
||||
"test.temp3",
|
||||
"foo",
|
||||
attributes={ATTR_UNIT_OF_MEASUREMENT: UnitOfTemperature.CELSIUS},
|
||||
)
|
||||
hass.states.async_set(
|
||||
|
Loading…
x
Reference in New Issue
Block a user