Skip to content

Commit 897db39

Browse files
committed
fix pass for skyfi devices
1 parent a961348 commit 897db39

File tree

1 file changed

+28
-19
lines changed

1 file changed

+28
-19
lines changed

pydaikin/daikin_skyfi.py

+28-19
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
class DaikinSkyFi(Appliance):
1212
"""Daikin class for SkyFi units."""
1313

14-
HTTP_RESOURCES = ['ac.cgi?pass={}', 'zones.cgi?pass={}']
14+
HTTP_RESOURCES = ['ac.cgi', 'zones.cgi']
1515

1616
INFO_RESOURCES = HTTP_RESOURCES
1717

@@ -102,6 +102,17 @@ def parse_response(response_body):
102102
)
103103
return response
104104

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+
105116
def represent(self, key):
106117
"""Return translated value from key."""
107118
k, val = super().represent(self.SKYFI_TO_DAIKIN.get(key, key))
@@ -115,7 +126,7 @@ def represent(self, key):
115126
async def set(self, settings):
116127
"""Set settings on Daikin device."""
117128
_LOGGER.debug("Updating settings: %s", settings)
118-
await self.update_status(['ac.cgi?pass={}'])
129+
await self.update_status(['ac.cgi'])
119130

120131
# Merge current_val with mapped settings
121132
self.values.update(
@@ -129,19 +140,20 @@ async def set(self, settings):
129140
# we are using an extra mode "off" to power off the unit
130141
if settings.get('mode', '') == 'off':
131142
self.values['opmode'] = '0'
132-
query_c = 'set.cgi?pass={}&p=0'
143+
params = {
144+
"p": self.values['opmode'],
145+
}
133146
else:
134147
if 'mode' in settings:
135148
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+
}
143155

144-
await self.update_status([query_c])
156+
self.values.update(await self._get_resource("set.cgi", params))
145157

146158
@property
147159
def zones(self):
@@ -165,11 +177,8 @@ async def set_zone(self, zone_id, key, value):
165177
return
166178
zone_id += 1
167179

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

Comments
 (0)