Ok so with my little knowledge Wireshark and packet sniffing I’ve found that it’s not sending over http, but plain old TCP. This is what my iOS app sends to set the thermostat to 12 degrees -
{"HGOM": {"ZAO": {"SP": "12" } } }
and then the thermostat responds with this. I’ve bolded what I can understand - the time, date and current and goal temperatures for my 2 zones. Next step is finding someone who knows what they’re doing lol
EiÀ¨À¨lÇÅï8N>ÄP,IN000010[{“SYST”: {“CFG”: {“MTSP”: “Y”, “NC”: “00”, “DF”: “N”, “TU”: “C”, “CF”: “1”, “VR”: “0183”, “CV”: “0010”, “CC”: “043”, “ZA”: " ", “ZB”: " ", “ZC”: " ", “ZD”: " " }, “AVM”: {“HG”: “Y”, “EC”: “N”, “CG”: “Y”, “RA”: “N”, “RH”: “N”, “RC”: “N” }, “OSS”: {“DY”: “THU”, “TM”: “11:59”, “BP”: “Y”, “RG”: “Y”, “ST”: “N”, “MD”: “H”, “DE”: “N”, “DU”: “N”, “AT”: “999”, “LO”: “N” }, “FLT”: {“AV”: “N”, “C3”: “000” } } },{“HGOM”: {“CFG”: {“ZUIS”: “N”, “ZAIS”: “Y”, “ZBIS”: “Y”, “ZCIS”: “N”, “ZDIS”: “N”, “CF”: “N”, “PS”: “Y”, “DG”: “W” }, “OOP”: {“ST”: “N”, “CF”: “N”, “FL”: “00”, “SN”: “Y” }, “ZUO”: {“OP”: “M”, “SP”: “20”, “AO”: “N” }, “ZAO”: {“OP”: “M”, “SP”: “12”, “AO”: “N” }, “ZBO”: {“OP”: “M”, “SP”: “19”, “AO”: “N” }, “ZCO”: {“OP”: “M”, “SP”: “20”, “AO”: “N” }, “ZDO”: {“OP”: “M”, “SP”: “20”, “AO”: “N” }, “ZUS”: {“AE”: “N”, “MT”: “243”, “ID”: “N”, “FS”: “N”, “GV”: “N”, “PH”: “N”, “AT”: “W”, “AZ”: “W” }, “ZAS”: {“AE”: “N”, “MT”: “226”, “ID”: “Y”, “FS”: “N”, “GV”: “N”, “PH”: “N”, “AT”: “L”, “AZ”: “L” }, “ZBS”: {“AE”: “N”, "MT": “243”, “ID”: “Y”, “FS”: “N”, “GV”: “N”, “PH”: “N”, “AT”: “W”, “AZ”: “W” }, “ZCS”: {“AE”: “N”, “MT”: “243”, “ID”: “N”, “FS”: “N”, “GV”: “N”, “PH”: “N”, “AT”: “W”, “AZ”: “W” }, “ZDS”: {“AE”: “N”, “MT”: “243”, “ID”: “N”, “FS”: “N”, “GV”: “N”, “PH”: “N”, “AT”: “W”, “AZ”: “W” }, “APZ”: {“ZV”: “N” } } }]
EDIT: Here is the documentation for mysimplelink, it has some details on their implementation of the TCP/UDP protocol.
EDIT 2: According to this breakdown of a prototype mysimplelink device, the iOS and Android apps are communicating with the RESTful API.