﻿<?xml version="1.0" encoding="utf-8"?>
<Templates format="2" protocolVersion="61">
  <Template revision="1.1" id="5202c31e-7c60-4320-8874-c5fcf9a27698">
    <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>${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>Wattsonic Hybrid Inverter WTS 3P</Name>
    <CcuModel>ModbusRtuCCU</CcuModel>
    <Producer></Producer>
    <Model></Model>
    <Description></Description>
    <Module>
      <Name>Wattsonic Hybrid Inverter WTS 3P</Name>
      <Id>-1</Id>
      <Model>ModbusModule</Model>
      <DeviceProperties>
        <DeviceType>7001</DeviceType>
        <InternalPollInterval>5000</InternalPollInterval>
        <ReadScript>VAR DeviceError := MODBUSR(H, 10112, Uint16);
VAR DeviceError1 := MODBUSR(H, 10113, Uint16);

IF(GETBIT(DeviceError, 0)=1, ADDERROR(1, "Mains Lost"));
IF(GETBIT(DeviceError, 1)=1, ADDERROR(2, "Grid Voltage Fault"));
IF(GETBIT(DeviceError, 2)=1, ADDERROR(3, "Grid Frequency Fault"));
IF(GETBIT(DeviceError, 3)=1, ADDERROR(4, "DCI Fault"));
IF(GETBIT(DeviceError, 4)=1, ADDERROR(5, "ISO Over Limitation"));
IF(GETBIT(DeviceError, 5)=1, ADDERROR(6, "GFCI Fault"));
IF(GETBIT(DeviceError, 6)=1, ADDERROR(7, "PV Over Voltage"));
IF(GETBIT(DeviceError, 7)=1, ADDERROR(8, "Bus Voltage Fault"));
IF(GETBIT(DeviceError, 8)=1, ADDERROR(9, "Inverter Over Temperature"));
IF(GETBIT(DeviceError, 1)=1, ADDERROR(34, "SPI Fault"));
IF(GETBIT(DeviceError, 2)=1, ADDERROR(35, "E2 Fault"));
IF(GETBIT(DeviceError, 3)=1, ADDERROR(36, "GFCI Device Fault"));
IF(GETBIT(DeviceError, 4)=1, ADDERROR(37, "AC Transducer Fault"));
IF(GETBIT(DeviceError, 5)=1, ADDERROR(38, "Relay Check Fail"));
IF(GETBIT(DeviceError, 6)=1, ADDERROR(39, "Internal Fan Fault"));
IF(GETBIT(DeviceError, 7)=1, ADDERROR(40, "External Fan Fault"));
</ReadScript>
        <PrefetchModeId>0</PrefetchModeId>
        <ServiceAttributesFormulas>[{"AttributeDefinition":{"Name":"Model info","Section":null},"ReadFormula":"SWITCH(GETBITS(MODBUSR(H, 10008, Uint16), 1, 8),\n  0, \"WTS-4P-3P\",\n  1, \"WTS-5KW-3P\",\n  2, \"WTS-6KW-3P\",\n  3, \"WTS-8KW-3P\",\n  4, \"WTS-10KW-3P\",\n  5, \"WTS-12KW-3P\",\n\"Unknown\")"},{"AttributeDefinition":{"Name":"Date and time","Section":null},"ReadFormula":"\"20\" + \nTOSTRING(GETBITS(MODBUSR(H, 20000, Uint16),8,8), \"\") + \"/\" + TOSTRING(GETBITS(MODBUSR(H, 20000, Uint16),0,8), \"\") + \"/\" + \nTOSTRING(GETBITS(MODBUSR(H, 20001, Uint16),8,8), \"\") + \" \" + TOSTRING(GETBITS(MODBUSR(H, 20001, Uint16),0,8), \"\") + \":\" + \nTOSTRING(GETBITS(MODBUSR(H, 20002, Uint16),8,8), \"\") + \":\" + TOSTRING(GETBITS(MODBUSR(H, 20002, Uint16),0,8), \"\");"},{"AttributeDefinition":{"Name":"Inverter Running Status","Section":null},"ReadFormula":"SWITCH (MODBUSR(H, 10105, Uint16), \r\n0, \"Wait, wait for on grid\",\r\n1, \"check/self-test\",\r\n2, \"On Grid\",\r\n3, \"Fault\" ,\r\n4, \"flash, firmware\",\r\n5, \"Off Grid\",\r\n\"Cannot read status\")"},{"AttributeDefinition":{"Name":"Charge Start Time","Section":null},"ReadFormula":"var out := ModbusR(H, 53000, Uint16);\r\nGETBYTE(out, 1) + \":\" + GETBYTE(out, 0)"},{"AttributeDefinition":{"Name":"Charge Stop Time","Section":null},"ReadFormula":"var out := ModbusR(H, 53001, Uint16);\r\nGETBYTE(out, 1) + \":\" + GETBYTE(out, 0)"},{"AttributeDefinition":{"Name":"Discharge Start Time","Section":null},"ReadFormula":"var out := ModbusR(H, 53003, Uint16);\r\nGETBYTE(out, 1) + \":\" + GETBYTE(out, 0)"},{"AttributeDefinition":{"Name":"Discharge Stop Time","Section":null},"ReadFormula":"var out := ModbusR(H, 53004, Uint16);\r\nGETBYTE(out, 1) + \":\" + GETBYTE(out, 0)"},{"AttributeDefinition":{"Name":"Running Mode","Section":null},"ReadFormula":"var out := ModbusR(H, 50000, Uint16);\r\nIF(GETBYTE(out, 1) = 1,\r\nSWITCH(GETBYTE(out, 0),1, \"General Mode\", 2 , \"Economic Mode\", 3, \"UPS Mode\", \"Unknown\"), \"Off Grid Mode\")\r\n"}]</ServiceAttributesFormulas>
        <ServiceActionsScripts>[{"ActionDefinition":{"Name":"Charge Start Time","NumericParameters":[{"FriendlyName":"Hours","Abbreviation":"Ho","IsFloat":false,"MinValue":0.0,"MaxValue":23.0},{"FriendlyName":"Minutes","Abbreviation":"min","IsFloat":false,"MinValue":0.0,"MaxValue":59.0}],"BoolParameters":[],"EnumParameters":[]},"Script":"ModbusW(H, 53000, Uint16, (Ho&lt;&lt;8 )+ min)"},{"ActionDefinition":{"Name":"Running Mode Setting","NumericParameters":[],"BoolParameters":[],"EnumParameters":[{"FriendlyName":"Mode","Abbreviation":"mod","Values":[{"Item1":257.0,"Item2":"General Mode"},{"Item1":258.0,"Item2":"Economic Mode"},{"Item1":259.0,"Item2":"UPS Mode"},{"Item1":512.0,"Item2":"Off-Grid"}]}]},"Script":"ModbusW(H, 50000, Uint16, mod)"},{"ActionDefinition":{"Name":"Clear over-load protection flag","NumericParameters":[],"BoolParameters":[],"EnumParameters":[]},"Script":"ModbusW(H, 50201, Uint16, 1)"}]</ServiceActionsScripts>
        <SlaveId>$[SlaveId]</SlaveId>
        <MaxPrefetchGroupSize>10</MaxPrefetchGroupSize>
        <IpAddress>$[IpAddress]</IpAddress>
      </DeviceProperties>
      <Devices>
        <Device>
          <Name>Asymetric Output Switch</Name>
          <Model>ModbusSwitch</Model>
          <Id>-2</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>2500</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas></ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables></CustomDeviceVariables>
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <NegateState>False</NegateState>
            <OnStateIconId>216</OnStateIconId>
            <OffStateIconId>217</OffStateIconId>
            <OnStateName>On</OnStateName>
            <OffStateName>Off</OffStateName>
            <ReadSwitchState>MODBUSR(H, 50006, Uint16)</ReadSwitchState>
            <WriteSwitchState>MODBUSW(H, 50006, Uint16, St)</WriteSwitchState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Backup Output energy on that day </Name>
          <Model>ModbusVariable</Model>
          <Id>-3</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <SerializedValueLogTypeConversions>{"59":"{\"ValueLogTypeConversionTypeId\":3,\"SerializedValueLogTypeConversion\":\"{\\\"Value1OnInput\\\":0.0,\\\"Value1OnOutput\\\":0.0,\\\"Value2OnInput\\\":1.0,\\\"Value2OnOutput\\\":1.0,\\\"SourceValueLogTypes\\\":[62],\\\"TargetValueLogType\\\":59}\"}"}</SerializedValueLogTypeConversions>
            <InternalPollInterval>1000</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas></ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables></CustomDeviceVariables>
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <IsReadOnly>True</IsReadOnly>
            <ReadState>MODBUSR(H, 41002, UInt16)/10</ReadState>
            <WriteState></WriteState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Battery</Name>
          <Model>ModbusDimmer</Model>
          <Id>-4</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>2500</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas>[{"AttributeDefinition":{"Name":"Battery Health","Section":null},"ReadFormula":"Modbusr(H, 43001, Uint16)/100 + \"%\""},{"AttributeDefinition":{"Name":"Battery Voltage [V]","Section":null},"ReadFormula":"MODBUSR(H, 40254, UInt16)/10"},{"AttributeDefinition":{"Name":"Battery Current [A]","Section":null},"ReadFormula":"MODBUSR(H, 40255, Int16)/10"},{"AttributeDefinition":{"Name":"Battery Power [kW]","Section":null},"ReadFormula":"MODBUSR(H, 40258, Int32)/1000"},{"AttributeDefinition":{"Name":"Battery Charge Energy on that day [kWh]","Section":null},"ReadFormula":"MODBUSR(H, 41003, UInt16)/10"},{"AttributeDefinition":{"Name":"Battery Discharge Energy on that day [kWh]","Section":null},"ReadFormula":"MODBUSR(H, 41004, UInt16)/10"},{"AttributeDefinition":{"Name":"Total Energy Charged to Battery [kWh]","Section":null},"ReadFormula":"MODBUSR(H, 41108, UInt32)/10"},{"AttributeDefinition":{"Name":"Total Energy Discharged from Battery [kWh]","Section":null},"ReadFormula":"MODBUSR(H, 41110, UInt32)/10"}]</ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables>[]</CustomDeviceVariables>
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <ReadLevel>MODBUSR(H, 43000, Uint16) / 10000</ReadLevel>
            <WriteLevel></WriteLevel>
            <IconId>0</IconId>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Battery State</Name>
          <Model>ModbusReedContact</Model>
          <Id>-5</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>2500</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas>[]</ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables></CustomDeviceVariables>
            <OnStateIconId>230</OnStateIconId>
            <OffStateIconId>228</OffStateIconId>
            <OnStateName>Charge</OnStateName>
            <OffStateName>Discharge</OffStateName>
            <ReadState>MODBUSR(H, 40256, Uint16)</ReadState>
            <NegateState>False</NegateState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Grid [Hz]</Name>
          <Model>ModbusVariable</Model>
          <Id>-6</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <SerializedValueLogTypeConversions></SerializedValueLogTypeConversions>
            <InternalPollInterval>15000</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas>[{"AttributeDefinition":{"Name":"Total Energy Purchased from Grid at inverter side [kWh]","Section":null},"ReadFormula":"MODBUSR(H, 41118, UInt32)/10"},{"AttributeDefinition":{"Name":"Total Energy injected to grid [kWh]","Section":null},"ReadFormula":"MODBUSR(H, 41102, UInt32)/10"},{"AttributeDefinition":{"Name":"Total Loading consumed Energy on grid side [kWh]","Section":null},"ReadFormula":"MODBUSR(H, 41114, UInt32)/10"},{"AttributeDefinition":{"Name":"Total Energy Purchased from Grid from Meter [kWh]","Section":null},"ReadFormula":"MODBUSR(H, 41104, UInt32)/10"}]</ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables>[]</CustomDeviceVariables>
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <IsReadOnly>True</IsReadOnly>
            <ReadState>MODBUSR(H, 11015, UInt16)/100 </ReadState>
            <WriteState></WriteState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Grid Injection energy on that day</Name>
          <Model>ModbusVariable</Model>
          <Id>-7</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <SerializedValueLogTypeConversions>{"59":"{\"ValueLogTypeConversionTypeId\":3,\"SerializedValueLogTypeConversion\":\"{\\\"Value1OnInput\\\":0.0,\\\"Value1OnOutput\\\":0.0,\\\"Value2OnInput\\\":1.0,\\\"Value2OnOutput\\\":1.0,\\\"SourceValueLogTypes\\\":[62],\\\"TargetValueLogType\\\":59}\"}"}</SerializedValueLogTypeConversions>
            <InternalPollInterval>1000</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas></ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables></CustomDeviceVariables>
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <IsReadOnly>True</IsReadOnly>
            <ReadState>MODBUSR(H, 41000, UInt16)/10</ReadState>
            <WriteState></WriteState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Grid Injection Power Limit Setting</Name>
          <Model>ModbusDimmer</Model>
          <Id>-8</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>2500</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas>[]</ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables></CustomDeviceVariables>
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <ReadLevel>MODBUSR(H, 25103, Uint16)/1000</ReadLevel>
            <WriteLevel>MODBUSW(H, 25103, Int16, Le*1000)</WriteLevel>
            <IconId>3021</IconId>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Grid Injection Power Limit Switch</Name>
          <Model>ModbusSwitch</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>
            <NegateState>False</NegateState>
            <OnStateIconId>66</OnStateIconId>
            <OffStateIconId>67</OffStateIconId>
            <OnStateName>On</OnStateName>
            <OffStateName>Off</OffStateName>
            <ReadSwitchState>MODBUSR(H, 25100, Uint16)</ReadSwitchState>
            <WriteSwitchState>MODBUSW(H, 25100, Uint16, St)</WriteSwitchState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Grid Purchasing on that day</Name>
          <Model>ModbusVariable</Model>
          <Id>-10</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <SerializedValueLogTypeConversions>{"59":"{\"ValueLogTypeConversionTypeId\":3,\"SerializedValueLogTypeConversion\":\"{\\\"Value1OnInput\\\":0.0,\\\"Value1OnOutput\\\":0.0,\\\"Value2OnInput\\\":1.0,\\\"Value2OnOutput\\\":1.0,\\\"SourceValueLogTypes\\\":[62],\\\"TargetValueLogType\\\":59}\"}"}</SerializedValueLogTypeConversions>
            <InternalPollInterval>1000</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas></ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables></CustomDeviceVariables>
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <IsReadOnly>True</IsReadOnly>
            <ReadState>MODBUSR(H, 41001, UInt16)/10</ReadState>
            <WriteState></WriteState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Loading Energy on that day</Name>
          <Model>ModbusVariable</Model>
          <Id>-11</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <SerializedValueLogTypeConversions>{"59":"{\"ValueLogTypeConversionTypeId\":3,\"SerializedValueLogTypeConversion\":\"{\\\"Value1OnInput\\\":0.0,\\\"Value1OnOutput\\\":0.0,\\\"Value2OnInput\\\":1.0,\\\"Value2OnOutput\\\":1.0,\\\"SourceValueLogTypes\\\":[62],\\\"TargetValueLogType\\\":59}\"}"}</SerializedValueLogTypeConversions>
            <InternalPollInterval>1000</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas></ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables></CustomDeviceVariables>
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <IsReadOnly>True</IsReadOnly>
            <ReadState>MODBUSR(H, 41006, UInt16)/10</ReadState>
            <WriteState></WriteState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Off-grid battery DOD setting</Name>
          <Model>ModbusDimmer</Model>
          <Id>-12</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>2500</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas></ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables></CustomDeviceVariables>
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <ReadLevel>MODBUSR(H, 52505, Int16) / 1000</ReadLevel>
            <WriteLevel>MODBUSW(H, 52505, Int16, Le * 1000)</WriteLevel>
            <IconId>0</IconId>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Off-Grid Running Switch</Name>
          <Model>ModbusSwitch</Model>
          <Id>-13</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>2500</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>MODBUSR(H, 50001, Uint16)</ReadSwitchState>
            <WriteSwitchState>MODBUSW(H, 50001, Uint16, St)</WriteSwitchState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Off-grid State of Charge (SOC) protection</Name>
          <Model>ModbusSwitch</Model>
          <Id>-14</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>2500</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas></ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables></CustomDeviceVariables>
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <NegateState>False</NegateState>
            <OnStateIconId>231</OnStateIconId>
            <OffStateIconId>232</OffStateIconId>
            <OnStateName>${general_on}</OnStateName>
            <OffStateName>${general_off}</OffStateName>
            <ReadSwitchState>MODBUSR(H, 52504, Uint16)</ReadSwitchState>
            <WriteSwitchState>MODBUSW(H, 52504, Uint16, St)</WriteSwitchState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>On-Grid State Of Charge (SOC) Protection</Name>
          <Model>ModbusSwitch</Model>
          <Id>-15</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>2500</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas></ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables></CustomDeviceVariables>
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <NegateState>False</NegateState>
            <OnStateIconId>231</OnStateIconId>
            <OffStateIconId>232</OffStateIconId>
            <OnStateName>${general_on}</OnStateName>
            <OffStateName>${general_off}</OffStateName>
            <ReadSwitchState>MODBUSR(H, 52502, Uint16)</ReadSwitchState>
            <WriteSwitchState>MODBUSW(H, 52502, Uint16, St)</WriteSwitchState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Peak Load Shift Function Switch</Name>
          <Model>ModbusSwitch</Model>
          <Id>-16</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>2500</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas></ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables></CustomDeviceVariables>
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <NegateState>False</NegateState>
            <OnStateIconId>230</OnStateIconId>
            <OffStateIconId>229</OffStateIconId>
            <OnStateName>${general_on}</OnStateName>
            <OffStateName>${general_off}</OffStateName>
            <ReadSwitchState>MODBUSR(H, 50007, Uint16)</ReadSwitchState>
            <WriteSwitchState>MODBUSW(H, 50007, Uint16, St)</WriteSwitchState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Phase A Power</Name>
          <Model>ModbusElectricityMeter</Model>
          <Id>-17</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>15000</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas>[{"AttributeDefinition":{"Name":"Backup Voltage [V]","Section":null},"ReadFormula":"ModbusR(H, 40200, Uint16)/10"},{"AttributeDefinition":{"Name":"Backup Current [A]","Section":null},"ReadFormula":"modbusR(H, 40201, Uint16)/10"},{"AttributeDefinition":{"Name":"Backup Frequency [Hz]","Section":null},"ReadFormula":"ModbusR(H,40202, Uint16)/100"},{"AttributeDefinition":{"Name":"Backup A Power [kW]","Section":null},"ReadFormula":"MODBUSR(H, 40204, Int32) / 1000"},{"AttributeDefinition":{"Name":"Inverter A Power [kW]","Section":null},"ReadFormula":"modbusr(H, 40236, Int32)/1000"},{"AttributeDefinition":{"Name":"Grid Phase A Current[A]","Section":null},"ReadFormula":"MODBUSR(H, 11010, UInt16)"},{"AttributeDefinition":{"Name":"Grid Phase A Voltage [V]","Section":null},"ReadFormula":"MODBUSR(H, 11009, UInt16)/10"},{"AttributeDefinition":{"Name":"Grid Lines A/B Voltage[V]","Section":null},"ReadFormula":"MODBUSR(H, 11006, Uint16)/10"},{"AttributeDefinition":{"Name":"Grid Lines C/A Voltage[V]","Section":null},"ReadFormula":"MODBUSR(H, 11008, Uint16)/10"}]</ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables></CustomDeviceVariables>
            <ReadTotalConsumption></ReadTotalConsumption>
            <ReadDemand>MODBUSR(H, 10994, Int32) / 1000</ReadDemand>
            <Calibration>0</Calibration>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Phase B Power</Name>
          <Model>ModbusElectricityMeter</Model>
          <Id>-18</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>15000</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas>[{"AttributeDefinition":{"Name":"Backup Voltage [V]","Section":null},"ReadFormula":"Modbusr(H, 40210, Uint16)/10"},{"AttributeDefinition":{"Name":"Backup Current [A]","Section":null},"ReadFormula":"ModbusR(H, 40211, Uint16)/10"},{"AttributeDefinition":{"Name":"Backup Frequency [Hz]","Section":null},"ReadFormula":"ModbusR(H, 40212, Uint16) / 100"},{"AttributeDefinition":{"Name":"Backup Power [kW]","Section":null},"ReadFormula":"Modbusr(H, 40214, Int32) / 1000"},{"AttributeDefinition":{"Name":"Inverter Power [kW]","Section":null},"ReadFormula":"ModbusR(H, 40242, Int32)/1000"},{"AttributeDefinition":{"Name":"Grid Phase B Current [A]","Section":null},"ReadFormula":"MODBUSR(H, 11012, UInt16)/10"},{"AttributeDefinition":{"Name":"Grid Phase B Voltage [V]","Section":null},"ReadFormula":"MODBUSR(H, 11011, UInt16)/10 "},{"AttributeDefinition":{"Name":"Grid Lines A/B Voltage[V]","Section":null},"ReadFormula":"MODBUSR(H, 11006, Uint16)/10"},{"AttributeDefinition":{"Name":"Grid Lines B/C Voltage[V]","Section":null},"ReadFormula":"MODBUSR(H, 11007, Uint16)/10"}]</ServiceAttributesFormulas>
            <ServiceActionsScripts>[]</ServiceActionsScripts>
            <CustomDeviceVariables></CustomDeviceVariables>
            <ReadTotalConsumption></ReadTotalConsumption>
            <ReadDemand>MODBUSR(H, 10996, Int32) / 1000</ReadDemand>
            <Calibration>0</Calibration>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Phase C Power</Name>
          <Model>ModbusElectricityMeter</Model>
          <Id>-19</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>15000</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas>[{"AttributeDefinition":{"Name":"Backup Voltage [V]","Section":null},"ReadFormula":"MODBUSR(H, 40220, UInt16) / 10"},{"AttributeDefinition":{"Name":"Backup Current [A]","Section":null},"ReadFormula":"MODBUSR(H, 40221, UInt16) / 10"},{"AttributeDefinition":{"Name":"Backup Frequency [A]","Section":null},"ReadFormula":"MODBUSR(H, 40222, UInt16) / 100"},{"AttributeDefinition":{"Name":"Backup C Power","Section":null},"ReadFormula":"MODBUSR(H, 40224, Int32) / 1000"},{"AttributeDefinition":{"Name":"Inverter C Power","Section":null},"ReadFormula":"MODBUSR(H, 40248, Int32) / 1000"},{"AttributeDefinition":{"Name":"Grid Phase C Current [A]","Section":null},"ReadFormula":"MODBUSR(H, 11014, UInt16)/10"},{"AttributeDefinition":{"Name":"Grid Phase C Voltage [V]","Section":null},"ReadFormula":"MODBUSR(H, 11013, UInt16)/10"},{"AttributeDefinition":{"Name":"Grid Lines C/A Voltage[V]","Section":null},"ReadFormula":"MODBUSR(H, 11008, Uint16)/10"},{"AttributeDefinition":{"Name":"Grid Lines B/C Voltage[V]","Section":null},"ReadFormula":"MODBUSR(H, 11007, Uint16)/10"}]</ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables></CustomDeviceVariables>
            <ReadTotalConsumption></ReadTotalConsumption>
            <ReadDemand>MODBUSR(H, 10998, Int32) / 1000</ReadDemand>
            <Calibration>0</Calibration>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>PV Generation Energy on that day</Name>
          <Model>ModbusVariable</Model>
          <Id>-20</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <SerializedValueLogTypeConversions>{"59":"{\"ValueLogTypeConversionTypeId\":3,\"SerializedValueLogTypeConversion\":\"{\\\"Value1OnInput\\\":0.0,\\\"Value1OnOutput\\\":0.0,\\\"Value2OnInput\\\":1.0,\\\"Value2OnOutput\\\":1.0,\\\"SourceValueLogTypes\\\":[62],\\\"TargetValueLogType\\\":59}\"}"}</SerializedValueLogTypeConversions>
            <InternalPollInterval>1000</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas></ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables></CustomDeviceVariables>
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <IsReadOnly>False</IsReadOnly>
            <ReadState>MODBUSR(H, 41005, UInt16)/10</ReadState>
            <WriteState></WriteState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>PV1 &amp; Total PV Generation</Name>
          <Model>ModbusElectricityMeter</Model>
          <Id>-21</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>15000</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas>[{"AttributeDefinition":{"Name":"PV1 Current [A]","Section":null},"ReadFormula":"MODBUSR(H, 11039, UInt16)/10"},{"AttributeDefinition":{"Name":"PV1 Voltage [V]","Section":null},"ReadFormula":"MODBUSR(H, 11038, UInt16)/10"},{"AttributeDefinition":{"Name":"Total PV generation time from installation [Hours]","Section":null},"ReadFormula":"MODBUSR(H, 11022, UInt32)"},{"AttributeDefinition":{"Name":"Total Output Energy on backup port [kWh]","Section":null},"ReadFormula":"MODBUSR(H, 41106, UInt32)/10"}]</ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables></CustomDeviceVariables>
            <ReadTotalConsumption>MODBUSR(H, 11020, UInt32)/10</ReadTotalConsumption>
            <ReadDemand>MODBUSR(H, 11062, UInt32)/1000</ReadDemand>
            <Calibration>0</Calibration>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>PV2 &amp; Total PV Generation</Name>
          <Model>ModbusElectricityMeter</Model>
          <Id>-22</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>15000</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas>[{"AttributeDefinition":{"Name":"PV2 Current [A]","Section":null},"ReadFormula":"MODBUSR(H, 11041, UInt16)/10"},{"AttributeDefinition":{"Name":"PV2 Voltage [V]","Section":null},"ReadFormula":"MODBUSR(H, 11040, UInt16)/10"},{"AttributeDefinition":{"Name":"Total PV generation time from installation [Hours]","Section":null},"ReadFormula":"MODBUSR(H, 11022, UInt32)"},{"AttributeDefinition":{"Name":"Total Output Energy on backup port [kWh]","Section":null},"ReadFormula":"MODBUSR(H, 41106, UInt32)/10"}]</ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables></CustomDeviceVariables>
            <ReadTotalConsumption>MODBUSR(H, 11020, UInt32)/10</ReadTotalConsumption>
            <ReadDemand>MODBUSR(H, 11064, UInt32)/1000</ReadDemand>
            <Calibration>0</Calibration>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Temperature Sensor 1</Name>
          <Model>ModbusTemperatureSensor</Model>
          <Id>-23</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>MODBUSR(H, 11032, Int16) / 10</ReadTemperature>
            <ReadHumidity></ReadHumidity>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Temperature Sensor 2</Name>
          <Model>ModbusTemperatureSensor</Model>
          <Id>-24</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>MODBUSR(H, 11033, Int16) / 10</ReadTemperature>
            <ReadHumidity></ReadHumidity>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Temperature Sensor 3</Name>
          <Model>ModbusTemperatureSensor</Model>
          <Id>-25</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>MODBUSR(H, 11034, Int16) / 10</ReadTemperature>
            <ReadHumidity></ReadHumidity>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Temperature Sensor 4</Name>
          <Model>ModbusTemperatureSensor</Model>
          <Id>-26</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>MODBUSR(H, 11035, Int16) / 10</ReadTemperature>
            <ReadHumidity></ReadHumidity>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Total Inverter-Power_AC </Name>
          <Model>ModbusVariable</Model>
          <Id>-27</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <SerializedValueLogTypeConversions>{"60":"{\"ValueLogTypeConversionTypeId\":3,\"SerializedValueLogTypeConversion\":\"{\\\"Value1OnInput\\\":0.0,\\\"Value1OnOutput\\\":0.0,\\\"Value2OnInput\\\":1.0,\\\"Value2OnOutput\\\":1.0,\\\"SourceValueLogTypes\\\":[62],\\\"TargetValueLogType\\\":60}\"}"}</SerializedValueLogTypeConversions>
            <InternalPollInterval>1000</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas></ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables></CustomDeviceVariables>
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <IsReadOnly>True</IsReadOnly>
            <ReadState>MODBUSR(H, 11016, Int32)/1000</ReadState>
            <WriteState></WriteState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Total PV Generated Energy</Name>
          <Model>ModbusVariable</Model>
          <Id>-28</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <SerializedValueLogTypeConversions>{"59":"{\"ValueLogTypeConversionTypeId\":3,\"SerializedValueLogTypeConversion\":\"{\\\"Value1OnInput\\\":0.0,\\\"Value1OnOutput\\\":0.0,\\\"Value2OnInput\\\":1.0,\\\"Value2OnOutput\\\":1.0,\\\"SourceValueLogTypes\\\":[62],\\\"TargetValueLogType\\\":59}\"}"}</SerializedValueLogTypeConversions>
            <InternalPollInterval>1000</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas></ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables></CustomDeviceVariables>
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <IsReadOnly>True</IsReadOnly>
            <ReadState>MODBUSR(H, 41112, UInt32)/10</ReadState>
            <WriteState></WriteState>
          </DeviceProperties>
        </Device>
      </Devices>
    </Module>
  </Template>
</Templates>