diff --git a/homeassistant/components/sensor/speedtest.py b/homeassistant/components/sensor/speedtest.py index 7fdc335a493..445bf8a8d4b 100644 --- a/homeassistant/components/sensor/speedtest.py +++ b/homeassistant/components/sensor/speedtest.py @@ -10,6 +10,7 @@ import sys from subprocess import check_output, CalledProcessError import homeassistant.util.dt as dt_util +from homeassistant.components import recorder from homeassistant.components.sensor import DOMAIN from homeassistant.helpers.entity import Entity from homeassistant.helpers.event import track_time_change @@ -85,8 +86,20 @@ class SpeedtestSensor(Entity): """Get the latest data and update the states.""" data = self.speedtest_client.data if data is None: - return - + entity_id = 'sensor.speedtest_' + self._name.lower() + states = recorder.get_model('States') + try: + last_state = recorder.execute( + recorder.query('States').filter( + (states.entity_id == entity_id) & + (states.last_changed == states.last_updated) & + (states.state != 'unknown') + ).order_by(states.state_id.desc()).limit(1)) + except TypeError: + return + if not last_state: + return + self._state = last_state[0].state elif self.type == 'ping': self._state = data['ping'] elif self.type == 'download':