Home
Softono
pool-monitor-card

pool-monitor-card

Open source TypeScript
120
Stars
25
Forks
16
Issues
7
Watchers
2 months
Last Commit

About pool-monitor-card

Keep your swimming pool safe and crystal clear by monitoring up to 25 water chemistry parameters at a glance.

Platforms

Web Self-hosted

Languages

TypeScript

Pool Monitor Card

Release HACS GitHub Activity

Keep your swimming pool safe and crystal clear by monitoring up to 25 water chemistry parameters at a glance.

Visual editor included — configure everything from the UI, no YAML needed.

screenshot

See all configurations and visual tests

Upgrading from v1? The sensor configuration format changed in v2. See the Migration Guide.


Why this card?

Whether you have a chlorine pool, a saltwater system, or a heated spa, this card gives you an instant visual overview of your water quality — right from your Home Assistant dashboard.

Color-coded gradient bars show you at a glance if each parameter is in its ideal range. No need to memorize numbers or look up charts.

Preset ideal ranges for all 20 pool parameters mean you can get started with just an entity ID — the card knows what "good" looks like for pool water.

What you can do

  • Check if the water is safe before letting the kids swim
  • Monitor pH and ORP trends after adding chemicals to see the effect over time
  • Track chlorine levels to catch sanitization drops early
  • Watch filter pressure to know when to backwash
  • Compare pool vs. spa temperature with multiple sensors per type

Sensors (25 presets)

Every sensor comes with preset ideal ranges — just point to your entity and the card handles the rest. Override any value to match your setup.

Essential Water Chemistry

The core parameters every pool owner should monitor for safe, comfortable swimming.

Temperature pH ORP TDS Electrical Conductivity

Sensor Key Unit Default Setpoint
Temperature temperature °C 27
pH ph pH 7.2
ORP orp mV 700
TDS tds g/L 5
Electrical Conductivity ec µS/cm 4000

Chemical Balance

Keeping these balanced prevents algae, scaling, and equipment damage.

Salinity Cyanuric Acid Calcium Phosphate Alkalinity

Sensor Key Unit Default Setpoint
Salinity salinity ppm 3000
Cyanuric Acid cya ppm 40
Calcium calcium ppm 300
Phosphate phosphate ppb 50
Alkalinity alkalinity ppm 100

Treatment & Sanitization

These tell you if your disinfection system is working properly.

Free Chlorine Total Chlorine Bromine Filter Pressure Specific Gravity Magnesium Chlorinator

Sensor Key Unit Default Setpoint
Free Chlorine free_chlorine ppm 3
Total Chlorine total_chlorine ppm 3
Bromine bromine ppm 4
Filter Pressure pressure psi 12
Specific Gravity specific_gravity sg 1.1
Magnesium magnesium ppm 1200
Chlorinator Setting chlorinator % 50

Equipment & Maintenance

Track the health of your pool equipment and supply levels.

Water Level Flow Rate UV Radiation Product Volume Product Weight Pump Speed Light Brightness Heat Pump Setpoint

Sensor Key Unit Default Setpoint
Water Level water_level % 100
Flow Rate flow_rate m³/h 10
UV Radiation uv_radiation mW/cm² 4
Product Volume product_volume L 20
Product Weight product_weight kg 25
Pump Speed pump_speed % 50
Light Brightness light_brightness % 80
Heat Pump Setpoint heat_pump_setpoint °C 28

Hayward OmniLogic users: The chlorinator, pump_speed and heat_pump_setpoint presets map directly to OmniLogic entities (sensor.*_chlorinator_setting, sensor.*_pump_speed, etc.). Use availability_entity to gray out equipment rows when the device is off.

For detailed explanations of each sensor and why it matters, see Sensor Details.


Compatible Hardware

Community-tested devices and their supported parameters:

Brand Model Temp pH ORP TDS HA Support
Bluerriot Bluerriot Blue Connect ✔️ ✔️ ✔️ Blog
Bluerriot Bluerriot Blue Connect Plus Gold ✔️ ✔️ ✔️ ✔️ Blog
Flipr Flipr AnalysR ✔️ ✔️ ✔️ Component
Inkbird Inkbird IBS-P01R ✔️ Component
iopool iopool ECO ✔️ ✔️ ✔️ Tuto fr
Ondilo Ondilo ICO Pool ✔️ ✔️ ✔️ ✔️ Component
Zodiac Zodiac iAqualink eXO iQ ✔️ ✔️ ✔️ Tuto via nodeRED
Tuya Tuya BLE-YL01 ✔️ ✔️ ✔️ ✔️ Tuto
Hayward OmniLogic / OmniPL ✔️ ✔️ ✔️ Component

