Playback not working on SmartPSS/DMSS after upgrading IPC-HFW2431T-ZS-S2

sergiy0

n3wb
Feb 22, 2024
6
0
Spain
Camera model: IPC-HFW2431T-ZS-S2
Firmware: V2.820.0000000.60.R.231021
Recording Storage: NAS (NFS)
Issue: After upgrading FW playback stopped working (SmartPSS/DMSS)

Hello guys,

Last week I did an error when I decided to try the auto-upgrade on my bullet cameras through the Web interface (I thought an upgrade would improve or add more features. That was not the case).

After upgrading to "DH_IPC-HX2XXX-Molec_MultiLang_PN_V2.820.0000000.60.R.231021" now I found a problem when trying to playback.

From SmartPSS I can get the green timeline but when trying to play the playback it says "Failed to start playback. Failed to get data". No problems for the Live view.
From DMSS (on Android or iPhone) I'm experiencing the same behaviour. Live view OK, playback says: "Connection failed".

Must be something related with the Firmware because after trying to downgrade one of the cameras with a previous FW I found somewhere on the internet, I bricked it. Then I replaced it with a new one from Amazon with an older firmware and I don't have any issues with the playbacks.

What could I do to fix this? The only way to play DAV files is by opening them in SmartPSS from my NAS (NFS Storage). I have now 6 cameras with a newer firmware bugged and 1 camera with an older firmware working properly.

Thank you in advance for some help or advice :)
 
Last edited:
I have this same issue on a different camera. Have tried several things to solve still not working.

HDW3849H-AS-PV-S3
new firmware: v2.840.R.20231221

Looks to be the same firmware date as yours but a different camera.

everything worked fine on DMSS app before upgrade.
post upgrade -- Live view on P2P still fine. I get notifications via p2p (intrusion-human) fine.
Clicking the notification always gets error Connection failed
playback 95% of the time failed. Connection failed.

Sorry no help here!
 
  • Like
Reactions: sergiy0
Hello guys,

after digging and digging during months and desperate moments I got successfully getting the playback working on both DMSS and SmartPSS.

Thing is playback from NFS is broken for ever after upgrading the cameras but I found a workaround. Playback from MicroSD it works!

ok, we are good but I also found that the shitty web-gui doesn't allow to enable both recordings at the same time NFS+SD. Here is where it comes the magic :D :

After investigating seems these cameras accept HTTP API injection so you can inject some settings manually.

I recommend you do a backup of current settings before modifying them.

on a web browser insert this URL modifying the IP with your camera IP:


you will get current settings. You can check these URLs everytime you change the settings to see if they have been modified or not.

For editting the settings I created a powershell script to have some automation because i have 7 cameras and don't want to enter +31 URLS x7 :P (I attach the script for anyone looking for it)

Remember to edit the script with your NAS IP and any other setting (compare your old settings with the settings in the script to see differences).

When you run the script a new browser window will be opened. Insert your dahua camera credentials and answer YES on the script to continue the execution

Now I have recordings on both NAS (NFS mount) + SD and I can get playbacks from SD on DMSS (phone app) and SmartPSS (PC) <3

OfFBWY8hu2.png


Powershell script (save the following code in a filename.ps1) and make sure you set the correct IP for your NAS (replace 192.168.20.10 by the IP of your NAS) and also the shared folder (Dahua in my case)

Code:
# Prompt the user for an IP address
$IP = Read-Host "Please enter the IP address of your Dahua camera"

# Function to open the configuration URL
function Open-ConfigManager {
    Start-Process "http://$IP/cgi-bin/configManager.cgi?action=getConfig&name=RecordStoragePoint"
}

# Visit at least once to insert credentials
Open-ConfigManager

# Loop until the user confirms the credentials are set
do {
    $confirmation = Read-Host "Have you entered the correct credentials? (YES/NO)"
    if ($confirmation -eq "NO") {
        Write-Host "Reopening the configuration page. Please set the credentials."
        Open-ConfigManager
    }
} while ($confirmation -ne "YES")

