Fall ResetAmazon USFall reset deals: check better picks before checkoutAmazon US: today's deals, useful picks and quick comparisons.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run ScanFall ResetAmazon USWork and home upgrades are worth comparing todayAmazon US: today's deals, useful picks and quick comparisons.See Picks×
Skip to content
Blog

Stephen Carey’s ESP32 Hot-Tub Monitor Connects pH, ORP and Temperature to Home Assistant

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.

Stephen Carey built a MicroPython-based ESP32 monitor that reads hot-tub pH, oxidation-reduction potential (ORP), water temperature and air temperature, then sends readings to Home Assistant over MQTT about once a minute. It can make trends and reminders easier to follow, but it is a monitoring project—not a certified water-treatment controller, a replacement for independent water testing or an automatic chemical doser.

What Carey’s project does

Carey’s project addresses a practical gap: test strips provide occasional snapshots, while water chemistry and temperature change between checks. A connected monitor can put readings on a local dashboard and provide a basis for user-created alerts. Carey’s original motivation was the lack of a readily available modern replacement for an older SpaSitter design built around a discontinued Nanode board.

The project, first documented in 2023, runs on an ESP32 with MicroPython. Sensors feed readings to the microcontroller; it publishes them over MQTT to a local broker. Home Assistant can receive the messages and, when the project’s ha.py file is included, use MQTT Discovery to create a device and entities. Historical storage through Telegraf and InfluxDB 2 is optional. Carey’s project write-up and the public MIT-licensed repository provide the original implementation and parts details.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
pH probe ─┐
ORP probe ─┤
Water temp ┤──> ESP32 running MicroPython ── MQTT ──> Home Assistant
Air temp ──┤                                  └──────> optional Telegraf / InfluxDB 2
Cover reed┘

The cover-state path is optional: code support exists for a reed switch and magnets, but Carey reported that he had not installed that sensor on his own setup. He also described possible notifications for out-of-range readings and cover state, while noting that he had not yet configured alerts. Treat these as things a builder can add, not features already proven in Carey’s installation.

#1 Best Overall
UIUZMAR pH and Salt Tester for Pool Free Chlorine Meter ORP Meter 7 in 1 Digital Pool Water Tester for pH, Salinity, Free Chlorine, ORP, TDS, EC, Temp Saltwater Pool Tester PPM and EC Meter
  • [Salt System Tester for Saltwater Pool] A proper level of salt will ensure that the generator is able to produce the desired amount of chlorine and keep the water safe and clean. UIUZMAR can both test sodium chloride (salt) and free chlorine, which could be a wonderful tool for all saltwater pool owner.
  • [Multiparameter Digital Pool Water Tester] Brand new UIUZMAR swimming pool tester can be used to test the critical parameters for pool and spa: pH, Free Chlorine (Free Available Chlorine FAC), Salinity (Sodium Chloride), ORP (Oxidation-Reduction Potential), Temperature, TDS (total dissolved solids), EC (electric conductivity), help take more control of your pool water.
  • [More Accurate Digital Free Chorine Tester] For all chlorine-based pools, it is necessary to test the Free Available Chlorine FAC of the pool water, which can be still able to keep your pool fresh and clean. The new UIUZMAR digital multi-parameter pool water tester with a special pH and ORP probe protective cap installed to keep the Free Chlorine reading more accurate and consistent.
  • [Fast & Stable pH Readings] The high-sensitivity pH electrode delivers accurate results in seconds and holds steady without drifting, so you can trust every number instead of second-guessing a flickering display. Precise pH control keeps your water balanced and your swimmers comfortable.
  • [Easy to Use and Calibrate] All the parameters have been pre-calibrated, just dip the probe into water, read the result instantly. With UIUZMAR pool water tester, it is so easy to fully understand the pool water quality and keep your pool at its best. There is no need to waiting minutes or taking time to compare each color like test strips.

Hardware and placement

