Adding a /write handle on an SID to be able to write multiple attributes to a device (example MID and VOL for sound play)

This commit is contained in:
Jonathan Schemoul
2017-04-11 15:51:03 +02:00
parent 96777ae1cc
commit 586fb2ae62
3 changed files with 48 additions and 23 deletions
+7 -7
View File
@@ -149,14 +149,14 @@ class XiaomiHub:
_LOGGER.error("Cannot connect to Gateway")
socket.close()
def write_to_hub(self, sid, data_key, datavalue):
def write_to_hub(self, sid, **values):
key = self._get_key()
if type(datavalue) == int:
datavalue_formatted = str(datavalue)
else:
datavalue_formatted = '"' + datavalue + '"'
cmd = '{ "cmd":"write","sid":"' + sid + '","data":"{"' + data_key + '":' + datavalue_formatted + ',"key":"' + key + '"}}'
return self._send_cmd(cmd, "write_ack")
cmd = {
"cmd": "write",
"sid": sid,
"data": dict(key=key, **values)
}
return self._send_cmd(json.dumps(cmd), "write_ack")
def get_from_hub(self, sid):
cmd = '{ "cmd":"read","sid":"' + sid + '"}'