TL;DR: - After getting tired of the black box - I gave my chiller a brain transplant by replacing the controller with a commercial refrigeration model with wifi and then integrating it into Home Assistant with complete local telemetry and control via Tuya-Local.
Hi Everyone - First post here and hopefully I picked the right area to post this in!
I have recently been working on a project that uses a water chiller and quickly realised that the options on the market are shockingly awful in terms of units that can actually be controlled and monitored remotely and the very few that exist seem to be overpriced and outright hostile to HA integration. I wanted to see if I could do better as far too many people in the aquarium, brewing and hydroponics world have been forced to accept chiller with zero logging and control for far too long
The short wins list:
Super cheap: it’s ~$50
Almost “Plug & Play”: If using a generic chiller
Source of truth: Moves the temperature source to the actual sump / tank / reservoir for better precision, more stable temps & reduces short cycling for a longer chiller life.
Complete local control: In depth chiller monitoring and control from Home Assistant locally. No more crappy apps and “use our cloud only”.
Precision & reliability: Much better precision than most factory chiller controllers, fully adjustable and will continue to work even without Home Assistant or network connectivity.
Predictive maintenance/health monitoring: Track compressor duty cycles and run times to spot efficiency drops before the tank temperature moves. The feedback from this controller in Home Assistant means you can have the system recognise issues immediately if the chiller is not functioning as expected, shut it down and alert you.
Standard Warning: This project involves working with mains power devices. If you do not know the difference between active, neutral, and ground or if your standard electrical safety protocol involves crossing your fingers, please do not attempt this. Letting the magic smoke out of a compressor is bad, however letting it out of yourself is worse. Attempt this at your own risk and remember each chiller make and model is different and yours may look entirely different to this one internally but the core concepts are the same.
The Goal: I was tired of the black box approach to chillers and wanted a way to control and more importantly monitor my chiller. To be honest the offerings off the shelf are not only absolutely terrible for monitoring but are also criminally overpriced for what you get when looking at “smart” models. I also wanted to be able to detect and prevent issues particularly because I have automated powering the pump for the chiller loop on demand to save power and noise in my particular circumstance and would hate to freeze and pop a heat exchanger.
The Hardware: The generic “Shanhuchong Y-160” 1/10hp R134a chiller that I purchased as a test unit turned out to be surprisingly effective and quiet. Instead of replacing it with a a Teco chiller with Wi-Fi and trying to deal with integrating it into Home Assistant, I decided to attempt to “un-lobotomise” the generic chiller and opened it up to look inside to see if I could give it some brains back.
I was greeted with a very simple off-the-shelf compressor unit, a titanium based heat exchanger, two 240V fans, and a generic 71x29mm STC-1000 knockoff controller. Examining the wiring, the factory setup was extremely basic. It took an NTC sensor installed inside the heat exchanger as the only temperature input, L+N 240VAC in and had a simple relay output for connecting 240V to the compressor. All the wiring was actually surprisingly neat and well done for a generic unit, featuring nicely done ferrules and a very clear wiring diagram on the controller chassis.
The original controller
The Swap: A bit of research later and I found the Elitech ECS-974T panel mount temperature controller on AliExpress. This 71x29mm controller form factor is used by most generic aquarium chillers and is the absolute standard in commercial refrigeration. Major brands like Hailea and Teco use their own custom controller formats so this would not be a slot in job on those however the controller certainly can control them. If you are willing to get creative with a Dremel or an external enclosure for the controller and extending the wiring it’s absolutely a doable thing if you’d like the best of both worlds with a premium chiller and the brains to back it.
Less than $50 and a week later the unit arrived. I took to removing the existing controller, slotting in the new one, and rewiring to suit.
Like a glove!
The biggest wiring change involved running one of the 2M long NTC probes that came with the new controller out of the chiller cabinet so that the probe could be located directly in the tank. This allows for actual live temperature monitoring of the tank itself and drives the compressor based on the load temps in there rather than the heat exchanger water temp. This alone makes the system much more reliable and precise as it prevents the short cycling that you can get with chillers using their internal temperature as the trigger.
I then proceeded with double heat shrinking and cable tying the spare 240V jumper wire. The ECS-974T passes power directly to the compressor relay output from the main unit supply, rather than needing two separate live wires like the old controller. Another big advantage is that compared to the 10A relays in most generic controllers , the ECS-974T uses a larger 16A compressor relay in the 240V model and a 30A in the 110/120V one so you have a lot less chance of a welded or stuck relay.
The final wiring change was testing the existing factory NTC sensor in the heat exchanger and after confirming it was compatible with the ECS-974T, wiring it into the secondary “evaporator” temperature input on the new controller.
Wired in and ready to go
The Fail-Safe: Wiring in that existing temperature probe gives the system the ability to monitor the heat exchanger completely independently of the tank water probe. This opens the door to setting up automations that force the chiller to stop if the exchanger temps get too low due to a blockage or a pump failure, rather than just running blind, freezing and bursting the titanium heat exchanger. $50 to control and peer into what is actually happening inside your chiller is great but peace of mind of being able to avoid $5k of dead coral & cooked fish (or pythium
) and a flooded floor is awesome ROI by itself.
If you are using a separate chiller only pump - another great feature you can leverage is using the controller's fan relay output to run the pump on demand with the compressor and if you also jumper its defrost relay to the fan output and adjust the defrost settings to trigger a 3 minute defrost every hour or two like I do in my setup - it will run the pump to prevent water stagnation. This does require some additional wiring not highlighted visually in this guide as I wanted to try and keep the complexity down but if you are in the position of wanting to do this you are probably at the level that will find that task fairly easy.
It also allows for delta monitoring to see exactly how quickly the temperature is changing across the loop and flag if there is a problem or if the system is not being efficient and needs a flush and clean. The existing sensor needed a 0.5c calibration offset to match what I was seeing during bench testing, and the new controller made dialing that in a snap.
A Side Note on Precision vs Longevity: This controller always reports temps to the nearest 0.1 degree and does support down to 0.1 degree hysteresis settings, however actually setting the hysteresis that fine might be an issue depending on the thermal mass of the fluid you are trying to chill, your rate of heating and your chiller. If you set it too low the chiller will cycle like crazy, causing a lot of wear and tear needlessly due to most wear happening during compressor start-up. This kind of short cycling is a common flaw in cheap chiller controllers that this swap was designed to help avoid so don't bake it back in. I suggest sticking with 1.0 or 0.5 degree as your hysteresis setting if you can to help avoid needless compressor cycling and making sure your compressor delay is set to at least 3 minutes.
The Software (Dropping the Cloud): The next bit was likely the hardest but most important. I needed to be able to control and monitor this setup locally without needing to deal with the Tuya cloud. That meant sitting down and completely reverse engineering the controller’s settings and sensors, then writing up a massive 550+ line device config for Tuya-Local (available via HACS) in order to allow complete local control.
The device has 36 data-points. This is massive for most Tuya devices (most smart plugs have 5 to 8, and even most smart thermostats have 10 to 15). It took a significant chunk of a weekend to get working well with all controls exposed. Props to Elitech as the included paper manual actually went into a decent amount of depth on most of the various functions and even their acceptable numeric ranges. Having well written and actually useful documentation with a bit of generic hardware was a very welcome surprise and I wish it happened more often.
After I got this working, I polished the result and submitted it as a pull request to the Tuya-Local GitHub. It has been merged and is in the current release so everyone else can use it. The PR can be found here.
Here are some shots of my very much work in progress settings and status dashboard - be gentle, I know I suck at making pretty cards!
Some of the settings exposed
Chiller status
Health tracking graphs
Conclusion: This $50 mod to a $250 chiller ended up giving me far better telemetry and control abilities than a $1500 Teco chiller with their $299 wifi adapter and rivals functionality only found on $5k+ commercial or lab chiller systems. It gives incredible data & complete remote control over advanced aspects like the hysteresis range, compressor delay and temperature probe calibration offsets all from the comfort of Home Assistant and does so locally.
I am incredibly happy with the results. This is a highly impactful, cheap hardware hack that most people here could pull off with very little effort on the electrical side, as the physical swap is almost plug-and-play with a generic chiller.
I’m more than happy to answer any questions that anyone has on this, let me know what you think!







