Hours of Service Resource

Manage HOS logs, clocks, and violations.

Basic Usage

use Samsara\Facades\Samsara;

// Get HOS logs
$logs = Samsara::hoursOfService()->logs()->get();

// Get HOS clocks
$clocks = Samsara::hoursOfService()->clocks()->get();

// Get HOS violations
$violations = Samsara::hoursOfService()->violations()->get();

// Get daily logs
$dailyLogs = Samsara::hoursOfService()->dailyLogs()->get();

HOS Logs

// Get logs for specific drivers
$logs = Samsara::hoursOfService()
    ->logs()
    ->whereDriver(['driver-1', 'driver-2'])
    ->get();

// Get logs for a time range
$logs = Samsara::hoursOfService()
    ->logs()
    ->between('2024-01-01', '2024-01-07')
    ->get();

// Filter by tag
$logs = Samsara::hoursOfService()
    ->logs()
    ->whereTag('tag-id')
    ->get();

HOS Clocks

Get real-time HOS clock data:

// Get clocks for all drivers
$clocks = Samsara::hoursOfService()->clocks()->get();

// Get clocks for specific drivers
$clocks = Samsara::hoursOfService()
    ->clocks()
    ->whereDriver('driver-id')
    ->get();

HOS Violations

// Get all violations
$violations = Samsara::hoursOfService()->violations()->get();

// Get violations for specific drivers
$violations = Samsara::hoursOfService()
    ->violations()
    ->whereDriver('driver-id')
    ->between('2024-01-01', '2024-01-31')
    ->get();

Daily Logs

// Get daily logs
$dailyLogs = Samsara::hoursOfService()
    ->dailyLogs()
    ->whereDriver('driver-id')
    ->between('2024-01-01', '2024-01-07')
    ->get();

Duty Status

Use the DutyStatus enum:

use Samsara\Enums\DutyStatus;

DutyStatus::OFF_DUTY;           // 'offDuty'
DutyStatus::SLEEPER_BERTH;      // 'sleeperBerth'
DutyStatus::DRIVING;            // 'driving'
DutyStatus::ON_DUTY;            // 'onDuty'
DutyStatus::YARD_MOVE;          // 'yardMove'
DutyStatus::PERSONAL_CONVEYANCE; // 'personalConveyance'

HosLog Entity

$log = Samsara::hoursOfService()->logs()->first();

$log->id;           // string
$log->driverId;     // string
$log->dutyStatus;   // string
$log->startTime;    // string
$log->endTime;      // ?string
$log->vehicleId;    // ?string
$log->location;     // ?array
$log->notes;        // ?string

HosClock Entity

$clock = Samsara::hoursOfService()->clocks()->first();

$clock->driverId;           // string
$clock->currentDutyStatus;  // string
$clock->driveRemaining;     // ?int (seconds)
$clock->shiftRemaining;     // ?int (seconds)
$clock->cycleRemaining;     // ?int (seconds)
$clock->breakRemaining;     // ?int (seconds)

HosViolation Entity

$violation = Samsara::hoursOfService()->violations()->first();

$violation->id;           // string
$violation->driverId;     // string
$violation->type;         // string
$violation->startTime;    // string
$violation->endTime;      // ?string

Back to top

Copyright © 2024-2025 Erik Galloway. Distributed under the MIT License.