﻿<?xml version="1.0" encoding="utf-8"?>
<Templates format="2" protocolVersion="73" >
  <Template revision="1.0" id="23d7e0ac-7e75-4d94-b25f-bd469b9744d1">
    <SuggestedCCUParameters>
      <UseAsciiCommunication>False</UseAsciiCommunication>
      <StopBits>One</StopBits>
      <DataBits>8</DataBits>
      <Parity>Even</Parity>
      <Baudrate>9600</Baudrate>
      <DelayBetweenRequests>-1</DelayBetweenRequests>
      <ReadWriteTimeout>200</ReadWriteTimeout>
    </SuggestedCCUParameters>
    <ImportParameters>
      <Parameter>
        <Id>SlaveId</Id>
        <Name>${device_SlaveId}</Name>
        <Value>1</Value>
      </Parameter>
      <Parameter>
        <Id>IpAddress</Id>
        <Name>${ipAddress}</Name>
        <Value>192.168.1.0</Value>
      </Parameter>
    </ImportParameters>
    <RevisionHistory>
      <Revision id="1.0">Initial version</Revision>
    </RevisionHistory>
    <Name>Daikin DTA</Name>
    <CcuModel>ModbusRtuCCU</CcuModel>
    <Producer></Producer>
    <Model></Model>
    <Description></Description>
    <Module>
      <Name>Daikin DTA</Name>
      <Id>-1</Id>
      <Model>ModbusModule</Model>
      <DeviceProperties>
        <DeviceType>7001</DeviceType>
        <InternalPollInterval>1000</InternalPollInterval>
        <ReadScript>IF(GETBIT(MODBUSR(A, 6, Uint16),0) = 1, ADDERROR("Communication Error with device 1"));
