← Back to Settings

Jebao Pump Setup

ReefMind reads — and (for supported models) controls — your Jebao WiFi-enabled pumps through the same Jebao Aqua app account you already use on your phone. This page covers the supported pumps, how to connect, and what to do when something doesn’t work.

Supported pumps

The list below is the source of truth for what ReefMind can talk to today. Pumps not listed here will still try to bind via the Jebao Aqua cloud (you’ll see them in Settings with an Unknown model banner) — reads work, but advanced controls may be limited.

Model Type Channels Product key
Jebao DP-4 (MD 4.4) Doser 4 04020B27
Jebao DP-4 BLE-variant (04X3000R) Doser 4 1aa33c38ba9d4b78a9e7796705b2fad7
Jebao MDP-20000 Return Pump Return pump 1 04020B28

Need a model that isn’t here? Email support@reefmind.ai with the product_key shown on the device card — we add new pumps from real customer bindings.

What you can control

The Settings card adapts to the pump it’s rendering — you only see the controls that match what we’ve verified on that family of pump. If something isn’t listed below, ReefMind can’t drive it yet today (use the Jebao Aqua app for those).

Dosing pumps Doser

Not yet supported on dosers (use the Jebao Aqua app)

Renaming the pump itself Preview only

Return / circulation pumps Return pump

Renaming the pump itself Preview only

Every write goes through the Jebao Aqua cloud (so it works whether or not your pump answers on the local network). Local-network reads are a bonus — they make status updates faster, but your pump still stays in sync via the cloud if local discovery fails.

Connecting your pump

  1. Pair the pump in the Jebao Aqua app first. ReefMind doesn’t do WiFi pairing — the Jebao Aqua phone app does. Once the pump shows up in the Aqua app and is online, come back here.
  2. In ReefMind, open Settings → Jebao Dosing Pump and tap + Connect.
  3. Enter the same email and password you use to sign in to the Jebao Aqua app. Tap Test Connection first to confirm the credentials work and preview which pumps will be detected.
  4. Tap Connect Jebao to save. ReefMind encrypts your password and stores it per tank.

BLE-variant pumps (model code 04X3000R)

Some Jebao firmware revisions don’t respond to broadcast discovery on the local network. If your pump shows lan_not_found on every sync, set a Static IP on the device card in Settings. You can find the pump’s IP in your router’s DHCP table (or in the Jebao Aqua app under device info). Cloud control continues to work either way — the static IP only matters for local-network reads.

Troubleshooting

Login rejected (auth_failed)

Double-check the email and password against the Jebao Aqua app. If you recently changed your Jebao password, update it in Aqua first, then re-test here. ReefMind never stores your password unencrypted — if Test Connection succeeds, Connect will too.

Couldn’t reach Jebao cloud (network_error)

The Jebao Aqua cloud (Gizwits) was unreachable from our servers. This is almost always transient — wait a minute and try again. If it persists, check status.gizwits.com.

Missing email or password (missing_fields)

Both fields are required. The Test Connection button will not even call our servers until both are filled.

Pump status: lan_error

The pump answered locally but rejected our login. This currently affects BLE-variant firmware on TCP port 12416. Cloud control still works for these pumps — commands route through Jebao Aqua instead of the LAN. We’re tracking the auth scheme and will enable LAN reads once the handshake is decoded.

Pump status: lan_not_found

The pump didn’t respond to broadcast discovery. Most common cause: BLE-variant firmware that only answers unicast. Set a Static IP on the device card (see Connecting your pump).

Pump status: lan_timeout

The pump answered locally but stopped responding mid-conversation. Almost always transient — a brief network blip or a pump reboot. Wait a minute and the next sync should flip back to ok. If it stays in lan_timeout for more than 15 minutes, email support@reefmind.ai with your tank ID and pump product_key.

Pump status: disabled

Not an error. The pump shows disabled when you turn it off in Settings → Jebao → device card → Enable. ReefMind skips disabled pumps during each sync. Toggle Enable back on to resume reads.

Unknown model banner

If your pump card shows an Unknown model warning, ReefMind couldn’t match the pump’s product_key against its registry. The pump still works through the Jebao Aqua cloud (reads + basic control), but model-specific features (channel labels, schedule encoding) are best-effort. Email support@reefmind.ai with the product key from the card and we’ll add it.

Why didn’t LAN engage on a write?

ReefMind’s default control path goes through the Jebao Aqua cloud — that’s the universal one and works regardless of your home network. When you opt into Use LAN when possible we try a direct local-network write first; if any precondition isn’t met we silently fall back to cloud and the schedule lands either way. The response carries a stable lanFallbackReason so you (or support) can answer “why didn’t LAN engage?” without guessing. None of these reasons mean the write failed — they explain which path executed.

Reason: no_lan_capability

The pump model isn’t registered for LAN full-state writes yet (today only the Jebao DP-4 is). The cloud path handles every other registered model identically — nothing for you to do.

Reason: no_lan_ip

ReefMind doesn’t have a local-network IP cached for this pump — usually because broadcast discovery hasn’t answered yet (BLE-variant firmware) or you haven’t set one manually. Set a Static IP on the device card in Settings → Jebao and the next LAN-preferred write will use it. Same fix as the lan_not_found sync status; the connect walkthrough is in Connecting your pump. Cloud writes keep working in the meantime.

Reason: unsupported_channel

We don’t yet have decoded LAN byte locations for the channel you wrote to (typically a channel beyond what the registered model exposes). The cloud path encodes the schedule the same way the Jebao Aqua app does, so the dose still lands.

Reason: channel_pending_field_capture

We’ve decoded where this channel’s daily-volume byte lives in the pump’s state, but a live LAN write to it hasn’t round-tripped cleanly yet. Until that field-capture lands, ReefMind routes this channel straight to the Jebao Aqua cloud so you don’t sit through a 10-second LAN timeout per write — the dose still lands every time. All four channels on the Jebao DP-4 (and the BLE-variant 04X3000R) are now field-verified, so you should not see this reason on a DP-4 today; it stays in place for any future doser model whose channels we map before live-probing. Nothing for you to do.

Reason: volume_non_integer

You asked for a fractional dose (e.g. 5.5 mL/day). The LAN byte path is integer-only, so we routed through cloud which preserves 0.1-mL granularity natively. If you want LAN engagement, round to whole mL.

Reason: volume_out_of_lan_range

The single LAN mutation byte caps at the channel’s per-byte range. On the Jebao DP-4 that’s 255 mL/day for channel 1 and 25 mL/day for channels 2–4 (the schedule-encoded channels store mL × 10 in a single byte). Volumes above the cap always go through the cloud path, which has no such limit.

Reason: lan_error

The LAN write was attempted and threw mid-conversation; the cloud path took over so the schedule still landed. The underlying message is in result.lanError on the API response. If this code repeats across multiple writes for the same pump, treat it like the lan_error sync status above and email support@reefmind.ai with your tank ID and pump product_key.

Privacy & security

Still stuck? Email support@reefmind.ai with your tank ID and the pump’s product_key.