﻿<?xml version="1.0" encoding="utf-8"?>
<Templates format="2" protocolVersion="82" >
  <Template revision="1.0" id="1d8cd055-edd5-4ce8-a8da-21534b0d6937">
    <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>SofarSolar</Name>
    <CcuModel>ModbusRtuCCU</CcuModel>
    <Producer>Sofar Solar</Producer>
    <Model>Inverter (3P)</Model>
    <Description></Description>
    <Module>
      <Name>SofarSolar</Name>
      <Id>-1</Id>
      <Model>ModbusModule</Model>
      <DeviceProperties>
        <DeviceType>7001</DeviceType>
        <InternalPollInterval>30000</InternalPollInterval>
        <ReadScript>#fault 1
var fault :=MODBUSR(H, 0x0405, Uint16);
IF fault !=0 
IF(GETBIT(fault, 0) != 0, ADDERROR("Grid over-voltage"));
IF(GETBIT(fault, 1) != 0, ADDERROR("Grid undervoltage"));
IF(GETBIT(fault, 2) != 0, ADDERROR("Grid overfrequency"));
IF(GETBIT(fault, 3) != 0, ADDERROR("Grid underfrequency"));
IF(GETBIT(fault, 4) != 0, ADDERROR("Leakage current fault"));
IF(GETBIT(fault, 5) != 0, ADDERROR("High penetration error"));
IF(GETBIT(fault, 6) != 0, ADDERROR("Low penetration error"));
IF(GETBIT(fault, 7) != 0, ADDERROR("Islanding error"));
IF(GETBIT(fault, 8) != 0, ADDERROR("Grid voltage transient value overvoltage 1"));
IF(GETBIT(fault, 9) != 0, ADDERROR("Grid voltage transient value overvoltage 2"));
IF(GETBIT(fault, 10) != 0, ADDERROR("Grid line voltage error"));
IF(GETBIT(fault, 11) != 0, ADDERROR("Inverter voltage error"));
IF(GETBIT(fault, 12) != 0, ADDERROR("Anti-backflow overload"));
END

#fault 2
fault :=MODBUSR(H, 0x0406, Uint16);
IF fault !=0 
IF(GETBIT(fault, 0) != 0, ADDERROR("Grid current sampling error"));
IF(GETBIT(fault, 1) != 0, ADDERROR("Grid current DC component sampling error (AC side)"));
IF(GETBIT(fault, 2) != 0, ADDERROR("Grid voltage sampling error (DC side)"));
IF(GETBIT(fault, 3) != 0, ADDERROR("Grid voltage sampling error (AC side)"));
IF(GETBIT(fault, 4) != 0, ADDERROR("Leakage current sampling error (DC side)"));
IF(GETBIT(fault, 5) != 0, ADDERROR("Leakage current sampling error (AC side)"));
IF(GETBIT(fault, 6) != 0, ADDERROR("Load voltage DC component sampling error"));
IF(GETBIT(fault, 7) != 0, ADDERROR("DC input current sampling error"));
IF(GETBIT(fault, 8) != 0, ADDERROR("DC component sampling error of grid current (DC side)"));
IF(GETBIT(fault, 9) != 0, ADDERROR("DC input branch current sampling error"));
IF(GETBIT(fault, 12) != 0, ADDERROR("Leakage current consistency error"));
IF(GETBIT(fault, 13) != 0, ADDERROR("Grid voltage consistency error"));
IF(GETBIT(fault, 14) != 0, ADDERROR("DCI consistency error"));
END

