@@ -492,28 +492,38 @@ async def firmware_check(self) -> dict | None:
492492 else :
493493 url = f"{ base_url } ESP8266_WiFi_v2.x/releases/latest"
494494
495- async with aiohttp .ClientSession () as session :
496- http_method = getattr (session , method )
497- _LOGGER .debug (
498- "Connecting to %s using method %s" ,
499- url ,
500- method ,
501- )
502- async with http_method (url ) as resp :
503- if resp .status != 200 :
504- return None
505- message = await resp .text ()
506- message = json .loads (message )
507- response = {}
508- response ["latest_version" ] = message ["tag_name" ]
509- release_notes = message ["body" ]
510- response ["release_summary" ] = (
511- (release_notes [:253 ] + ".." )
512- if len (release_notes ) > 255
513- else release_notes
495+ try :
496+ async with aiohttp .ClientSession () as session :
497+ http_method = getattr (session , method )
498+ _LOGGER .debug (
499+ "Connecting to %s using method %s" ,
500+ url ,
501+ method ,
514502 )
515- response ["release_url" ] = message ["html_url" ]
516- return response
503+ async with http_method (url ) as resp :
504+ if resp .status != 200 :
505+ return None
506+ message = await resp .text ()
507+ message = json .loads (message )
508+ response = {}
509+ response ["latest_version" ] = message ["tag_name" ]
510+ release_notes = message ["body" ]
511+ response ["release_summary" ] = (
512+ (release_notes [:253 ] + ".." )
513+ if len (release_notes ) > 255
514+ else release_notes
515+ )
516+ response ["release_url" ] = message ["html_url" ]
517+ return response
518+
519+ except (TimeoutError , ServerTimeoutError ):
520+ _LOGGER .error ("%s: %s" , ERROR_TIMEOUT , url )
521+ except ContentTypeError as err :
522+ _LOGGER .error ("%s" , err )
523+ except aiohttp .ClientConnectorError as err :
524+ _LOGGER .error ("%s : %s" , err , url )
525+
526+ return None
517527
518528 def _version_check (self , min_version : str , max_version : str = "" ) -> bool :
519529 """Return bool if minimum version is met."""
0 commit comments