﻿<?xml version="1.0" encoding="utf-8"?>
<Templates format="2" protocolVersion="73">
  <Template id="385f7bac-f139-420a-a9c1-bef4a9b015fe" revision="1.0">
    <SuggestedCCUParameters>
      <TcpPort>502</TcpPort>
      <DelayBetweenRequests>-1</DelayBetweenRequests>
      <ReadWriteTimeout>1000</ReadWriteTimeout>
    </SuggestedCCUParameters>
    <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>Stiebel Eltron HPA-0</Name>
    <CcuModel>ModbusTcpCCU</CcuModel>
    <Producer>Stiebel Eltron</Producer>
    <Model>HPA-0</Model>
    <Description>Compatible with HPA-0 Serie Heat pumps (Air-Water)</Description>
    <Module>
      <Name>Stiebel Eltron HPA-0</Name>
      <Id>-1</Id>
      <Model>ModbusModule</Model>
      <DeviceProperties>
        <DeviceType>7001</DeviceType>
        <InternalPollInterval>30000</InternalPollInterval>
        <ReadScript>Reg2500:=MODBUSR(A, 2500, Int16);
Reg5001:=MODBUSR(A, 5001, Int16);
Reg2505:=MODBUSR(A, 2505, Int16);
If Reg5001=449
ContIdent:="WPMsystem";
ELSEif Reg5001=103
ContIdent:="LWZ Others";
ELSEIF Reg5001=104
ContIdent:="LWZ 304/404/504 SOL, 5/8 CS Premium";
ELSEIF Reg5001=390
ContIdent:="WPM 3";
ELSEIF Reg5001=391
ContIdent:="WPM 3i";
ELSE
ContIdent:="Unknown";
END
IF Reg2505=1
Defrost:="Initiated";
ELSE
Defrost:="Off";
END</ReadScript>
        <PrefetchModeId>0</PrefetchModeId>
        <ServiceAttributesFormulas>[{"AttributeDefinition":{"Name":"Controller Ident."},"ReadFormula":"ContIdent"},{"AttributeDefinition":{"Name":"Operating Status"}},{"AttributeDefinition":{"Name":"HC1 Pump"},"ReadFormula":"If(getbit(reg2500,0), \u0022On\u0022, \u0022Off\u0022)"},{"AttributeDefinition":{"Name":"HC2 Pump"},"ReadFormula":"If(getbit(reg2500,1), \u0022On\u0022, \u0022Off\u0022)"},{"AttributeDefinition":{"Name":"Heat-Up Program"},"ReadFormula":"If(getbit(reg2500,2), \u0022On\u0022, \u0022Off\u0022)"},{"AttributeDefinition":{"Name":"NHZ Settigs Run."},"ReadFormula":"If(getbit(reg2500,3), \u0022On\u0022, \u0022Off\u0022)"},{"AttributeDefinition":{"Name":"HP In Heating Mode"},"ReadFormula":"If(getbit(reg2500,4), \u0022On\u0022, \u0022Off\u0022)"},{"AttributeDefinition":{"Name":"HP In DHW Mode"},"ReadFormula":"If(getbit(reg2500,5), \u0022On\u0022, \u0022Off\u0022)"},{"AttributeDefinition":{"Name":"Compressor Running"},"ReadFormula":"If(getbit(reg2500,6), \u0022On\u0022, \u0022Off\u0022)"},{"AttributeDefinition":{"Name":"Summer Mode"},"ReadFormula":"If(getbit(reg2500,7), \u0022On\u0022, \u0022Off\u0022)"},{"AttributeDefinition":{"Name":"Cooling Mode"},"ReadFormula":"If(getbit(reg2500,8), \u0022On\u0022, \u0022Off\u0022)"},{"AttributeDefinition":{"Name":"Min.1 IWS In Defrost"},"ReadFormula":"If(getbit(reg2500,9), \u0022On\u0022, \u0022Off\u0022)"},{"AttributeDefinition":{"Name":"Silent Mode 1"},"ReadFormula":"If(getbit(reg2500,10), \u0022On\u0022, \u0022Off\u0022)"},{"AttributeDefinition":{"Name":"Silent Mode 2"},"ReadFormula":"If(getbit(reg2500,11), \u0022On\u0022, \u0022Off\u0022)"},{"AttributeDefinition":{"Name":"Other Attributes"}},{"AttributeDefinition":{"Name":"Outdoor Temp. [\u00B0C]"},"ReadFormula":"MODBUSR(A, 506, Int16)/10"},{"AttributeDefinition":{"Name":"Actual Buffer Temp [\u00B0C]"},"ReadFormula":"MODBUSR(A, 517, uint16)/10"},{"AttributeDefinition":{"Name":"Return Temp [\u00B0C]"},"ReadFormula":"MODBUSR(A, 541, uint16)/10"},{"AttributeDefinition":{"Name":"Set Buffer Temp [\u00B0C]"},"ReadFormula":"MODBUSR(A, 518, Int16)/10"},{"AttributeDefinition":{"Name":"Hot Gas Temp. [\u00B0C]"},"ReadFormula":"MODBUSR(A, 543, Int16)/10"},{"AttributeDefinition":{"Name":"Low Pressure [Bar]"},"ReadFormula":"MODBUSR(A, 544, Int16)/100"},{"AttributeDefinition":{"Name":"Mean Pressure [Bar]"},"ReadFormula":"MODBUSR(A, 545, Int16)/100"},{"AttributeDefinition":{"Name":"HiPressure [Bar]"},"ReadFormula":"MODBUSR(A, 546, Int16)/100"},{"AttributeDefinition":{"Name":"Defrost State"},"ReadFormula":"Defrost"},{"AttributeDefinition":{"Name":"Fault Status"},"ReadFormula":"MODBUSR(A, 2504, Int16)"},{"AttributeDefinition":{"Name":"Message No."},"ReadFormula":"MODBUSR(A, 2507, Int16)"},{"AttributeDefinition":{"Name":"Active Error No."},"ReadFormula":"MODBUSR(A, 2506, Int16)"}]</ServiceAttributesFormulas>
        <ServiceActionsScripts>[]</ServiceActionsScripts>
        <SlaveId>$[SlaveId]</SlaveId>
        <IpAddress>$[IpAddress]</IpAddress>
        <ModuleVariables>[{"Name":"Reg2500","ValueTypeId":1,"NumericValue":0},{"Name":"ContIdent","ValueTypeId":2,"NumericValue":0,"StringValue":"0"},{"Name":"Reg5001","ValueTypeId":1,"NumericValue":0},{"Name":"Reg2505","ValueTypeId":1,"NumericValue":0},{"Name":"Defrost","ValueTypeId":2,"NumericValue":0,"StringValue":"0"}]</ModuleVariables>
        <MaxPrefetchGroupSize>100</MaxPrefetchGroupSize>
      </DeviceProperties>
      <Devices>
        <Device>
          <Name>DHW Actual Temperature</Name>
          <Model>ModbusVariable</Model>
          <Id>-2</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>15000</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas></ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables />
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <IsReadOnly>True</IsReadOnly>
            <ReadState>MODBUSR(A, 521, Int16)/10</ReadState>
            <WriteState></WriteState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>DHW Comfort Temp.</Name>
          <Model>ModbusThermostat</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>
            <MinTemperature>5</MinTemperature>
            <MaxTemperature>60</MaxTemperature>
            <ReadCurrentTemperature>MODBUSR(A, 521, Int16) / 10</ReadCurrentTemperature>
            <ReadDesiredTemperature>MODBUSR(H, 1509, Int16) / 10</ReadDesiredTemperature>
            <WriteDesiredTemperature>MODBUSW(H, 1509, Int16, Se * 10)</WriteDesiredTemperature>
            <ReadHumidity></ReadHumidity>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>DHW ECO Temp.</Name>
          <Model>ModbusThermostat</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>
            <MinTemperature>5</MinTemperature>
            <MaxTemperature>60</MaxTemperature>
            <ReadCurrentTemperature>MODBUSR(A, 521, Int16) / 10</ReadCurrentTemperature>
            <ReadDesiredTemperature>MODBUSR(H, 1510, Int16) / 10</ReadDesiredTemperature>
            <WriteDesiredTemperature>MODBUSW(H, 1510, Int16, Se * 10)</WriteDesiredTemperature>
            <ReadHumidity></ReadHumidity>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>HK1 Comfort</Name>
          <Model>ModbusThermostat</Model>
          <Id>-5</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>2500</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas></ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables />
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <MinTemperature>10</MinTemperature>
            <MaxTemperature>30</MaxTemperature>
            <ReadCurrentTemperature>MODBUSR(A, 507, Int16) / 10</ReadCurrentTemperature>
            <ReadDesiredTemperature>MODBUSR(H, 1501, Int16) / 10</ReadDesiredTemperature>
            <WriteDesiredTemperature>MODBUSW(H, 1501, Int16, Se * 10)</WriteDesiredTemperature>
            <ReadHumidity></ReadHumidity>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>HK1 ECO</Name>
          <Model>ModbusThermostat</Model>
          <Id>-6</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>2500</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas></ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables />
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <MinTemperature>10</MinTemperature>
            <MaxTemperature>30</MaxTemperature>
            <ReadCurrentTemperature>MODBUSR(A, 507, Int16) / 10</ReadCurrentTemperature>
            <ReadDesiredTemperature>MODBUSR(H, 1502, Int16) / 10</ReadDesiredTemperature>
            <WriteDesiredTemperature>MODBUSW(H, 1502, Int16, Se * 10)</WriteDesiredTemperature>
            <ReadHumidity></ReadHumidity>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>HK2 Comfort</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 />
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <MinTemperature>10</MinTemperature>
            <MaxTemperature>30</MaxTemperature>
            <ReadCurrentTemperature>MODBUSR(A, 510, Int16) / 10</ReadCurrentTemperature>
            <ReadDesiredTemperature>MODBUSR(H, 1504, Int16) / 10</ReadDesiredTemperature>
            <WriteDesiredTemperature>MODBUSW(H, 1504, Int16, Se * 10)</WriteDesiredTemperature>
            <ReadHumidity></ReadHumidity>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>HK2 ECO</Name>
          <Model>ModbusThermostat</Model>
          <Id>-8</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>2500</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas></ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables />
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <MinTemperature>10</MinTemperature>
            <MaxTemperature>30</MaxTemperature>
            <ReadCurrentTemperature>MODBUSR(A, 510, Int16) / 10</ReadCurrentTemperature>
            <ReadDesiredTemperature>MODBUSR(H, 1505, Int16) / 10</ReadDesiredTemperature>
            <WriteDesiredTemperature>MODBUSW(H, 1505, Int16, Se * 10)</WriteDesiredTemperature>
            <ReadHumidity></ReadHumidity>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Operating Mode</Name>
          <Model>ModbusMultiValueSwitch</Model>
          <Id>-9</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>70</Value6Index>
            <Value7Index>71</Value7Index>
            <Value8Index>72</Value8Index>
            <Value9Index>73</Value9Index>
            <Value0Name>Emergency Operation</Value0Name>
            <Value1Name>Standby Mode</Value1Name>
            <Value2Name>Programmed Operation</Value2Name>
            <Value3Name>Comfort Mode</Value3Name>
            <Value4Name>ECO Mode</Value4Name>
            <Value5Name>DHW Mode</Value5Name>
            <Value6Name>6</Value6Name>
            <Value7Name>7</Value7Name>
            <Value8Name>8</Value8Name>
            <Value9Name>9</Value9Name>
            <Value0IconId>19</Value0IconId>
            <Value1IconId>107</Value1IconId>
            <Value2IconId>35</Value2IconId>
            <Value3IconId>49</Value3IconId>
            <Value4IconId>16</Value4IconId>
            <Value5IconId>310</Value5IconId>
            <Value6IconId>11</Value6IconId>
            <Value7IconId>12</Value7IconId>
            <Value8IconId>13</Value8IconId>
            <Value9IconId>14</Value9IconId>
            <OffStateValue>1</OffStateValue>
            <ReadSwitchState>MODBUSR(H, 1500, Int16)</ReadSwitchState>
            <WriteSwitchState>MODBUSW(H, 1500, Int16, Mu)</WriteSwitchState>
          </DeviceProperties>
        </Device>
      </Devices>
    </Module>
  </Template>
</Templates>