@@ -93,7 +93,9 @@ def get_devices(self):
9393 )
9494 return []
9595
96- return request .json ()
96+ return utils .get_response_json_or_log_and_raise_exception (
97+ request , "Error getting devices."
98+ )
9799
98100 def get_device_by_id (self , device_id : str ):
99101 self .__check_token_validity ()
@@ -124,7 +126,9 @@ def get_device_info(self, device_id: str):
124126 )
125127 return None
126128
127- return request .json ()
129+ return utils .get_response_json_or_log_and_raise_exception (
130+ request , "Error getting device info."
131+ )
128132
129133 def get_device_status (self , device_id : str ):
130134 self .__check_token_validity ()
@@ -147,7 +151,9 @@ def get_device_status(self, device_id: str):
147151 )
148152 return None
149153
150- return request .json ()
154+ return utils .get_response_json_or_log_and_raise_exception (
155+ request , "Error fetching device status."
156+ )
151157
152158 def get_all_alarms (self , device_id : str ):
153159 self .__check_token_validity ()
@@ -170,7 +176,9 @@ def get_all_alarms(self, device_id: str):
170176 )
171177 return None
172178
173- return request .json ()
179+ return utils .get_response_json_or_log_and_raise_exception (
180+ request , "Error in getting device's alarms."
181+ )
174182
175183 def get_historical_data_registers (self , device_id : str ):
176184 self .__check_token_validity ()
@@ -192,7 +200,9 @@ def get_historical_data_registers(self, device_id: str):
192200 )
193201 return None
194202
195- return request .json ()
203+ return utils .get_response_json_or_log_and_raise_exception (
204+ request , "Error in historical data registers."
205+ )
196206
197207 def get_historical_data (
198208 self , device_id : str , register_id , start_date_str , end_date_str
@@ -222,7 +232,9 @@ def get_historical_data(
222232 )
223233 return None
224234
225- return request .json ()
235+ return utils .get_response_json_or_log_and_raise_exception (
236+ request , "Error in historical data for specific register."
237+ )
226238
227239 def get_all_available_groups (self , installation_profile_id : int ):
228240 self .__check_token_validity ()
@@ -246,7 +258,9 @@ def get_all_available_groups(self, installation_profile_id: int):
246258 )
247259 return None
248260
249- return request .json ()
261+ return utils .get_response_json_or_log_and_raise_exception (
262+ request , "Error in getting available groups."
263+ )
250264
251265 def get__group_temperatures (self , device_id : str ):
252266 return self .__get_register_group (device_id , REG_GROUP_TEMPERATURES )
@@ -463,7 +477,9 @@ def __get_register_group(self, device_id: str, register_group: str) -> list:
463477 )
464478 return []
465479
466- return request .json ()
480+ return utils .get_response_json_or_log_and_raise_exception (
481+ request , "Error in getting device's register group: " + register_group
482+ )
467483
468484 def __set_register_value (
469485 self , device : ThermiaHeatPump , register_index : int , register_value : int
@@ -510,7 +526,9 @@ def __fetch_configuration(self):
510526 )
511527 raise NetworkException ("Error fetching API configuration." , status )
512528
513- return request .json ()
529+ return utils .get_response_json_or_log_and_raise_exception (
530+ request , "Error fetching API configuration."
531+ )
514532
515533 def __authenticate_refresh_token (self ) -> Optional [str ]:
516534 request_token__data = {
@@ -584,9 +602,21 @@ def __authenticate(self) -> bool:
584602 settings_string = request_auth .text .split ("var SETTINGS = " )
585603 settings_string = settings_string [1 ].split ("};" )[0 ] + "}"
586604 if len (settings_string ) > 0 :
587- settings = json .loads (settings_string )
588- state_code = str (settings ["transId" ]).split ("=" )[1 ]
589- csrf_token = settings ["csrf" ]
605+ try :
606+ settings = json .loads (settings_string )
607+ state_code = str (settings ["transId" ]).split ("=" )[1 ]
608+ csrf_token = settings ["csrf" ]
609+ except Exception as e :
610+ _LOGGER .error (
611+ "Error parsing authorization API settings. "
612+ + str (request_auth .text ),
613+ e ,
614+ )
615+ raise NetworkException (
616+ "Error parsing authorization API settings. "
617+ + request_auth .text ,
618+ e ,
619+ )
590620 else :
591621 _LOGGER .error (
592622 "Error fetching authorization API. Status: "
@@ -675,7 +705,16 @@ def __authenticate(self) -> bool:
675705
676706 request_token_text = request_token .text
677707
678- token_data = json .loads (request_token_text )
708+ try :
709+ token_data = json .loads (request_token_text )
710+ except Exception as e :
711+ _LOGGER .error (
712+ "Error parsing authentication token data. " + str (request_token_text ),
713+ e ,
714+ )
715+ raise NetworkException (
716+ "Error parsing authentication token data. " + request_token_text , e
717+ )
679718
680719 self .__token = token_data ["access_token" ]
681720 self .__token_valid_to = token_data ["expires_on" ]
0 commit comments