A maintenance schedule says how often a service repeats. You will be able to add schedules, read the board, and understand why a service shows as due soon or overdue and which component caused it.
Before you start #
- Add the asset and its first meter readings. See assets-and-meters.
- Fleet writes need the
dispatch_fleetlicense flag.
Steps #
- Add a schedule with
POST /fleet/assets/:id/pm. Sendservice(the name) and at least one interval above zero:interval_distance, in the asset's unitinterval_daysinterval_hours, up to two decimals The baseline starts as today and the asset's current readings.
- Adjust the due-soon thresholds if the defaults suit you less. Send
soon_distance,soon_daysorsoon_hoursin the same call. The defaults are 500 miles, 30 days and 50 engine hours. - Choose how a completed service resets the schedule with
reset_mode:actual(default) orfixed. - Read the board with
GET /fleet/pm/board, worst first. UseGET /fleet/assets/:id/pmfor one asset. - Switch a schedule off with
PATCH /fleet/pm/:idand{"active": false}; it leaves the board and the reminder job but is kept, and{"active": true}brings it back. The board shows only assets in use by default. Addactive=0for retired assets oractive=allfor both, andschedules=offorschedules=allto see switched-off schedules. - When the service is done, call
POST /fleet/pm/:id/complete. Sendserviced_on(default today) and, if you have them,distanceandhours. A reading sent here joins the meter log.
How a schedule is judged #
Each interval is a component with its own due point: baseline plus interval.
- Distance and hours are overdue once the reading reaches the due point, and due soon when what is left falls within the threshold.
- Days are due soon inside the threshold and overdue once the due date has passed. A service due today shows as due soon.
- The worst component wins. A schedule with several intervals takes the worst status among them, which is whichever comes first. The board names that component, for example "Oil service is overdue because of distance". On a tie, distance comes before days, and days before hours.
Actual or fixed reset #
With actual, the next baseline is the real reading at the service, so a late service pushes the next one later. With fixed, the cadence stays on its original rhythm. The next baseline advances by whole intervals from the old baseline, so an early or late service leaves the schedule's rhythm alone.
Projections, stale meters and missing meters #
- Projection: Pop Dispatch divides what is left by the average daily use over the last 90 days. It needs at least two readings in that window that span 14 days or more. Until then the board says there are too few readings for a projection.
- Stale meter: a meter with no reading in 30 days carries a warning on its row, and the nightly job writes a stale-meter reminder for the asset.
- Missing meter: a component that needs a meter the asset has no reading for appears in the board's missing list, named, and never disappears from view. Add a reading to bring it into the judgment.
Technical details
- Intervals and thresholds are stored in meters, days and hundredths of an hour. You type distance in the asset's unit.
- Status values are
ok,due_soonandoverdue. Components aredistance,daysandhours. - The schedule's projected date is the earliest projected date among its components.
- Nothing is written when time passes. The board is worked out when you ask, and the nightly job writes a reminder once for each level reached.
- Reaching overdue after a due-soon reminder counts as a new level and sends again.
If something goes wrong #
validation_failed(422) withfields: ["interval"]: give at least one interval above zero.validation_failed(422) withfields: ["service"]: name the service.validation_failed(422) withfields: ["reset_mode"]: useactualorfixed.not_found(404): no such asset or schedule.invalid_date(422): writeserviced_onas YYYY-MM-DD.feature_not_licensed(403) orlicence_read_only(403): see fleet-overview-and-setup.