Python library for communicating over RS485 Modbus with Honeywell (Resideo) residential water heater control units and accessories for Bradford White, A.O. Smith, Rheem and other hot water tanks. This enables integrations to be built for smart home automation systems for water heaters with existing digital controls by Honeywell, including water heater status, temperatures, and adjusting temperature settings (for example, on a set back schedule, occupancy sensors, or away/vacation mode). NOTE: This controls your hot water heater settings, USE AT YOUR OWN RISK!
Special thanks to Gene Hayes (waterheatertimer.org) whose wealth of knowledge on water heater control systems, including the Honeywell, was an incredible help on understanding this system and making this integration possible.
- water temperature (upper and lower tank)
- thermostat (current setting + changing the target temperature)
- heater status (heating or off)
- diagnostic status codes
- display current water temperature
- alarms before hot water runs out
- automatically schedule temperature set backs
- temporary water heater holds
- provide a vacation mode setting to turn back heat pump
- track heater cycles
- incoming water valve shutoff (if automatied valve installed)
- hot water capacity indicator (estimate available hot water)
- Atmospheric Honeywell controller (WV/WT series): The WV and WT series gas control systems are atmospheric vented water heaters and are powered by a small amount of current produced by a thermopile heated by the pilot flame. Bradley White offered a now discontinued setback controller that plugged into the COM port of the Honeywell controls, white was sperately powered by a 24 volt AC transformer.
*** RS485 adapter** to connect host running this client directly to the Honeywell controller (such as the JBtek USB to RS485 adapter)
It may be possibly to use RS485-over-IP devices to create a local socat mountpoint and communicate with the remote RS485 device, buy this has not been tested.
- Bradford White ICON itelligent diagnostic and control systems
- WV8840A / WV8860A
- WC4460A / WV4460E
- Honeywell WT88 series
Brand | SKU | Brand Part Number | Resideo Part Number | Alternative Part Numbers |
---|---|---|---|---|
Bradford White | WT8840A1000 | 222-47463-01A / 222-47463-01E | WV8840A1000 / WV8840A1001 | 415-52907-01 |
Bradford White | WT8840A1500 | 222-47463-02A / 222-47463-02E | WV8840A1050 / WV8840A1051 | 415-52907-02 |
Bradford White | WT8860A1000 | 222-48863-01 | WV8860A1009 / WV8860A1010 | 415-52915-01 / 100112336 / 9007884005 |
A.O. Smith * | WT8840B1000 | 316910-000 / 316910-000 / 321166-000 | WV8860B1309 / WV8860B1310 | 100112336/ 9007884005 |
A.O. Smith * | WT8840B1500 | 316910-001 / 316910-001 / 321166-001 | WV8840B1059 / WV8840B1117 / WV8840B1118 | 100112337 / 9007885005 |
A.O. Smith * | WT8860B1000 | 100073010 / 318618-000 | WV8860B1309 / WV8860B1310 | 100093970/ 9007631005 |
Rheem | WT8840C1000 | AP16910E | WV8840C1406 | SP20832E |
Rheem | WT8840C1500 | AP16910B | WV8840C1605 | SP20832B |
Reliance | 9007890 | |||
Reliance | 9007884005 | |||
American | GIDDS-110577 | 6911128 |
-
These Honeywell controls may appear on other water heaters as well since AO Smith also includes the brands State, American, Reliance, Kenmore, Craftmaster, Lochinvar, Kenmore, and others.
-
This MAY also work with WV4262.
-
This MAY work with the commercial Atmospheric ICON Gas Control
-
The Bradley White Setback Control manual mentions that the S9360B, S9380B may use similar controls.
pip3 install pyhoneywell_whc
See example-client.py for a working example.
hot_water = PyHoneywellWaterHeaterController()
# attributes
hot_water.upper_temp
hot_water.lower_temp
hot_water.target_temp
hot_water.diagnostic_code
hot_water.is_heating
# control methods
hot_water.set_target_temp(130)
- This controls the hot water tank settings, USE AT YOUR OWN RISK!
- This library is community supported, please submit changes and improvements.
- NOT YET IMPLEMENTED
- EWA500C-RS485 Modbus communication module
- Honeywell WT88 Controls Brochure
- http://www.gaswaterheatertimer.com/wp-content/themes/american-pacific/pdf/Plumbing-Engineer-Setback-Control-Study.pdf
- See diagnostic codes table (p65) (see codes.yaml)
- waterheatertimer.org: Honeywell Control Valve details (excellent resource)
- grabserial for monitoring RS485
- https://terrylove.com/forums/index.php?threads/honeywell-24v-hw-gas-control-valve-harness-connector-purpose.83718/
- lots of info on EnviroCOM protocol https://groups.google.com/forum/#!topic/commandfusion/J0jmAoqP_YY
- https://www.home-assistant.io/integrations/water_heater/
- The discontinued Bradford White ICON Digital LCD Control (Bradford White 239-48559-00 or PN 239-47881-00 package). Note, this LCD control this MAY BE related to the Honeywell SD7000A as that LCD controller was mentioned in the S9360B, S9361B, S9380B, S9381B, despite that Honeywell model number appearing to be a humidistat control.
BOILER EXAMPLES:
Example modbus clients:
-
https://stackoverflow.com/questions/60431210/modbus-rtu-master-python-script-with-minimalmodbus
-
https://www.ni.com/en-us/innovations/white-papers/14/the-modbus-protocol-in-depth.html
-
https://community.home-assistant.io/t/modbus-need-help-from-experts/21596/29
Example thermostat clients: