Click me to see more screenshots
Click on the following button to choose the language of your ReadMe :
- Pool Monitor Card
The "Pool Monitor Card" is a home assistant plugin that display information of 12 pre-defined sensors of your swimming pool : temperature, pH, ORP levels and TDS but also if you need them : salinity, CYA, calcium, phosphate, alkalinity, free chlorine, total chlorine, filter pressure
-
Temperature: This refers to the temperature of the water in your pool. The ideal range for temperature in a pool is between 26°C and 28°C. Knowing the temperature can help you decide if it's warm enough for swimming or if it's too cold and might need to be heated.
-
pH: This is a measure of how acidic or alkaline the water in your pool is. The ideal range for pH in a pool is between 7.0 and 7.4. Maintaining the proper pH level can help prevent skin and eye irritation and keep the pool water safe for swimming.
-
ORP: This stands for Oxidation Reduction Potential and measures the ability of the water to oxidize or reduce substances in the pool. The ORP level is related to the amount of chlorine or other sanitizers in the pool. The ideal range for chlorine in a pool is between 650 and 750 mV. Maintaining the correct ORP level can help ensure that the pool water is properly sanitized and free of harmful bacteria.
-
TDS: This stands for Total Dissolved Solids and measures the amount of inorganic and organic substances in the water, such as minerals, salts, and other particles. High levels of TDS can affect water clarity and make it difficult to balance chemicals in the pool. The ideal range for TDS in a saltwater pool is between 3000 and 5000 parts per million (ppm) (3 and 5 g/L).
Click me to continue to list 8 other possible sensors
-
Salinity: This measures the amount of salt in the water. A saltwater pool requires a specific range of salt to function properly. The ideal range for salt in a saltwater pool is between 2500 and 3500 ppm.
-
CYA: This stands for Cyanuric Acid and measures the amount of stabilizer in the water. Stabilizer helps to protect the chlorine from being broken down by sunlight. The ideal range for CYA in a pool is between 30 and 50 ppm.
-
Calcium: This measures the amount of calcium in the water. High levels of calcium can lead to scaling on pool surfaces and equipment. The ideal range for calcium hardness in a pool is between 200 and 400 ppm.
-
Phosphate: This measures the amount of phosphate in the water. Phosphates in the water can provide food for algae to grow. The ideal range for phosphate in a pool is below 200-300 ppm.
-
Alkalinity: This measures the ability of the water to resist changes in pH. Proper alkalinity can help to prevent the water from becoming too acidic or alkaline. The ideal range for alkalinity in a pool is between 80 and 120 ppm.
-
Free Chlorine: This measures the amount of active chlorine in the water that is available to sanitize the pool. The ideal range for free chlorine in a pool is between 1 and 3 ppm.
-
Total Chlorine: This measures the combined concentration of both free chlorine and chlorine that has combined with contaminants in the water. The ideal range for total chlorine in a pool is up to 5 ppm.
-
Filter pressure: This measures the pressure inside the pool filter. A high filter pressure can indicate that the filter is dirty and needs to be cleaned. The ideal filter pressure can vary depending on the make and model of the pool filter.
With the "Pool Monitor Card", you can easily monitor these important aspects of your swimming pool and make any necessary adjustments to ensure that the water is safe and comfortable for swimming.
Hey dude! Help me out for a couple of 🍻 or a ☕!
Until the Home Assistant Pool Monitor card is available by default in the HACS directory, click on:
- Download the
pool_monitor_card.js
file from the latest release available and save it in yourconfiguration/www
folder. - Go to
Configuration > Lovelace dashboard > Resources
in Home Assistant and click onAdd resource
.- Add
/local/community/pool-monitor-card/pool_monitor_card.js
to the URL. - Choose
Javascript Module
as Resource type.
- Add
Not yet possible.
- You just need to add a new empty card with
type: 'custom:pool-monitor-card'
to your cards list and any of the config that you will find below if you want to customize more your card.
type: 'custom:pool-monitor-card'
temperature: sensor.your_temperature_sensor
ph: sensor.your_ph_sensor
Here's a list of sensors that may be important to monitor, depending on your pool's specific needs. Maintaining levels within the recommended ranges is essential to keep your pool healthy and swimmable.
*All are optionals but you need to define at least one of theses entities
Name | Type | Requirement | Description | Default |
---|---|---|---|---|
type |
string | Required | custom:pool-monitor-card |
|
temperature |
string | Optional* | The entity that measures the water temperature. | none |
ph |
string | Optional* | The entity that measures the acidity or basicity of the water. | none |
orp |
string | Optional* | The entity that measures the Oxidation Reduction Potential of the water. | none |
tds |
String | Optional* | The entity that measures the Total Dissolved Solids in the water. | none |
salinity |
String | Optional* | The entity that measures the salt level in the water (for saltwater pools). | none |
cya |
String | Optional* | The entity that measures the Cyanuric Acid level in the water. | none |
calcium |
String | Optional* | The entity that measures the Calcium Hardness level in the water. | none |
phosphate |
String | Optional* | The entity that measures the Phosphate level in the water. | none |
free_chlorine |
String | Optional* | The entity that measures the concentration of free chlorine in the water. | none |
total_chlorine |
String | Optional* | The entity that measures the concentration of both free chlorine and combined chlorine in the water. | none |
alkalinity |
String | Optional* | The entity that measures the alkalinity of the water. | none |
pressure |
String | Optional* | The entity that measures the filter pressure in the pool. | none |
You can go further with the card by modifying the user interface (UI).
Name | Type | Requirement | Description | Default |
---|---|---|---|---|
title |
string | Optional | Pool Monitor Card Title | none |
compact |
boolean | Optional | Compact Mode | false |
show_names |
boolean | Optional | Display the name of the entity | true |
show_labels |
boolean | Optional | Display the state qualification (Low, Ideal, High) | true |
show_last_updated |
boolean | Optional | Display the last updated sensor relative date [Only for compact = false] | false |
language |
string | Optional | Interface language (en, fr, es) | en |
Needed to change the unit, setpoint, and steps ? No problem, see additionnal parameters below for each measured entity .
click me to open
Name | Type | Requirement | Description | Default |
---|---|---|---|---|
temperature_name |
String | Optional | Sensor Name | Temperature [Multilanguage] |
temperature_unit |
String | Optional | Temperature Unit (°C or °F) | °C |
temperature_setpoint |
Number | Optional | Temperature Set Point | If unit=°C:27 If unit=°F: 80 |
temperature_step |
Number | Optional | Temperature Step | If unit=°C:1 If unit=°F: 2 |
NOTE: I added a second parameter named temperature_2 (with same logic for unit, setpoint, step) for thoses who have multiple temperature sensors.
click me to open
Name | Type | Requirement | Description | Default |
---|---|---|---|---|
ph_name |
String | Optional | Sensor Name | pH [Multilanguage] |
ph_unit |
String | Optional | pH Unit | pH |
ph_setpoint |
Number | Optional | pH Set Point | 7.2 |
ph_step |
Number | Optional | pH Step | 0.2 |
click me to open
Name | Type | Requirement | Description | Default |
---|---|---|---|---|
orp_name |
String | Optional | Sensor Name | ORP [Multilanguage] |
orp_unit |
String | Optional | ORP Unit | mV |
orp_setpoint |
Number | Optional | ORP Set Point | 700 |
orp_step |
Number | Optional | ORP Step | 50 |
click me to open
Name | Type | Requirement | Description | Default |
---|---|---|---|---|
tds_name |
String | Optional | Sensor Name | TDS [Multilanguage] |
tds_unit |
String | Optional | TDS Unit (g/L or ppm) | g/L |
tds_setpoint |
Number | Optional | TDS Set Point | If unit=g/L:4 If unit=ppm: 4000 |
tds_step |
Number | Optional | TDS Step | If unit=g/L:1 If unit=ppm: 1000 |
click me to open
Name | Type | Requirement | Description | Default |
---|---|---|---|---|
salinity_name |
String | Optional | Sensor Name | Salinity [Multilanguage] |
salinity_unit |
String | Optional | Salinity Unit (ppm or g/L) | ppm |
salinity_setpoint |
Number | Optional | Salinity Set Point | If unit=g/L:4.5 If unit=ppm: 3000 |
salinity_step |
Number | Optional | Salinity Step | If unit=g/L:0.5 If unit=ppm: 500 |
click me to open
Name | Type | Requirement | Description | Default |
---|---|---|---|---|
cya_name |
String | Optional | Sensor Name | Cyanuric Acid [Multilanguage] |
cya_unit |
String | Optional | Cyanuric Acid Unit | ppm |
cya_setpoint |
Number | Optional | Cyanuric Acid Set Point | 40 |
cya_step |
Number | Optional | Cyanuric Acid Step | 10 |
click me to open
Name | Type | Requirement | Description | Default |
---|---|---|---|---|
calcium_name |
String | Optional | Sensor Name | Calcium [Multilanguage] |
calcium_unit |
String | Optional | Calcium Unit | ppm |
calcium_setpoint |
Number | Optional | Calcium Set Point | 300 |
calcium_step |
Number | Optional | Calcium Step | 100 |
click me to open
Name | Type | Requirement | Description | Default |
---|---|---|---|---|
phosphate_name |
String | Optional | Sensor Name | Phosphate [Multilanguage] |
phosphate_unit |
String | Optional | Phosphate Unit | ppb |
phosphate_setpoint |
Number | Optional | Phosphate Set Point | 100 |
phosphate_step |
Number | Optional | Phosphate Step | 100 |
click me to open
Name | Type | Requirement | Description | Default |
---|---|---|---|---|
alkalinity_name |
String | Optional | Sensor Name | Alkalinity [Multilanguage] |
alkalinity_unit |
String | Optional | Alkalinity Unit | ppm |
alkalinity_setpoint |
Number | Optional | Alkalinity Set Point | 100 |
alkalinity_step |
Number | Optional | Alkalinity Step | 20 |
click me to open
Name | Type | Requirement | Description | Default |
---|---|---|---|---|
free_chlorine_name |
String | Optional | Sensor Name | Free Chlorine [Multilanguage] |
free_chlorine_unit |
String | Optional | Free Chlorine Unit | ppm |
free_chlorine_setpoint |
Number | Optional | Free Chlorine Set Point | 2 |
free_chlorine_step |
Number | Optional | Free Chlorine Step | 1 |
click me to open
Name | Type | Requirement | Description | Default |
---|---|---|---|---|
total_chlorine_name |
String | Optional | Sensor Name | Total Chlorine [Multilanguage] |
total_chlorine_unit |
String | Optional | Total Chlorine Unit | ppm |
total_chlorine_setpoint |
Number | Optional | Total Chlorine Set Point | 3 |
total_chlorine_step |
Number | Optional | Total Chlorine Step | 1 |
click me to open
Name | Type | Requirement | Description | Default |
---|---|---|---|---|
pressure_name |
String | Optional | Sensor Name | Filter Pressure [Multilanguage] |
pressure_unit |
String | Optional | Filter Pressure Unit (psi or bar) | psi |
pressure_setpoint |
Number | Optional | Filter Pressure Set Point | 20 |
pressure_step |
Number | Optional | Filter Pressure Step | 10 |
Here is a non-exhaustive, non-tested and non-affiliated list of different materials that may capture some of the above values:
Brand | Model | Temp | pH | ORP | TDS | HA Support |
---|---|---|---|---|---|---|
Bluerriot | Blue Connect Plus Gold | ✔️ | ✔️ | ✔️ | ✔️ | Blog |
Flipr | AnalysR | ✔️ | ✔️ | ✔️ | ❌ | Component |
Inkbird | IBS-P01R Bluetooth | ✔️ | ❌ | ❌ | ❌ | Component |
iopool | ECO | ✔️ | ✔️ | ✔️ | ❌ | Tuto fr @mguyard |
Ondilo | ICO Pool | ✔️ | ✔️ | ✔️ | ✔️ | Component |
Zodiac | iAqualink eXO iQ | ✔️ | ✔️ | ✔️ | ❌ | Tuto via nodeRED |
NOTE: ✔️ indicates that the model is able to measure the specified parameter, while ❌ indicates it is not. The last column is about info to connect it to Home Assistant.