mirror of
https://github.com/home-assistant/core.git
synced 2025-07-16 09:47:13 +00:00
load the last good state from db if speedtest data is None (#2645)
* load the last good state from db if speedtest data is None * return if recorder is not available
This commit is contained in:
parent
ce3c89db6e
commit
3c51d2df0f
@ -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':
|
||||
|
Loading…
x
Reference in New Issue
Block a user