Skip to content

Commit 800099b

Browse files
committed
Added info and debug logging to FritzRequests
1 parent d821ff6 commit 800099b

File tree

1 file changed

+25
-11
lines changed

1 file changed

+25
-11
lines changed

fritz_advanced_thermostat/utils.py

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,48 +6,62 @@ class FritzRequests():
66
def __init__(self, prefixed_host: str, max_retries: int, timeout: int, ssl_verify: bool) -> None:
77
self._prefixed_host = prefixed_host
88
self._max_retries = max_retries
9-
self._timeout =timeout
9+
self._timeout = timeout
1010
self._ssl_verify = ssl_verify
1111
self._logger = logging.getLogger("FritzAdvancedThermostatLogger")
1212

1313
def _generate_headers(self, data: dict) -> dict:
14-
return {
14+
self._logger.debug("Generating headers for the request.")
15+
headers = {
1516
"Accept": "*/*",
1617
"Content-Type": "application/x-www-form-urlencoded",
1718
"Origin": self._prefixed_host,
1819
"Content-Length": str(len(data)),
1920
"Accept-Language": "en-GB,en;q=0.9",
2021
"Host": self._prefixed_host.split("://")[1],
21-
"User-Agent":
22-
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.2 Safari/605.1.15",
22+
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.2 Safari/605.1.15",
2323
"Referer": self._prefixed_host,
2424
"Accept-Encoding": "gzip, deflate",
2525
"Connection": "keep-alive",
2626
}
27+
self._logger.debug("Headers generated: %s", headers)
28+
return headers
2729

2830
def post(self, payload: dict, site: str) -> dict:
2931
url = f"{self._prefixed_host}/{site}"
32+
self._logger.info("Sending POST request to %s", url)
33+
self._logger.debug("Payload: %s", payload)
34+
3035
retries = 0
3136
while retries <= self._max_retries:
3237
try:
38+
self._logger.debug("Attempt %s of %s", retries + 1, self._max_retries)
3339
response = requests.post(
3440
url,
3541
headers=self._generate_headers(payload),
3642
data=payload,
37-
verify=self._ssl_verify, timeout=self._timeout)
43+
verify=self._ssl_verify,
44+
timeout=self._timeout
45+
)
46+
self._logger.info("Request successful on attempt %s", retries + 1)
3847
break
39-
except ConnectionError as e:
40-
self._logger.warning("Connection Error on loading data")
48+
except requests.ConnectionError as e:
49+
self._logger.warning("Connection Error on attempt %s: %s", retries + 1, e)
4150
retries += 1
4251
if retries > self._max_retries:
43-
err = "Tried 3 times, got Connection Error on loading raw thermostat data"
52+
err = "Tried %s times, Connection Error on loading raw thermostat data" % self._max_retries
53+
self._logger.error(err)
4454
raise FritzAdvancedThermostatConnectionError(err) from e
45-
self._logger.warning("Retry %s of %s", str(
46-
retries), str(self._max_retries))
55+
self._logger.info("Retrying request, attempt %s of %s", retries + 1, self._max_retries)
56+
57+
self._logger.debug("Received response with status code: %s", response.status_code)
58+
4759
if response.status_code != requests.codes.ok:
4860
err = "Error: " + str(response.status_code)
49-
self._logger.error(err)
61+
self._logger.error("Request failed: %s", err)
5062
raise FritzAdvancedThermostatConnectionError(err)
63+
64+
self._logger.debug("Response received: %s", response.text)
5165
return response.text
5266

5367
class ThermostatDataGenerator():

0 commit comments

Comments
 (0)