<?xml version="1.0" encoding="utf-8"?>
<Templates format="2" protocolVersion="73">
 <Template id="78a0b452-e3ff-46e8-bf7c-5e18785c094b" revision="1.0">
    <Name>Gree_AC</Name>
    <CcuModel>ModbusTcpCCU</CcuModel>
    <Producer>Gree</Producer>
    <Model>U-Match</Model>
    <Category>3</Category>
    <Description>U-Match</Description>
    <RevisionHistory>
      <Revision id="1.0">Initial version</Revision>
    </RevisionHistory>
    <ImportParameters>
      <Parameter>
        <Name>${device_SlaveId}</Name>
        <Value>1</Value>
        <Id>SlaveId</Id>
      </Parameter>
      <Parameter>
        <Name>${ipAddress}</Name>
        <Value>192.168.0.1</Value>
        <Id>IpAddress</Id>
      </Parameter>
    </ImportParameters>
    <RevisionHistory>
      <Revision id="1.0">Initial version</Revision>
    </RevisionHistory>
    <Name>Gree_AC</Name>
    <CcuModel>ModbusRtuCCU</CcuModel>
    <Producer></Producer>
    <Model></Model>
    <Description></Description>
    <Module>
      <Name>Gree_AC</Name>
      <Id>-1</Id>
      <Model>ModbusModule</Model>
      <DeviceProperties>
        <DeviceType>7001</DeviceType>
        <InternalPollInterval>30000</InternalPollInterval>
        <PrefetchModeId>0</PrefetchModeId>
        <ServiceAttributesFormulas>[{"AttributeDefinition":{"Name":"IDU Addr."},"ReadFormula":"modbusr(H,5,uint16)"},{"AttributeDefinition":{"Name":"Fresh air valve status"},"ReadFormula":"modbusr(H,24,uint16)"},{"AttributeDefinition":{"Name":"Sleep mode"},"ReadFormula":"modbusr(H,25,uint16)"},{"AttributeDefinition":{"Name":"Contamination grade"},"ReadFormula":"modbusr(H,34,uint16)"},{"AttributeDefinition":{"Name":"Selection of ambient temp sensor"},"ReadFormula":"modbusr(h,39,uint16)"},{"AttributeDefinition":{"Name":"DRED function"},"ReadFormula":"modbusr(h,77,uint16)"},{"AttributeDefinition":{"Name":"Ambient temp at the port of air return"},"ReadFormula":"modbusr(h,82,int16)*10"},{"AttributeDefinition":{"Name":"Ambient temp of light board"},"ReadFormula":"modbusr(h,83,int16)*10"},{"AttributeDefinition":{"Name":"Up \u0026 down swing"},"ReadFormula":"modbusr(h,22,uint16)"},{"AttributeDefinition":{"Name":"Left \u0026 right swing"},"ReadFormula":"modbusr(h,23,uint16)"}]</ServiceAttributesFormulas>
        <ServiceActionsScripts>[{"ActionDefinition":{"Name":"Set up \u0026 down swing","NumericParameters":[{"FriendlyName":"value","Abbreviation":"val","IsFloat":false,"MinValue":0,"MaxValue":11}],"BoolParameters":[],"EnumParameters":[]},"Script":"modbusw(h,22, uint16, switch(val, 1, \u00220001\u0022,\r\n2,\u00220010\u0022,\r\n3, \u00220011\u0022,\r\n4,\u00220100\u0022,\r\n5, \u00220101\u0022,\r\n6, \u00220110\u0022,\r\n7,\u00220111\u0022,\r\n8,\u00221000\u0022,\r\n9, \u00221001\u0022,\r\n10, \u00221010\u0022,\r\n11, \u00221011\u0022,\r\n\u00220000\u0022))"},{"ActionDefinition":{"Name":"Set left \u0026 right swing","NumericParameters":[{"FriendlyName":"value","Abbreviation":"val","IsFloat":false,"MinValue":0,"MaxValue":8}],"BoolParameters":[],"EnumParameters":[]},"Script":"modbusw(h,22, uint16, switch(val, 1, \u00220001\u0022,\r\n2,\u00220010\u0022,\r\n3, \u00220011\u0022,\r\n4,\u00220100\u0022,\r\n5, \u00220101\u0022,\r\n6, \u00220110\u0022,\r\n7,\u00221100\u0022,\r\n8,\u00221101\u0022,\r\n\u00220000\u0022))"}]</ServiceActionsScripts>
        <SlaveId>$[SlaveId]</SlaveId>
        <MaxPrefetchGroupSize>100</MaxPrefetchGroupSize>
        <IpAddress>$[IpAddress]</IpAddress>
      </DeviceProperties>
      <Devices>
        <Device>
          <Name>Ambient temperature</Name>
          <Model>ModbusTemperatureSensor</Model>
          <Id>-2</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>15000</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas></ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables></CustomDeviceVariables>
            <TemperatureCalibration>0</TemperatureCalibration>
            <ReadTemperature>var v := MODBUSR(H, 4, UInt16);

