<?xml version="1.0" encoding="utf-8"?>
<Templates format="2" protocolVersion="76">
  <Template id="f69e0dfc-d3af-4d61-bd69-62039c906957" revision="1.2">
    <SuggestedCCUParameters>
      <UseAsciiCommunication>False</UseAsciiCommunication>
      <StopBits>One</StopBits>
      <DataBits>8</DataBits>
      <Parity>None</Parity>
      <Baudrate>9600</Baudrate>
      <DelayBetweenRequests>-1</DelayBetweenRequests>
      <ReadWriteTimeout>200</ReadWriteTimeout>
    </SuggestedCCUParameters>
    <RevisionHistory>
      <Revision id="1.0">Initial version</Revision>
      <Revision id="1.1">Fixed the switch &quot;Zapnut kurenie&quot; (holding register 4, Space Heating/Cooling On/Off): WriteSwitchState used MODBUSR, which only reads, so the switch never turned space heating on or off. Changed it to MODBUSW(H, 4, Int16, St). Source: Daikin DCOM-LT/MB Reference Manual, holding register 4 &quot;Space Heating/Cooling On/Off&quot;, int16, 0 = OFF, 1 = ON, written with function 6 or 16. No other change.</Revision>
      <Revision id="1.2">Multi-value switch slots: restored the value names and icons the portal dropped before 2026-11-13 and wrote every unused slot in full (Index s+64, Name s, IconId s+5), as the app exports it; Core 2026.1 needs 10 value descriptions per switch.</Revision>
    </RevisionHistory>
    <Name>Daikin Altherma 3</Name>
    <CcuModel>ModbusRtuCCU</CcuModel>
    <Producer/>
    <Model/>
    <Description>by Peter Gablas - ElRePRO</Description>
    <ImportParameters>
      <Parameter>
        <Id>SlaveId</Id>
        <Name>Slave Id</Name>
        <Value>1</Value>
      </Parameter>
      <Parameter>
        <Id>IpAddress</Id>
        <Name>IP address</Name>
        <Value>192.168.1.0</Value>
      </Parameter>
    </ImportParameters>
    <Module>
      <Name>Daikin Altherma 3</Name>
      <Id>-1</Id>
      <Model>ModbusModule</Model>
      <DeviceProperties>
        <DeviceType>7001</DeviceType>
        <InternalPollInterval>30000</InternalPollInterval>
        <PrefetchModeId>0</PrefetchModeId>
        <SlaveId>$[SlaveId]</SlaveId>
        <MaxPrefetchGroupSize>100</MaxPrefetchGroupSize>
        <IpAddress>$[IpAddress]</IpAddress>
      </DeviceProperties>
      <Devices>
        <Device>
          <Name>Dezinfekcia</Name>
          <Id>-2</Id>
          <Model>ModbusVariable</Model>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <SerializedValueLogTypeConversions/>
            <InternalPollInterval>15000</InternalPollInterval>
            <InitializeScript/>
            <ReadScript/>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas/>
            <ServiceActionsScripts/>
            <CustomDeviceVariables/>
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <IsReadOnly>True</IsReadOnly>
            <ReadState>MODBUSR(A, 33, int16)</ReadState>
            <WriteState/>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Equitermika - Krivka</Name>
          <Id>-3</Id>
          <Model>ModbusThermostat</Model>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>2500</InternalPollInterval>
            <InitializeScript/>
            <ReadScript/>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas>[]</ServiceAttributesFormulas>
            <ServiceActionsScripts>[]</ServiceActionsScripts>
            <CustomDeviceVariables/>
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <MinTemperature>25</MinTemperature>
            <MaxTemperature>55</MaxTemperature>
            <ReadCurrentTemperature>ROUND(MODBUSR(H, 1, Int16))</ReadCurrentTemperature>
            <ReadDesiredTemperature>ROUND(MODBUSR(H, 1, Int16))</ReadDesiredTemperature>
            <WriteDesiredTemperature>MODBUSW(H, 1, Int16, ROUND(Se))</WriteDesiredTemperature>
            <ReadHumidity/>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Equitermika - Posun</Name>
          <Id>-4</Id>
          <Model>ModbusThermostat</Model>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>2500</InternalPollInterval>
            <InitializeScript/>
            <ReadScript/>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas/>
            <ServiceActionsScripts/>
            <CustomDeviceVariables/>
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <MinTemperature>-10</MinTemperature>
            <MaxTemperature>10</MaxTemperature>
            <ReadCurrentTemperature>MODBUSR(H, 54, Int16)</ReadCurrentTemperature>
            <ReadDesiredTemperature>MODBUSR(H, 54, Int16)</ReadDesiredTemperature>
            <WriteDesiredTemperature>MODBUSW(H, 54, Int16, Se)</WriteDesiredTemperature>
            <ReadHumidity/>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Chod Kompresor</Name>
          <Id>-5</Id>
          <Model>ModbusVariable</Model>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <SerializedValueLogTypeConversions/>
            <InternalPollInterval>15000</InternalPollInterval>
            <InitializeScript/>
            <ReadScript/>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas/>
            <ServiceActionsScripts/>
            <CustomDeviceVariables/>
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <IsReadOnly>True</IsReadOnly>
            <ReadState>MODBUSR(A, 31, int16)</ReadState>
            <WriteState/>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Chyba</Name>
          <Id>-6</Id>
          <Model>ModbusVariable</Model>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <SerializedValueLogTypeConversions/>
            <InternalPollInterval>15000</InternalPollInterval>
            <InitializeScript/>
            <ReadScript/>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas/>
            <ServiceActionsScripts/>
            <CustomDeviceVariables/>
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <IsReadOnly>True</IsReadOnly>
            <ReadState>MODBUSR(A, 21, Int16)</ReadState>
            <WriteState/>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Mod Tepeplneho Cerpadla</Name>
          <Id>-7</Id>
          <Model>ModbusMultiValueSwitch</Model>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>2500</InternalPollInterval>
            <InitializeScript/>
            <ReadScript/>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas/>
            <ServiceActionsScripts/>
            <CustomDeviceVariables/>
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <OffStateValue>1</OffStateValue>
            <ReadSwitchState>MODBUSR(H, 3, Int16)</ReadSwitchState>
            <WriteSwitchState>MODBUSW(H, 3, Int16, Mu)</WriteSwitchState>
            <Value0>0</Value0>
            <Value0Index>0</Value0Index>
            <Value0Name>AUTO</Value0Name>
            <Value0IconId>362</Value0IconId>
            <Value1>1</Value1>
            <Value1Index>1</Value1Index>
            <Value1Name>Ohrev</Value1Name>
            <Value1IconId>358</Value1IconId>
            <Value2>2</Value2>
            <Value2Index>2</Value2Index>
            <Value2Name>Chladenie</Value2Name>
            <Value2IconId>360</Value2IconId>
            <Value3Index>67</Value3Index>
            <Value3Name>3</Value3Name>
            <Value3IconId>8</Value3IconId>
            <Value4Index>68</Value4Index>
            <Value4Name>4</Value4Name>
            <Value4IconId>9</Value4IconId>
            <Value5Index>69</Value5Index>
            <Value5Name>5</Value5Name>
            <Value5IconId>10</Value5IconId>
            <Value6Index>70</Value6Index>
            <Value6Name>6</Value6Name>
            <Value6IconId>11</Value6IconId>
            <Value7Index>71</Value7Index>
            <Value7Name>7</Value7Name>
            <Value7IconId>12</Value7IconId>
            <Value8Index>72</Value8Index>
            <Value8Name>8</Value8Name>
            <Value8IconId>13</Value8IconId>
            <Value9Index>73</Value9Index>
            <Value9Name>9</Value9Name>
            <Value9IconId>14</Value9IconId>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Obehove Cerpadlo</Name>
          <Id>-8</Id>
          <Model>ModbusVariable</Model>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <SerializedValueLogTypeConversions/>
            <InternalPollInterval>15000</InternalPollInterval>
            <InitializeScript/>
            <ReadScript/>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas/>
            <ServiceActionsScripts/>
            <CustomDeviceVariables/>
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <IsReadOnly>True</IsReadOnly>
            <ReadState>MODBUSR(A, 30, Uint16)</ReadState>
            <WriteState/>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Poloha Ventilu</Name>
          <Id>-9</Id>
          <Model>ModbusVariable</Model>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <SerializedValueLogTypeConversions/>
            <InternalPollInterval>15000</InternalPollInterval>
            <InitializeScript/>
            <ReadScript/>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas/>
            <ServiceActionsScripts/>
            <CustomDeviceVariables/>
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <IsReadOnly>True</IsReadOnly>
            <ReadState>MODBUSR(A, 37, Uint16)</ReadState>
            <WriteState/>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Prietok (l/m)</Name>
          <Id>-10</Id>
          <Model>ModbusVariable</Model>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <SerializedValueLogTypeConversions/>
            <InternalPollInterval>15000</InternalPollInterval>
            <InitializeScript/>
            <ReadScript/>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas/>
            <ServiceActionsScripts/>
            <CustomDeviceVariables/>
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <IsReadOnly>True</IsReadOnly>
            <ReadState>MODBUSR(A, 49, Int16) / 100</ReadState>
            <WriteState/>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Teplota TUV</Name>
          <Id>-11</Id>
          <Model>ModbusThermostat</Model>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>2500</InternalPollInterval>
            <InitializeScript/>
            <ReadScript/>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas/>
            <ServiceActionsScripts/>
            <CustomDeviceVariables/>
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <MinTemperature>30</MinTemperature>
            <MaxTemperature>60</MaxTemperature>
            <ReadCurrentTemperature>MODBUSR(H, 10, Int16)</ReadCurrentTemperature>
            <ReadDesiredTemperature>MODBUSR(H, 10, Int16)</ReadDesiredTemperature>
            <WriteDesiredTemperature>MODBUSW(H, 10, Int16, Se)</WriteDesiredTemperature>
            <ReadHumidity/>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Teplota TUV - aktualna</Name>
          <Id>-12</Id>
          <Model>ModbusTemperatureSensor</Model>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>15000</InternalPollInterval>
            <InitializeScript/>
            <ReadScript/>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas/>
            <ServiceActionsScripts/>
            <CustomDeviceVariables/>
            <ReadTemperature>MODBUSR(A, 43, Int16) / 100</ReadTemperature>
            <ReadHumidity/>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>${adddevice_multivalueswitch}</Name>
          <Id>-13</Id>
          <Model>ModbusMultiValueSwitch</Model>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>2500</InternalPollInterval>
            <InitializeScript/>
            <ReadScript/>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas/>
            <ServiceActionsScripts/>
            <CustomDeviceVariables/>
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <OffStateValue>0</OffStateValue>
            <ReadSwitchState>MODBUSR(H, 53, Int16)</ReadSwitchState>
            <WriteSwitchState>MODBUSW(H, 53, Int16, Mu)</WriteSwitchState>
            <Value0>0</Value0>
            <Value0Index>0</Value0Index>
            <Value0Name>Pevne kurenie</Value0Name>
            <Value0IconId>187</Value0IconId>
            <Value1>1</Value1>
            <Value1Index>1</Value1Index>
            <Value1Name>Kurenie - Pocasie</Value1Name>
            <Value1IconId>234</Value1IconId>
            <Value2>2</Value2>
            <Value2Index>2</Value2Index>
            <Value2Name>Pevne + Plan</Value2Name>
            <Value2IconId>58</Value2IconId>
            <Value3>3</Value3>
            <Value3Index>3</Value3Index>
            <Value3Name>Pocasie + Plan</Value3Name>
            <Value3IconId>238</Value3IconId>
            <Value4Index>68</Value4Index>
            <Value4Name>4</Value4Name>
            <Value4IconId>9</Value4IconId>
            <Value5Index>69</Value5Index>
            <Value5Name>5</Value5Name>
            <Value5IconId>10</Value5IconId>
            <Value6Index>70</Value6Index>
            <Value6Name>6</Value6Name>
            <Value6IconId>11</Value6IconId>
            <Value7Index>71</Value7Index>
            <Value7Name>7</Value7Name>
            <Value7IconId>12</Value7IconId>
            <Value8Index>72</Value8Index>
            <Value8Name>8</Value8Name>
            <Value8IconId>13</Value8IconId>
            <Value9Index>73</Value9Index>
            <Value9Name>9</Value9Name>
            <Value9IconId>14</Value9IconId>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Vonkajsia Teplota - TC</Name>
          <Id>-14</Id>
          <Model>ModbusTemperatureSensor</Model>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>15000</InternalPollInterval>
            <InitializeScript/>
            <ReadScript/>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas/>
            <ServiceActionsScripts/>
            <CustomDeviceVariables/>
            <ReadTemperature>MODBUSR(A, 44, Int16) / 100</ReadTemperature>
            <ReadHumidity/>
          </DeviceProperties>
        </Device>
        <Device>
          <Name>Zapnut kurenie</Name>
          <Id>-15</Id>
          <Model>ModbusSwitch</Model>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <InternalPollInterval>2500</InternalPollInterval>
            <InitializeScript/>
            <ReadScript/>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas/>
            <ServiceActionsScripts/>
            <CustomDeviceVariables/>
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <NegateState>False</NegateState>
            <OnStateIconId>300</OnStateIconId>
            <OffStateIconId>301</OffStateIconId>
            <OnStateName>${general_on}</OnStateName>
            <OffStateName>${general_off}</OffStateName>
            <ReadSwitchState>MODBUSR(H, 4, Int16)</ReadSwitchState>
            <WriteSwitchState>MODBUSW(H, 4, Int16, St)</WriteSwitchState>
          </DeviceProperties>
        </Device>
      </Devices>
    </Module>
  </Template>
</Templates>
