🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

Farmos Equipment

by @brianppetty

Query equipment status, maintenance schedules, and service history for the farm fleet. Uses integration endpoints (no auth required).

Versionv1.0.0
Downloads1,143
TERMINAL
clawhub install farmos-equipment

πŸ“– About This Skill


name: farmos-equipment description: Query equipment status, maintenance schedules, and service history for the farm fleet. Uses integration endpoints (no auth required). tags: [farming, equipment, maintenance]

FarmOS Equipment

Query and manage farm equipment data β€” status, maintenance schedules, service records, and parts inventory.

When to Use This

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.

API Base

http://100.102.77.110:8005

Data Completeness Rules

CRITICAL: Always return complete data, never truncated results.

1. Dashboard endpoint is for SUMMARY STATS ONLY β€” use /api/integration/dashboard for counts and overdue items, NOT for listing equipment. 2. For listing equipment, use /api/integration/equipment which returns ALL equipment without pagination. 3. For due maintenance, use /api/integration/due-maintenance which returns ALL due/overdue items. 4. Always state the total count of items returned: "Found 3 overdue maintenance items" (not just "overdue items:"). 5. If suspiciously few results, flag it: "Only seeing X items β€” that may be incomplete. Let me try a different endpoint." 6. If an endpoint fails, report the failure to the user rather than silently falling back to partial data.

Integration Endpoints (No Auth Required)

Dashboard Summary

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.

Equipment List

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.

Equipment Detail

GET /api/integration/equipment/{id}/summary

Returns: Full equipment summary including maintenance history, upcoming service, documents.

Due Maintenance

GET /api/integration/due-maintenance

