README
Yii2 extension untuk integrasi dengan Traccar GPS Tracking Server via REST API v6.x.
Requirement
- PHP >= 8.0
- Yii2 ~2.0
- budimanlai/yii2-pkg ^1.1.0
- Tabel
api_3rd_log di database (untuk logging request/response)
Instalasi
composer require budimanlai/yii2-traccar
Konfigurasi
Tambahkan konfigurasi Traccar di params.php:
return [
'traccar' => [
'baseUrl' => 'http://traccar.example.com:8082',
'adminEmail' => 'admin@example.com',
'adminPassword' => 'secret',
],
];
Penggunaan
Factory Methods
use budimanlai\yii2traccar\Traccar;
// Menggunakan credentials admin dari params
$traccar = Traccar::admin();
// Menggunakan credentials user tertentu
$traccar = Traccar::forCredentials('user@example.com', 'password');
// Menggunakan API token
$traccar = Traccar::withToken('eyJhbGci...');
Contoh Penggunaan
// Ambil semua device milik user
$devices = Traccar::admin()->getDevices();
// Ambil posisi terakhir semua device
$positions = Traccar::admin()->getLatestPositions();
// Ambil history posisi device dalam rentang waktu
$history = Traccar::admin()->getDevicePositions(
deviceId: 42,
from: '2024-01-01T00:00:00Z',
to: '2024-01-31T23:59:59Z'
);
// Buat user baru
$user = Traccar::admin()->createUser([
'name' => 'John Doe',
'email' => 'john@example.com',
'password' => 'pass123',
]);
// Generate shareable link device (expired 24 jam)
$token = Traccar::admin()->shareDevice(
deviceId: 42,
expiration: date('c', strtotime('+1 day'))
);
Daftar API
Server
| Method |
Deskripsi |
getServer() |
Informasi server (public, tanpa auth) |
updateServer(array $data) |
Update konfigurasi server (admin only) |
geocode(float $lat, float $lng) |
Reverse geocode koordinat |
getTimezones() |
Daftar timezone yang tersedia |
getServerStatistics(string $from, string $to) |
Statistik server (admin only) |
Session
| Method |
Deskripsi |
getSession(?string $token) |
Info session aktif |
createSession(string $email, string $password) |
Login / buat session |
closeSession() |
Logout / tutup session |
generateSessionToken(?string $expiration) |
Generate API token |
revokeSessionToken(string $token) |
Cabut API token |
Devices
| Method |
Deskripsi |
getDevices(array $params) |
Daftar device (dengan filter opsional) |
getDevicesByUser(int $userId) |
Device milik user tertentu |
getAllDevices() |
Semua device lintas user (admin only) |
createDevice(array $data) |
Buat device baru |
updateDevice(int $id, array $data) |
Update device |
deleteDevice(int $id) |
Hapus device |
updateDeviceAccumulators(int $id, float $distance, float $hours) |
Update odometer & jam mesin |
Groups
| Method |
Deskripsi |
getGroups(array $params) |
Daftar grup |
getGroupsByUser(int $userId) |
Grup milik user tertentu |
getAllGroups() |
Semua grup (admin/manager only) |
createGroup(array $data) |
Buat grup |
updateGroup(int $id, array $data) |
Update grup |
deleteGroup(int $id) |
Hapus grup |
Share
| Method |
Deskripsi |
shareDevice(int $deviceId, string $expiration) |
Buat shareable link device |
shareGroup(int $groupId, string $expiration) |
Buat shareable link grup |
Users
| Method |
Deskripsi |
getUsers(array $params) |
Daftar user (admin/manager only) |
createUser(array $data) |
Buat user baru |
updateUser(int $id, array $data) |
Update user |
deleteUser(int $id) |
Hapus user |
Permissions
| Method |
Deskripsi |
getPermissions(array $params) |
Cek permission link antar dua objek |
addPermission(array $data) |
Tambah permission link |
removePermission(array $data) |
Hapus permission link |
linkDeviceToUser(int $userId, int $deviceId) |
Assign device ke user |
unlinkDeviceFromUser(int $userId, int $deviceId) |
Cabut device dari user |
linkGroupToUser(int $userId, int $groupId) |
Assign grup ke user |
unlinkGroupFromUser(int $userId, int $groupId) |
Cabut grup dari user |
linkGeofenceToUser(int $userId, int $geofenceId) |
Assign geofence ke user |
unlinkGeofenceFromUser(int $userId, int $geofenceId) |
Cabut geofence dari user |
linkGeofenceToDevice(int $deviceId, int $geofenceId) |
Assign geofence ke device |
linkDriverToDevice(int $deviceId, int $driverId) |
Assign driver ke device |
linkUserToManagedUser(int $userId, int $managedUserId) |
Assign managed user |
Positions
| Method |
Deskripsi |
getPositions(array $params) |
Daftar posisi (dengan filter opsional) |
getLatestPositions() |
Posisi terakhir semua device |
getDevicePositions(int $deviceId, string $from, string $to) |
History posisi device |
deletePositionsInRange(int $deviceId, string $from, string $to) |
Hapus posisi dalam rentang waktu |
deletePosition(int $id) |
Hapus posisi by ID |
Events
| Method |
Deskripsi |
getEvent(int $id) |
Detail event by ID |
Reports
| Method |
Deskripsi |
getReportRoute(string $from, string $to, array $deviceIds, array $groupIds) |
Laporan rute (raw positions) |
getReportEvents(string $from, string $to, ...) |
Laporan events |
getReportSummary(string $from, string $to, ...) |
Laporan ringkasan (jarak, kecepatan, BBM) |
getReportTrips(string $from, string $to, ...) |
Laporan perjalanan |
getReportStops(string $from, string $to, ...) |
Laporan berhenti |
getReportGeofences(string $from, string $to, ...) |
Laporan masuk/keluar geofence |
Notifications
| Method |
Deskripsi |
getNotifications(array $params) |
Daftar notifikasi |
createNotification(array $data) |
Buat notifikasi |
updateNotification(int $id, array $data) |
Update notifikasi |
deleteNotification(int $id) |
Hapus notifikasi |
getNotificationTypes() |
Daftar tipe notifikasi yang tersedia |
testNotification() |
Kirim notifikasi uji ke user aktif |
sendCustomNotification(string $notificator, array $data, array $userIds) |
Kirim notifikasi custom |
Geofences
| Method |
Deskripsi |
getGeofences(array $params) |
Daftar geofence |
getGeofencesByUser(int $userId) |
Geofence milik user tertentu |
getAllGeofences() |
Semua geofence (admin only) |
createGeofence(array $data) |
Buat geofence |
updateGeofence(int $id, array $data) |
Update geofence |
deleteGeofence(int $id) |
Hapus geofence |
Commands
| Method |
Deskripsi |
getCommands(array $params) |
Daftar saved command |
createCommand(array $data) |
Buat saved command |
updateCommand(int $id, array $data) |
Update saved command |
deleteCommand(int $id) |
Hapus saved command |
getSupportedCommands(int $deviceId) |
Command yang didukung device |
sendCommand(array $data, ?int $groupId) |
Kirim command ke device/grup |
getCommandTypes(?int $deviceId, ?bool $textChannel) |
Daftar tipe command |
Computed Attributes
| Method |
Deskripsi |
getAttributes(array $params) |
Daftar computed attribute |
createAttribute(array $data) |
Buat computed attribute |
updateAttribute(int $id, array $data) |
Update computed attribute |
deleteAttribute(int $id) |
Hapus computed attribute |
Drivers
| Method |
Deskripsi |
getDrivers(array $params) |
Daftar driver |
getDriversByUser(int $userId) |
Driver milik user tertentu |
getAllDrivers() |
Semua driver (admin/manager only) |
createDriver(array $data) |
Buat driver |
updateDriver(int $id, array $data) |
Update driver |
deleteDriver(int $id) |
Hapus driver |
Maintenance
| Method |
Deskripsi |
getMaintenance(array $params) |
Daftar item maintenance |
createMaintenance(array $data) |
Buat item maintenance |
updateMaintenance(int $id, array $data) |
Update item maintenance |
deleteMaintenance(int $id) |
Hapus item maintenance |
Calendars
| Method |
Deskripsi |
getCalendars(array $params) |
Daftar kalender |
createCalendar(array $data) |
Buat kalender (data: base64 iCal) |
updateCalendar(int $id, array $data) |
Update kalender |
deleteCalendar(int $id) |
Hapus kalender |
Orders
| Method |
Deskripsi |
getOrders(array $params) |
Daftar order |
createOrder(array $data) |
Buat order |
updateOrder(int $id, array $data) |
Update order |
deleteOrder(int $id) |
Hapus order |
Lisensi
MIT