﻿<?xml version="1.0" encoding="utf-8"?>
<Templates format="2" protocolVersion="76">
  <Template revision="1.0" id="f377d214-3699-4d53-8175-be239dd27b1a">
    <SuggestedCCUParameters>
      <UseAsciiCommunication>False</UseAsciiCommunication>
      <StopBits>One</StopBits>
      <DataBits>8</DataBits>
      <Parity>Even</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>
      <Revision id="2.0">Update with translation</Revision>
    </RevisionHistory>
    <Name>Samsung_MIM_B19N HE/HT/EHS</Name>
    <CcuModel>ModbusRtuCCU</CcuModel>
    <Producer>Samsung</Producer>
    <Model>HE/HT/EHS</Model>
    <Description>Template for Samsung_MIM_B19N with unit type HE, HT or EHS</Description>
    <Module>
      <Name>Samsung_MIM_B19N HE/HT/EHS</Name>
      <Id>-1</Id>
      <Model>ModbusModule</Model>
      <DeviceProperties>
        <DeviceType>7001</DeviceType>
        <InternalPollInterval>30000</InternalPollInterval>
        <ReadScript>var err := MODBUSR(H, 0, Uint16);
IF(GETBIT(err, 0) = 1, ADDERROR("${adress_error}"));
IF(GETBIT(err, 1) = 1, ADDERROR("${comm_error_R1/R2}"));
IF(GETBIT(err, 2) = 1, ADDERROR("${tracking_error}"));
var reg := MODBUSR(H, 1, Uint16);
IF(reg = 0, "", ADDERROR("${integ_od_unit_err}, reg)");</ReadScript>
        <PrefetchModeId>0</PrefetchModeId>
        <ServiceAttributesFormulas>[{"AttributeDefinition":{"Name":"Communication Status"},"ReadFormula":"var com := MODBUSR(H, 50, Uint16);\r\nvar b0 := IF(getbit(com, 0) = 1, \u0022Exist \u0022, \u0022\u0022);\r\nvar b1 := IF(getbit(com, 1) = 1, \u0022- Type OK \u0022, \u0022\u0022);\r\nvar b2 := IF(getbit(com, 2) = 1, \u0022- Ready \u0022, \u0022\u0022);\r\nvar b3 := IF(getbit(com, 3) = 1, \u0022Communication error \u0022, \u0022\u0022);\r\nRETURN(b0 \u002B b1 \u002B b2 \u002B b3);"},{"AttributeDefinition":{"Name":"Unit Type"},"ReadFormula":"var type := GETBITS(MODBUSR(H, 51, Uint16),8, 8);\r\nvar lower := GETBITS(MODBUSR(H, 51, Uint16),0, 8);\r\n\r\n\r\nIF(type = 10, RETURN(\u0022FCU\u0022));\r\nIF(lower = 108, RETURN(\u0022ERV\u002B\u0022)); \r\nIF(lower = 110, RETURN(\u0022HE\u0022)); \r\nIF(lower = 120, RETURN(\u0022HT\u0022)); \r\nIF( 90 \u003C= lower AND lower \u003C=99 , RETURN(\u0022AHU\u0022));\r\nIF( 100 \u003C= lower AND lower \u003C= 102 , RETURN(\u0022ERV\u0022));\r\nIF( 115 \u003C= lower AND lower \u003C= 117 , RETURN(\u0022EHS\u0022));\r\nIF( 140 \u003C= lower AND lower \u003C= 149 , RETURN(\u0022Module Chiller\u0022));\r\nIF( 160 \u003C= lower AND lower \u003C= 169 , RETURN(\u0022FCU kit\u0022));\r\nRETURN(\u0022Indoor Unit\u0022);"},{"AttributeDefinition":{"Name":"Remote Control Restriction"},"ReadFormula":"var r := MODBUSR(H, 64, Uint16);\r\nIF(r = 0, \u0022No restriction\u0022, \u0022Restriction \u0022 \u002B r);"}]</ServiceAttributesFormulas>
        <ServiceActionsScripts>[{"ActionDefinition":{"Name":${buzzer},"NumericParameters":[],"BoolParameters":[],"EnumParameters":[{"FriendlyName":"Buzzer","Abbreviation":"buz","Values":[{"Item1":0.0,"Item2":"On"},{"Item1":1.0,"Item2":"Off"}]}]},"Script":"MODBUSW(H, 3, Int16, buz);"},{"ActionDefinition":{"Name":${remote_restrict},"NumericParameters":[],"BoolParameters":[],"EnumParameters":[{"FriendlyName":"Restriction","Abbreviation":"res","Values":[{"Item1":0.0,"Item2":"No Restriction"},{"Item1":25443.0,"Item2":"Restriction"}]}]},"Script":"MODBUSWNE(H, 64, Uint16, res);"}]</ServiceActionsScripts>
        <SlaveId>$[SlaveId]</SlaveId>
        <MaxPrefetchGroupSize>12</MaxPrefetchGroupSize>
        <IpAddress>$[IpAddress]</IpAddress>
      </DeviceProperties>
      <Devices>
        <Device>
          <Name>${air_con}</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>60</OnStateIconId>
            <OffStateIconId>61</OffStateIconId>
            <OnStateName>On</OnStateName>
            <OffStateName>Off</OffStateName>
            <ReadSwitchState>MODBUSR(H, 52, Bool)</ReadSwitchState>
            <WriteSwitchState>MODBUSWNE(H, 52, Bool, St)</WriteSwitchState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>${hot_water_mode}</Name>
          <Model>ModbusMultiValueSwitch</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>
            <Value0Index>0</Value0Index>
            <Value1Index>1</Value1Index>
            <Value2Index>2</Value2Index>
            <Value3Index>3</Value3Index>
            <Value4Index>68</Value4Index>
            <Value5Index>69</Value5Index>
            <Value6Index>70</Value6Index>
            <Value7Index>71</Value7Index>
            <Value8Index>72</Value8Index>
            <Value9Index>73</Value9Index>
            <Value0Name>ECO</Value0Name>
            <Value1Name>Standart</Value1Name>
            <Value2Name>Power</Value2Name>
            <Value3Name>Force(EHS)</Value3Name>
            <Value4Name>Cool</Value4Name>
            <Value5Name>5</Value5Name>
            <Value6Name>6</Value6Name>
            <Value7Name>7</Value7Name>
            <Value8Name>8</Value8Name>
            <Value9Name>9</Value9Name>
            <Value0IconId>16</Value0IconId>
            <Value1IconId>3</Value1IconId>
            <Value2IconId>95</Value2IconId>
            <Value3IconId>1</Value3IconId>
            <Value4IconId>18</Value4IconId>
            <Value5IconId>10</Value5IconId>
            <Value6IconId>11</Value6IconId>
            <Value7IconId>12</Value7IconId>
            <Value8IconId>13</Value8IconId>
            <Value9IconId>14</Value9IconId>
            <OffStateValue>0</OffStateValue>
            <ReadSwitchState>MODBUSR(H, 73, UInt16)</ReadSwitchState>
            <WriteSwitchState>MODBUSWNE(H, 73, UInt16, Mu)</WriteSwitchState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>${hot_water_operation}</Name>
          <Model>ModbusSwitch</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>
            <NegateState>False</NegateState>
            <OnStateIconId>358</OnStateIconId>
            <OffStateIconId>359</OffStateIconId>
            <OnStateName>On</OnStateName>
            <OffStateName>Off</OffStateName>
            <ReadSwitchState>MODBUSR(H, 72, Bool)</ReadSwitchState>
            <WriteSwitchState>MODBUSWNE(H, 72, Bool, St)</WriteSwitchState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>${hot_water_temperature}</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></CustomDeviceVariables>
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <MinTemperature>30</MinTemperature>
            <MaxTemperature>75</MaxTemperature>
            <ReadCurrentTemperature>MODBUSR(H, 75, Int16) / 10</ReadCurrentTemperature>
            <ReadDesiredTemperature>MODBUSR(H, 74, Int16) / 10</ReadDesiredTemperature>
            <WriteDesiredTemperature>MODBUSWNE(H, 74, Int16, Se * 10)</WriteDesiredTemperature>
            <ReadHumidity></ReadHumidity>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>${air_con_mode}</Name>
          <Model>ModbusMultiValueSwitch</Model>
          <Id>-6</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>4</Value3Index>
            <Value4Index>4</Value4Index>
            <Value5Index>69</Value5Index>
            <Value6Index>70</Value6Index>
            <Value7Index>71</Value7Index>
            <Value8Index>72</Value8Index>
            <Value9Index>73</Value9Index>
            <Value0Name>Auto</Value0Name>
            <Value1Name>Cool</Value1Name>
            <Value2Name>Dry</Value2Name>
            <Value3Name>Fan</Value3Name>
            <Value4Name>Heat</Value4Name>
            <Value5Name>5</Value5Name>
            <Value6Name>6</Value6Name>
            <Value7Name>7</Value7Name>
            <Value8Name>8</Value8Name>
            <Value9Name>9</Value9Name>
            <Value0IconId>113</Value0IconId>
            <Value1IconId>2</Value1IconId>
            <Value2IconId>234</Value2IconId>
            <Value3IconId>28</Value3IconId>
            <Value4IconId>1</Value4IconId>
            <Value5IconId>10</Value5IconId>
            <Value6IconId>11</Value6IconId>
            <Value7IconId>12</Value7IconId>
            <Value8IconId>13</Value8IconId>
            <Value9IconId>14</Value9IconId>
            <OffStateValue>0</OffStateValue>
            <ReadSwitchState>MODBUSR(H, 53, Int16)</ReadSwitchState>
            <WriteSwitchState>MODBUSWNE(H, 53, Int16, Mu)</WriteSwitchState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>${quiet_control}</Name>
          <Model>ModbusSwitch</Model>
          <Id>-7</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>2500</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas>[{"AttributeDefinition":{"Name":${away_function},"Section":null},"ReadFormula":"SWITCH(MODBUSR(H, 79, Uint16), 0, ${off}, 1, ${on}, \"${not_supported}\")"}]</ServiceAttributesFormulas>
            <ServiceActionsScripts>[{"ActionDefinition":{"Name":${away_function},"NumericParameters":[],"BoolParameters":[],"EnumParameters":[{"FriendlyName":"Outing","Abbreviation":"o","Values":[{"Item1":0.0,"Item2":"Outing Off"},{"Item1":1.0,"Item2":"Outing On"}]}]},"Script":"MODBUSW(H, 79, Uint16, o);"}]</ServiceActionsScripts>
            <CustomDeviceVariables></CustomDeviceVariables>
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <NegateState>False</NegateState>
            <OnStateIconId>206</OnStateIconId>
            <OffStateIconId>205</OffStateIconId>
            <OnStateName>Silence on</OnStateName>
            <OffStateName>Silence Off</OffStateName>
            <ReadSwitchState>MODBUSR(H, 78, Bool)</ReadSwitchState>
            <WriteSwitchState>MODBUSW(H, 78, Bool, St)</WriteSwitchState>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>${water_in_tempt}</Name>
          <Model>ModbusTemperatureSensor</Model>
          <Id>-8</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>15000</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas></ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables></CustomDeviceVariables>
            <TemperatureCalibration>0</TemperatureCalibration>
            <ReadTemperature>MODBUSR(H, 65, Int16) / 10</ReadTemperature>
            <ReadHumidity></ReadHumidity>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>${water-out}</Name>
          <Model>ModbusThermostat</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>
            <MinTemperature>5</MinTemperature>
            <MaxTemperature>55</MaxTemperature>
            <ReadCurrentTemperature>MODBUSR(H, 66, Int16) / 10</ReadCurrentTemperature>
            <ReadDesiredTemperature>MODBUSR(H, 68, Int16) / 10</ReadDesiredTemperature>
            <WriteDesiredTemperature>MODBUSW(H, 68, Int16, Se * 10)</WriteDesiredTemperature>
            <ReadHumidity></ReadHumidity>
          </DeviceProperties>
        </Device>
      </Devices>
    </Module>
  </Template>
</Templates>
