Heater Control: Hysteresis and Safety Layers That Protect Your Reef Tank

A stuck heater is the number one failure in aquarium keeping—it can destroy a tank built over years in just a few hours. This guide explains how Oquari manages heating (hysteresis) and what safety layers stand between your heater and your livestock: two independent sensors, emergency cutoffs, heating time limits, and alarms.

Hysteresis: Why the Relay Doesn’t Click Constantly

A naive thermostat (“turn on below 25.0°C, turn off above 25.0°C”) has a flaw: temperature fluctuates by fractions of a degree around the threshold, causing the relay to click every few seconds. This wears out contacts, stresses the heater, and creates audible noise in your room.

The controller uses hysteresis: a buffer zone around the target temperature where no action is taken. Example for a setting of 25.0°C with 0.4°C hysteresis:

  • The heater turns on when temperature drops below 24.8°C,
  • The heater turns off when temperature rises above 25.2°C,
  • Between these thresholds, the state remains unchanged—the heater completes its current cycle.

Result: only a few dozen switching events per day instead of thousands, while temperature stays within a narrow, safe band. A fluctuation of ±0.2°C is imperceptible to fish and corals. Additionally, the controller enforces minimum on/off times for the relay—unusual temperature curves won’t force rapid contact switching.

Layer 1: Emergency Cutoff T_max (Interlock)

The most critical safety feature. In the heater preset, you set a maximum temperature (e.g., 27.5°C for reef tanks). If the measurement exceeds this limit, the controller’s safety layer forces the heater off in every operational cycle until the temperature drops below the threshold.

Importantly, this override takes precedence over everything: hysteresis regulation, schedules, manual panel overrides, or Home Assistant commands. The engine’s priority order is fixed—safety always has the final say before writing to outputs.

The interlock is also “suspicious” of the sensor: if the temperature probe stops responding or reports a fault, its reading becomes “unknown”—and the cutoff condition treats “unknown” as a threat, meaning the heater stays off. The system prefers a cooler tank over heating blindly.

This is combined with measurement redundancy: Oquari controls heating based on two independent temperature sensors. If their readings diverge by more than half a degree—one may have slipped out of water or accumulated biofilm—heating stops and you receive an alarm. Additionally, low water level physically blocks heater circuits independently of all other logic: the heater never heats “in air.”

The interlock protects against overheating caused by the controller, not by the heater itself. If your heater has a failed internal thermostat and continues heating despite relay cutoff—only physical power disconnection helps. Always plug heaters into controller-switched sockets, never directly into wall outlets bypassing the system.

Layer 2: Maximum Heating Duration

This second safety net works even when the sensor lies “the other way” (e.g., fell out of water and shows room temperature, so the regulator keeps heating). The preset sets a maximum continuous heating time: if the heater relay stays on longer than this limit, the controller forces it off and blocks reactivation for a cooldown period.

The timer monitors actual output state—it cannot be bypassed by any rule. Triggering generates a security event visible in both the panel and Home Assistant.

How to choose the limit: measure how long your heater actually runs continuously on the coldest night (e.g., after changing with cooler water), then set the limit with 2–3× headroom. In a typical tank with properly sized heaters, continuous heating beyond 2–3 hours already signals something is wrong.

Layer 3: Temperature Alarms

The preset also generates minimum and maximum temperature alarms—independent from regulation itself. Alarms don’t control anything; they only inform: on-device indicators, panel notifications, and via oquari.com or Home Assistant, push alerts to your phone. Set thresholds wider than the regulation band (e.g., regulation 24.8–25.2°C, alarms at 23.5°C and 27.0°C) so alarms indicate real problems, not normal operation.

Panel Configuration — Step by Step

  1. Panel → Temperature.
  2. Plug your heater into one of the two protected heater sockets on the power module—the wizard will assign it to regulation.
  3. Set target temperature and hysteresis (start with 0.2–0.5°C).
  4. Set emergency cutoff temperature—1.5–2.5°C above your target.
  5. Set maximum heating time based on your measurements plus headroom.
  6. Save—and test by briefly removing the level sensor from water (heating should lock out).

Why This Works Without Internet

All described logic—hysteresis, interlock, time limits, alarms—runs locally on the controller. Wi-Fi failure, router issues, Home Assistant downtime, or internet loss changes nothing here. If communication breaks between the core unit and power module, the module itself enters a safe state within seconds and cuts heater power. The system is designed so it physically cannot leave heaters on “because something hung up.”

Najczęstsze pytania

What happens if both temperature sensors fail?

If either sensor stops reporting or shows invalid data, the controller treats this as a safety threat and shuts off heating immediately. You’ll receive an alarm notification, but the system prioritizes preventing overheating over attempting to guess correct temperatures.

Can I override the emergency cutoff manually?

No—the emergency cutoff (T_max interlock) cannot be bypassed through the panel or Home Assistant. It only resets automatically once temperature drops below the threshold. This design ensures no human error can disable critical protection during a real thermal event.

Why does my heater click less often with Oquari than with my old thermostat?

Traditional thermostats switch at exact thresholds, causing rapid cycling when temperature hovers near that point. Oquari uses hysteresis—a buffer zone where the heater stays in its current state—reducing relay clicks from thousands to just dozens per day while maintaining tighter actual temperature stability.

Does the system still work if Home Assistant goes offline?

Yes—all heating logic, including hysteresis, emergency cutoffs, and time limits, executes locally on the Oquari controller. Internet or HA connectivity is optional for basic operation; automation continues uninterrupted even during complete network outages.

How do I know if my heater is properly sized for my tank?

If your heater runs continuously for more than 2–3 hours under normal conditions, it’s likely undersized. Measure actual runtime on the coldest night after a water change, then set your maximum heating limit with 2–3× headroom. Properly sized heaters should cycle on and off regularly rather than running non-stop.