The documented build combines an ESP32 development board; a 0.96-inch, 128×64 OLED; an analog industrial pH sensor and probe; an ORP adapter and electrode; two 1-Wire temperature sensors; and, optionally, a reed switch and magnets for the cover. The enclosure, grommets, wiring, fasteners, calibration buffers and display power switch are part of the build too. Carey modified a 3D-printed waterproof-box design for the electronics.

The distinction between supply voltages matters: Carey says the ESP32 and ORP adapter require 5 V, while the remaining components use 3.3 V. Do not assume every board or sensor accepts the same supply or signal level; check the documentation for the exact components before wiring them. This is a custom electronics project, not a plug-in Home Assistant accessory.

Carey places the pH, ORP and water-temperature probes over the tub edge near a filter, where water circulates. The air sensor should be shaded and kept away from nearby surfaces or objects that could distort its reading. The electronics box is mounted under a shelf, with a clear screen cover intended to reduce moisture exposure. Carey notes that his printed enclosure needed tape to close a gap and recommends printing with enough filament and adding desiccant. That is not evidence of a certified waterproof rating: condensation, splashes and exposed connectors still need to be considered in the actual installation.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #2
Professional ORP Water Tester, 7-in-1 Pool Salt Tester with ORP, pH, Salinity, EC, TDS & Temperature, Digital Pool Water Testing Kit for Saltwater Pools and Spas
  • PROFESSIONAL 7-IN-1 WATER ANALYSIS - Measure ORP, pH, Salinity, TDS, EC and Temperature with one advanced water tester. Designed for complete water quality monitoring in saltwater pools, spas, hot tubs, aquariums, hydroponics and drinking water systems.
  • OPTIMIZE POOL SANITIZATION WITH ORP Unlike standard pool testers, this ORP meter helps monitor your water's oxidation-reduction potential, a key indicator of sanitizer effectiveness. Maintain cleaner water and improve chlorine performance with confidence.
  • FAST, ACCURATE & AUTO CALIBRATION Features a high-sensitivity pH probe, precision ORP sensor, titanium alloy conductivity electrodes and Automatic Temperature Compensation (ATC) for stable, reliable readings across different water conditions.
  • IDEAL FOR SALTWATER POOL SYSTEMS Monitor the most important water parameters for saltwater chlorinator systems, including salinity, pH and ORP levels. Perfect for swimming pools, spas, hot tubs and professional pool maintenance.
  • SMART DESIGN FOR EASY TESTING Large backlit LCD display, one-button operation, data hold function, automatic shut-off and IP67 waterproof protection make testing simple for both beginners and professionals.

Keep the analog boards and BNC connections dry and clean. DFRobot warns that moisture at the connector or conversion board can alter input impedance and degrade readings, and cautions against placing the board on a wet or conductive surface. Its pH probe also has a fragile glass sensing bulb; avoid impacts and scratches. DFRobot’s product documentation describes those handling and calibration considerations.

MQTT, Home Assistant and configuration

The project publishes readings approximately once per minute—not continuously in the sense of a safety instrument. Its documented topics are:

  • esp32/hottub/config — retained configuration the device reads at startup or reconnect.
  • esp32/hottub/configbak — backup of the prior configuration during calibration.
  • esp32/hottub/command — commands such as pH calibration; publish these without retain enabled.
  • esp32/hottub/readings — sensor readings for Home Assistant or other MQTT consumers.

For the temperature sensors, the ESP32 prints each 1-Wire device’s ROM identifier during initial setup. The builder must determine which ID belongs to the air sensor and which to the water sensor, then put them in the retained configuration. Carey’s example looks like this:

