Have you tried to search forum and GitHub. There are some PHP threads out there, so you can try to ask in one of those.
Dear Anton, One doubt.
I haven't found any good example posts here in forum and GitHub, However my doubt is.
Say I manage to send a command via web-services., How do I handle or read the response from the command I sent.
-James
Usually you just receive a message from device later as a confirmation.
Try this.
class traccar {
    public static $host='http://localhost:8082';
    private static $adminEmail='admin';
    
    private static $adminPassword='admin';
    public static $cookie;
    public static function loginAdmin() {
        return self::login(self::$adminEmail,self::$adminPassword);
    }
    
    public static function register($name,$email,$password,$cookie) {
        $data='{"name":"'.$name.'","email":"'.$email.'","password":"'.$password.'"}';
        return self::curl('/api/users', 'POST',$cookie ,$data,array('Content-Type: application/json'));
    }
    public static function login($email,$password) {
        $data='email='.$email.'&password='.$password;
        
        return self::curl('/api/session', 'POST','' ,$data,array('Content-Type: application/x-www-form-urlencoded'));
    }
    public static function updateUser($id,$name,$email,$password,$cookie) {
        $data='{"id":'.$id.',"name":"'.$name.'","email":"'.$email.'","readonly":false,"admin":false,"map":"","distanceUnit":"","speedUnit":"","latitude":0,"longitude":0,"zoom":0,"twelveHourFormat":false,"password":"'.$password.'"}';
        return self::curl('/api/users/'.$id, 'PUT',$cookie ,$data,array('Content-Type: application/json'));
    }
    public static function deleteUser($id,$name,$email,$cookie) {
        $data='{"id":'.$id.',"name":"'.$name.'","email":"'.$email.'","readonly":false,"admin":false,"map":"","distanceUnit":"","speedUnit":"","latitude":0,"longitude":0,"zoom":0,"twelveHourFormat":false,"password":""}';
        return self::curl('/api/users/'.$id, 'DELETE',$cookie ,$data,array('Content-Type: application/json'));
    }
    public static function addDevice($name,$uniqueId,$cookie) {
        $data='{"id":-1,"name":"'.$name.'","uniqueId":"'.$uniqueId.'","status":"","lastUpdate":null,"groupId":0}';
        return self::curl('/api/devices', 'POST',$cookie ,$data,array('Content-Type: application/json'));
    }
    public static function editDevice($id,$name,$uniqueId,$cookie) {
        $data='{"id":'.$id.',"name":"'.$name.'","uniqueId":"'.$uniqueId.'","status":"","lastUpdate":null,"groupId":0}';
        return self::curl('/api/devices/'.$id, 'PUT',$cookie ,$data,array('Content-Type: application/json'));
    }
    public static function deleteDevice($id,$name,$uniqueId,$cookie) {
        $data='{"id": '.$id.', "name": "'.$name.'", "uniqueId": "'.$uniqueId.'", "status": "", "lastUpdate": null, "groupId": 0, "positionId": 0}';
        return self::curl('/api/devices/'.$id, 'DELETE',$cookie ,$data,array('Content-Type: application/json'));
    }
    public static function addDevicePermissions($userId,$deviceId,$cookie) {
        $data='{"userId": '.$userId.', "deviceId": '.$deviceId.'}';
        return self::curl('/api/permissions/devices', 'POST',$cookie ,$data,array('Content-Type: application/json'));
    }
    public static function deleteDevicePermissions($userId,$deviceId,$cookie) {
        $data='{"userId": '.$userId.', "deviceId": '.$deviceId.'}';
        return self::curl('/api/permissions/devices', 'DELETE',$cookie ,$data,array('Content-Type: application/json'));
    }
    public static function logout($cookie) {
        
        return self::curl('/api/session', 'DELETE',$cookie ,'',array('Content-Type: application/x-www-form-urlencoded'));
    }
    public static function periodicReporting($deviceId,$frequency,$unit,$cookie) {
        $data='{"deviceId": '.$deviceId.', "type": "positionPeriodic", "id": -1, "attributes": {"frequency": '.$frequency*$unit.'}}';
        return self::curl('/api/commands', 'POST',$cookie ,$data,array('Content-Type: application/json'));
    }
    public static function stopReporting($deviceId,$cookie) {
        $data='{"deviceId":'.$deviceId.',"type":"positionStop","id":-1}';
        return self::curl('/api/commands', 'POST',$cookie ,$data,array('Content-Type: application/json'));
    }
    public static function engineStop($deviceId,$cookie) {
        $data='{"deviceId":'.$deviceId.',"type":"engineStop","id":-1}';
        return self::curl('/api/commands', 'POST',$cookie ,$data,array('Content-Type: application/json'));
    }
    public static function engineResume($deviceId,$cookie) {
        $data='{"deviceId":'.$deviceId.',"type":"engineResume","id":-1}';
        return self::curl('/api/commands', 'POST',$cookie ,$data,array('Content-Type: application/json'));
    }
    public static function curl($task,$method,$cookie,$data,$header) {
        $res=new stdClass();
        $res->responseCode='';
        $res->error='';
        $header[]="Cookie: ".$cookie;
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, self::$host.$task);
        curl_setopt($ch, CURLOPT_TIMEOUT, 30);
        curl_setopt($ch, CURLOPT_HEADER, 1);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
        if($method=='POST' || $method=='PUT' || $method=='DELETE') {
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
        }
        curl_setopt($ch, CURLOPT_HTTPHEADER,$header);
        $data=curl_exec($ch);
        $size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
        if (preg_match('/^Set-Cookie:\s*([^;]*)/mi', substr($data, 0, $size), $c) == 1) self::$cookie = $c[1];
        $res->response = substr($data, $size);
        if(!curl_errno($ch)) {
            $res->responseCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        }
        else {
            $res->responseCode=400;
            $res->error= curl_error($ch);
        }
        curl_close($ch);
        return $res;
    }
}
$t=traccar::login($email,$password);
if($t->responseCode=='200') {
    $traccarCookie = traccar::$cookie;
    $t = traccar::engineStop($deviceId, $traccarCookie);
    if($t->responseCode=='200') {
        echo 'ok';
    }
    else {
        $response=json_decode($t->response);
        echo $response->details;
    }
}
else echo 'Incorrect email address or password';
Dear @bbeepp
I am gonna try this, this is absolutely amazing by the looks :)
-Thanks a lot.
Dear Anton / All,
Has anybody implemented commands API Via PHP.
I am interested in knowing a little bit on how to issue commands to a particular device via PHP.
What are the parameters to be posted example, such as device id?..
I am using 3.5 version Traccar, However in swagger file I am not able to figure out how or what to do with commands.