<?xml version="1.0" encoding="utf-8"?>
<Templates format="2" protocolVersion="70">
  <Template id="6aa492d4-4434-4125-9491-c60f0888dc64" revision="1.0">
    <SuggestedCCUParameters>
      <UseAsciiCommunication>False</UseAsciiCommunication>
      <StopBits>One</StopBits>
      <DataBits>8</DataBits>
      <Parity>None</Parity>
      <Baudrate>9600</Baudrate>
      <DelayBetweenRequests>-1</DelayBetweenRequests>
      <ReadWriteTimeout>1000</ReadWriteTimeout>
    </SuggestedCCUParameters>
    <ImportParameters>
      <Parameter>
        <Id>SlaveId</Id>
        <Name>Slave Id</Name>
        <Value>1</Value>
      </Parameter>
      <Parameter>
        <Id>IpAddress</Id>
        <Name>IP address</Name>
        <Value>192.168.1.0</Value>
      </Parameter>
    </ImportParameters>
    <RevisionHistory>
      <Revision id="1.0">Initial version</Revision>
    </RevisionHistory>
    <Name>LG ThermaV</Name>
    <CcuModel>ModbusRtuCCU</CcuModel>
    <Producer></Producer>
    <Model></Model>
    <Description></Description>
    <Category>2</Category>
    <Module>
      <Name>LG ThermaV</Name>
      <Id>-1</Id>
      <Model>ModbusModule</Model>
      <DeviceProperties>
        <DeviceType>7001</DeviceType>
        <InternalPollInterval>30000</InternalPollInterval>
        <PrefetchModeId>0</PrefetchModeId>
        <SlaveId>$[SlaveId]</SlaveId>
        <MaxPrefetchGroupSize>100</MaxPrefetchGroupSize>
        <IpAddress>$[IpAddress]</IpAddress>
      </DeviceProperties>
      <Devices>
        <Device>
          <Name>Heating &amp; Cooling mode</Name>
          <Model>ModbusMultiValueSwitch</Model>
          <Id>-2</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>2500</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas></ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables />
            <Value0Index>0</Value0Index>
            <Value1Index>1</Value1Index>
            <Value2Index>2</Value2Index>
            <Value3Index>3</Value3Index>
            <Value4Index>68</Value4Index>
            <Value5Index>69</Value5Index>
            <Value6Index>70</Value6Index>
            <Value7Index>71</Value7Index>
            <Value8Index>72</Value8Index>
            <Value9Index>73</Value9Index>
            <Value0Name>Off</Value0Name>
            <Value1Name>Auto</Value1Name>
            <Value2Name>Heating</Value2Name>
            <Value3Name>Cooling</Value3Name>
            <Value4Name>Heating</Value4Name>
            <Value5Name>5</Value5Name>
            <Value6Name>6</Value6Name>
            <Value7Name>7</Value7Name>
            <Value8Name>8</Value8Name>
            <Value9Name>9</Value9Name>
            <Value0IconId>4</Value0IconId>
            <Value1IconId>3</Value1IconId>
            <Value2IconId>1</Value2IconId>
            <Value3IconId>2</Value3IconId>
            <Value4IconId>9</Value4IconId>
            <Value5IconId>10</Value5IconId>
            <Value6IconId>11</Value6IconId>
            <Value7IconId>12</Value7IconId>
            <Value8IconId>13</Value8IconId>
            <Value9IconId>14</Value9IconId>
            <OffStateValue>0</OffStateValue>
            <ReadSwitchState>var operate := MODBUSR(C, 0, Bool);
var operateMode := MODBUSR(H, 0, Int16);

if operate = 0
    return(0); # off
else
    if operateMode = 3 
        return(1); # auto
    elseif operateMode = 4 
        return(2); # heating
    elseif operateMode = 0 
        return(3); # cooling
    else
        return(NaN);
    end
end</ReadSwitchState>
            <WriteSwitchState>var operate := MODBUSR(C, 0, Bool);
var operateMode := Mu;

if operate = 0 and operateMode &gt; 0
    MODBUSW(C, 0, Bool, 1); # turn on
end

if operateMode = 0
    MODBUSW(C, 0, Bool, 0); # off
elseif operateMode = 1 
    MODBUSW(H, 0, Int16, 3); # auto
elseif operateMode = 2 
    MODBUSW(H, 0, Int16, 4); # heating
elseif operateMode = 3 
    MODBUSW(H, 0, Int16, 0); # cooling