Rank #3
Smart Pool Salt Tester & pH Meter with APP, 7-in-1 Digital Water Tester for pH, Salinity, ORP, EC, TDS, SG & Temperature, Rechargeable Water Test Kit for Saltwater Pools, Hot Tub & Aquariums.
  • 7-in-1 Smart Water Tester: Monitor key water parameters with one compact device. Measure pH, ORP, EC, TDS, Salinity, Specific Gravity (SG), and Temperature in seconds. Easily monitor water conditions for saltwater pools, hot tubs, spas, aquariums, and hydroponics—no more guessing or complicated test strips.
  • Smart App Connectivity: Instantly sync with iOS and Android devices through a stable Bluetooth connection. View real-time water quality data, track long-term trends with visual charts, save and organize measurements by application, and export detailed reports with one tap. Stay in control of your water quality anytime with clear, organized data at your fingertips.
  • Accurate, Fast & Reliable Results: Built with a high-precision sensor and anti-interference electrodes, this digital pool tester delivers fast and stable readings within 3–5 seconds. With ±0.02 pH accuracy and automatic temperature compensation (32–122°F / 0–50°C), you can confidently maintain ideal water conditions and help protect your pool equipment.
  • Rechargeable & Easy to Use: Get 100+ tests on a single charge with the built-in rechargeable battery—no disposable batteries required. Easily switch between salinity, pH, TDS, EC, SG, ORP, and temperature modes. The Hold function locks readings instantly, while the backlit LCD screen provides clear results day or night for effortless water testing.
  • Easy Calibration & Versatile Use: Includes pH 4.00, 6.86, and 9.18 calibration powders for quick and accurate calibration. Designed to monitor pH, salinity, and TDS in saltwater pools, RO/DI systems, hot tubs, and spas, helping maintain balanced water quality and improve salt chlorinator efficiency. Also ideal for aquariums, hydroponics, and household water testing.
{
  "ph_acid_calibration": 2032.44,
  "water_rom_reg_num": "2863c65704e13c56",
  "ph_neutral_calibration": 1500.0,
  "air_rom_reg_num": "28c3005704e13cb4",
  "temp_unit": "F"
}

The ROM strings are example device IDs, not reusable values. Copying them would not identify your own sensors; use the IDs printed by your board and verify their assignments.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Carey’s instructions call for copying the project’s Python files to the ESP32 root. The repository includes files such as main.py, tub_config.py, display_handler.py and ha.py. Omit ha.py if you do not want its automatic Home Assistant discovery behavior. The project uses the micropython-mqtt library. A note Carey added on April 20, 2025 explains that newer library versions changed file layout: older instructions to copy mqtt_as.py and mqtt_local.py are not timeless; the updated references are mqtt_as/__init__.py and mqtt_local_example.py. Check the project documentation and library version together rather than mixing old and new instructions.

An optional OTA library can receive code updates through MQTT. That may simplify maintenance, but adds a failure and security path: a bad update or network problem could leave the monitor unusable. Keep OTA optional until you have tested a local or wired recovery method, and avoid exposing the device or broker unnecessarily.

Rank #4
UIUZMAR Pool Salt pH Tester Upgrade pH and ORP Meter Accurate Pool Water
  • Multiparameter Digital Pool Water Tester: Brand new UIUZMAR swimming pool tester can be used to test the critical parameters for pool and spa: pH, Salinity (Sodium Chloride), ORP (Oxidation-Reduction Potential), Temperature, TDS (total dissolved solids), EC (electric conductivity), help take more control of your pool water.
  • Excellent Value Option for Salt System: A proper level of salt will ensure that the generator is able to produce the desired amount of chlorine and keep the water safe and clean. UIUZMAR saltwater pool tester can test sodium chloride (salt), which could be a wonderful tool for all saltwater pool and hot tub owner.
  • Accurate Aquarium pH tester: All testers has been pre-calibrated by factory, making sure every user would get a reliable result when tried to check fishtank water. The proprietary protective cap with wet sponge can extend the probe life, making the tester more durable.
  • [Check Drinking Water Quality] Great tool for check pH PPM and ORP level, help monitor water quality produced by RO water system, bottled water, tap water, well water, and city/ town water.
  • Easy to Use: Just dip the probe into water, read the result instantly. With UIUZMAR tester, it is so easy to fully understand the water quality and keep your water at its best. There is no need to waiting minutes or taking time to compare each color like test strips.

