@@ -31,14 +31,14 @@ def __init__(self, sensor_id, loop, session):
3131 'temperature' : None ,
3232 }
3333 self .meta = {}
34+ self .url = '{}/{}' .format (_RESOURCE , 'sensor' )
3435
3536 async def get_data (self ):
3637 """Retrieve the data."""
37- url = '{}/{}/{}/' .format (_RESOURCE , 'sensor' , self .sensor_id )
38-
3938 try :
4039 with async_timeout .timeout (5 , loop = self ._loop ):
41- response = await self ._session .get (url )
40+ response = await self ._session .get (
41+ '{}/{}/' .format (self .url , self .sensor_id ))
4242
4343 _LOGGER .debug (
4444 "Response from luftdaten.info: %s" , response .status )
@@ -69,7 +69,18 @@ async def get_data(self):
6969 except (TypeError , IndexError ):
7070 raise exceptions .LuftdatenError ()
7171
72- @property
73- def valid_sensor (self ):
72+ async def validate_sensor (self , sensor_id ):
7473 """Return True if the sensor ID is valid."""
75- return True if self .values else False
74+ try :
75+ with async_timeout .timeout (5 , loop = self ._loop ):
76+ response = await self ._session .get (
77+ '{}/{}/' .format (self .url , sensor_id ))
78+
79+ _LOGGER .debug (
80+ "Response from luftdaten.info: %s" , response .status )
81+ data = await response .json ()
82+ except (asyncio .TimeoutError , aiohttp .ClientError ):
83+ _LOGGER .error ("Can not load data from luftdaten.info" )
84+ raise exceptions .LuftdatenConnectionError ()
85+
86+ return True if data else False
0 commit comments