11
11
class DaikinSkyFi (Appliance ):
12
12
"""Daikin class for SkyFi units."""
13
13
14
- HTTP_RESOURCES = ['ac.cgi?pass={} ' , 'zones.cgi?pass={} ' ]
14
+ HTTP_RESOURCES = ['ac.cgi' , 'zones.cgi' ]
15
15
16
16
INFO_RESOURCES = HTTP_RESOURCES
17
17
@@ -102,6 +102,17 @@ def parse_response(response_body):
102
102
)
103
103
return response
104
104
105
+ async def _get_resource (self , path : str , params : dict | None = None ):
106
+ """Make the http request."""
107
+ if params is None :
108
+ params = {}
109
+
110
+ params ["pass" ] = "HIDDEN"
111
+ _LOGGER .debug ("Sending request to %s with params: %s" , path , params )
112
+
113
+ params ["pass" ] = self ._password
114
+ return await super ()._get_resource (path , params )
115
+
105
116
def represent (self , key ):
106
117
"""Return translated value from key."""
107
118
k , val = super ().represent (self .SKYFI_TO_DAIKIN .get (key , key ))
@@ -115,7 +126,7 @@ def represent(self, key):
115
126
async def set (self , settings ):
116
127
"""Set settings on Daikin device."""
117
128
_LOGGER .debug ("Updating settings: %s" , settings )
118
- await self .update_status (['ac.cgi?pass={} ' ])
129
+ await self .update_status (['ac.cgi' ])
119
130
120
131
# Merge current_val with mapped settings
121
132
self .values .update (
@@ -129,19 +140,20 @@ async def set(self, settings):
129
140
# we are using an extra mode "off" to power off the unit
130
141
if settings .get ('mode' , '' ) == 'off' :
131
142
self .values ['opmode' ] = '0'
132
- query_c = 'set.cgi?pass={}&p=0'
143
+ params = {
144
+ "p" : self .values ['opmode' ],
145
+ }
133
146
else :
134
147
if 'mode' in settings :
135
148
self .values ['opmode' ] = '1'
136
- query_c = (
137
- f"set.cgi?pass={{}}"
138
- f"&p={ self .values ['opmode' ]} "
139
- f"&t={ self .values ['settemp' ]} "
140
- f"&f={ self .values ['fanspeed' ]} "
141
- f"&m={ self .values ['acmode' ]} "
142
- )
149
+ params = {
150
+ "p" : self .values ['opmode' ],
151
+ "t" : self .values ['settemp' ],
152
+ "f" : self .values ['fanspeed' ],
153
+ "m" : self .values ['acmode' ],
154
+ }
143
155
144
- await self .update_status ([ query_c ] )
156
+ self . values . update ( await self ._get_resource ( "set.cgi" , params ) )
145
157
146
158
@property
147
159
def zones (self ):
@@ -165,11 +177,8 @@ async def set_zone(self, zone_id, key, value):
165
177
return
166
178
zone_id += 1
167
179
168
- path = "setzone.cgi"
169
- params = {"pass" : "HIDDEN" , "z" : zone_id , "s" : value }
170
- _LOGGER .debug ("Sending request to %s with params: %s" , path , params )
171
-
172
- params ["pass" ] = self ._password
173
-
174
- current_state = await self ._get_resource (path , params )
175
- self .values .update (current_state )
180
+ params = {
181
+ "z" : zone_id ,
182
+ "s" : value ,
183
+ }
184
+ self .values .update (await self ._get_resource ("setzone.cgi" , params ))
0 commit comments