IF(GETBIT(MODBUSR(A, 6, Uint16),1) = 1, ADDERROR("Communication Error with device 2"));
IF(GETBIT(MODBUSR(A, 6, Uint16),2) = 1, ADDERROR("Communication Error with device 3"));
IF(GETBIT(MODBUSR(A, 6, Uint16),3) = 1, ADDERROR("Communication Error with device 4"));
IF(GETBIT(MODBUSR(A, 6, Uint16),4) = 1, ADDERROR("Communication Error with device 5"));
IF(GETBIT(MODBUSR(A, 6, Uint16),5) = 1, ADDERROR("Communication Error with device 6"));
IF(GETBIT(MODBUSR(A, 6, Uint16),6) = 1, ADDERROR("Communication Error with device 7"));
IF(GETBIT(MODBUSR(A, 6, Uint16),7) = 1, ADDERROR("Communication Error with device 8"));
IF(GETBIT(MODBUSR(A, 6, Uint16),8) = 1, ADDERROR("Communication Error with device 9"));
IF(GETBIT(MODBUSR(A, 6, Uint16),9) = 1, ADDERROR("Communication Error with device 10"));
IF(GETBIT(MODBUSR(A, 6, Uint16),10) = 1, ADDERROR("Communication Error with device 11"));
IF(GETBIT(MODBUSR(A, 6, Uint16),11) = 1, ADDERROR("Communication Error with device 12"));
IF(GETBIT(MODBUSR(A, 6, Uint16), 12) = 1, ADDERROR("Communication Error with device 13"));
IF(GETBIT(MODBUSR(A, 6, Uint16),13) = 1, ADDERROR("Communication Error with device 14"));
IF(GETBIT(MODBUSR(A, 6, Uint16),14) = 1, ADDERROR("Communication Error with device 15"));
IF(GETBIT(MODBUSR(A, 6, Uint16),15) = 1, ADDERROR("Communication Error with device 16"));</ReadScript>
        <PrefetchModeId>0</PrefetchModeId>
        <ServiceAttributesFormulas>[{"AttributeDefinition":{"Name":"Adaptor status"},"ReadFormula":"SWITCH(MODBUSR(A, 0, Bool), 1, \u0022Ready\u0022, 0, \u0022Not ready\u0022, \u0022Error\u0022)"},{"AttributeDefinition":{"Name":"Cooling Mode capability"},"ReadFormula":"SWITCH(GETBIT(MODBUSR(A, 997 \u002B (3*DeviceNumber), Uint16), 1), 0, \u0022Not exist\u0022, 1, \u0022Exist\u0022, \u0022Error\u0022);"},{"AttributeDefinition":{"Name":"Fan mode capability"},"ReadFormula":"SWITCH(GETBIT(MODBUSR(A, 997 \u002B (3*DeviceNumber), Uint16), 0), 0, \u0022Not exist\u0022, 1, \u0022Exist\u0022, \u0022Error\u0022);"},{"AttributeDefinition":{"Name":"Indoor unit (1)"},"ReadFormula":"SWITCH(GETBIT(MODBUSR(A, 1, Uint16),0), 0, \u0022Unconnected\u0022, 1, \u0022Connected\u0022, \u0022Error\u0022);"},{"AttributeDefinition":{"Name":"Indoor unit (2)"},"ReadFormula":"SWITCH(GETBIT(MODBUSR(A, 1, Uint16),1), 0, \u0022Unconnected\u0022, 1, \u0022Connected\u0022, \u0022Error\u0022);"},{"AttributeDefinition":{"Name":"Indoor unit (3)"},"ReadFormula":"SWITCH(GETBIT(MODBUSR(A, 1, Uint16),2), 0, \u0022Unconnected\u0022, 1, \u0022Connected\u0022, \u0022Error\u0022);"},{"AttributeDefinition":{"Name":"Indoor unit (4)"},"ReadFormula":"SWITCH(GETBIT(MODBUSR(A, 1, Uint16),3), 0, \u0022Unconnected\u0022, 1, \u0022Connected\u0022, \u0022Error\u0022);"},{"AttributeDefinition":{"Name":"Indoor unit (5)"},"ReadFormula":"SWITCH(GETBIT(MODBUSR(A, 1, Uint16),4), 0, \u0022Unconnected\u0022, 1, \u0022Connected\u0022, \u0022Error\u0022);"},{"AttributeDefinition":{"Name":"Indoor unit (6)"},"ReadFormula":"SWITCH(GETBIT(MODBUSR(A, 1, Uint16),5), 0, \u0022Unconnected\u0022, 1, \u0022Connected\u0022, \u0022Error\u0022);"},{"AttributeDefinition":{"Name":"Indoor unit (7)"},"ReadFormula":"SWITCH(GETBIT(MODBUSR(A, 1, Uint16),6), 0, \u0022Unconnected\u0022, 1, \u0022Connected\u0022, \u0022Error\u0022);"},{"AttributeDefinition":{"Name":"Indoor unit (8)"},"ReadFormula":"SWITCH(GETBIT(MODBUSR(A, 1, Uint16),7), 0, \u0022Unconnected\u0022, 1, \u0022Connected\u0022, \u0022Error\u0022);"},{"AttributeDefinition":{"Name":"Indoor unit (9)"},"ReadFormula":"SWITCH(GETBIT(MODBUSR(A, 1, Uint16),8), 0, \u0022Unconnected\u0022, 1, \u0022Connected\u0022, \u0022Error\u0022);"},{"AttributeDefinition":{"Name":"Indoor unit (10)"},"ReadFormula":"SWITCH(GETBIT(MODBUSR(A, 1, Uint16),9), 0, \u0022Unconnected\u0022, 1, \u0022Connected\u0022, \u0022Error\u0022);"},{"AttributeDefinition":{"Name":"Indoor unit (11)"},"ReadFormula":"SWITCH(GETBIT(MODBUSR(A, 1, Uint16),10), 0, \u0022Unconnected\u0022, 1, \u0022Connected\u0022, \u0022Error\u0022);"},{"AttributeDefinition":{"Name":"Indoor unit (12)"},"ReadFormula":"SWITCH(GETBIT(MODBUSR(A, 1, Uint16),11), 0, \u0022Unconnected\u0022, 1, \u0022Connected\u0022, \u0022Error\u0022);"},{"AttributeDefinition":{"Name":"Indoor unit (13)"},"ReadFormula":"SWITCH(GETBIT(MODBUSR(A, 1, Uint16),12), 0, \u0022Unconnected\u0022, 1, \u0022Connected\u0022, \u0022Error\u0022);"},{"AttributeDefinition":{"Name":"Indoor unit (14)"},"ReadFormula":"SWITCH(GETBIT(MODBUSR(A, 1, Uint16),13), 0, \u0022Unconnected\u0022, 1, \u0022Connected\u0022, \u0022Error\u0022);"},{"AttributeDefinition":{"Name":"Indoor unit (15)"},"ReadFormula":"SWITCH(GETBIT(MODBUSR(A, 1, Uint16),14), 0, \u0022Unconnected\u0022, 1, \u0022Connected\u0022, \u0022Error\u0022);"},{"AttributeDefinition":{"Name":"Indoor unit (16)"},"ReadFormula":"SWITCH(GETBIT(MODBUSR(A, 1, Uint16),15), 0, \u0022Unconnected\u0022, 1, \u0022Connected\u0022, \u0022Error\u0022);"}]</ServiceAttributesFormulas>
        <SlaveId>$[SlaveId]</SlaveId>
        <ModuleVariables>[{"Name":"DeviceNumber","ValueTypeId":1,"NumericValue":2,"StringValue":"3"}]</ModuleVariables>
        <MaxPrefetchGroupSize>10</MaxPrefetchGroupSize>
        <IpAddress>$[IpAddress]</IpAddress>
      </DeviceProperties>
      <Devices>
        <Device>
          <Name>Fan Direction</Name>
          <Model>ModbusMultiValueSwitch</Model>
          <Id>-2</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>1000</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>69</Value5Index>
            <Value6Index>6</Value6Index>
            <Value7Index>7</Value7Index>
            <Value8Index>72</Value8Index>
            <Value9Index>73</Value9Index>
            <Value0Name>P0</Value0Name>
            <Value1Name>P1</Value1Name>
            <Value2Name>P2</Value2Name>
            <Value3Name>P3</Value3Name>
            <Value4Name>P4</Value4Name>
            <Value5Name>5</Value5Name>
            <Value6Name>STOP</Value6Name>
            <Value7Name>Swing</Value7Name>
            <Value8Name>8</Value8Name>
            <Value9Name>9</Value9Name>
            <Value0IconId>131</Value0IconId>
            <Value1IconId>133</Value1IconId>
            <Value2IconId>134</Value2IconId>
            <Value3IconId>135</Value3IconId>
            <Value4IconId>137</Value4IconId>
            <Value5IconId>10</Value5IconId>
            <Value6IconId>19</Value6IconId>
            <Value7IconId>140</Value7IconId>
            <Value8IconId>13</Value8IconId>
            <Value9IconId>14</Value9IconId>
            <OffStateValue>0</OffStateValue>
            <ReadSwitchState>GETBITS(MODBUSR(H, 1997 + (DeviceNumber*3), UInt16), 8,3);</ReadSwitchState>
            <WriteSwitchState>var reg := MODBUSR(H, 1997 + (DeviceNumber*3), UInt16);