if (GETBIT(v,15))
    RETURN ((-(V &amp; 0x7FFF))/10);
ELSE
    return(v/10);
END</ReadTemperature>
            <ReadHumidity></ReadHumidity>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>FAN Speed</Name>
          <Model>ModbusMultiValueSwitch</Model>
          <Id>-3</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>2500</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas></ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables></CustomDeviceVariables>
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <Value0Index>0</Value0Index>
            <Value1Index>1</Value1Index>
            <Value2Index>2</Value2Index>
            <Value3Index>3</Value3Index>
            <Value4Index>4</Value4Index>
            <Value5Index>5</Value5Index>
            <Value6Index>6</Value6Index>
            <Value7Index>71</Value7Index>
            <Value8Index>72</Value8Index>
            <Value9Index>73</Value9Index>
            <Value0Name>Auto</Value0Name>
            <Value1Name>Speed 1</Value1Name>
            <Value2Name>Speed 2</Value2Name>
            <Value3Name>Speed 3</Value3Name>
            <Value4Name>Speed 4</Value4Name>
            <Value5Name>Speed 5</Value5Name>
            <Value6Name>TURBO</Value6Name>
            <Value7Name>7</Value7Name>
            <Value8Name>8</Value8Name>
            <Value9Name>9</Value9Name>
            <Value0IconId>117</Value0IconId>
            <Value1IconId>25</Value1IconId>
            <Value2IconId>26</Value2IconId>
            <Value3IconId>26</Value3IconId>
            <Value4IconId>27</Value4IconId>
            <Value5IconId>28</Value5IconId>
            <Value6IconId>28</Value6IconId>
            <Value7IconId>12</Value7IconId>
            <Value8IconId>13</Value8IconId>
            <Value9IconId>14</Value9IconId>
            <OffStateValue>0</OffStateValue>
            <ReadSwitchState>MODBUSR(H, 19, UInt16)</ReadSwitchState>
            <WriteSwitchState>MODBUSWNE(H, 19, UInt16, Mu)</WriteSwitchState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Mode</Name>
          <Model>ModbusMultiValueSwitch</Model>
          <Id>-4</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>2500</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas></ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables></CustomDeviceVariables>
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <Value0Index>64</Value0Index>
            <Value1Index>1</Value1Index>
            <Value2Index>2</Value2Index>
            <Value3Index>3</Value3Index>
            <Value4Index>4</Value4Index>
            <Value5Index>5</Value5Index>
            <Value6Index>70</Value6Index>
            <Value7Index>71</Value7Index>
            <Value8Index>72</Value8Index>
            <Value9Index>73</Value9Index>
            <Value0Name>Cooling</Value0Name>
            <Value1Name>Cooling</Value1Name>
            <Value2Name>Heating</Value2Name>
            <Value3Name>Drying</Value3Name>
            <Value4Name>Fan only</Value4Name>
            <Value5Name>Auto mode</Value5Name>
            <Value6Name>6</Value6Name>
            <Value7Name>7</Value7Name>
            <Value8Name>8</Value8Name>
            <Value9Name>9</Value9Name>
            <Value0IconId>2</Value0IconId>
            <Value1IconId>2</Value1IconId>
            <Value2IconId>1</Value2IconId>
            <Value3IconId>119</Value3IconId>
            <Value4IconId>28</Value4IconId>
            <Value5IconId>113</Value5IconId>
            <Value6IconId>11</Value6IconId>
            <Value7IconId>12</Value7IconId>
            <Value8IconId>13</Value8IconId>
            <Value9IconId>14</Value9IconId>
            <OffStateValue>0</OffStateValue>
            <ReadSwitchState>MODBUSR(H, 17, UInt16)</ReadSwitchState>
            <WriteSwitchState>MODBUSWNE(H, 17, UInt16, Mu)</WriteSwitchState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Outdoor Temperature</Name>
          <Model>ModbusTemperatureSensor</Model>
          <Id>-5</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>15000</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas></ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables></CustomDeviceVariables>
            <TemperatureCalibration>0</TemperatureCalibration>
            <ReadTemperature>var v := MODBUSR(H, 49, Int16);

