Add MyAir3 to advantage_air integration

The current integration does not support the MyAir3 system which uses an older tablet than the current supported systems, here are a list of working commands to control the older system (still relies on having a static ip on the controller):

#Authenticate

curl -s -m 20 -H "Accept: application/xml" -X GET http://192.168.10.20/login\?password\=password | xmllint --xpath "/iZS10.3/authenticated/text()" -

#Get System Data

curl -s -m 20 -H "Accept: application/xml" -X GET http://192.168.10.20/getSystemData | xmllint --format -

Example:

<?xml version="1.0" encoding="UTF-8"?>
<iZS10.3>
  <request>getSystemData</request>
  <mac>0004a38f3a1a</mac>
  <authenticated>1</authenticated>
  <system>
    <type>12</type>
    <name>HOME</name>
    <MyAppRev>7.4</MyAppRev>
    <zoneStationHasUnitControl>1</zoneStationHasUnitControl>
    <dhcp>1</dhcp>
    <ip>192.168.10.20</ip>
    <netmask>255.255.255.0</netmask>
    <gateway>192.168.10.1</gateway>
    <unitcontrol>
      <airconOnOff>1</airconOnOff>
      <fanSpeed>2</fanSpeed>
      <mode>3</mode>
      <unitControlTempsSetting>0</unitControlTempsSetting>
      <centralActualTemp>25.6</centralActualTemp>
      <centralDesiredTemp>23.0</centralDesiredTemp>
      <airConErrorCode>    </airConErrorCode>
      <activationCodeStatus>0</activationCodeStatus>
      <numberOfZones>7</numberOfZones>
      <maxUserTemp>32.0</maxUserTemp>
      <minUserTemp>16.0</minUserTemp>
      <availableSchedules>8</availableSchedules>
    </unitcontrol>
    <zs103TechSettings>
      <numberofConstantZones>1</numberofConstantZones>
      <zsConstantZone1>1</zsConstantZone1>
      <zsConstantZone2>0</zsConstantZone2>
      <zsConstantZone3>0</zsConstantZone3>
      <tempSensorSelect>0</tempSensorSelect>
      <returnAirOffset>0.0</returnAirOffset>
      <controlZoneNumber>0</controlZoneNumber>
      <newAirFitted>0</newAirFitted>
      <ACinfo>1</ACinfo>
      <systemID>16</systemID>
    </zs103TechSettings>
  </system>
</iZS10.3>

#Get Specific Zone by Number

curl -s -m 20 -H "Accept: application/xml" -X GET http://192.168.10.20/getZoneData?zone=1 | xmllint --format -

Example:

<?xml version="1.0" encoding="UTF-8"?>
<iZS10.3>
  <request>getZoneData</request>
  <mac>0004a38f3a1a</mac>
  <authenticated>1</authenticated>
  <zone1>
    <name>KITCHEN</name>
    <setting>0</setting>
    <userPercentSetting>100</userPercentSetting>
    <maxDamper>100</maxDamper>
    <minDamper>0</minDamper>
    <userPercentAvail>1</userPercentAvail>
    <actualTemp>0.0</actualTemp>
    <desiredTemp>24.0</desiredTemp>
    <RFstrength>0</RFstrength>
    <hasLowBatt>0</hasLowBatt>
    <hasMotorError>0</hasMotorError>
    <hasClimateControl>0</hasClimateControl>
  </zone1>
</iZS10.3>

#On

curl -s -m 20 -H "Accept: application/xml" -X GET http://192.168.10.20/setSystemData?airconOnOff=1 | xmllint --xpath "/iZS10.3/ack/text()" -

#Off

curl -s -m 20 -H "Accept: application/xml" -X GET http://192.168.10.20/setSystemData?airconOnOff=0 | xmllint --xpath "/iZS10.3/ack/text()" -

fan Speed LOW

curl -s -m 20 -H "Accept: application/xml" -X GET http://192.168.10.20/setSystemData?fanSpeed=1 | xmllint --xpath "/iZS10.3/ack/text()" -

fan Speed MED

curl -s -m 20 -H "Accept: application/xml" -X GET http://192.168.10.20/setSystemData?fanSpeed=2 | xmllint --xpath "/iZS10.3/ack/text()" -

fan Speed HIGH

curl -s -m 20 -H "Accept: application/xml" -X GET http://192.168.10.20/setSystemData?fanSpeed=3 | xmllint --xpath "/iZS10.3/ack/text()" -

#Mode COOL

curl -s -m 20 -H "Accept: application/xml" -X GET http://192.168.10.20/setSystemData?mode=1 | xmllint --xpath "/iZS10.3/ack/text()" -

#Mode HEAT

curl -s -m 20 -H "Accept: application/xml" -X GET http://192.168.10.20/setSystemData?mode=2 | xmllint --xpath "/iZS10.3/ack/text()" -

#Mode FAN

curl -s -m 20 -H "Accept: application/xml" -X GET http://192.168.10.20/setSystemData?mode=3 | xmllint --xpath "/iZS10.3/ack/text()" -

#Temperature for HEAT / COOL

curl -s -m 20 -H "Accept: application/xml" -X GET http://192.168.10.20/setSystemData?centralDesiredTemp=24.0 | xmllint --xpath "/iZS10.3/ack/text()" -

#Enable Zone 1

curl -s -m 20 -H "Accept: application/xml" -X GET http://192.168.10.20/setZoneData?zone=1&zoneSetting=1 | xmllint --xpath "/iZS10.3/ack/text()" -

#Disable Zone 1

curl -s -m 20 -H "Accept: application/xml" -X GET http://192.168.10.20/setZoneData?zone=1&zoneSetting=0 | xmllint --xpath "/iZS10.3/ack/text()" -

#Enable Zone 1 and set Percentage to 50%

curl -s -m 20 -H "Accept: application/xml" -X GET http://192.168.10.20/setZoneData?zone=1&zoneSetting=1&userPercentSetting=50 | xmllint --xpath "/iZS10.3/ack/text()" -

#Disable Zone 1 and set Percentage to 50%

curl -s -m 20 -H "Accept: application/xml" -X GET http://192.168.10.20/setZoneData?zone=1&zoneSetting=0&userPercentSetting=50 | xmllint --xpath "/iZS10.3/ack/text()" -

#Set Timer (clock time to stop, e.g. if it’s 10pm and you want to stop in 1 hour and ```
30 minutes, set endTimeHours to 23 and endTimeMinutes to 30
curl -s -m 20 -H “Accept: application/xml” -X GET http://192.168.10.20/setZoneTimer?startTimeHours=0&startTimeMinutes=0&endTimeHours=23&endTimeMinutes=30&scheduleStatus=2 | xmllint --xpath “/iZS10.3/ack/text()” -


#Clear Timer

curl -s -m 20 -H “Accept: application/xml” -X GET http://192.168.10.20/setZoneTimer?startTimeHours=0&startTimeMinutes=0&endTimeHours=0&endTimeMinutes=0&scheduleStatus=0 | xmllint --xpath “/iZS10.3/ack/text()” -


Discussions on this can be found on:
https://community.home-assistant.io/t/advantage-air-myair3-integration/498700