MODBUSW(H, 1997 + (DeviceNumber*3), UInt16, SETBITS(reg,4,4, 6));
reg := MODBUSR(H, 1997 + (DeviceNumber*3), UInt16);
MODBUSW(H, 1997 + (DeviceNumber*3), UInt16, SETBITS(reg,8,3, Mu));
</WriteSwitchState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Fan Volume</Name>
          <Model>ModbusMultiValueSwitch</Model>
          <Id>-3</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>1000</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas></ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables></CustomDeviceVariables>
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <Value0Index>0</Value0Index>
            <Value1Index>1</Value1Index>
            <Value2Index>66</Value2Index>
            <Value3Index>3</Value3Index>
            <Value4Index>68</Value4Index>
            <Value5Index>5</Value5Index>
            <Value6Index>70</Value6Index>
            <Value7Index>71</Value7Index>
            <Value8Index>72</Value8Index>
            <Value9Index>73</Value9Index>
            <Value0Name>Not capable</Value0Name>
            <Value1Name>Low</Value1Name>
            <Value2Name>2</Value2Name>
            <Value3Name>Medium</Value3Name>
            <Value4Name>4</Value4Name>
            <Value5Name>High</Value5Name>
            <Value6Name>6</Value6Name>
            <Value7Name>7</Value7Name>
            <Value8Name>8</Value8Name>
            <Value9Name>9</Value9Name>
            <Value0IconId>116</Value0IconId>
            <Value1IconId>21</Value1IconId>
            <Value2IconId>7</Value2IconId>
            <Value3IconId>22</Value3IconId>
            <Value4IconId>9</Value4IconId>
            <Value5IconId>23</Value5IconId>
            <Value6IconId>11</Value6IconId>
            <Value7IconId>12</Value7IconId>
            <Value8IconId>13</Value8IconId>
            <Value9IconId>14</Value9IconId>
            <OffStateValue>-1</OffStateValue>
            <ReadSwitchState>GETBITS(MODBUSR(H, 1997 + (DeviceNumber*3), Int16), 12, 3);
