@@ -39,6 +39,7 @@ def __init__(self, access_token: str, timeout: int, user_agent: str, ssl: SSLCon
3939 self ._watchdog_running : bool = False
4040
4141 self .sub_manager : Client | None = None
42+ self .session : Any | None = None
4243
4344 async def disconnect (self ) -> None :
4445 """Stop subscription manager.
@@ -52,14 +53,10 @@ async def disconnect(self) -> None:
5253 self ._watchdog_runner = None
5354 for home in self ._homes :
5455 home .rt_unsubscribe ()
55- if self .sub_manager is None :
56- return
57- try :
58- if not hasattr (self .sub_manager , "session" ):
59- return
56+ if self .session is not None :
6057 await self .sub_manager .close_async ()
61- finally :
62- self .sub_manager = None
58+ self . session = None
59+ self .sub_manager = None
6360
6461 async def connect (self ) -> None :
6562 """Start subscription manager."""
@@ -74,7 +71,7 @@ async def connect(self) -> None:
7471 _LOGGER .debug ("Starting watchdog" )
7572 self ._watchdog_running = True
7673 self ._watchdog_runner = asyncio .create_task (self ._watchdog ())
77- await self .sub_manager .connect_async ()
74+ self . session = await self .sub_manager .connect_async ()
7875
7976 def set_access_token (self , access_token : str ) -> None :
8077 """Set access token."""
@@ -141,8 +138,9 @@ async def _watchdog(self) -> None:
141138 )
142139
143140 try :
144- if hasattr ( self .sub_manager , " session" ) :
141+ if self .session is not None :
145142 await self .sub_manager .close_async ()
143+ self .session = None
146144 except Exception :
147145 _LOGGER .exception ("Error in watchdog close" )
148146
@@ -152,7 +150,7 @@ async def _watchdog(self) -> None:
152150
153151 self ._create_sub_manager ()
154152 try :
155- await self .sub_manager .connect_async ()
153+ self . session = await self .sub_manager .connect_async ()
156154 await self ._resubscribe_homes ()
157155 except Exception as err : # noqa: BLE001
158156 delay_seconds = min (
@@ -193,7 +191,7 @@ def subscription_running(self) -> bool:
193191 self .sub_manager is not None
194192 and isinstance (self .sub_manager .transport , TibberWebsocketsTransport )
195193 and self .sub_manager .transport .running
196- and hasattr ( self .sub_manager , " session" )
194+ and self .session is not None
197195 )
198196
199197 @property
0 commit comments