#fault 3
fault :=MODBUSR(H, 0x0407, Uint16);
IF fault !=0 
IF(GETBIT(fault, 0) != 0, ADDERROR("SPI communication error (DC side)"));
IF(GETBIT(fault, 1) != 0, ADDERROR("SPI communication error (AC side)"));
IF(GETBIT(fault, 2) != 0, ADDERROR("Chip error (DC side)"));
IF(GETBIT(fault, 3) != 0, ADDERROR("Chip error (AC side)"));
IF(GETBIT(fault, 4) != 0, ADDERROR("Auxiliary power error"));
IF(GETBIT(fault, 5) != 0, ADDERROR("Inverter soft start failure"));
IF(GETBIT(fault, 8) != 0, ADDERROR("Relay detection failure"));
IF(GETBIT(fault, 9) != 0, ADDERROR("Low insulation impedance"));
IF(GETBIT(fault, 10) != 0, ADDERROR("Grounding error"));
IF(GETBIT(fault, 11) != 0, ADDERROR("Input mode setting error"));
IF(GETBIT(fault, 12) != 0, ADDERROR("CT error"));
IF(GETBIT(fault, 13) != 0, ADDERROR("Input reversal error"));
IF(GETBIT(fault, 14) != 0, ADDERROR("Parallel error"));
IF(GETBIT(fault, 15) != 0, ADDERROR("Serial number error"));
END
</ReadScript>
        <PrefetchModeId>0</PrefetchModeId>
        <ServiceAttributesFormulas>[{"AttributeDefinition":{"Name":"Product Code"},"ReadFormula":"MODBUSR(H, 0x2000, Uint16);"},{"AttributeDefinition":{"Name":"System State"},"ReadFormula":"SWITCH(MODBUSR(H, 0x0404, Uint16),\r\n0, \u0022Waiting\u0022,\r\n1, \u0022Detection\u0022,\r\n2, \u0022Grid-connected\u0022,\r\n3, \u0022Emergency power supply\u0022,\r\n4, \u0022Recoverable fault\u0022,\r\n5, \u0022Permanent fault\u0022,\r\n6, \u0022Upgrade\u0022,\r\n7, \u0022Self-charging\u0022,\r\n\u0022Fault\u0022)"},{"AttributeDefinition":{"Name":"Ambient Temperature"},"ReadFormula":"MODBUSR(H, 0x0418, Int16) \u002B \u0022\u00B0C\u0022;"}]</ServiceAttributesFormulas>
        <SlaveId>$[SlaveId]</SlaveId>
        <MaxPrefetchGroupSize>100</MaxPrefetchGroupSize>
        <IpAddress>$[IpAddress]</IpAddress>
      </DeviceProperties>
      <Devices>
        <Device>
          <Name>Batéria (SOC) 1 </Name>
          <Model>ModbusAnalogInput</Model>
          <Id>-2</Id>
          <DeviceProperties>
            <DeviceType>11001</DeviceType>
            <SerializedValueLogTypeConversions />
            <InternalPollInterval>2500</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas>[{"AttributeDefinition":{"Name":"Temperature"},"ReadFormula":"MODBUSR(H, 0x0607, Int16) \u002B \u0022\u00B0C\u0022;"},{"AttributeDefinition":{"Name":"Voltage"},"ReadFormula":"MODBUSR(H, 0x0604, Uint16) \u002B \u0022 V\u0022;"},{"AttributeDefinition":{"Name":"Current"},"ReadFormula":"MODBUSR(H, 0x0605, Int16)/100 \u002B \u0022 A\u0022;"},{"AttributeDefinition":{"Name":"Power"},"ReadFormula":"MODBUSR(H, 0x0606, Int16)/100 \u002B \u0022 kW\u0022;"},{"AttributeDefinition":{"Name":"SOH"},"ReadFormula":"MODBUSR(H, 0x0609, Uint16) \u002B \u0022 %\u0022;"}]</ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables />
            <ReadInputLevel>MODBUSR(H, 0x0608, Uint16)</ReadInputLevel>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Batéria (SOC) 2</Name>
          <Model>ModbusAnalogInput</Model>
          <Id>-3</Id>
          <DeviceProperties>
            <DeviceType>11001</DeviceType>
            <SerializedValueLogTypeConversions />
            <InternalPollInterval>2500</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas>[{"AttributeDefinition":{"Name":"Temperature"},"ReadFormula":"MODBUSR(H, 0x060E, Int16) \u002B \u0022 \u00B0C\u0022;"},{"AttributeDefinition":{"Name":"Voltage"},"ReadFormula":"MODBUSR(H, 0x060B, Uint16) \u002B \u0022 V\u0022;"},{"AttributeDefinition":{"Name":"Current"},"ReadFormula":"MODBUSR(H, 0x060C, Int16) \u002B \u0022 A\u0022;"},{"AttributeDefinition":{"Name":"Power"},"ReadFormula":"MODBUSR(H, 0x060D, Int16) \u002B \u0022 kW\u0022;"},{"AttributeDefinition":{"Name":"SOH"},"ReadFormula":"MODBUSR(H, 0x0610, Uint16) \u002B \u0022 %\u0022;"}]</ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables />
            <ReadInputLevel>MODBUSR(H, 0x060F, uint16)</ReadInputLevel>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Battery Discharge Today</Name>
          <Model>ModbusVariable</Model>
          <Id>-4</Id>
          <DeviceProperties>
            <DeviceType>9006</DeviceType>
            <SerializedValueLogTypeConversions>{"59":"{\u0022ValueLogTypeConversionTypeId\u0022:3,\u0022SerializedValueLogTypeConversion\u0022:\u0022{\\u0022Value1OnInput\\u0022:0,\\u0022Value1OnOutput\\u0022:0,\\u0022Value2OnInput\\u0022:1,\\u0022Value2OnOutput\\u0022:1,\\u0022SourceValueLogTypes\\u0022:[62],\\u0022TargetValueLogType\\u0022:59}\u0022}"}</SerializedValueLogTypeConversions>
            <InternalPollInterval>15000</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas>[{"AttributeDefinition":{"Name":"Battery Discharge Total"},"ReadFormula":"MODBUSR(H, 0x069A, Uint32)/10"}]</ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables />
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <IsReadOnly>True</IsReadOnly>
            <ReadState>MODBUSR(H, 0x0698, Uint32)/100</ReadState>
            <WriteState></WriteState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Battery Charge Today</Name>
          <Model>ModbusVariable</Model>
          <Id>-5</Id>
          <DeviceProperties>
            <DeviceType>9007</DeviceType>
            <SerializedValueLogTypeConversions>{"59":"{\u0022ValueLogTypeConversionTypeId\u0022:3,\u0022SerializedValueLogTypeConversion\u0022:\u0022{\\u0022Value1OnInput\\u0022:0,\\u0022Value1OnOutput\\u0022:0,\\u0022Value2OnInput\\u0022:1,\\u0022Value2OnOutput\\u0022:1,\\u0022SourceValueLogTypes\\u0022:[62],\\u0022TargetValueLogType\\u0022:59}\u0022}"}</SerializedValueLogTypeConversions>
            <InternalPollInterval>15000</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas>[{"AttributeDefinition":{"Name":"Battery Charge Total"},"ReadFormula":"MODBUSR(H, 0x0696, Uint32)/10"}]</ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables />
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <IsReadOnly>True</IsReadOnly>
            <ReadState>MODBUSR(H, 0x0694, Uint32)/100</ReadState>
            <WriteState></WriteState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Energy Purchase Today</Name>
          <Model>ModbusVariable</Model>
          <Id>-6</Id>
          <DeviceProperties>
            <DeviceType>9004</DeviceType>
            <SerializedValueLogTypeConversions>{"59":"{\u0022ValueLogTypeConversionTypeId\u0022:3,\u0022SerializedValueLogTypeConversion\u0022:\u0022{\\u0022Value1OnInput\\u0022:0,\\u0022Value1OnOutput\\u0022:0,\\u0022Value2OnInput\\u0022:1,\\u0022Value2OnOutput\\u0022:1,\\u0022SourceValueLogTypes\\u0022:[62],\\u0022TargetValueLogType\\u0022:59}\u0022}"}</SerializedValueLogTypeConversions>
            <InternalPollInterval>15000</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas>[{"AttributeDefinition":{"Name":"Energy Purchase Total"},"ReadFormula":"MODBUSR(H, 0x068E, Uint32)/10 \u002B \u0022 kWh\u0022"}]</ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables />
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <IsReadOnly>True</IsReadOnly>
            <ReadState>MODBUSR(H, 0x068C, Uint32)/100</ReadState>
            <WriteState></WriteState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Energy Selling Today</Name>
          <Model>ModbusVariable</Model>
          <Id>-7</Id>
          <DeviceProperties>
            <DeviceType>9005</DeviceType>
            <SerializedValueLogTypeConversions>{"59":"{\u0022ValueLogTypeConversionTypeId\u0022:3,\u0022SerializedValueLogTypeConversion\u0022:\u0022{\\u0022Value1OnInput\\u0022:0,\\u0022Value1OnOutput\\u0022:0,\\u0022Value2OnInput\\u0022:1,\\u0022Value2OnOutput\\u0022:1,\\u0022SourceValueLogTypes\\u0022:[62],\\u0022TargetValueLogType\\u0022:59}\u0022}"}</SerializedValueLogTypeConversions>
            <InternalPollInterval>15000</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas>[{"AttributeDefinition":{"Name":"Energy Selling Total"},"ReadFormula":"MODBUSR(H, 0x0692, Uint32)/10"}]</ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables />
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <IsReadOnly>True</IsReadOnly>
            <ReadState>MODBUSR(H, 0x0690, Uint32)/100</ReadState>
            <WriteState></WriteState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Grid Frequency</Name>
          <Model>ModbusVariable</Model>
          <Id>-8</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <SerializedValueLogTypeConversions>{"58":"{\u0022ValueLogTypeConversionTypeId\u0022:3,\u0022SerializedValueLogTypeConversion\u0022:\u0022{\\u0022Value1OnInput\\u0022:0,\\u0022Value1OnOutput\\u0022:0,\\u0022Value2OnInput\\u0022:1,\\u0022Value2OnOutput\\u0022:1,\\u0022SourceValueLogTypes\\u0022:[62],\\u0022TargetValueLogType\\u0022:58}\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(H, 0x484, UInt16)/100</ReadState>
            <WriteState></WriteState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Load Consumption Today</Name>
          <Model>ModbusVariable</Model>
          <Id>-9</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <SerializedValueLogTypeConversions>{"59":"{\u0022ValueLogTypeConversionTypeId\u0022:3,\u0022SerializedValueLogTypeConversion\u0022:\u0022{\\u0022Value1OnInput\\u0022:0,\\u0022Value1OnOutput\\u0022:0,\\u0022Value2OnInput\\u0022:1,\\u0022Value2OnOutput\\u0022:1,\\u0022SourceValueLogTypes\\u0022:[62],\\u0022TargetValueLogType\\u0022:59}\u0022}"}</SerializedValueLogTypeConversions>
            <InternalPollInterval>15000</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas>[{"AttributeDefinition":{"Name":"Load Consumption Total"},"ReadFormula":"MODBUSR(H, 0x068A, Int32)/100 \u002B \u0022kWh\u0022"}]</ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables />
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <IsReadOnly>True</IsReadOnly>
            <ReadState>MODBUSR(H, 0x0688, Int32)/100</ReadState>
            <WriteState></WriteState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Power PV Total</Name>
          <Model>ModbusVariable</Model>
          <Id>-10</Id>
          <DeviceProperties>
            <DeviceType>9002</DeviceType>
            <SerializedValueLogTypeConversions>{"60":"{\u0022ValueLogTypeConversionTypeId\u0022:3,\u0022SerializedValueLogTypeConversion\u0022:\u0022{\\u0022Value1OnInput\\u0022:0,\\u0022Value1OnOutput\\u0022:0,\\u0022Value2OnInput\\u0022:1,\\u0022Value2OnOutput\\u0022:1,\\u0022SourceValueLogTypes\\u0022:[62],\\u0022TargetValueLogType\\u0022:60}\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(H, 0x05C4, Uint16)/10</ReadState>
            <WriteState></WriteState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>PV 1 Power</Name>
          <Model>ModbusVariable</Model>
          <Id>-11</Id>
          <DeviceProperties>
            <DeviceType>9002</DeviceType>
            <SerializedValueLogTypeConversions>{"60":"{\u0022ValueLogTypeConversionTypeId\u0022:3,\u0022SerializedValueLogTypeConversion\u0022:\u0022{\\u0022Value1OnInput\\u0022:0,\\u0022Value1OnOutput\\u0022:0,\\u0022Value2OnInput\\u0022:1,\\u0022Value2OnOutput\\u0022:1,\\u0022SourceValueLogTypes\\u0022:[62],\\u0022TargetValueLogType\\u0022:60}\u0022}"}</SerializedValueLogTypeConversions>
            <InternalPollInterval>15000</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas>[{"AttributeDefinition":{"Name":"Voltage"},"ReadFormula":"MODBUSR(H, 0x0584, Uint16)/10 \u002B \u0022 V\u0022;"},{"AttributeDefinition":{"Name":"Current"},"ReadFormula":"MODBUSR(H, 0x0585, Uint16)/100 \u002B \u0022 A\u0022;"}]</ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables />
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <IsReadOnly>True</IsReadOnly>
            <ReadState>MODBUSR(H, 0x0586, Uint16)/100</ReadState>
            <WriteState></WriteState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>PV 2 Power</Name>
          <Model>ModbusVariable</Model>
          <Id>-12</Id>
          <DeviceProperties>
            <DeviceType>9002</DeviceType>
            <SerializedValueLogTypeConversions>{"60":"{\u0022ValueLogTypeConversionTypeId\u0022:3,\u0022SerializedValueLogTypeConversion\u0022:\u0022{\\u0022Value1OnInput\\u0022:0,\\u0022Value1OnOutput\\u0022:0,\\u0022Value2OnInput\\u0022:1,\\u0022Value2OnOutput\\u0022:1,\\u0022SourceValueLogTypes\\u0022:[62],\\u0022TargetValueLogType\\u0022:60}\u0022}"}</SerializedValueLogTypeConversions>
            <InternalPollInterval>15000</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas>[{"AttributeDefinition":{"Name":"Voltage"},"ReadFormula":"MODBUSR(H, 0x0587, Uint16)/10 \u002B \u0022 V\u0022;"},{"AttributeDefinition":{"Name":"Current"},"ReadFormula":"MODBUSR(H, 0x0588, Uint16)/100 \u002B \u0022 A\u0022;"}]</ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables />
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <IsReadOnly>True</IsReadOnly>
            <ReadState>MODBUSR(H, 0x0589, Uint16)/100</ReadState>
            <WriteState></WriteState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>PV 3 Power</Name>
          <Model>ModbusVariable</Model>
          <Id>-13</Id>
          <DeviceProperties>
            <DeviceType>9002</DeviceType>
            <SerializedValueLogTypeConversions>{"60":"{\u0022ValueLogTypeConversionTypeId\u0022:3,\u0022SerializedValueLogTypeConversion\u0022:\u0022{\\u0022Value1OnInput\\u0022:0,\\u0022Value1OnOutput\\u0022:0,\\u0022Value2OnInput\\u0022:1,\\u0022Value2OnOutput\\u0022:1,\\u0022SourceValueLogTypes\\u0022:[62],\\u0022TargetValueLogType\\u0022:60}\u0022}"}</SerializedValueLogTypeConversions>
            <InternalPollInterval>15000</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas>[{"AttributeDefinition":{"Name":"Voltage"},"ReadFormula":"MODBUSR(H, 0x058A, Uint16)/10 \u002B \u0022 V\u0022;"},{"AttributeDefinition":{"Name":"Current"},"ReadFormula":"MODBUSR(H, 0x058B, Uint16)/100 \u002B \u0022 A\u0022"}]</ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables />
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <IsReadOnly>True</IsReadOnly>
            <ReadState>MODBUSR(H, 0x058A, Uint16)/100</ReadState>
            <WriteState></WriteState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>PV Generation Today</Name>
          <Model>ModbusVariable</Model>
          <Id>-14</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <SerializedValueLogTypeConversions>{"59":"{\u0022ValueLogTypeConversionTypeId\u0022:3,\u0022SerializedValueLogTypeConversion\u0022:\u0022{\\u0022Value1OnInput\\u0022:0,\\u0022Value1OnOutput\\u0022:0,\\u0022Value2OnInput\\u0022:1,\\u0022Value2OnOutput\\u0022:1,\\u0022SourceValueLogTypes\\u0022:[62],\\u0022TargetValueLogType\\u0022:59}\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(H, 0x0684, Int32)/100</ReadState>
            <WriteState></WriteState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>PV Generation Total</Name>
          <Model>ModbusVariable</Model>
          <Id>-15</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <SerializedValueLogTypeConversions>{"59":"{\u0022ValueLogTypeConversionTypeId\u0022:3,\u0022SerializedValueLogTypeConversion\u0022:\u0022{\\u0022Value1OnInput\\u0022:0,\\u0022Value1OnOutput\\u0022:0,\\u0022Value2OnInput\\u0022:1,\\u0022Value2OnOutput\\u0022:1,\\u0022SourceValueLogTypes\\u0022:[62],\\u0022TargetValueLogType\\u0022:59}\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(H, 0x0686, Int32)/100</ReadState>
            <WriteState></WriteState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>R-phase Voltage</Name>
          <Model>ModbusVariable</Model>
          <Id>-16</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <SerializedValueLogTypeConversions>{"87":"{\u0022ValueLogTypeConversionTypeId\u0022:3,\u0022SerializedValueLogTypeConversion\u0022:\u0022{\\u0022Value1OnInput\\u0022:0,\\u0022Value1OnOutput\\u0022:0,\\u0022Value2OnInput\\u0022:1,\\u0022Value2OnOutput\\u0022:1,\\u0022SourceValueLogTypes\\u0022:[62],\\u0022TargetValueLogType\\u0022:87}\u0022}"}</SerializedValueLogTypeConversions>
            <InternalPollInterval>15000</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas>[{"AttributeDefinition":{"Name":"Current R"},"ReadFormula":"MODBUSR(H, 0x048E, Uint16)/100 \u002B \u0022 A\u0022;"}]</ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables />
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <IsReadOnly>True</IsReadOnly>
            <ReadState>MODBUSR(H, 0x048D, Uint16)/10</ReadState>
            <WriteState></WriteState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>S-phase Voltage</Name>
          <Model>ModbusVariable</Model>
          <Id>-17</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <SerializedValueLogTypeConversions>{"87":"{\u0022ValueLogTypeConversionTypeId\u0022:3,\u0022SerializedValueLogTypeConversion\u0022:\u0022{\\u0022Value1OnInput\\u0022:0,\\u0022Value1OnOutput\\u0022:0,\\u0022Value2OnInput\\u0022:1,\\u0022Value2OnOutput\\u0022:1,\\u0022SourceValueLogTypes\\u0022:[62],\\u0022TargetValueLogType\\u0022:87}\u0022}"}</SerializedValueLogTypeConversions>
            <InternalPollInterval>15000</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas>[{"AttributeDefinition":{"Name":"Current S"},"ReadFormula":"MODBUSR(H, 0x0499, Uint16)/100 \u002B \u0022 A\u0022"}]</ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables />
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <IsReadOnly>True</IsReadOnly>
            <ReadState>MODBUSR(H, 0x0498, Uint16)/10</ReadState>
            <WriteState></WriteState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>T-phase Voltage</Name>
          <Model>ModbusVariable</Model>
          <Id>-18</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <SerializedValueLogTypeConversions>{"87":"{\u0022ValueLogTypeConversionTypeId\u0022:3,\u0022SerializedValueLogTypeConversion\u0022:\u0022{\\u0022Value1OnInput\\u0022:0,\\u0022Value1OnOutput\\u0022:0,\\u0022Value2OnInput\\u0022:1,\\u0022Value2OnOutput\\u0022:1,\\u0022SourceValueLogTypes\\u0022:[62],\\u0022TargetValueLogType\\u0022:87}\u0022}"}</SerializedValueLogTypeConversions>
            <InternalPollInterval>15000</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas>[{"AttributeDefinition":{"Name":"Current T"},"ReadFormula":"MODBUSR(H, 0x04A4, Uint16)/100 \u002B \u0022 A\u0022"}]</ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables />
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <IsReadOnly>True</IsReadOnly>
            <ReadState>MODBUSR(H, 0x04A3, Uint16)/10</ReadState>
            <WriteState></WriteState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Total Active Power Output</Name>
          <Model>ModbusVariable</Model>
          <Id>-19</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <SerializedValueLogTypeConversions>{"60":"{\u0022ValueLogTypeConversionTypeId\u0022:3,\u0022SerializedValueLogTypeConversion\u0022:\u0022{\\u0022Value1OnInput\\u0022:0,\\u0022Value1OnOutput\\u0022:0,\\u0022Value2OnInput\\u0022:1,\\u0022Value2OnOutput\\u0022:1,\\u0022SourceValueLogTypes\\u0022:[62],\\u0022TargetValueLogType\\u0022:60}\u0022}"}</SerializedValueLogTypeConversions>
            <InternalPollInterval>15000</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas>[{"AttributeDefinition":{"Name":"Reactive Power Output "},"ReadFormula":"MODBUSR(H, 0x0486, Int16)/100 \u002B \u0022 kW\u0022 ;"},{"AttributeDefinition":{"Name":"Apparent Power Output"},"ReadFormula":"MODBUSR(H, 0x0487, Int16)/100 \u002B \u0022 kW\u0022 ;"}]</ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables />
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <IsReadOnly>True</IsReadOnly>
            <ReadState>MODBUSR(H, 0x0485, Int16)/100</ReadState>
            <WriteState></WriteState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Total Active Power PPC </Name>
          <Model>ModbusVariable</Model>
          <Id>-20</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <SerializedValueLogTypeConversions>{"60":"{\u0022ValueLogTypeConversionTypeId\u0022:3,\u0022SerializedValueLogTypeConversion\u0022:\u0022{\\u0022Value1OnInput\\u0022:0,\\u0022Value1OnOutput\\u0022:0,\\u0022Value2OnInput\\u0022:1,\\u0022Value2OnOutput\\u0022:1,\\u0022SourceValueLogTypes\\u0022:[62],\\u0022TargetValueLogType\\u0022:60}\u0022}"}</SerializedValueLogTypeConversions>
            <InternalPollInterval>15000</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas>[{"AttributeDefinition":{"Name":"Reactive Power PPC"},"ReadFormula":"MODBUSR(H, 0x0489, Int16)/100 \u002B \u0022 kW\u0022 ;"},{"AttributeDefinition":{"Name":"Apparent Power PPC"},"ReadFormula":"MODBUSR(H, 0x048A, Int16)/100 \u002B \u0022 kW\u0022 ;"}]</ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables />
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <IsReadOnly>True</IsReadOnly>
            <ReadState>MODBUSR(H, 0x0488, Int16)/100</ReadState>
            <WriteState></WriteState>
          </DeviceProperties>
        </Device>
      </Devices>
    </Module>
  </Template>
</Templates>