</ReadSwitchState>
            <WriteSwitchState>var reg := MODBUSR(H, 1997 + (DeviceNumber*3), UInt16);
MODBUSW(H, 1997 + (DeviceNumber*3), UInt16, SETBITS(reg,4,4, 6));
reg := MODBUSR(H, 1997 + (DeviceNumber*3), UInt16);
MODBUSW(H, 1997 + (DeviceNumber*3), UInt16, SETBITS(reg,12,3, Mu));</WriteSwitchState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Operation Mode</Name>
          <Model>ModbusMultiValueSwitch</Model>
          <Id>-4</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>1000</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>68</Value4Index>
            <Value5Index>69</Value5Index>
            <Value6Index>6</Value6Index>
            <Value7Index>7</Value7Index>
            <Value8Index>72</Value8Index>
            <Value9Index>73</Value9Index>
            <Value0Name>Fan</Value0Name>
            <Value1Name>Heating</Value1Name>
            <Value2Name>Cooling</Value2Name>
            <Value3Name>Auto</Value3Name>
            <Value4Name>4</Value4Name>
            <Value5Name>5</Value5Name>
            <Value6Name>Setpoint</Value6Name>
            <Value7Name>Dry</Value7Name>
            <Value8Name>8</Value8Name>
            <Value9Name>9</Value9Name>
            <Value0IconId>23</Value0IconId>
            <Value1IconId>1</Value1IconId>
            <Value2IconId>2</Value2IconId>
            <Value3IconId>113</Value3IconId>
            <Value4IconId>9</Value4IconId>
            <Value5IconId>10</Value5IconId>
            <Value6IconId>39</Value6IconId>
            <Value7IconId>123</Value7IconId>
            <Value8IconId>13</Value8IconId>
            <Value9IconId>14</Value9IconId>
            <OffStateValue>0</OffStateValue>
            <ReadSwitchState>GETBITS(MODBUSR(H, 1998+(DeviceNumber*3), Int16), 0, 4)</ReadSwitchState>
            <WriteSwitchState>var reg :=MODBUSR(H, 1998+(DeviceNumber*3), UInt16);
MODBUSW(H, 1998+(DeviceNumber*3), UInt16, SETBITS(reg, 0, 4, mu));
</WriteSwitchState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Switch On/OFF</Name>
          <Model>ModbusSwitch</Model>
          <Id>-5</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>1000</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>GETBIT(MODBUSR(H, 1997 + (DeviceNumber*3), UInt16), 0);</ReadSwitchState>
            <WriteSwitchState>var reg := MODBUSR(H, 1997 + (DeviceNumber*3), UInt16);
MODBUSW(H, 1997 + (DeviceNumber*3), UInt16, SETBIT(reg,0,St));
</WriteSwitchState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Thermostat</Name>
          <Model>ModbusThermostat</Model>
          <Id>-6</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>1000</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas></ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables></CustomDeviceVariables>
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <MinTemperature>16</MinTemperature>
            <MaxTemperature>30</MaxTemperature>
            <ReadCurrentTemperature>MODBUSR(A, 1998 + (6*DeviceNumber), Int16) / 10</ReadCurrentTemperature>
            <ReadDesiredTemperature>MODBUSR(H, 1999+(3*DeviceNumber), Int16)/10</ReadDesiredTemperature>
            <WriteDesiredTemperature>MODBUSW(H, 1999 + (DeviceNumber*3), Int16, Se*10);</WriteDesiredTemperature>
            <ReadHumidity></ReadHumidity>
          </DeviceProperties>
        </Device>
      </Devices>
    </Module>
  </Template>
</Templates>