CLOUD COMMS AKA MYCLIMATE API
I have also been able to get to the bottom of cloud comms by examining packets using a MIM approach. As a result I have been able to successfully reissue commands via the MyClimate API using curl.
The basic steps are as follows.
- Set a lock
- Get status (optional)
- Send an instruction or series of instructions
- Delete lock.
Example commands:
Set Lock
curl -H "X-Authentication-Key: 12345678901234567890123456789012" -H "User-Agent: Dalvik/2.1.0 (Linux; U; Android 5.0.2; SM-P900 Build/LRX22G)" -H "Connection: Keep-Alive" -H "Accept-Encoding: gzip" -X GET https://myclimate.bonaire.com.au/Api/Lock
Get Status
curl -H "X-Authentication-Key: 12345678901234567890123456789012" -H "User-Agent: Dalvik/2.1.0 (Linux; U; Android 5.0.2; SM-P900 Build/LRX22G)" -H "Connection: Keep-Alive" -H "Accept-Encoding: gzip" -X GET https://myclimate.bonaire.com.au/Api/State
Change Setting
curl -H "X-Authentication-Key: 12345678901234567890123456789012" -H "User-Agent: Dalvik/2.1.0 (Linux; U; Android 5.0.2; SM-P900 Build/LRX22G)" -H "Connection: Keep-Alive" -H "Accept-Encoding: gzip" -H "Content-Type: application/x-www-form-urlencoded" -X POST -d @C:\Test\Bonaire_POST.txt https://myclimate.bonaire.com.au/Api/Instruction
Example Bonaire_POST.txt Content (as per Change setting above)
Turn On
<myclimate><post>postzoneinfo</post><zoneList>Common</zoneList><system>on</system><type>heat</type><mode>econ</mode><setPoint>15</setPoint><fanSpeed>8</fanSpeed></myclimate>
Turn Off
<myclimate><post>postzoneinfo</post><zoneList>Common</zoneList><system>off</system><type>heat</type><mode>econ</mode><setPoint>15</setPoint><fanSpeed>8</fanSpeed></myclimate>
HEAT MODE
<myclimate><post>postzoneinfo</post><zoneList>Common</zoneList><system>on</system><type>heat</type><mode>thermo</mode><setPoint>15</setPoint><fanSpeed>8</fanSpeed></myclimate>
Change Fan Speed
<myclimate><post>postzoneinfo</post><zoneList>Common</zoneList><system>on</system><type>heat</type><mode>fan</mode><setPoint>15</setPoint><fanSpeed>2</fanSpeed></myclimate>
Set Economy Mode
<myclimate><post>postzoneinfo</post><zoneList>Common</zoneList><system>on</system><type>heat</type><mode>econ</mode><setPoint>15</setPoint><fanSpeed>1</fanSpeed></myclimate>
Set Thermo Mode
<myclimate><post>postzoneinfo</post><zoneList>Common</zoneList><system>on</system><type>heat</type><mode>thermo</mode><setPoint>15</setPoint><fanSpeed>1</fanSpeed></myclimate>
Set Boost Mode
<myclimate><post>postzoneinfo</post><zoneList>Common</zoneList><system>on</system><type>heat</type><mode>thermo</mode><setPoint>15</setPoint><fanSpeed>1</fanSpeed></myclimate>
Set Manual Only Mode
<myclimate><post>postzoneinfo</post><zoneList>Common</zoneList><system>on</system><type>evap</type><mode>manual</mode><setPoint>15</setPoint><fanSpeed>1</fanSpeed></myclimate>
EVAP/COOL MODE
<myclimate><post>postzoneinfo</post><zoneList>Common</zoneList><system>on</system><type>evap</type><mode>manual</mode><setPoint>15</setPoint><fanSpeed>8</fanSpeed></myclimate>
Change Fan Speed
<myclimate><post>postzoneinfo</post><zoneList>Common</zoneList><system>on</system><type>evap</type><mode>manual</mode><setPoint>15</setPoint><fanSpeed>1</fanSpeed></myclimate>
Set Thermo Mode
<myclimate><post>postzoneinfo</post><zoneList>Common</zoneList><system>on</system><type>evap</type><mode>thermo</mode><setPoint>1</setPoint></myclimate>
Set Fan Only Mode
<myclimate><post>postzoneinfo</post><zoneList>Common</zoneList><system>on</system><type>evap</type><mode>fan</mode><setPoint>15</setPoint><fanSpeed>1</fanSpeed></myclimate>
Set Boost Mode
<myclimate><post>postzoneinfo</post><zoneList>Common</zoneList><system>on</system><type>evap</type><mode>boost</mode><setPoint>15</setPoint><fanSpeed>1</fanSpeed></myclimate>
Delete Lock (when finished controlling unit)
curl -H "X-Authentication-Key: 12345678901234567890123456789012" -H "User-Agent: Dalvik/2.1.0 (Linux; U; Android 5.0.2; SM-P900 Build/LRX22G)" -H "Connection: Keep-Alive" -H "Accept-Encoding: gzip" -X DELETE https://myclimate.bonaire.com.au/Api/Lock