✔️ = supported, ❌ = not supported. See more hardware

Know a device that works? Open an issue to add it!


Installation

HACS (recommended)

  1. Open HACSFrontend → search for Pool Monitor Card
  2. Install and reload your browser

Open in HACS

Manual

  1. Download pool-monitor-card.js from the latest release
  2. Copy to config/www/community/pool-monitor-card/
  3. Add resource: /local/community/pool-monitor-card/pool-monitor-card.js (type: module)

Quick Start

Visual Editor (recommended)

  1. In your dashboard, click Edit Dashboard (pencil icon)
  2. Click + Add Card → select Manual → type custom:pool-monitor-card
  3. Click Show Visual Editor to configure sensors, display options and colors — no YAML needed

editor

YAML

type: custom:pool-monitor-card
title: "My Pool"
sensors:
  temperature:
    entity: sensor.your_temperature_sensor
  ph:
    entity: sensor.your_ph_sensor
  orp:
    entity: sensor.your_orp_sensor

That's it! The card uses sensible defaults for everything else.


Configuration

All options below are also available in the visual editor.

Option Type Default Description
title string Card title
sensors object Sensor definitions (see below)
display.compact boolean false Compact display mode
display.show_names boolean true Show sensor names
display.show_icons boolean true Show sensor icons
display.show_units boolean true Show units
display.show_labels boolean true Show range labels
display.gradient boolean true Show gradient bar
display.show_last_updated boolean false Show last update time
display.show_icons boolean true Show sensor icons
language string en Language code

Per-sensor options

sensors:
  temperature:
    entity: sensor.xxx        # required
    name: Custom Name         # override display name
    unit: "°C"                # override unit
    setpoint: 25              # ideal value
    min: 10                   # min of the range
    max: 40                   # max of the range
    step: 2                   # threshold step for colors
    icon: mdi:thermometer     # MDI icon
    mode: centric             # centric | heatflow
    availability_entity: binary_sensor.heat_pump  # gray out when off/unavailable
Option Type Description
entity string Required. Entity ID
name string Override display name
unit string Override unit
setpoint number Ideal value
min / max number Range boundaries
step number Threshold step for colors
icon string MDI icon (e.g. mdi:thermometer)
mode string centric or heatflow
availability_entity string Entity to track — grays out the row when off or unavailable

Color modes

Mode Gradient Badge color Best for
centric warn → low → normal → low → warn Matches gradient zone pH, ORP — ideal value in the center
heatflow cool → low → warn (blue → orange → red) Green when ideal Temperature — natural thermal scale

In centric mode, the gradient and badge use the same colors — you see at a glance which zone the value is in.

In heatflow mode, the gradient shows the physical temperature scale (cold to hot), while the badge uses green to indicate the value is in the ideal range. Two complementary readings: where on the scale vs is it good.

Multiple sensors of the same type

sensors:
  temperature:
    - entity: sensor.sensor_1
      name: Location 1
    - entity: sensor.sensor_2
      name: Location 2

Languages

12 languages supported: 🇬🇧 English, 🇫🇷 French, 🇩🇪 German, 🇪🇸 Spanish, 🇮🇹 Italian, 🇵🇹 Portuguese, 🇳🇱 Dutch, 🇵🇱 Polish, 🇨🇿 Czech, 🇸🇰 Slovak, 🇮🇱 Hebrew, 🇷🇺 Russian.


Support

coffee


Acknowledgments

This card wouldn't be what it is today without our amazing contributors!

Monitor Cards Family

This card is part of the monitor-cards family — same rendering engine, same features, different presets:

Card For Sensors
Pool Monitor Card Pool & spa owners 25 presets ← you are here
Aquarium Monitor Card Freshwater & saltwater aquarium keepers 15 presets
Air Quality Card Homeowners concerned about indoor air quality 12 presets
Sensor Monitor Card Home Assistant power users unlimited (custom)