else
    # magic happened
end
</WriteSwitchState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Hot watter</Name>
          <Model>ModbusSwitch</Model>
          <Id>-3</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>2500</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas></ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables />
            <NegateState>False</NegateState>
            <OnStateIconId>60</OnStateIconId>
            <OffStateIconId>61</OffStateIconId>
            <OnStateName>${general_on}</OnStateName>
            <OffStateName>${general_off}</OffStateName>
            <ReadSwitchState>MODBUSR(C, 1, Bool)</ReadSwitchState>
            <WriteSwitchState>MODBUSW(C, 1, Bool, St)</WriteSwitchState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Pipe in temperature</Name>
          <Model>ModbusTemperatureSensor</Model>
          <Id>-4</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>2500</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas></ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables />
            <TemperatureCalibration>0</TemperatureCalibration>
            <ReadTemperature>MODBUSR(A, 3, Int16)/10</ReadTemperature>
            <ReadHumidity></ReadHumidity>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Pipe out temperature</Name>
          <Model>ModbusTemperatureSensor</Model>
          <Id>-5</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>2500</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas></ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables />
            <TemperatureCalibration>0</TemperatureCalibration>
            <ReadTemperature>MODBUSR(A, 4, Int16)/10</ReadTemperature>
            <ReadHumidity></ReadHumidity>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Room temperature</Name>
          <Model>ModbusTemperatureSensor</Model>
          <Id>-6</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>15000</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas></ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables />
            <TemperatureCalibration>0</TemperatureCalibration>
            <ReadTemperature>MODBUSR(A, 2, Int16)/10</ReadTemperature>
            <ReadHumidity></ReadHumidity>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Sanitary tank temperature</Name>
          <Model>ModbusTemperatureSensor</Model>
          <Id>-7</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>2500</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas></ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables />
            <TemperatureCalibration>0</TemperatureCalibration>
            <ReadTemperature>MODBUSR(A, 5, Int16)/10</ReadTemperature>
            <ReadHumidity></ReadHumidity>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Solar temperature</Name>
          <Model>ModbusTemperatureSensor</Model>
          <Id>-8</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>15000</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas></ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables />
            <TemperatureCalibration>0</TemperatureCalibration>
            <ReadTemperature>MODBUSR(A, 6, Int16)/10</ReadTemperature>
            <ReadHumidity></ReadHumidity>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Target heating/cooling temperature</Name>
          <Model>ModbusVariable</Model>
          <Id>-9</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <SerializedValueLogTypeConversions>{"5":"{\u0022ValueLogTypeConversionTypeId\u0022:3,\u0022SerializedValueLogTypeConversion\u0022:\u0022{\\u0022Value1OnInput\\u0022:0,\\u0022Value1OnOutput\\u0022:0,\\u0022Value2OnInput\\u0022:1,\\u0022Value2OnOutput\\u0022:1,\\u0022SourceValueLogTypes\\u0022:[62],\\u0022TargetValueLogType\\u0022:5}\u0022}"}</SerializedValueLogTypeConversions>
            <InternalPollInterval>2500</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas>[]</ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables />
            <IsReadOnly>False</IsReadOnly>
            <ReadState>MODBUSR(H, 2, Int16)/10</ReadState>
            <WriteState>MODBUSW(H, 2, Int16, Va * 10)</WriteState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Target hot water temperature</Name>
          <Model>ModbusVariable</Model>
          <Id>-10</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <SerializedValueLogTypeConversions>{"5":"{\u0022ValueLogTypeConversionTypeId\u0022:3,\u0022SerializedValueLogTypeConversion\u0022:\u0022{\\u0022Value1OnInput\\u0022:0,\\u0022Value1OnOutput\\u0022:0,\\u0022Value2OnInput\\u0022:1,\\u0022Value2OnOutput\\u0022:1,\\u0022SourceValueLogTypes\\u0022:[62],\\u0022TargetValueLogType\\u0022:5}\u0022}"}</SerializedValueLogTypeConversions>
            <InternalPollInterval>2500</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas></ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables />
            <IsReadOnly>False</IsReadOnly>
            <ReadState>MODBUSR(H, 1, Int16)/10</ReadState>
            <WriteState>MODBUSW(H, 1, Int16, Va * 10)</WriteState>
          </DeviceProperties>
        </Device>
      </Devices>
    </Module>
  </Template>
</Templates>
