﻿<?xml version="1.0" encoding="utf-8"?>
<Templates format="2" protocolVersion="81">
  <Template revision="1.1" id="3c957adb-30f3-48be-af8e-b5de53849eaf">
    <SuggestedCCUParameters>
      <TcpPort>1502</TcpPort>
      <DelayBetweenRequests>-1</DelayBetweenRequests>
      <ReadWriteTimeout>200</ReadWriteTimeout>
    </SuggestedCCUParameters>
    <ImportParameters>
      <Parameter>
        <Id>SlaveId</Id>
        <Name>${device_SlaveId}</Name>
        <Value>1</Value>
      </Parameter>
      <Parameter>
        <Id>IpAddress</Id>
        <Name>${ipAddress}</Name>
        <Value>192.168.1.0</Value>
      </Parameter>
    </ImportParameters>
    <RevisionHistory>
      <Revision id="1.0">Initial version</Revision>
    </RevisionHistory>
    <Name>PlentyCore</Name>
    <CcuModel>ModbusTcpCCU</CcuModel>
    <Producer>PlentyCore</Producer>
    <Model></Model>
    <Description></Description>
    <Module>
      <Name>PlentyCore</Name>
      <Id>-1</Id>
      <Model>ModbusModule</Model>
      <DeviceProperties>
        <DeviceType>7001</DeviceType>
        <InternalPollInterval>30000</InternalPollInterval>
        <PrefetchModeId>0</PrefetchModeId>
        <ServiceAttributesFormulas>[{"AttributeDefinition":{"Name":"MODBUS enable"},"ReadFormula":"IF(MODBUSR(H, 2, Bool), \u0022Enabled\u0022, \u0022Disabled\u0022);"},{"AttributeDefinition":{"Name":"IP enable"},"ReadFormula":"IF(MODBUSR(H, 416, Bool), \u0022Enabled\u0022, \u0022Disabled\u0022);"},{"AttributeDefinition":{"Name":"Grid Frequency"},"ReadFormula":"ROUND(MODBUSR(H, 152, Float, 2)) \u002B \u0022 Hz\u0022;"},{"AttributeDefinition":{"Name":"Inverter State"},"ReadFormula":"SWITCH(MODBUSR(H, 56, Uint16), \r\n0, \u0022Off\u0022,\r\n1, \u0022Init\u0022,\r\n2, \u0022IsoMeas\u0022,\r\n3, \u0022GridCheck\u0022,\r\n4, \u0022StartUp\u0022,\r\n5, \u0022-\u0022,\r\n6, \u0022FeedIn\u0022,\r\n7, \u0022Throttled\u0022,\r\n8, \u0022ExtSwitchOff\u0022,\r\n9, \u0022Update\u0022,\r\n10, \u0022Standby\u0022,\r\n11, \u0022GridSync\u0022,\r\n12, \u0022GridPreCheck\u0022,\r\n13, \u0022GridSwitchOff\u0022,\r\n14, \u0022Overheating\u0022,\r\n15, \u0022Shutdown\u0022,\r\n16, \u0022ImproperDcVoltage\u0022,\r\n17, \u0022ESB\u0022,\r\n18, \u0022Unknown\u0022,\r\n\u0022Error\u0022\r\n);"}]</ServiceAttributesFormulas>
        <SlaveId>$[SlaveId]</SlaveId>
        <IpAddress>$[IpAddress]</IpAddress>
        <MaxPrefetchGroupSize>100</MaxPrefetchGroupSize>
      </DeviceProperties>
      <Devices>
        <Device>
          <Name>${deviceType_BatterySOC}</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":"Battery Voltage"},"ReadFormula":"ROUND(MODBUSR(H, 216, Float, 2)) \u002B \u0022 V\u0022;"},{"AttributeDefinition":{"Name":"Battery Temperature"},"ReadFormula":"MODBUSR(H, 214, Float, 2) \u002B \u0022 \u00B0C\u0022"},{"AttributeDefinition":{"Name":"Minimum SOC"},"ReadFormula":"MODBUSR(H, 1042, Float, 2) \u002B \u0022%\u0022"},{"AttributeDefinition":{"Name":"Maximum SOC"},"ReadFormula":"MODBUSR(H, 1044, Float, 2) \u002B \u0022%\u0022"},{"AttributeDefinition":{"Name":"Battery Type"},"ReadFormula":"SWITCH(MODBUSR(H, 588, Uint16),\r\n 0, \u0022No battery (PV-functionality)\u0022,\r\n 2, \u0022Li-Io battery SONY / MURATA\u0022,\r\n 4, \u0022Li-Io battery BYD / BBOX\u0022,\r\n \u0022Unknown\u0022\r\n );\r\n"}]</ServiceAttributesFormulas>
            <ServiceActionsScripts>[{"ActionDefinition":{"Name":"SOC settings","NumericParameters":[{"FriendlyName":"Minimum SOC","Abbreviation":"mis","IsFloat":false,"MinValue":1,"MaxValue":90},{"FriendlyName":"Maximum SOC","Abbreviation":"mas","IsFloat":false,"MinValue":10,"MaxValue":100}],"BoolParameters":[],"EnumParameters":[]},"Script":"MODBUSW(H, 1042, Float, mis,  2);\r\nMODBUSW(H, 1044, Float, mas, 2);\r\n\r\n"}]</ServiceActionsScripts>
            <CustomDeviceVariables>[]</CustomDeviceVariables>
            <ReadInputLevel>MODBUSR(H, 210, Float, 2)/100</ReadInputLevel>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Daily yield</Name>
          <Model>ModbusVariable</Model>
          <Id>-3</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, 322, Float, 2)/1000</ReadState>
            <WriteState></WriteState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Monthly yield</Name>
          <Model>ModbusVariable</Model>
          <Id>-4</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, 326, Float, 2)/1000</ReadState>
            <WriteState></WriteState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Power DC1</Name>
          <Model>ModbusVariable</Model>
          <Id>-5</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":"Current DC1"},"ReadFormula":"ROUND(MODBUSR(H, 258, Float, 2)) \u002B \u0022 A\u0022;\r\n"},{"AttributeDefinition":{"Name":"Voltage DC1"},"ReadFormula":"ROUND(MODBUSR(H, 266, Float, 2)) \u002B \u0022 V\u0022"}]</ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables />
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <IsReadOnly>True</IsReadOnly>
            <ReadState>MODBUSR(H, 260, float, 2)/1000</ReadState>
            <WriteState></WriteState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Power DC2</Name>
          <Model>ModbusVariable</Model>
          <Id>-6</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":"Current DC2"},"ReadFormula":"ROUND(MODBUSR(H, 268, Float, 2)) \u002B \u0022 A\u0022;\r\n"},{"AttributeDefinition":{"Name":"Voltage DC2"},"ReadFormula":"ROUND(MODBUSR(H, 276, Float, 2)) \u002B \u0022 V\u0022"}]</ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables />
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <IsReadOnly>True</IsReadOnly>
            <ReadState>MODBUSR(H, 270, float, 2)/1000</ReadState>
            <WriteState></WriteState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Power DC3</Name>
          <Model>ModbusVariable</Model>
          <Id>-7</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":"Current DC3"},"ReadFormula":"ROUND(MODBUSR(H, 278, Float, 2)) \u002B \u0022 A\u0022;\r\n"},{"AttributeDefinition":{"Name":"Voltage DC3"},"ReadFormula":"ROUND(MODBUSR(H, 286, Float, 2)) \u002B \u0022 V\u0022"}]</ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables />
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <IsReadOnly>True</IsReadOnly>
            <ReadState>MODBUSR(H, 280, float, 2)/1000</ReadState>
            <WriteState></WriteState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Total AC Active Power</Name>
          <Model>ModbusVariable</Model>
          <Id>-8</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></ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables />
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <IsReadOnly>True</IsReadOnly>
            <ReadState>MODBUSR(H, 172, Float, 2)/1000</ReadState>
            <WriteState></WriteState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Total DC Power</Name>
          <Model>ModbusVariable</Model>
          <Id>-9</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></ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables />
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <IsReadOnly>True</IsReadOnly>
            <ReadState>MODBUSR(H, 1066, Float, 2)/1000</ReadState>
            <WriteState></WriteState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Total yield</Name>
          <Model>ModbusVariable</Model>
          <Id>-10</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, 320, Float, 2)/1000</ReadState>
            <WriteState></WriteState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Yearly yield</Name>
          <Model>ModbusVariable</Model>
          <Id>-11</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, 324, Float, 2) /1000</ReadState>
            <WriteState></WriteState>
          </DeviceProperties>
        </Device>
      </Devices>
    </Module>
  </Template>
</Templates>