Click me to see more screenshots
The "Pool Monitor Card" is a Home Assistant plugin that displays information from 19 predefined sensors for your pool:
Click me to see details of sensors
-
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).
-
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.
-
Specific Gravity: A measure that indicates if an object will float or sink in water. Water has a specific gravity of 1.0 at 20°C. This reference point helps determine if substances will float (specific gravity < 1) or sink (specific gravity > 1) in water. This property is important for pool equipment and chemical management.
-
Magnesium: A mineral that helps prevent scaling and staining in pools. The ideal range for magnesium in a pool is between 20 and 40 ppm. Proper magnesium levels can help improve water clarity and reduce chemical usage.
-
Water Level: This measures the water level in your pool. Maintaining proper water level is crucial for optimal pool operation. The water level should typically be kept at the middle of the skimmer opening (about halfway up the skimmer opening) for proper filtration. Too low water levels can damage pumps, while too high levels reduce skimmer efficiency. Many pools use sensors to monitor this automatically and some systems can even automatically add water when levels drop too low.
-
Flow Rate: This measures the volume of water flowing through your pool's filtration system per minute. For small residential pools, the ideal flow rate is around 200 L/min, while larger commercial pools may require up to 500 L/min. Monitoring flow rate is crucial as variations can indicate filter blockages or pump issues. Daily checks should ensure the rate stays within 10% of the setpoint.
-
UV Radiation: This measures the ultraviolet light output in your pool's UV sanitization system. The optimal wavelength is 254 nanometers (nm) for effective microbial inactivation. The UV output should be monitored weekly to ensure it remains within ±5 nm of this setpoint for maximum effectiveness.
-
Product Volume: This tracks the volume of liquid chemical products (like pH+ and pH- solutions) in storage. A minimum volume of 10 liters per chemical type should be maintained to prevent shortages. Weekly inventory checks and usage tracking help optimize reorder timing and maintain adequate chemical supplies.
-
Product Weight: This monitors the weight of powdered chemical products in storage. A minimum of 5 kg should be maintained for essential powdered chemicals. Weekly weight logging and consumption tracking help predict future needs and prevent stock-outs.
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 ☕!
Click on the following button to choose the language of your ReadMe :
click me to open
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 |
sg |
String | Optional* | The entity that measures the specific gravity of the water. | none |
magnesium |
String | Optional* | The entity that measures the magnesium level in the water. | none |
water_level |
String | Optional* | The entity that measures the water level in your pool. | none |
flow_rate |
String | Optional* | The entity that measures the flow rate through your pool's filtration system. | none |
uv_radiation |
String | Optional* | The entity that measures the UV light output in your pool's sanitization system. | none |
product_volume |
String | Optional* | The entity that tracks the volume of liquid chemical products in storage. | none |
product_weight |
String | Optional* | The entity that monitors the weight of powdered chemical products in storage. | none |
You can go further with the card by modifying the user interface (UI).
Bar Colors Customisation
Name | Type | Requirement | Description | Default |
---|---|---|---|---|
normal_color |
String | Optional | Color for normal range values (e.g. var(--dark-primary-color) ) |
#00b894 |
low_color |
String | Optional | Color for low range values (e.g. var(--primary-color) ) |
#Fdcb6e |
warn_color |
String | Optional | Color for warning range values (e.g. var(--light-primary-color) ) |
#e17055 |
marker_color |
String | Optional | Color for min/max markers (e.g. black ) |
rgb(0, 0, 0, 1) |
hi_low_color |
String | Optional | Color for high/low range values (e.g. red ) |
rgb(0, 0, 0, .6) |
Needed to change the unit, setpoint, and steps ? No problem, see additionnal parameters below for each measured entity .
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 |
temperature_min |
String | Optional | Entity ID for daily minimum temperature | none |
temperature_max |
String | Optional | Entity ID for daily maximum temperature | none |
temperature_icon |
Object | Optional | Configure the icon for temperature. Use image_url for a custom image, mdi for an MDI icon, or hide to hide the icon. |
none |
Icon Configuration
For each sensor, you have the flexibility to customize the icon in your YAML configuration using one of four methods (illustrated here with the temperature sensor example):
- Hide the icon completely:
temperature_icon:
hide: true
- Use a custom image URL:
temperature_icon:
image_url: "https://example.com/temperature-icon.png"
- Use an MDI icon:
temperature_icon:
mdi: "mdi:thermometer"
- By default (if no configuration is specified), it will use the images from the resources directory as before.
Note: If min/max entities are defined, they will appear as tick marks on the bar chart.
click me to open and see all the parameters
NOTE: I added a second parameter called temperature_2 (with the same logic for name, unit, setpoint, step) for those who have multiple temperature sensors. Click me to open.
Name | Type | Requirement | Description | Default |
---|---|---|---|---|
temperature_2_name |
String | Optional | Sensor Name | Temperature 2 [Multilanguage] |
temperature_2_unit |
String | Optional | Temperature Unit (°C or °F) | °C |
temperature_2_setpoint |
Number | Optional | Temperature Set Point | If unit=°C:27 If unit=°F: 80 |
temperature_2_step |
Number | Optional | Temperature Step | If unit=°C:1 If unit=°F: 2 |
temperature_2_min |
String | Optional | Entity ID for daily minimum temperature | none |
temperature_2_max |
String | Optional | Entity ID for daily maximum temperature | none |
temperature_2_icon |
Object | Optional | Configure the icon for temperature_2. Use image_url for a custom image or mdi for an MDI icon. |
none |
Note: If min/max entities are defined, they will appear as tick marks on the bar chart.
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 |
ph_min |
String | Optional | Entity ID for daily minimum pH | none |
ph_max |
String | Optional | Entity ID for daily maximum pH | none |
ph_icon |
Object | Optional | Configure the icon for pH. Use image_url for a custom image or mdi for an MDI icon. |
none |
Note: If min/max entities are defined, they will appear as tick marks on the bar chart.
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 |
orp_min |
String | Optional | Entity ID for daily minimum ORP | none |
orp_max |
String | Optional | Entity ID for daily maximum ORP | none |
orp_icon |
Object | Optional | Configure the icon for ORP. Use image_url for a custom image or mdi for an MDI icon. |
none |
Note: If min/max entities are defined, they will appear as tick marks on the bar chart.
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 |
tds_min |
String | Optional | Entity ID for daily minimum TDS | none |
tds_max |
String | Optional | Entity ID for daily maximum TDS | none |
tds_icon |
Object | Optional | Configure the icon for TDS. Use image_url for a custom image or mdi for an MDI icon. |
none |
Note: If min/max entities are defined, they will appear as tick marks on the bar chart.
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 |
salinity_min |
String | Optional | Entity ID for daily minimum salinity | none |
salinity_max |
String | Optional | Entity ID for daily maximum salinity | none |
salinity_icon |
Object | Optional | Configure the icon for salinity. Use image_url for a custom image or mdi for an MDI icon. |
none |
Note: If min/max entities are defined, they will appear as tick marks on the bar chart.
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 |
cya_min |
String | Optional | Entity ID for daily minimum Cyanuric Acid | none |
cya_max |
String | Optional | Entity ID for daily maximum Cyanuric Acid | none |
cya_icon |
Object | Optional | Configure the icon for Cyanuric Acid. Use image_url for a custom image or mdi for an MDI icon. |
none |
Note: If min/max entities are defined, they will appear as tick marks on the bar chart.
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 |
calcium_min |
String | Optional | Entity ID for daily minimum calcium | none |
calcium_max |
String | Optional | Entity ID for daily maximum calcium | none |
calcium_icon |
Object | Optional | Configure the icon for calcium. Use image_url for a custom image or mdi for an MDI icon. |
none |
Note: If min/max entities are defined, they will appear as tick marks on the bar chart.
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 |
phosphate_min |
String | Optional | Entity ID for daily minimum phosphate | none |
phosphate_max |
String | Optional | Entity ID for daily maximum phosphate | none |
phosphate_icon |
Object | Optional | Configure the icon for phosphate. Use image_url for a custom image or mdi for an MDI icon. |
none |
Note: If min/max entities are defined, they will appear as tick marks on the bar chart.
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 |
alkalinity_min |
String | Optional | Entity ID for daily minimum alkalinity | none |
alkalinity_max |
String | Optional | Entity ID for daily maximum alkalinity | none |
alkalinity_icon |
Object | Optional | Configure the icon for alkalinity. Use image_url for a custom image or mdi for an MDI icon. |
none |
Note: If min/max entities are defined, they will appear as tick marks on the bar chart.
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 |
free_chlorine_min |
String | Optional | Entity ID for daily minimum free chlorine | none |
free_chlorine_max |
String | Optional | Entity ID for daily maximum free chlorine | none |
free_chlorine_icon |
Object | Optional | Configure the icon for free chlorine. Use image_url for a custom image or mdi for an MDI icon. |
none |
Note: If min/max entities are defined, they will appear as tick marks on the bar chart.
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 |
total_chlorine_min |
String | Optional | Entity ID for daily minimum total chlorine | none |
total_chlorine_max |
String | Optional | Entity ID for daily maximum total chlorine | none |
total_chlorine_icon |
Object | Optional | Configure the icon for total chlorine. Use image_url for a custom image or mdi for an MDI icon. |
none |
Note: If min/max entities are defined, they will appear as tick marks on the bar chart.
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 |
pressure_min |
String | Optional | Entity ID for daily minimum filter pressure | none |
pressure_max |
String | Optional | Entity ID for daily maximum filter pressure | none |
pressure_icon |
Object | Optional | Configure the icon for filter pressure. Use image_url for a custom image or mdi for an MDI icon. |
none |
Note: If min/max entities are defined, they will appear as tick marks on the bar chart.
Name | Type | Requirement | Description | Default |
---|---|---|---|---|
sg_name |
String | Optional | Sensor Name | Specific Gravity [Multilanguage] |
sg_unit |
String | Optional | Specific Gravity Unit | g/cm³ |
sg_setpoint |
Number | Optional | Specific Gravity Set Point | 1 |
sg_step |
Number | Optional | Specific Gravity Step | 0.001 |
sg_min |
String | Optional | Entity ID for daily minimum specific gravity | none |
sg_max |
String | Optional | Entity ID for daily maximum specific gravity | none |
sg_icon |
Object | Optional | Configure the icon for specific gravity. Use image_url for a custom image or mdi for an MDI icon. |
none |
Note: If min/max entities are defined, they will appear as tick marks on the bar chart.
Name | Type | Requirement | Description | Default |
---|---|---|---|---|
magnesium_name |
String | Optional | Sensor Name | Magnesium [Multilanguage] |
magnesium_unit |
String | Optional | Magnesium Unit | ppm |
magnesium_setpoint |
Number | Optional | Magnesium Set Point | 700 |
magnesium_step |
Number | Optional | Magnesium Step | 100 |
magnesium_min |
String | Optional | Entity ID for daily minimum magnesium | none |
magnesium_max |
String | Optional | Entity ID for daily maximum magnesium | none |
magnesium_icon |
Object | Optional | Configure the icon for magnesium. Use image_url for a custom image or mdi for an MDI icon. |
none |
Note: If min/max entities are defined, they will appear as tick marks on the bar chart.
Name | Type | Requirement | Description | Default |
---|---|---|---|---|
waterlevel_name |
String | Optional | Sensor Name | Water Level [Multilanguage] |
waterlevel_unit |
String | Optional | Water Level Unit | cm |
waterlevel_setpoint |
Number | Optional | Water Level Set Point | 15 |
waterlevel_step |
Number | Optional | Water Level Step | 5 |
waterlevel_min |
String | Optional | Entity ID for daily minimum water level | none |
waterlevel_max |
String | Optional | Entity ID for daily maximum water level | none |
waterlevel_icon |
Object | Optional | Configure the icon for water level. Use image_url for a custom image or mdi for an MDI icon. |
none |
Note: If min/max entities are defined, they will appear as tick marks on the bar chart.
Name | Type | Requirement | Description | Default |
---|---|---|---|---|
flowrate_name |
String | Optional | Sensor Name | Flow Rate [Multilanguage] |
flowrate_unit |
String | Optional | Flow Rate Unit | L/min |
flowrate_setpoint |
Number | Optional | Flow Rate Set Point | 200 |
flowrate_step |
Number | Optional | Flow Rate Step | 50 |
flowrate_min |
String | Optional | Entity ID for daily minimum flow rate | none |
flowrate_max |
String | Optional | Entity ID for daily maximum flow rate | none |
flowrate_icon |
Object | Optional | Configure the icon for flow rate. Use image_url for a custom image or mdi for an MDI icon. |
none |
Note: If min/max entities are defined, they will appear as tick marks on the bar chart.
Name | Type | Requirement | Description | Default |
---|---|---|---|---|
uv_name |
String | Optional | Sensor Name | UV Radiation [Multilanguage] |
uv_unit |
String | Optional | UV Radiation Unit | nm |
uv_setpoint |
Number | Optional | UV Radiation Set Point | 254 |
uv_step |
Number | Optional | UV Radiation Step | 5 |
uv_min |
String | Optional | Entity ID for daily minimum UV radiation | none |
uv_max |
String | Optional | Entity ID for daily maximum UV radiation | none |
uv_icon |
Object | Optional | Configure the icon for UV radiation. Use image_url for a custom image or mdi for an MDI icon. |
none |
Note: If min/max entities are defined, they will appear as tick marks on the bar chart.
Name | Type | Requirement | Description | Default |
---|---|---|---|---|
volume_name |
String | Optional | Sensor Name | Product Volume [Multilanguage] |
volume_unit |
String | Optional | Product Volume Unit | L |
volume_setpoint |
Number | Optional | Product Volume Set Point | 10 |
volume_step |
Number | Optional | Product Volume Step | 2 |
volume_min |
String | Optional | Entity ID for daily minimum product volume | none |
volume_max |
String | Optional | Entity ID for daily maximum product volume | none |
volume_icon |
Object | Optional | Configure the icon for product volume. Use image_url for a custom image or mdi for an MDI icon. |
none |
Note: If min/max entities are defined, they will appear as tick marks on the bar chart.
Name | Type | Requirement | Description | Default |
---|---|---|---|---|
weight_name |
String | Optional | Sensor Name | Product Weight [Multilanguage] |
weight_unit |
String | Optional | Product Weight Unit | kg |
weight_setpoint |
Number | Optional | Product Weight Set Point | 5 |
weight_step |
Number | Optional | Product Weight Step | 1 |
weight_min |
String | Optional | Entity ID for daily minimum product weight | none |
weight_max |
String | Optional | Entity ID for daily maximum product weight | none |
weight_icon |
Object | Optional | Configure the icon for product weight. Use image_url for a custom image or mdi for an MDI icon. |
none |
Note: If min/max entities are defined, they will appear as tick marks on the bar chart.
Min/max entities defined in the YAML configuration will be displayed as tick marks on the bar chart, as shown in the example below:
ph: sensor.iopool_ph
ph_min: sensor.daily_ph_min
ph_max: sensor.daily_ph_max
They will display as tick marks on the bar chart.
For the sensors I use the statistics platform:
sensor:
- platform: statistics
name: "Daily pH Min"
unique_id: <UUID>
entity_id: sensor.iopool_ph
state_characteristic: value_min
max_age:
hours: 24
- platform: statistics
name: "Daily pH Max"
unique_id: <UUID>
entity_id: sensor.iopool_ph
state_characteristic: value_max
max_age:
hours: 24
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 | ✔️ | ✔️ | ✔️ | ❌ | Blog |
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 |
Tuya | BLE-YL01 | ✔️ | ✔️ | ✔️ | ✔️ | Tuto |
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.
This card wouldn't be what it is today without our amazing contributors! I'm incredibly grateful for everyone who has helped make it better. Whether you've added features, fixed bugs, or helped with translations - you rock! 🌟
A Big Thank You To:
- Gregtakacs for adding those awesome Min/Max Tickers and letting users customize their bar colors
- Djgel for implementing specific gravity measurements
- JDeighty4 for adding magnesium sensor support
And a huge thank you to our translators for making this map available in so many languages! 🌐
- Sebaer1976 and Splitti for bringing it to German speakers
- Djgel and jorgemiguel4 for the Portuguese translation
- CosminFRC for the Romanian version
- Misa1515 for Slovak support
- ViPeR5000 for the Polish translation
- Yehuda for making it accessible to Hebrew users
- MrSnakeSPb for the Russian translation
Special thanks to those who helped expand hardware support and compatibility:
Here's what's coming up for Pool Monitor Card! We're constantly working to improve and add new features.
These updates won't require any changes to your existing configuration:
- 🎨 Additional customization options for the UI
- 🌐 More language translations
- 🔧 Additional hardware support
- 🐛 Ongoing bug fixes and performance improvements
- 📝 Improving documentation
These updates may require configuration changes when implemented:
- 🔄 Complete rewrite to improve maintainability and add new features
- 🔍 Moving to TypeScript for better code quality
- 🏗️ Implementing a more modular architecture
- ✅ Adding comprehensive testing
Note: This roadmap is subject to change based on community feedback and needs. Feel free to contribute ideas by opening issues on GitHub!