Hardware IDs list required for XProtect supported cameras.

Hi, I am using Milestone’s site to search and get the list of supported devices ( cameras). That works fine, no issues. It lists several columns for supported camera make and models. But there is no way that in a single instance we can see the hardware Ids ( driver Ids) of the supported camera models. Can someone help in this regard ? Is there a way I can get a column displaying the Hardware ID too ? Right now I need to open each row is the search results to see the hardware id.

Have used the below link :

https://www.milestonesys.com/support/tools-and-references/supported-devices/xprotect-corporate-and-xprotect-expert/?AdvancedSearchDisplayed=true&ManufacturerId=7&DeviceTypeId=2# .

That is actually what I was about to suggest. I don’t think there are any other tools/pages. An idea would be, to ask Support here - https://supportcommunity.milestonesys.com

You might be able to get better help from the partners using the support community.

Thanks for your suggestion.

Hi Satya,

I had the exact same issue a couple weeks ago. I have a pending request with the driver development team to provide this information but they haven’t responded yet. I put together a quick and dirty powershell to get what I need that I’m happy to share:

$mfgFilter = "*Pana*"
$filteredCams = @()
 
$hw = Invoke-WebRequest "https://www.milestonesys.com/SupportedHardwareListBlock/LoadDeviceData?platform=XPCO" |ConvertFrom-Json 
 
foreach ($cam in $hw) {
	if (($cam.DeviceTypeId -eq 2) -and ($cam.ManufacturerName -like $mfgFilter)) {
		$camInfo = Invoke-WebRequest "https://www.milestonesys.com/support/tools-and-references/supported-devices/supported-device/?deviceId=$($cam.DeviceId)&platform=XPCO&backCloses=true"
		$match = $camInfo.Content |Select-String -Pattern "Hardware id</td>\s*<td.*?>(.*?)</td>"
		$hwid = $match.Matches.groups[1].Value
		$cam |Add-Member -MemberType NoteProperty -Name DriverId -Value $hwid
		$filteredCams += $cam
	}
}
 
$filteredCams |ConvertTo-Json |Out-File DriverDB.json
$filteredCams |ConvertTo-Csv -NoTypeInformation |Out-File DriverDB.csv

It requires Powershell 7, and it is EXTREMELY slow… but in the end you end up with a nice json/csv that includes the hardware/driver ID.

I find it crazy that this isn’t documented somewhere easily accessible; it should be part of the SDK.

Hi James,

Thanks a lot for letting me know what worked for you. Will try to make use of this information.

Hi James,

I did use the script shared by you with prerequisite ( PS 7.0 ) and I see that it gives the required output. Thanks a lot for this. For a manufacturer type supporting 500 cameras it took me ~45 minutes for getting the output after I run the script. I know that you have already indicated that it’s very slow. But just looking for a script that runs faster.

I have seen that totally milestone supports ~12000 cameras of all makes and need to check how much time it takes to perform this task.

Can anyone suggest any other faster way of accomplishing this task ?

Thanks a lot for all who are providing suggestions/solutions here, they are really helping a lot.

Thanks

Satya

I’m glad it worked for you. I’m not a powershell guru by any means, maybe someone else will suggest a way to improve the speed. Part of the issue may be the speed of the website, or where it’s being served from.

Hi,

The URL written on line 8 of the script seems to be inaccessible.

https://www.milestonesys.com/support/tools-and-references/supported-devices/supported-device/?deviceId=$($cam.DeviceId)&platform=XPCO&backCloses=true

When I changed it to the following URL, the script started working!

https://www.milestonesys.com/support/software/supported-devices/supported-device/?deviceId=$($cam.DeviceId)&platform=XPCO&backCloses=true

Thanks to James for sharing the script.