--- title: Pool temperature control over KNX with Pool’nX (hysteresis) description: "Set up hysteresis control in Pool’nX: setpoint and water temperature read on the KNX bus, heating on/off command and status feedback addresses." canonical: https://wiki.can-nx.com/en/guides/pool-temperature-control/ language: en product: Pool’nX audience: - administrateur - installateur context: "Can’nX Cloud, Pool’nX window: Temperature Control" --- # Pool temperature control over KNX with Pool’nX (hysteresis) Context: Can’nX Cloud, Pool’nX window: Temperature Control **Temperature Control** turns Pool’nX into an on/off controller on the KNX bus: it compares the water temperature sent by a KNX sensor with a setpoint, then writes on or off to a command address, for example the address of a heat pump actuator. Control uses only KNX telegrams; it works whatever the type of pool. Intended for the installer who controls pool heating from KNX. ## Before you start - A KNX sensor writes the water temperature to a group address, in DPT 9.001. - A KNX actuator receives the heating on/off command, in DPT 1.001. - In ETS, plan the addresses for the setpoint and the status feedback, in DPT 9.001 for the setpoint and 1.001 for the control feedback. ## Fill in the control settings 1. In the **Pool'nX** window, next to **Temperature Control**, click the button with the thermometer icon. 2. Fill in the group addresses using the table below, in X/Y/Z format. 3. In **Hysteresis**, enter the difference in °C, for example **1** (example). 4. Turn on **Enabled**. 5. Click **Save**. **Success!** confirms the save. | Field | DPT | Role of Pool’nX | | --- | --- | --- | | **Setpoint** | 9.001 | Receives the setpoint written by the visualization or a KNX button. | | **Setpoint feedback** | 9.001 | Writes the setpoint at each new value, on save and in response to a read. | | **Current Temperature** | 9.001 | Receives the temperature written by the sensor. | | **Control** | 1.001 | Writes 1 to switch on, 0 to switch off. | | **Control feedback** | 1.001 | Answers read requests with the control state. | The DPTs are set by Pool’nX: the window only offers the addresses. ## Understand the control logic At each telegram received on **Setpoint** or **Current Temperature**, Pool’nX compares the two values: - temperature below the setpoint minus the hysteresis: 1 is written to **Control**; - temperature above the setpoint plus the hysteresis: 0 is written to **Control**; - in between: nothing is written, the command keeps its state. Pool’nX keeps only the integer part of the temperature and the setpoint: 29.8 °C counts as 29 °C. Example: with a setpoint of 28 °C and a hysteresis of 1 °C, heating starts below 27 °C and stops from 30 °C. Control is only recalculated when a telegram is received: set the sensor to send its measurement regularly. ## Check the result 1. In the ETS group monitor, write a setpoint to the **Setpoint** address: the same value is written to **Setpoint feedback**. 2. Watch the sensor telegrams, then the write of 1 or 0 to **Control** when the temperature leaves the range. 3. Check that heating switches on or off. ## Troubleshooting | Symptom | Cause and action | | --- | --- | | Nothing written to **Control** | **Enabled** turned off, settings not saved or temperature within the range. Check the **Setpoint** and **Current Temperature** addresses. | | Inconsistent values | The sensor or the visualization does not send in DPT 9.001. | | No answer to reads of the status feedback | **Enabled** turned off or feedback address not filled in. | See also [Pool’nX troubleshooting](https://wiki.can-nx.com/en/guides/pool-help/). French labels: **Contrôle de la température**, **Consigne**, **Retour d'état de la consigne**, **Température actuelle**, **Contrôle**, **Retour d'état du contrôle**, **Hystérésis**, **Activation**, **Enregistrer**.