Returns: List of maintenance items that are due or overdue, including:

  • schedule_id, equipment_id, equipment_name
  • maintenance_name, priority (low/normal/high/critical)
  • trigger_type (hours/calendar/seasonal)
  • hours_overdue or days_overdue
  • estimated_duration_minutes
  • parts_required list
  • Use for: Complete list of ALL due/overdue maintenance. Returns all items without truncation.

    Record Maintenance Completion

    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.

    Semantic Search (Service Documents)

    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.

    RAG Q&A

    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.

    Regular API Endpoints

    These endpoints provide additional functionality:

    Equipment CRUD

    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"}

    Maintenance

    GET /api/maintenance/due β€” Detailed due maintenance list GET /api/schedules β€” All maintenance schedules GET /api/maintenance β€” Maintenance history records

    Usage Notes

  • Equipment IDs are integers. Use the equipment list to find IDs by name.
  • Hour-based maintenance triggers when current_hours >= due_at_hours.
  • Calendar-based maintenance triggers on date.
  • Priority levels: low, normal, high, critical. Flag "critical" items prominently.
  • When reporting maintenance status, always mention overdue items first.
  • The RAG search endpoints can answer technical questions from uploaded service manuals.
  • Conversational Equipment Issue Intake

    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.

    Symptom Detection

    Auto-detect from the message what you can:

    Sound symptoms (map to likely systems):

  • Grinding: bearings, gears, brakes
  • Clicking/knocking: engine, drivetrain, loose components
  • Whining/squealing: belts, hydraulic pump, power steering
  • Hissing: air leak, hydraulic line, cooling system
  • Performance symptoms:

  • Sluggish/underpowered: fuel system, air filter, turbo, transmission
  • Jerky/rough: drivetrain, clutch, hydraulic valves
  • Drifting/pulling: steering, alignment, tire pressure
  • Vibrating: balance, bearings, driveshaft, loose components
  • Overheating: coolant, radiator, fan, thermostat
  • Visual symptoms:

  • Leaking: identify fluid color (oil=dark, hydraulic=amber/red, coolant=green/orange, fuel=clear/diesel smell)
  • Smoking: color matters (white=coolant, blue=oil burning, black=rich fuel)
  • Cracked/worn/loose: note component and location
  • Accept vague reports: "Something is off," "doesn't feel right," "acting weird" are ALL valid. Log them and ask follow-ups.

    Follow-Up Questions (2-3 Max, Not Interrogation)

    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.

    Auto-Correlation

    When an equipment issue is reported, automatically check:

    1. Hour meter vs maintenance schedule: "Current hours are 1,247 -- it is due for service at 1,250 anyway, so good timing to look at this." 2. Recent maintenance history: "The hydraulic filter was changed 200 hours ago -- probably not that, but worth mentioning." 3. Similar recent issues: "Someone reported a similar noise on this machine last week -- could be related."

    Use the equipment detail endpoint (GET /api/integration/equipment/{id}/summary) to pull maintenance history and service intervals.

    Creating Maintenance Flags

    After capturing the issue:

    1. Always offer before creating: "Want me to flag this for the shop?" or "Should I create a work order?" 2. Create a task via the task-manager skill with: - Title: equipment name + symptom summary (e.g., "8370R -- grinding noise on left turns") - Description: all captured details (symptoms, conditions, operator observations) - Equipment reference: equipment ID - Priority: based on severity assessment 3. Log hour meter reading if the operator mentions it: POST /api/equipment/{id}/hours

    Safety Escalation

    If the reported issue involves ANY of the following, switch to CRITICAL MODE immediately:

  • Brakes -- any brake issue on any equipment
  • Steering -- loss of steering, play in steering, pulling hard
  • Hydraulic failure -- sudden loss of hydraulic pressure, header or loader won't hold
  • Structural -- cracks in frame, ROPS damage, roll bar issues
  • Rollover risk -- stability concerns, leaning, uneven ground incidents
  • Fire risk -- smoke from engine compartment, electrical smell, fuel leak near hot components
  • In critical mode:

  • State the safety risk plainly
  • Recommend parking the equipment immediately
  • Auto-escalate to operator (notify Brian)
  • Create a critical-priority maintenance task
  • Do NOT wait for the reporter to ask -- act immediately
  • Post-Issue Actions

    After logging the issue, offer:

  • "Want me to check if we have the parts in stock?" (if applicable)
  • "Should I search the service manual for this symptom?" (use RAG search)
  • "Want me to schedule downtime for this?" (create task with date)
  • Example Flows

    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."


    Cross-Module Context

    When dealing with equipment issues, think about what else is affected:

    Equipment β†’ Tasks:

  • When equipment is reported as having issues or going down, check farmos-tasks for work orders assigned to that machine: "The 8370R has 3 tasks this week β€” 2 need the planter. If this takes the planter offline, I can flag those tasks as blocked."
  • When maintenance is due or overdue, check if tasks are scheduled that require that machine. Warn before it becomes a problem: "The sprayer is due for service at 200 hours β€” it's at 197 now, and you've got spray tasks this week. Want me to schedule the service first?"
  • When equipment is marked as back in service, check for tasks that were waiting on it.
  • Equipment β†’ Observations:

  • When an equipment issue is reported in the field, check farmos-observations for related field observations. An equipment problem might explain a crop issue, or vice versa: "There's a planting observation from last week about uneven emergence in field 8 β€” could be related to this planter issue."
  • Equipment β†’ Weather:

  • When field equipment goes down, check the forecast. If weather is closing in and the machine is needed for field work, escalate urgency: "Rain starts Thursday and the sprayer is down β€” that narrows the repair window."
  • Cross-reference when a machine issue could ripple into the work schedule. Don't cross-reference for routine hour logging or simple status checks.

    Image Understanding

    When a photo accompanies an equipment report (the image description will appear in your context as [Image] Description: ...), use it to enhance your response.

    Photo of Damage or Symptoms

  • Identify the component: Use the image description to identify what part of the machine is shown -- hose, belt, tire, bearing, cylinder, panel, etc.
  • Assess visible damage: Note cracks, leaks, wear patterns, discoloration, deformation, corrosion, missing parts.
  • Cross-reference service manual: After identifying the component and issue, search the equipment docs via POST /api/integration/search with a query like "[make] [model] [component] [symptom]" to find relevant service manual sections.
  • Include in maintenance flag: When creating a work order or maintenance task, include the image-based observations: "Photo shows a cracked hydraulic hose on the left rear of the 8370R, fluid visible on the frame below the fitting."
  • Photo of Hour Meter or Dashboard

  • Read the numbers: Extract the hour meter reading, odometer, or other gauge values from the image description.
  • Offer to log: "I can see the hour meter reads [X] hours. Want me to log that?" Then use POST /api/equipment/{id}/hours with the reading.
  • Note warning lights: If dashboard warning lights are visible, identify them and cross-reference with the service manual for that machine.
  • Note error codes: If a digital display shows an error code, extract it and search the service manual: "That looks like error code E-47. Let me check the manual."
  • Photo of Error Codes or Warning Lights

  • Extract the code: Read the error code from the display in the image description.
  • Search for meaning: Use POST /api/integration/search with the error code and machine make/model: {"query": "error code E-47 Case IH 8250"}.
  • Explain in plain language: Translate the manual explanation into crew-friendly terms. Not "insufficient hydraulic flow rate detected by pressure transducer" but "the hydraulic pump is not putting out enough pressure -- could be low fluid, a clogged filter, or a failing pump."
  • Recommend action: Based on the error code severity, recommend next steps (continue with caution, park it, call the shop).
  • Photo Quality Handling

  • Clear photo: Use it confidently. State what you see and your assessment.
  • Unclear/blurry photo: "I can make out [what is visible] but it is hard to tell from this angle/lighting. Can you get a closer shot of the [component]?"
  • Cannot identify the machine: "What machine is this from? I cannot tell from the photo alone."
  • Prompting for Photos

    When crew reports equipment issues without a photo, and a photo would genuinely help diagnosis:

  • "Can you snap a photo of that? It would help me figure out what is going on."
  • Do NOT demand photos for every issue. Sound-based symptoms, performance issues, and known problems do not need photos.
  • Photos are most useful for: visible damage, fluid leaks, error codes/displays, worn parts, and unknown components.