44class ComwattClient :
55 def __init__ (self ):
66 self .base_url = 'https://energy.comwatt.com/api'
7+ self .session = requests .Session ()
78
89 def authenticate (self , username , password ):
910 url = f'{ self .base_url } /v1/authent'
@@ -18,14 +19,34 @@ def authenticate(self, username, password):
1819 }
1920 data = {'username' : username , 'password' : password }
2021
21- response = requests .post (url , headers = headers , json = data )
22- print (json .dumps (response .json ()))
22+ response = self .session .post (url , headers = headers , json = data )
23+
24+ if response .status_code != 200 :
25+ raise Exception (f'Authentication failed: { response .status_code } ' )
26+
27+ def get_authenticated_user (self ):
28+ url = f'{ self .base_url } /users/authenticated'
29+
30+ response = self .session .get (url )
31+ if response .status_code == 200 :
32+ return response .json ()
33+ else :
34+ raise Exception (f'Error retrieving authenticated user: { response .sttaus_code } ' )
35+
36+ def get_sites (self ):
37+ url = f'{ self .base_url } /sites'
38+
39+ response = self .session .get (url )
2340 if response .status_code == 200 :
24- auth_token = response .json ().get ('token' )
25- if auth_token :
41+ return response .json ()
42+ else :
43+ raise Exception (f'Error retrieving sites: { response .sttaus_code } ' )
2644
27- return auth_token
28- else :
29- raise Exception ('Authentication failed: No token received' )
45+ def get_devices (self , site_id ):
46+ url = f'{ self .base_url } /devices?siteId={ site_id } '
47+
48+ response = self .session .get (url )
49+ if response .status_code == 200 :
50+ return response .json ()
3051 else :
31- raise Exception (f'Authentication failed : { response .status_code } ' )
52+ raise Exception (f'Error retrieving sites : { response .sttaus_code } ' )
0 commit comments