--- title: "PoolCop KNX table: DPTs, statuses and commands for Pool’nX" description: "PoolCop reference table for KNX: measurements, pumps, valve, water level, auxiliaries, alarms and PoolCop Cloud commands, with DPTs, units and coded values." canonical: https://wiki.can-nx.com/en/guides/pool-poolcop-knx/ language: en product: Pool’nX audience: - administrateur - installateur context: "Pool’nX with a PoolCop: Pool Status and Pool Commands tables, PoolCop Cloud and legacy" --- # PoolCop KNX table: DPTs, statuses and commands for Pool’nX Context: Pool’nX with a PoolCop: Pool Status and Pool Commands tables, PoolCop Cloud and legacy This reference table lists the statuses that a Pool’nX reads on a PoolCop through PoolCop Cloud and the commands it passes on to it from the KNX bus: displayed name, key, DPT, unit and coded values for the pump, valve, water level and alarms. A last section sums up the PoolCop (legacy) type. Intended for the installer who prepares the KNX objects, the visualization or the logic of the pool. The procedure for entering addresses is described in [the KNX statuses](https://wiki.can-nx.com/en/guides/pool-knx-status/) and [the KNX commands](https://wiki.can-nx.com/en/guides/pool-knx-commands/). The key is also used by the [TCP client](https://wiki.can-nx.com/en/guides/pool-tcp-client/). ## Units and coded values Temperatures, pressures, volumes and flow rates are sent in the units of the PoolCop account, with no conversion: the **Value** column shows the unit used, for example °C or °F, bar, kPa or psi, m³ or gal. Check that it matches the unit expected by the DPT of the KNX object. The states of the pump, valve and water level are coded as numbers (DPT 5.010). The **Value** column shows the PoolCop term followed by the number, for example **Speed2 (2)**. | Value | Speed | Valve position | Running status | Filtration mode | Water level | | --- | --- | --- | --- | --- | --- | | 0 | None | Filter | Stopped | Stop | Faulty | | 1 | Speed1 | Waste | FreezeProtection | Timer | Low | | 2 | Speed2 | Closed | ForcedMode | EcoPlus | Normal | | 3 | Speed3 | Backwash | EcoPlusMode | Volume | High | | 4 | Speed4 | Bypass | TimerMode | Continuous | VeryHigh | | 5 | Speed5 | Rinse | Manual | Forced24H | – | | 6 | Speed6 | – | Paused | Forced48H | – | | 7 | Speed7 | – | ExternalRequest | Forced72H | – | | 8 | Speed8 | – | WaterLevelManagement | Mode24H | – | | 9 | – | – | Mode24H | NoPump | – | The Speed column also applies to **Pump number of speeds**; the Water level column, to the water level setpoints. ## PoolCop Cloud statuses sent on the KNX bus | Name | Key | DPT | Unit or value | | --- | --- | --- | --- | | **Water temperature**, **Air temperature** | `tempWater`, `tempAir` | 9.001 | account temperature | | **pH** | `pH` | 9.002 | pH | | **ORP** | `orp` | 14.027 | mV | | **Free chlorine**, **Free available chlorine**, **Total chlorine** | `freeChlorine`, `freeAvailableChlorine`, `totalChlorine` | 9.001 | mg/l | | **Salt** | `salt` | 9.001 | g/l | | **Pressure** | `pressure` | 9.001 | pump 1 pressure, account unit | | **Battery voltage**, **Mains voltage** | `battery`, `mainsVoltage` | 14.027 | V, 0 if not provided | | **Service mode**, **pH dosing**, **Disinfection dosing** | `serviceMode`, `pHDosing`, `disinfectionDosing` | 1.001 | 1: active | | **Pool connected to the network** | `poolConnected` | 1.001 | 1: connected | | **Pump Status**, **Pump 2 status** | `pumpStatus`, `pump2Status` | 1.001 | 1: running | | **Pump speed**, **Pump 2 speed** | `pumpSpeed`, `pump2Speed` | 5.010 | 0 to 8 | | **Pump pressure**, **Pump 2 pressure** | `pumpPressure`, `pump2Pressure` | 9.001 | account unit | | **Position of the valve**, **Pump 2 valve position** | `valvePosition`, `pump2ValvePosition` | 5.010 | 0 to 5 | | **Pump running status**, **Pump 2 running status** | `pumpRunningStatus`, `pump2RunningStatus` | 5.010 | 0 to 9 | | **Pump forced time remaining**, **Pump 2 forced time remaining** | `pumpForcedRemaining`, `pump2ForcedRemaining` | 7.005 | s | | **Pump number of speeds**, **Pump 2 number of speeds** | `pumpNumberOfSpeeds`, `pump2NumberOfSpeeds` | 5.010 | 0 to 8 | | **Pump filtration mode**, **Pump 2 filtration mode** | `pumpFiltrationMode`, `pump2FiltrationMode` | 5.010 | 0 to 9 | | **Water level** | `waterLevel` | 5.010 | 0 to 4 | | **Water level setpoint**, **Water level target setpoint** | `waterLevelSetPoint`, `waterLevelTargetSetpoint` | 5.010 | 0 to 4 | | **Water level sensor installed**, **Water level on target**, **Water level error**, **Water level refilling**, **Water level measuring** | `waterLevelInstalled`, `waterLevelOnTarget`, `waterLevelOnError`, `waterLevelRefilling`, `waterLevelMeasuring` | 1.001 | 1: yes | | **Cover installed**, **Cover controllable**, **Cover open**, **Cover closing**, **Cover opening**, **Cover stopped** | `coverInstalled`, `coverControllable`, `coverOpen`, `coverClosing`, `coverOpening`, `coverStopped` | 1.001 | 1: yes | | **Jet stream installed**, **Jet stream running** | `jetStreamInstalled`, `jetStreamRunning` | 1.001 | 1: yes | | **Flow meter 1 installed**, **Flow meter 2 installed** | `flow1Installed`, `flow2Installed` | 1.001 | 1: yes | | **Flow rate 1**, **Flow rate 2** | `flow1Rate`, `flow2Rate` | 9.001 | account flow rate | | **Input 1** to **Input 12** | `input1` to `input12` | 1.001 | 1: active | | **Auxiliary 1** to **Auxiliary 30** | `aux1` to `aux30` | 1.001 | 1: running | | **pH setpoint**, **pH low**, **pH high** | `pHSetpoint`, `pHLow`, `pHHigh` | 9.002 | pH | | **ORP setpoint**, **ORP low**, **ORP high** | `orpSetpoint`, `orpLow`, `orpHigh` | 14.027 | mV | | **FAC setpoint**, **FAC low**, **FAC high** | `FACSetpoint`, `FACLow`, `FACHigh` | 9.001 | mg/l | | **FC setpoint**, **TC low**, **TC high** | `FCSetpoint`, `TCLow`, `TCHigh` | 9.001 | mg/l | | **Heating setpoint** | `heatingSetpoint` | 9.001 | account temperature | | **Pool volume** | `poolVolume` | 9.001 | account volume | | **Freeze protection**, **ACO installed**, **Remnant installed** | `freezeProtection`, `acoInstalled`, `remnantInstalled` | 1.001 | 1: yes | | **Electrolyser production** | `electrolyserProductionPercent` | 5.001 | % | | **Last backwash (date)**, **Last refill (date)**, **Last pH measurement (date)** | `backwashDate`, `refillDate`, `phMeasureDate` | 11.001 | date | | **pH sensor present**, **ORP sensor present**, **Air temperature sensor present**, **FAC sensor present**, **Conductivity sensor present**, **Salt sensor present**, **Water level sensor present**, **FC sensor present**, **TC sensor present**, **Flow meter present**, **Energy meter present**, **Pool cover present**, **Jet stream present** | `hasPHSensor`, `hasORPSensor`, `hasAirTemperatureSensor`, `hasFACSensor`, `hasConductivitySensor`, `hasSaltSensor`, `hasWaterLevelSensor`, `hasFCSensor`, `hasTCSensor`, `hasFlowMeter`, `hasEnergyMeter`, `hasPoolCover`, `hasJetStream` | 1.001 | 1: present | | **Alert** | `alert` | 1.001 | 1: at least one alarm | | **Alert number** | `alertCount` | 5.010 | number of alarms | | **Alert 1** to **Alert 5** | `alert1` to `alert5` | 5.010 | numbered alarm code | The **Heating setpoint** status takes the setpoint of the first auxiliary that controls heating. ## Identify auxiliaries and alarms For **Auxiliary 1** to **Auxiliary 30**, the **Value** column of the statuses shows the auxiliary’s name in PoolCop. On a PoolCop fitted with auxiliary modules, **Auxiliary 1** to **Auxiliary 15** match the channels of the first module and **Auxiliary 16** to **Auxiliary 30** those of the second. Without a module, **Auxiliary 1** to **Auxiliary 16** match channels 1 to 16. **Alert 1** to **Alert 5** carry one number per active alarm: | Value | Alarm | | --- | --- | | 0 | Empty slot | | 1 | PressureLowPump1 | | 2 | PHLow | | 3 | FCHigh | | 100 to 255 | Other PoolCop code, numbered from its name | The **Value** column shows the PoolCop code followed by its number, for example **PHLow (2)**. ## PoolCop Cloud commands received from the KNX bus | Name | Key | DPT | Accepted values | | --- | --- | --- | --- | | **Pump ON / OFF**, **Pump 2 ON / OFF** | `pumpOnOff`, `pump2OnOff` | 1.001 | 1: on; 0: off | | **Pump speed**, **Pump 2 speed** | `pumpSpeed`, `pump2Speed` | 5.010 | 0 to 8; any other value is not passed on | | **Pump forced**, **Pump 2 forced** | `pumpForced`, `pump2Forced` | 5.010 | 0: NotForced; 1: Forced24H; 2: Forced48H; 3: Forced72H; any other value is not passed on | | **Position of the valve**, **Pump 2 valve position** | `valvePosition`, `pump2ValvePosition` | 5.010 | 0 to 5, as in the coded value table | | **Auxiliary 1** to **Auxiliary 30** | `aux1` to `aux30` | 1.001 | 1: on; 0: off | | **Jet stream on/off** | `jetStreamOnOff` | 1.001 | 1: on; 0: off | | **Heating setpoint** | `setHeatingSetpoint` | 9.001 | heating setpoint | | **Clear all alarms** | `clearAllAlarms` | 1.001 | any telegram | Only send values 0 to 5 for the valve: any other value requests the **Filter** position. **Clear all alarms** clears the alarms at every telegram received, whatever its value. **Jet stream on/off** is not passed on if the PoolCop reports that the jet stream is not installed. The **Heating setpoint** command applies to the first auxiliary that controls heating. PoolCop Cloud accepts one request per second for a given API key: Pool’nX queues the commands. It then waits for the PoolCop to take them into account, up to about two minutes, then reads the statuses again. If PoolCop Cloud reports too many requests, Pool’nX resends the command once, 11 seconds later. ## PoolCop (legacy) The **PoolCop (legacy)** type offers a shorter table: - statuses: water and air temperatures, **Pressure** (14.066, kPa), **pH**, **ORP**, **Battery voltage**, **Water level**, pump, valve, **Auxiliary 1** to **Auxiliary 6**, pH, ORP and heating setpoints, **Auto Add Water**, maintenance dates, **Pool connected to the network**, **Alert**, **Alert number** and **Alert 1** to **Alert 5**; - commands: **Auxiliary 1** to **Auxiliary 6**, **Pump ON / OFF**, **Position of the valve**, **Pump speed** and **Heating setpoint**. For **Auxiliary 1** to **Auxiliary 6** and **Pump ON / OFF**, the value received is not passed on: each telegram sends the same command to the PoolCop. Check the resulting state in the statuses, read again 5 seconds after each command. ## Check the result 1. Send a test command, for example **1** (example) on the **Pump ON / OFF** address. 2. In **Pool Commands**, check **Value** and **Last event**. 3. In **Pool Status**, **Pump Status** changes to 1 once the command has been taken into account. If a message appears in **Value**, see [the KNX commands](https://wiki.can-nx.com/en/guides/pool-knx-commands/) and [Pool’nX troubleshooting](https://wiki.can-nx.com/en/guides/pool-help/). French labels: **Température de l'eau**, **Status de la pompe**, **Vitesse de la pompe**, **Position de la valve**, **État de marche de la pompe**, **Mode de filtration de la pompe**, **Niveau d'eau**, **Auxiliaire 1**, **Nombre d'alerte**, **Pompe ON / OFF**, **Forçage pompe**, **Nage à contre-courant marche/arrêt**, **Consigne de chauffage**, **Consigne chauffage**, **Effacer toutes les alarmes**.