add deviceId support