Two-point pH calibration

The project’s pH calibration uses pH 7.0 and pH 4.0 buffer solutions. Calibration is a recurring measurement task, not a one-time setup. Carey says monthly calibration is the usual suggestion. Follow the handling instructions for your particular probe and buffer products; a careful sequence is:

  1. Rinse the probe with distilled water and gently blot residual droplets with soft paper.
  2. Place it in pH 7.0 buffer. Start calibration from Home Assistant or publish {"command":"calibrate"} to esp32/hottub/command. Do not retain this command.
  3. Wait for the neutral reading to settle, stirring gently as appropriate.
  4. Rinse the probe, then place it in pH 4.0 buffer and wait for the acid reading to settle.
  5. The device backs up the prior settings to esp32/hottub/configbak and writes updated calibration coefficients and a calibration timestamp to esp32/hottub/config.
  6. Return the probe to the tub and confirm that the new reading is plausible against an independent check.

Calibration and replacement are different jobs. Calibration checks the probe against known solutions; it cannot restore an electrode that is worn, contaminated or damaged. DFRobot describes two-point calibration using pH 4.0 and 7.0 buffers and lists probe life as more than 0.5 years depending on water quality. Carey reports roughly annual replacement in his setup. Those figures describe a manufacturer qualification and one builder’s experience, not a guaranteed service interval.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

What ORP can—and cannot—tell you

ORP is oxidation-reduction potential, a voltage measurement associated with the water’s oxidation and disinfection conditions. It is not a direct measurement of chlorine concentration and is not, by itself, proof that water is safe. Readings can be affected by pH, temperature, circulation, probe condition and the sanitizing system in use. A single threshold should not be treated as an instruction to add chemicals.

Best Value
Terronix 7-in-1 Digital Pool Water Tester, Accurate Chlorine, pH, Salt, ORP, EC, TDS & Temperature Meter for Saltwater Pools, Hot Tubs, Aquariums, Spas & Hydroponics
  • 🌊 Fast & Accurate Free Chlorine Testing:Quickly measure free chlorine (FAC) levels in pools and spas to ensure safe swimming conditions. Ideal range is 1–3 ppm. Achieve crystal-clear water and reduce health risks caused by improper chlorine dosing.
  • 🧂 Professional Salinity Monitoring:Covers a wide detection range of 0.01%–25.00% / 0–10000 ppm, perfect for saltwater pools and hot tubs with chlorinator systems. Helps maintain optimal sodium chloride balance, improving water quality and extending equipment life.
  • 🧪 7-in-1 Water Quality Checker:Combines pH (0.00–14.00), ORP, EC, TDS, FAC, salt, and temperature measurement in one easy-to-use digital meter. Say goodbye to inaccurate test strips—get consistent readings in seconds for your pool, spa, or aquarium.
  • 📲 Easy-to-Read Backlit Display:Large digital screen displays all parameters clearly, even in bright sunlight or low-light conditions. Perfect for pool owners, spa technicians, and hydroponic growers who need quick and reliable water analysis.
  • 🌊Maintaining free chlorine at 1–3 ppm is critical for clean, comfortable pool water. This digital chlorine tester delivers instant readings, eliminating the hassle of disposable test strips and liquid reagent kits.🛠️ Compact, lightweight and easy to use, it fits saltwater pools, hot tubs, aquariums, drinking filters, hydroponic systems and koi ponds. A protective storage case and detailed user manual are included for quick setup and long-lasting daily use.

Carey’s project exposes ORP for monitoring and visualization; it does not document a validated chemical-dosing algorithm. Continue the water-testing and treatment practices appropriate to your spa. Use the monitor to notice trends or prompt a check, not to replace a proper test or make automatic treatment decisions.

