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
- Rename each channel — label them by what they dose (e.g. Alk, Ca, Mg, NO3). Stored locally in ReefMind only; the names in the Jebao Aqua app are unchanged.
- Enable or disable individual channels — pause a channel without unplugging anything. Goes through the Jebao cloud.
- Edit per-channel daily volume in mL/day. ReefMind encodes this into the pump’s schedule the same way the Jebao Aqua app does. Local-network writes are verified on DP-4 channels 1–4; unsupported channels and out-of-range values transparently route through the cloud (see LAN fallback reasons).
- Set the dose time (HH:MM) for each channel — cloud-only today, so the change reaches the pump as soon as it’s online.
- Read live status — current daily totals plus last-sync time appear on each device card.
Not yet supported on dosers (use the Jebao Aqua app)
- Manual one-shot dose — we haven’t captured the Aqua app’s manual-dose protocol yet. Trigger manual doses from the Aqua app for now.
- Calibration / priming — same story; calibrate from the Aqua app and ReefMind will read the resulting settings.
Renaming the pump itself Preview only
- Pump display-name change — the Settings card lets you preview the rename request, but ReefMind does not push the change to the Jebao app yet. We’ll flip this on once the Aqua app’s bind-PUT contract is captured and verified end-to-end. Until then, rename the pump from the Jebao Aqua app and ReefMind will pick up the new name on the next sync. Channel names (above) are independent of this and are stored locally in ReefMind — those work today.
Return / circulation pumps Return pump
- Toggle power on or off (via the Jebao cloud).
- Set speed from 0 to 100% (via the Jebao cloud).
- Read current settings from the pump with the Read Current button before adjusting.
Renaming the pump itself Preview only
- Pump rename is preview-only on every supported family today — same caveat as for dosers. Rename the pump in the Jebao Aqua app for now.
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
- 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.
- In ReefMind, open Settings → Jebao Dosing Pump and tap + Connect.
- 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.
- 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
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.
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_fields)
Both fields are required. The Test Connection button will not even call our servers until both are filled.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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.
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
- Your Jebao Aqua password is encrypted at rest and only decrypted in memory to log into the Jebao cloud on your behalf.
- Pump passcodes (the 10-character string the pump emits over LAN) are never returned to your browser — they live on our servers only, scoped to your tank.
- Disconnecting via Settings removes both the credentials and the bound device list immediately.
Still stuck? Email support@reefmind.ai
with your tank ID and the pump’s product_key.