🎁 Get the FREE AI Skills Starter GuideSubscribe →
BytesAgainBytesAgain
🦀 ClawHub

ReefBeat

by @piwi3910

Control and monitor Red Sea ReefBeat aquarium equipment directly over the local HTTP API — no cloud required. Supports ALL actions on ALL devices — ReefLED G...

Versionv1.0.3
Downloads891
TERMINAL
clawhub install reefbeat

📖 About This Skill


name: reefbeat description: Control and monitor Red Sea ReefBeat aquarium equipment directly over the local HTTP API — no cloud required. Supports ALL actions on ALL devices — ReefLED G1/G2 (lighting/kelvin/intensity/schedules/acclimation/moonphase), ReefDose (dosing/calibration/priming/supplements), ReefMat (filter roll/advance/new-roll), ReefRun (return pump + skimmer control/overskimming), ReefATO+ (auto top-off/resume/volume), ReefWave (wave modes/preview). Use for ANY reef tank / aquarium request.

ReefBeat Skill

Direct HTTP control for Red Sea ReefBeat devices. Full API reference in references/api.md.

Quick Start

python3 scripts/reefbeat.py discover /24   # find all devices
python3 scripts/reefbeat.py  info                   # device info + type
python3 scripts/reefbeat.py  status                 # /dashboard
python3 scripts/reefbeat.py  get /endpoint
python3 scripts/reefbeat.py  post /endpoint '{"key":"value"}'
python3 scripts/reefbeat.py  put /endpoint '{"key":"value"}'

Device Discovery

Run discovery to find all devices on your network automatically:

python3 scripts/reefbeat.py discover /24


Common Actions by Request

ReefLED — Lighting

# Check current light status
python3 scripts/reefbeat.py  get /manual

Set white/blue (G1 — RSLED90)

python3 scripts/reefbeat.py post /manual '{"white": 60, "blue": 80}'

Timed manual (30 min then resume schedule)

python3 scripts/reefbeat.py post /manual '{"white": 60, "blue": 80, "duration": 30}'

Toggle moonphase

python3 scripts/reefbeat.py post /moonphase '{"enabled": true, "moon_day": 14}'

Acclimation

python3 scripts/reefbeat.py post /acclimation '{"enabled": true, "duration": 50, "start_intensity_factor": 30}'

View auto schedule for Monday (day 1)

python3 scripts/reefbeat.py get /auto/1

Turn LED off / resume schedule

python3 scripts/reefbeat.py delete /off

ReefRun — Pumps / Skimmer

# Check pump status
python3 scripts/reefbeat.py  status
python3 scripts/reefbeat.py  get /pump/settings

Turn pump on/off (schedule_enabled controls this)

python3 scripts/reefbeat.py put /pump/settings \ '{"pump_2": {"id":2,"name":"skimmer","type":"skimmer","model":"rsk-300","sensor_controlled":true,"schedule_enabled":false,"schedule":[{"st":0,"ti":0,"pd":0}]}}'

Change return pump intensity to 70%

python3 scripts/reefbeat.py put /pump/settings \ '{"pump_1": {"id":1,"name":"Return pump","type":"return","model":"return-6","sensor_controlled":false,"schedule_enabled":true,"schedule":[{"st":0,"ti":70,"pd":0}]}}'

Toggle over-skimming protection

python3 scripts/reefbeat.py put /pump/settings \ '{"overskimming": {"enabled": true, "threshold": 10}}'

ReefATO+ — Auto Top-Off

# Check ATO status (level, temp, fills)
python3 scripts/reefbeat.py  status
python3 scripts/reefbeat.py  status

Resume after malfunction/pump_timeout

python3 scripts/reefbeat.py post /resume

Enable/disable auto-fill

python3 scripts/reefbeat.py put /configuration '{"auto_fill": true}'

Manual fill / stop

python3 scripts/reefbeat.py post /manual-pump python3 scripts/reefbeat.py post /stop

Set reservoir volume (mL)

python3 scripts/reefbeat.py post /update-volume '{"volume": 10000}'

ReefMat — Filter Roll

# Check roll status
python3 scripts/reefbeat.py  status   # aquarium 1 mat
python3 scripts/reefbeat.py  status   # aquarium 2 mat

Advance roll manually

python3 scripts/reefbeat.py post /advance

Register new full roll (ReefMat250 — max diameter 11.1cm)

python3 scripts/reefbeat.py post /new-roll \ '{"external_diameter": 11.1, "name": "New Roll", "thickness": 0.3, "is_partial": false}'

Register started roll

python3 scripts/reefbeat.py post /new-roll \ '{"external_diameter": 8.5, "name": "Started Roll", "thickness": 0.3, "is_partial": true}'

Toggle auto-advance

python3 scripts/reefbeat.py put /configuration '{"auto_advance": true}'

ReefWave — Wave Pump

# Check wave status
python3 scripts/reefbeat.py  status

Start preview mode (alternating, 5min fwd/5min back, 80% intensity, 5min total)

python3 scripts/reefbeat.py post /preview \ '{"type":"st","frt":5,"rrt":5,"fti":80,"rti":80,"duration":300000,"sn":5,"pd":10}'

Stop/save preview

python3 scripts/reefbeat.py delete /preview

Shortcuts (All Devices)

# Start feeding mode
python3 scripts/reefbeat.py  post /maintenance   # or /emergency

End maintenance

python3 scripts/reefbeat.py delete /maintenance


Network Behaviour

  • Auto-discovery (discover command) opens a UDP socket to 8.8.8.8 (no data sent — standard technique to detect the local network interface), then actively probes all hosts in the subnet via HTTP /device-info and /description.xml. This is local-only after the interface detection step.
  • No cloud authentication or external API calls are made by this skill.
  • All device control is purely local HTTP (port 80, no auth).
  • Notes

  • G1 LEDs (RSLED50/90/160): white + blue channels (0–100%)
  • G2 LEDs (RSLED60/115/170): kelvin (10000–20000) + intensity (0–100%)
  • ReefDose config requests can take 7–9s — normal
  • ReefWave local changes desync from app — expected
  • ATO pump_timeout / malfunction → POST /resume to clear
  • Always read /pump/settings before writing to preserve unchanged pump fields
  • 💡 Examples

    python3 scripts/reefbeat.py discover /24   # find all devices
    python3 scripts/reefbeat.py  info                   # device info + type
    python3 scripts/reefbeat.py  status                 # /dashboard
    python3 scripts/reefbeat.py  get /endpoint
    python3 scripts/reefbeat.py  post /endpoint '{"key":"value"}'
    python3 scripts/reefbeat.py  put /endpoint '{"key":"value"}'
    

    📋 Tips & Best Practices

  • G1 LEDs (RSLED50/90/160): white + blue channels (0–100%)
  • G2 LEDs (RSLED60/115/170): kelvin (10000–20000) + intensity (0–100%)
  • ReefDose config requests can take 7–9s — normal
  • ReefWave local changes desync from app — expected
  • ATO pump_timeout / malfunction → POST /resume to clear
  • Always read /pump/settings before writing to preserve unchanged pump fields