if (GETBIT(v,15))
    RETURN (-(V &amp; 0x7FFF));
ELSE
    return(v);
END</ReadTemperature>
            <ReadHumidity></ReadHumidity>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Swtich On/Off</Name>
          <Model>ModbusSwitch</Model>
          <Id>-6</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>1500</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas></ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables></CustomDeviceVariables>
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <NegateState>False</NegateState>
            <OnStateIconId>60</OnStateIconId>
            <OffStateIconId>61</OffStateIconId>
            <OnStateName>${general_on}</OnStateName>
            <OffStateName>${general_off}</OffStateName>
            <ReadSwitchState>SWITCH(MODBUSR(H, 2, UInt16), 85,0,170,1,0)</ReadSwitchState>
            <WriteSwitchState>MODBUSWNE(H, 2, UInt16, SWITCH(St, 0,85,1,170,85))</WriteSwitchState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Thermostat</Name>
          <Model>ModbusThermostat</Model>
          <Id>-7</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>2500</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas></ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables></CustomDeviceVariables>
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <MinTemperature>10</MinTemperature>
            <MaxTemperature>30</MaxTemperature>
            <ReadCurrentTemperature>MODBUSR(H, 4, UInt16) / 10</ReadCurrentTemperature>
            <ReadDesiredTemperature>MODBUSR(H, 20, UInt16)</ReadDesiredTemperature>
            <WriteDesiredTemperature>MODBUSWNE(H, 20, UInt16, Se)</WriteDesiredTemperature>
            <ReadHumidity></ReadHumidity>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>SWING HORIZONTALLY</Name>
          <Model>ModbusSwitch</Model>
          <Id>-8</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>5000</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas></ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables />
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <NegateState>False</NegateState>
            <OnStateIconId>138</OnStateIconId>
            <OffStateIconId>61</OffStateIconId>
            <OnStateName>SWING</OnStateName>
            <OffStateName>OFF</OffStateName>
            <ReadSwitchState>MODBUSR(H, 23, int16)</ReadSwitchState>
            <WriteSwitchState>MODBUSW(H, 23, int16, St)</WriteSwitchState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Swing VERTICALLY</Name>
          <Model>ModbusSwitch</Model>
          <Id>-9</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>5000</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas></ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables />
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <NegateState>False</NegateState>
            <OnStateIconId>181</OnStateIconId>
            <OffStateIconId>61</OffStateIconId>
            <OnStateName>SWING</OnStateName>
            <OffStateName>OFF</OffStateName>
            <ReadSwitchState>MODBUSR(H, 22, int16)</ReadSwitchState>
            <WriteSwitchState>MODBUSW(H, 22, int16, St)</WriteSwitchState>
          </DeviceProperties>
        </Device>        
      </Devices>
    </Module>
  </Template>
</Templates>