Fayad K. HassanContact

John Deere Telematics Integration

Reads the rental fleet’s own engine and battery data from John Deere, on a schedule and with no person in the loop, and says plainly where that data runs out.

Kind
Integration, API
Built with
OAuth 2.0, Operations Center API
Status
Operating internally
The fleet screen in the King Heavy Equipment back office, where each machine’s telematics status lands (shown with an empty demo database, so no customer data appears)

An OAuth 2.0 integration with the John Deere Operations Center API, putting the fleet’s own telemetry into the place where rental decisions get made.

Why it was worth building

Eight machines out on rent, and the honest answer to “where is it and is it running” was a phone call to whoever last saw it. The machines already report to the manufacturer. The work was getting that answer out of their API and into the business systems, on a schedule, with no person in the loop.

What it reads

Engine state and battery level, live, on the machines that report them. That is a shorter list than the marketing implies, and establishing exactly where the list ends was most of the engineering.

The edges, which are the useful part

Fuel level is not obtainable. The endpoint exists, the scope does not, and the API returns a 403 however the request is framed. Documenting that is worth more than leaving a field on a dashboard that will never populate.

One machine in the fleet has no telematics modem at all. It is not a connected machine and no amount of integration work changes that. The system now says so explicitly instead of showing it as permanently offline.

The first version swallowed its own errors, which meant a machine that had stopped reporting looked identical to a machine that was fine. It no longer does, and the first thing the corrected version surfaced was a machine sitting on a flat battery that nobody had noticed.

The integration reads the John Deere Operations Center on a schedule into the business systems: engine state and battery live, fuel level not obtainable, one machine without a modem, and a silent machine flagged
What comes through, and what the system says when something cannot.

Make the gaps visible

An integration that hides its own failures is worse than no integration, because it converts an unknown into a confident wrong answer. Make the gaps visible and name them.

Want the longer version of how this works?