Round humidity for display purposes (#12766)

Humidity was not being rounded as temperature was. This change fixes
that.
This commit is contained in:
Philip Rosenberg-Watt 2018-02-28 11:59:47 -07:00 committed by Paulus Schoutsen
parent 9658f4383c
commit e82b358831
3 changed files with 12 additions and 8 deletions

View file

@ -110,7 +110,7 @@ class WeatherEntity(Entity):
ATTR_WEATHER_TEMPERATURE: show_temp(
self.hass, self.temperature, self.temperature_unit,
self.precision),
ATTR_WEATHER_HUMIDITY: self.humidity,
ATTR_WEATHER_HUMIDITY: round(self.humidity)
}
ozone = self.ozone

View file

@ -96,7 +96,7 @@ class DarkSkyWeather(WeatherEntity):
@property
def humidity(self):
"""Return the humidity."""
return round(self._ds_currently.get('humidity') * 100.0, 2)
return self._ds_currently.get('humidity') * 100.0
@property
def wind_speed(self):

View file

@ -3,11 +3,12 @@ from numbers import Number
from homeassistant.core import HomeAssistant
from homeassistant.util.temperature import convert as convert_temperature
from homeassistant.const import PRECISION_HALVES, PRECISION_TENTHS
def display_temp(hass: HomeAssistant, temperature: float, unit: str,
precision: float) -> float:
"""Convert temperature into preferred units for display purposes."""
"""Convert temperature into preferred units/precision for display."""
temperature_unit = unit
ha_unit = hass.config.units.temperature_unit
@ -25,9 +26,12 @@ def display_temp(hass: HomeAssistant, temperature: float, unit: str,
temperature, temperature_unit, ha_unit)
# Round in the units appropriate
if precision == 0.5:
return round(temperature * 2) / 2.0
elif precision == 0.1:
return round(temperature, 1)
if precision == PRECISION_HALVES:
temperature = round(temperature * 2) / 2.0
elif precision == PRECISION_TENTHS:
temperature = round(temperature, 1)
# Integer as a fall back (PRECISION_WHOLE)
return round(temperature)
else:
temperature = round(temperature)
return temperature