# Proceed with the script
Write-Host "Credentials confirmed. Proceeding with the script..."

# Define the list of URLs with a placeholder `{IP}`
$urls = @(
    "http://{IP}/cgi-bin/configManager.cgi?action=setConfig&RecordStoragePoint[0].TimingRecord.Local=true",
    "http://{IP}/cgi-bin/configManager.cgi?action=setConfig&RecordStoragePoint[0].TimingRecord.LocalForEmergency=true",
    "http://{IP}/cgi-bin/configManager.cgi?action=setConfig&RecordStoragePoint[0].TimingRecord.Remote=true",
    "http://{IP}/cgi-bin/configManager.cgi?action=setConfig&RecordStoragePoint[0].VideoDetectRecord.Local=true",
    "http://{IP}/cgi-bin/configManager.cgi?action=setConfig&RecordStoragePoint[0].VideoDetectRecord.LocalForEmergency=true",
    "http://{IP}/cgi-bin/configManager.cgi?action=setConfig&RecordStoragePoint[0].VideoDetectRecord.Remote=true",
    "http://{IP}/cgi-bin/configManager.cgi?action=setConfig&RecordStoragePoint[0].EventRecord.Local=true",
    "http://{IP}/cgi-bin/configManager.cgi?action=setConfig&RecordStoragePoint[0].EventRecord.LocalForEmergency=true",
    "http://{IP}/cgi-bin/configManager.cgi?action=setConfig&RecordStoragePoint[0].EventRecord.Remote=true",
    "http://{IP}/cgi-bin/configManager.cgi?action=setConfig&RecordStoragePoint[0].AlarmRecord.Local=true",
    "http://{IP}/cgi-bin/configManager.cgi?action=setConfig&RecordStoragePoint[0].AlarmRecord.LocalForEmergency=true",
    "http://{IP}/cgi-bin/configManager.cgi?action=setConfig&RecordStoragePoint[0].AlarmRecord.Remote=true",
    "http://{IP}/cgi-bin/configManager.cgi?action=setConfig&RecordStoragePoint[0].ManualRecord.Local=true",
    "http://{IP}/cgi-bin/configManager.cgi?action=setConfig&RecordStoragePoint[0].ManualRecord.LocalForEmergency=true",
    "http://{IP}/cgi-bin/configManager.cgi?action=setConfig&RecordStoragePoint[0].ManualRecord.Remote=true",
    "http://{IP}/cgi-bin/configManager.cgi?action=setConfig&RecordStoragePoint[0].TimingSnapShot.Local=true",
    "http://{IP}/cgi-bin/configManager.cgi?action=setConfig&RecordStoragePoint[0].TimingSnapShot.LocalForEmergency=true",
    "http://{IP}/cgi-bin/configManager.cgi?action=setConfig&RecordStoragePoint[0].TimingSnapShot.Remote=true",
    "http://{IP}/cgi-bin/configManager.cgi?action=setConfig&RecordStoragePoint[0].VideoDetectSnapShot.Local=true",
    "http://{IP}/cgi-bin/configManager.cgi?action=setConfig&RecordStoragePoint[0].VideoDetectSnapShot.LocalForEmergency=true",
    "http://{IP}/cgi-bin/configManager.cgi?action=setConfig&RecordStoragePoint[0].VideoDetectSnapShot.Remote=true",
    "http://{IP}/cgi-bin/configManager.cgi?action=setConfig&RecordStoragePoint[0].EventSnapShot.Local=true",
    "http://{IP}/cgi-bin/configManager.cgi?action=setConfig&RecordStoragePoint[0].EventSnapShot.LocalForEmergency=true",
    "http://{IP}/cgi-bin/configManager.cgi?action=setConfig&RecordStoragePoint[0].EventSnapShot.Remote=true",
    "http://{IP}/cgi-bin/configManager.cgi?action=setConfig&RecordStoragePoint[0].AlarmSnapShot.Local=true",
    "http://{IP}/cgi-bin/configManager.cgi?action=setConfig&RecordStoragePoint[0].AlarmSnapShot.LocalForEmergency=true",
    "http://{IP}/cgi-bin/configManager.cgi?action=setConfig&RecordStoragePoint[0].AlarmSnapShot.Remote=true",
    "http://{IP}/cgi-bin/configManager.cgi?action=setConfig&RecordStoragePoint[0].ManualSnapShot.Local=true",
    "http://{IP}/cgi-bin/configManager.cgi?action=setConfig&RecordStoragePoint[0].ManualSnapShot.LocalForEmergency=true",
    "http://{IP}/cgi-bin/configManager.cgi?action=setConfig&RecordStoragePoint[0].ManualSnapShot.Remote=true",
    "http://{IP}/cgi-bin/configManager.cgi?action=setConfig&NAS[2].Address=192.168.20.10",
    "http://{IP}/cgi-bin/configManager.cgi?action=setConfig&NAS[2].CharacterEncoding=UTF-8",
    "http://{IP}/cgi-bin/configManager.cgi?action=setConfig&NAS[2].Directory=Dahua",
    "http://{IP}/cgi-bin/configManager.cgi?action=setConfig&NAS[2].Enable=true",
    "http://{IP}/cgi-bin/configManager.cgi?action=setConfig&NAS[2].Name=NFS1",
    "http://{IP}/cgi-bin/configManager.cgi?action=setConfig&NAS[2].Port=21",
    "http://{IP}/cgi-bin/configManager.cgi?action=setConfig&NAS[2].Protocol=NFS"
)