Using Home Assistant and storing history

With ha.py, MQTT Discovery can create a device and entities for pH, ORP, air temperature, water temperature and a calibration control. The cover state is represented in the project’s data structure, but physical cover sensing requires installing and configuring the optional switch. Once entities are available, a builder could create a dashboard and automations for a pH check, unusual temperature, a cover left open, or a calibration reminder based on last_calibration. Those are suggested uses; thresholds should be chosen for the particular spa and verified independently.

Home Assistant can show current readings without a separate database. For longer-term charts, Carey documents an optional Telegraf-to-InfluxDB 2 path: Telegraf consumes esp32/hottub/readings, parses the JSON payload with a Starlark processor, separates pH, ORP and the two temperatures into measurements, then writes them to InfluxDB. MQTT also leaves the readings available to other compatible systems. Historical data is useful for spotting drift or patterns, but a polished chart cannot make an inaccurate sensor trustworthy.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Maintenance and failure modes

  • Check readings against independent tests. An electrode can drift while still reporting plausible-looking numbers. Carey notes that after a year his pH sensor eventually reported nearly everything as 6.9–7.0. If the value stops responding as expected, compare with a reliable test and inspect or recalibrate the probe before assuming the tub chemistry changed.
  • Allow stabilization after restart. Carey says a 14-month-old ORP sensor could take two days to settle after a reboot. Do not act on an immediate post-restart value as though it were settled.
  • Inspect temperature-sensor IDs. A swapped ROM assignment can make air temperature appear to be water temperature, or vice versa.
  • Keep connectors and boards dry. Moisture around a BNC connector or analog conversion board can compromise measurements. Protect the electronics from splashes and condensation, and inspect enclosure seals rather than assuming a 3D-printed box is waterproof.
  • Plan for probe replacement. Carey reported replacing probes about annually, with costs around $20 for pH and $40 for ORP in his setup. Those are his reported costs, not current universal prices; compatibility, water conditions and replacement availability vary.
  • Expect network gaps. If Wi-Fi, MQTT or Home Assistant is unavailable, notifications and history may stop. A local OLED can still offer a view depending on the device’s operation, but stale or missing network data should never be mistaken for a current reading.
  • Do not retain commands. In particular, a retained calibration message can replay when the device reconnects and trigger an unexpected calibration cycle. Retain configuration only as intended.

Safety and suitability

This is a low-voltage monitoring build, not a license to modify spa power equipment. Keep mains wiring and exposed connectors away from splash zones; use appropriate ground-fault protection and sound enclosure practices. Do not integrate with or alter mains-powered spa equipment unless a qualified electrician or spa technician handles that work. The published project does not establish electrical-safety certification, an ingress-protection rating for the finished enclosure, or suitability for every outdoor installation.

Also verify that probes, cables, seals, adhesives and printed parts are appropriate for their intended continuous exposure and placement. Route probes so they do not create snagging, breakage, contamination or bather hazards. The project documentation does not establish that every listed material is certified for continuous human-contact water use.

Reader Fit
Home Assistant user comfortable with ESP32 wiring and probe care Good candidate for trend monitoring and custom alerts.
Casual tub owner seeking a simple appliance Probably too involved: assembly, calibration and maintenance are ongoing.
Anyone wanting automatic sanitizer or pH dosing Wrong project; it measures and reports rather than controlling chemical feed.
Anyone requiring certified water-treatment control Not sufficient; use suitable validated equipment and established testing practices.

The repository is publicly available under an MIT license, but its visible history is small. Treat it as a maker project that may require self-support: pin or archive dependencies that work for your build, and test recovery procedures. Its value is the locally accessible stream of measurements and the flexibility to build your own history and reminders—not a guarantee that the spa is safe.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Recommended PC Tool
Recommended PC Tool
Outdated Drivers Are Slowing You DownFree scan - exact matches
PC Slower Than It Used to Be?Free scan - under a minute

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.