FarmSCADAYour Best Mate
Self-hosted SCADA for the whole operation - agriculture and aquaculture. Irrigation, pumps, water, fuel, gates, fences and power across the farm; oxygenation, filtration, raceways and water quality across the hatchery - one mobile-first system on your own hardware, working even when the internet doesn't.
*Free remote access via dash.farmscada.au, subject to fair use.
Every farm job, one system
Each job is a first-class app with live control, scoped per user - surfaced together in the cloud, but each able to run standalone on its own node if the link drops. The farm side and the aquaculture side are two halves of the same platform.
Every tank, pond & sea-cage, one system
The other half of the operation, on the same pane of glass and just as deep as the farm side - driven by the same self-hosted hub, MQTT fabric, identity and alerting, with the same degrade-safe, offline-first nodes that keep running if the link drops. Land-based RAS, offshore finfish sea-cages and shellfish leases alike - each opens its own live UI in the cloud, exactly like the pivot.
The cloud that ties it together
The "cloud" is your on-site hub - it runs on your own hardware on site (a rack server, a Raspberry Pi, even an old laptop), not someone else's data centre. Every node reports to it over MQTT; it tunes the pumps, guards the plant, draws the whole operation on one map, and decides - per user - who sees and controls what. The app nodes run on the same modest kit.
Runs on what you've got
On-premise, no subscription - Pi to rack.
- The cloud and every app node run on your own hardware - a Pi, an old laptop or a rack server.
- No subscription, not someone else's datacentre.
- Lightweight enough for a Pi, scalable to a rack.
- Free remote access is optional, on top.
Flash-and-go Pi appliancenew
One flashed image; A/B self-updating appliance.
- Flash one image, boot a Pi - database, broker and cloud all come up.
- Onboard in the browser at farmscada.local or its IP.
- Updates over the air on dual A/B partitions.
- An update that doesn't come up healthy rolls straight back.
- Also builds for amd64 - run it on an old laptop.
Pumps that tune themselvesnew
Relay auto-tune; power-vs-flow multi-pump staging.
- A relay auto-tuner finds each pump's PID gains - no hand-tuning.
- For multi-pump sheds it learns power-vs-flow.
- Stages the combination that holds pressure on the least kilowatts.
Pump safety netnew
Learned guards: dry-run, overload, no-flow.
- Learned, debounced guards trip on dry-run, overload, over/under-pressure and no-flow.
- A lost prime or blocked discharge stops the pump, doesn't wreck it.
- Thresholds learn from the pump's own normal, not generic numbers.
Every located device on one map
Every located asset on one auto-framed map.
- Pivots, travellers, pumps, bowsers, gates, fences and moving vehicles - on one big map.
- Coloured by fuel and state.
- Auto-framed to your farm.
App-wide user managementnew
One identity for the whole operation.
- Create users and groups once - no per-app logins.
- Set passwords, or sign in with your own OAuth/OIDC.
- Managed entirely from the cloud.
Granular access & permissionnew
Per-entity scoping, viewer to superuser.
- Roles from viewer → operator → supervisor → superuser.
- Per-entity scoping by group.
- This contractor sees only these two pumps and that gate - nothing else.
Granular alerts
Five severities, latch-until-ack, survives failover.
- Critical → high → low → info → debug.
- Latch-until-ack on criticals; silence windows.
- A filterable history that survives failover.
Zero-touch adoption
Nodes self-announce; the cloud pushes config.
- Nodes announce themselves on connect.
- The cloud pushes their config and backs up their parameters.
- Add hardware without hand-editing files.
Drivers for your gearnew
Add a make of hardware, not app changes.
- Schneider VSDs, Valley centre-pivots, YBM IO (Modbus-TCP & BACnet).
- Plus generic Modbus and BACnet.
- New hardware = a new driver, never a change to the apps.
High availability, broker failovernew
Three units, leader election, seconds to fail over.
- Run up to three cloud units, each with its own MQTT broker.
- They elect a leader; nodes join all brokers, publish to the hot one.
- Fails over in seconds; a Galera cluster keeps the data in sync.
One broker fabric, no single point of failure
From the paddock to the cloud on one MQTT fabric. Drivers bridge field hardware (Modbus, BACnet, RS-485, SDI-12, LoRaWAN) and talk to the app beside them over local HTTP; every app and driver joins all brokers but publishes only to the hot (leader's) one. Up to three HA nodes each co-locate a broker, a cloud and a MariaDB - the DBs form a Galera cluster (the leader lease lives there), and the moment a node drops the fleet re-homes to the next - automatically.
See it running - with live, animated data
A full demo farm: pivots sweeping, a vehicle on its rounds, tanks filling, gates, a live fuel-bowser screen and alerts - no install.
Open the live demo →The roadmap - everything coming next
FarmSCADA ships continuously. Every item below is in progress or planned - across agriculture, aquaculture, and fresh hardware drivers, all on one platform. Each carries a status: planned · building in progress. tap any card for the full detail
Home Assistant integrationplanned
Every farm entity as an HA device.
- Surfaces pivots, pumps, tanks, gates, fuel and fences over MQTT discovery.
- Appears as HA devices for dashboards, automations and voice.
Gate intercomplanned
Push-to-talk at the gate, with the camera.
- A mic + speaker on the gate node (push-to-talk).
- Paired with the Frigate camera embed.
- See and talk to whoever's there before opening.
Weather-aware schedulingplanned
Forecast-aware irrigation plans.
- Folds forecast + on-farm weather into irrigation plans.
- Skips a run when rain's coming; lifts it in a heatwave.
Solar & energy optimisationplanned
Pump in solar hours and off-peak.
- Shifts pumps and tank-fills into solar hours and off-peak tariffs.
- Generator and battery aware.
Off-peak / tariff-aware pumpingplanned
Defer fills to cheap-power windows.
- Defers tank & soil fills to cheap-power windows.
- A low-low critical forces a minimal just-in-time top-up only.
- Never starves a live run.
Timezone syncplanned
Cloud is the clock, on a retained topic.
- The cloud is the authority and broadcasts time on a retained topic.
- Every app syncs from it, with a local override where needed.
DB retention + backfillbuilding
Per-entity retention; gaps backfilled over MQTT.
- Per-entity retention windows in the cloud.
- Remote systems backfill history gaps from local logs after an outage.
- Fuel dispensers already do this; rolling out across the rest.
Pressure mapplanned
GPS-placed pressure points, network-orchestrated.
- Drag-and-drop pressure points and pumps, auto-placed from GPS.
- Per-location minimums orchestrated across the whole network.
- Alerts when one can't be held.
Water Watchplanned
Every drop of water on one safety overview.
- A safety-first overview of all water - tanks, dams, outlets, flows, pressures.
- Coloured by headroom-to-limit.
- Plain-language water-movement issue detector.
LPR - licence-plate recognitionplanned
Plate recognition for gates, on Frigate.
- Licence-plate recognition riding on Frigate.
- Recognise and act on known vehicles at a gate.
GPS gate auto-openplanned
Open on approach, not on exit.
- Opens a gate on a person's approach (not on exit) from a tracker.
- Distance & heading aware.
Oxygenationbuilding
DO setpoint; forces on in a low-DO event.
- Aerators, blowers and O₂ injection to a DO setpoint.
- Low-DO alarms with fail-safe run-on.
Filtrationbuilding
Drum-filter backwash + biofilter.
- Mechanical & biological loops.
- ΔP / turbidity-aware cleaning cycles.
Racewaysbuilding
Turnover, level, paddlewheel/pump staging.
- Turnover targets and make-up-water valve.
- Paddlewheel/pump staging.
UVbuilding
Dose, runtime, flow interlock.
- Lamp dose & runtime.
- Flow interlocks and end-of-life alerts.
Water Qualitybuilding
Multi-parameter probes, per-parameter alarms.
- Temp, pH, PAR, salinity, ammonia, nitrite, ORP, CO₂, turbidity.
- Per-parameter alarm bands.
Feedingbuilding
Automated + demand feeders.
- Schedules and biomass-linked rates.
- Hopper levels and per-tank logging.
Dosingbuilding
pH/alkalinity, CO₂ stripping, ozone/ORP.
- Chemical dosing loops, fail-closed.
- Closes the loops Water Quality monitors.
Valvesbuilding
Level-linked auto/open/closed.
- Opens below a setpoint, closes above.
- Low/high-level alarms; overflow force-closed.
Seawater Intakebuilding
Staged intake pumps, dry-run interlock.
- Up to four pumps hold pressure & flow.
- Timed low-level interlock - can't run dry; feeds Water Watch.
Zimmatic driverbuilding
Zimmatic (Lindsay) pivots onto MQTT.
- Bridges position, status and control.
- Drives from the cloud like any other - no app changes.
Valley driverbuilding
Valley BaseStation3 capture → decode.
- RS-485-over-TCP capture today.
- Full position/status/control decoding as captures land.
OxyGuard driverbuilding
OxyGuard DO / water-quality probes.
- Bridges DO, temperature and water-quality onto MQTT.
- Feeds Oxygenation & Water Watch.
Feature requests go straight to the lead developer
No ticket queue, no call centre, no offshore support tier. Tell us what your operation needs and you'll be talking directly with the lead developer who writes this software - the person who can actually build it. FarmSCADA is shaped by real farmers and operators, and most of the roadmap above started as someone's "could it also…". If it fits the philosophy - self-hosted, degrade-safe, one identity - it gets built.