# Replace `{IP}` in each URL with the user-provided IP
$updatedUrls = $urls -replace "{IP}", $IP

# Open each updated URL in the default browser
Write-Host "Opening URLs..."
$updatedUrls | ForEach-Object {
    Start-Process $_
    Start-Sleep -Seconds 3  # Wait for 3 seconds before opening the next URL
}

# Display the updated URLs
Write-Host "Updated URLs:"
$updatedUrls | ForEach-Object { Write-Host $_ }

pause

exit
 
Last edited:
Hello guys,

after digging and digging during months and desperate moments I got successfully getting the playback working on both DMSS and SmartPSS.

Thing is playback from NFS is broken for ever after upgrading the cameras but I found a workaround. Playback from MicroSD it works!

ok, we are good but I also found that the shitty web-gui doesn't allow to enable both recordings at the same time NFS+SD. Here is where it comes the magic :D :

After investigating seems these cameras accept HTTP API injection so you can inject some settings manually.

I recommend you do a backup of current settings before modifying them.

on a web browser insert this URL modifying the IP with your camera IP:


you will get current settings. You can check these URLs everytime you change the settings to see if they have been modified or not.

For editting the settings I created a powershell script to have some automation because i have 7 cameras and don't want to enter +31 URLS x7 :P (I attach the script for anyone looking for it)

Remember to edit the script with your NAS IP and any other setting (compare your old settings with the settings in the script to see differences).

When you run the script a new browser window will be opened. Insert your dahua camera credentials and answer YES on the script to continue the execution

Now I have recordings on both NAS (NFS mount) + SD and I can get playbacks from SD on DMSS (phone app) and SmartPSS (PC) <3

Hi, Indeed helpful, I was aware that is working from SD but I just didn't want to buy SD cards for all 7 cameras I own, I reverted to an older firmware where playback from NFS works (as recomended by the Dahua support), however is not the best,as sometimes the playback begin to early and finished just a few moments after the motion begins.

You can share your PS script , that will be helpful.
 
Hi, Indeed helpful, I was aware that is working from SD but I just didn't want to buy SD cards for all 7 cameras I own, I reverted to an older firmware where playback from NFS works (as recomended by the Dahua support), however is not the best,as sometimes the playback begin to early and finished just a few moments after the motion begins.

You can share your PS script , that will be helpful.
Hey! I already shared but my message is blocked "This message is awaiting moderator approval, and is invisible to normal visitors."

Edited post with script code.

How did you manage to downgrade the FW? I tried once and bricked the camera :banghead:
 
Last edited: