Install
openclaw skills install farmos-equipmentQuery equipment status, maintenance schedules, and service history for the farm fleet. Uses integration endpoints (no auth required).
openclaw skills install farmos-equipmentQuery and manage farm equipment data — status, maintenance schedules, service records, and parts inventory.
What this skill handles: Fleet status, maintenance schedules, equipment issues, hour/mileage logging, service manual lookups, parts questions, and maintenance completion records.
Trigger phrases: "the [machine] is...", "equipment status", "log hours on...", "maintenance due", "what equipment needs service?", "search equipment manuals for...", "what oil does the 8370R take?"
What this does NOT handle: Field observations about crop/soil/pest issues (use farmos-observations), scheduling repairs for people or assigning work (create a task via farmos-tasks), weather damage reports (use farmos-observations with weather_damage type).
Minimum viable input: A machine name or description of an equipment issue. "The combine sounds funny" is enough.
CRITICAL: Always return complete data, never truncated results.
/api/integration/dashboard for counts and overdue items, NOT for listing equipment./api/integration/equipment which returns ALL equipment without pagination./api/integration/due-maintenance which returns ALL due/overdue items.GET /api/integration/dashboard
Returns: Equipment counts, maintenance stats, overdue items.
Use for: Summary statistics and counts ONLY. Do NOT use for listing equipment or maintenance items.
GET /api/integration/equipment
Returns: All equipment with id, name, make, model, type, status, current_hours.
Use for: Complete equipment listing. This endpoint returns ALL equipment without truncation.
Use this to look up equipment IDs for other queries.
GET /api/integration/equipment/{id}/summary
Returns: Full equipment summary including maintenance history, upcoming service, documents.
GET /api/integration/due-maintenance
Returns: List of maintenance items that are due or overdue, including:
Use for: Complete list of ALL due/overdue maintenance. Returns all items without truncation.
POST /api/integration/record-completion Content-Type: application/json
Body:
{
"schedule_id": 1,
"equipment_id": 5,
"performed_at": "2026-02-13T10:00:00Z",
"performed_by": "user_name",
"equipment_hours": 1250,
"work_performed": "Changed engine oil and filter",
"parts_used": [],
"task_id": null
}
Use this when someone reports maintenance was done.
POST /api/integration/search Content-Type: application/json
Body:
{
"query": "hydraulic fluid capacity 8370R",
"limit": 5
}
Returns: Relevant chunks from service manuals and parts catalogs with similarity scores. Use this for technical questions about equipment specs, procedures, and parts.
POST /api/integration/ask Content-Type: application/json
Body:
{
"question": "What oil does the 8370R take?"
}
Returns: AI-generated answer sourced from service documents. Use for natural language equipment questions.
These endpoints provide additional functionality:
GET /api/equipment — List with pagination and filters (?equipment_type=tractor&status=active&search=deere) GET /api/equipment/{id} — Full detail POST /api/equipment/{id}/hours — Log hour meter reading: {"hours": 1500, "recorded_at": "2026-02-13"}
GET /api/maintenance/due — Detailed due maintenance list GET /api/schedules — All maintenance schedules GET /api/maintenance — Maintenance history records
When crew reports an equipment problem -- even vaguely -- capture it. "The combine sounds funny" is a valid starting point. Your job is to guide toward useful detail without interrogating.
Auto-detect from the message what you can:
Sound symptoms (map to likely systems):
Performance symptoms:
Visual symptoms:
Accept vague reports: "Something is off," "doesn't feel right," "acting weird" are ALL valid. Log them and ask follow-ups.
Pick the most useful questions based on what is missing. Never ask more than 3.
| Missing Info | Question |
|---|---|
| Sound type | "Is it more of a grinding, clicking, or whining sound?" |
| Condition | "Does it happen all the time or just under load / at certain speeds / when turning?" |
| Onset | "When did you first notice it -- today, or has it been building?" |
| Context | "Anything change recently -- new attachment, hit something, different field conditions?" |
| Location | "Can you tell where it is coming from -- front, rear, left side, engine area?" |
| Severity | "Can you still operate it safely, or should it be parked?" |
For detailed reporters (mechanics, experienced operators): auto-detect everything, confirm, offer work order. Skip redundant questions.
For sparse reporters ("something is wrong with the combine"): ask 2-3 targeted questions, then log with what you have. A vague report logged is better than no report.
When an equipment issue is reported, automatically check:
Use the equipment detail endpoint (GET /api/integration/equipment/{id}/summary) to pull maintenance history and service intervals.
After capturing the issue:
If the reported issue involves ANY of the following, switch to CRITICAL MODE immediately:
In critical mode:
After logging the issue, offer:
Detailed reporter (experienced operator):
Crew: "Hey FarmBot, the 8370R is making a weird noise when turning left"
FarmBot: "Noted on the 8370R. Couple quick things -- is it more of a
grinding, clicking, or whining sound? And does it happen at
low speed, high speed, or both? I will log a maintenance flag
either way."
Crew: "Grinding I think, mostly at low speed in the field"
FarmBot: "Logged -- 8370R, grinding noise on left turns at low speed.
Current hours are 1,247 so it is due for service at 1,250
anyway. I have flagged it for maintenance review. If it gets
worse, let me know and I will escalate it."
Sparse reporter (vague but valid):
Crew: "Something is off with the planter"
FarmBot: "Which planter -- the Kinze 4900? And can you describe what
is off -- a sound, how it is performing, or something you are
seeing? I will log it either way."
Crew: "Yeah the Kinze. It just does not feel right, kind of jerky"
FarmBot: "Got it -- Kinze 4900, jerky operation. That could be
hydraulic valves, drive system, or row unit clutches. Want me
to flag it for the shop? I will include what you told me so
they know what to look for."
Safety escalation:
Crew: "FarmBot the brakes on the grain cart feel spongy"
FarmBot: "Flagging this immediately -- spongy brakes on the grain cart
is a safety issue. I have created a critical-priority work
order and notified Brian. Do not use the cart until someone
checks it. Good call reporting this."
When dealing with equipment issues, think about what else is affected:
Equipment → Tasks:
Equipment → Observations:
Equipment → Weather:
Cross-reference when a machine issue could ripple into the work schedule. Don't cross-reference for routine hour logging or simple status checks.
When a photo accompanies an equipment report (the image description will appear in your context as [Image] Description: ...), use it to enhance your response.
POST /api/integration/search with a query like "[make] [model] [component] [symptom]" to find relevant service manual sections.POST /api/equipment/{id}/hours with the reading.POST /api/integration/search with the error code and machine make/model: {"query": "error code E-47 Case IH 8250"}.When crew reports equipment issues without a photo, and a photo would genuinely help diagnosis: