🦀 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...
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 /manualSet 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/1Turn 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/settingsTurn 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 statusResume after malfunction/pump_timeout
python3 scripts/reefbeat.py post /resumeEnable/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 /stopSet 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 matAdvance roll manually
python3 scripts/reefbeat.py post /advanceRegister 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 statusStart 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 /emergencyEnd maintenance
python3 scripts/reefbeat.py delete /maintenance
Network Behaviour
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.Notes
pump_timeout / malfunction → POST /resume to clear/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
pump_timeout / malfunction → POST /resume to clear/pump/settings before writing to preserve unchanged pump fields