Review: IPC-LPR237B-IR / Equivalent of Dahua ITC237-PW6M-IRLZF1050-B - ANPR, Traffic & Access Control Camera

You are better off staying with your Z12E cameras and BI or buying this camera and the associated NVR to do what you want, and even then it probably can't check all the boxes.

Yah, that’s what I expected. Then when I tried writing down what I wanted it occurred to me that if I could FTP images with the plate and time in the file name it would work. If only Dahua would implement macros like BI that can be used in file names.

Next, what can I get from my old NVR5216 4KS2? Can it make use of any of the smarts from this camera? I don’t like the interface and switched to BI, but would it be useful running in parallel? Can the dumb NVR search based on plates?

I am loath to run an AI program on the BI computer for fear of overloading it. It seems that whenever the CPU gets near 100% BI takes a dump which requires restarting BI. I have not had nearly the problem since switching to sub feeds for all higher resolution cameras.
 
FWIW, I saw this as well after enabling ITCPUSH. Basically, the first time that the camera detects a plate it sends an ITCPUSH. It then keeps sending the same plate information in that push over and over and over again. I turned it on and walked away and the next thing I knew I had over a thousand notifications. There are a few seconds between notifications but I don't remember how much, maybe 10 seconds. The same thing happens if you utilize the Device Test option under ITC. Restarting the camera clears the issue. However, as soon as you get another notification, it starts over again. This was evidenced by both my web server as well as network captures.

@EMPIRETECANDY are you able to raise this issue? I'm running the 2021-07-19 firmware. Maybe a newer firmware exists that has this fixed?

The minimal mandatory response to HTTP request must be
{
"Result": true
}
 
The minimal mandatory response to HTTP request must be
{
"Result": true
}

That would make sense, you must reply to the camera to confirm you got the last image/data that was sent. If you do not confirm receipt, it will keep sending.
 
  • Like
Reactions: Colditz
That is interesting and thank you both for your responses.

I plan on reviving my dev work on this but would like to know if this was documented somewhere? If not, how did you know about this required response?
 
Where can I grab the latest firmware for this camera?

I'm running 2.625 I think.
 
The minimal mandatory response to HTTP request must be
{
"Result": true
}
This is done on purpose. The camera waits for a reply from the Server to check if the message has been received. This is to make sure that the recipient receives the missing information even after a network/power outage.

I wrote a python script that sets up a local http server that allows you to forward the post requests to a destination of your choice.

Both the keepAlive and TollgateNotification must be answered "timely" and "precisely".

I can send you two .json files that show you how the ITCPush of the camera must be answered.
 
  • Like
Reactions: moviefan
This is done on purpose. The camera waits for a reply from the Server to check if the message has been received. This is to make sure that the recipient receives the missing information even after a network/power outage.

I wrote a python script that sets up a local http server that allows you to forward the post requests to a destination of your choice.

Both the keepAlive and TollgateNotification must be answered "timely" and "precisely".

I can send you two .json files that show you how the ITCPush of the camera must be answered.

@Colditz, I'm also successfully processing ITC messages from the cameras. Does your camera return any speed or direction information? Both of those are listed as features for the camera but I never get that data sent to me.
 
@Colditz, I'm also successfully processing ITC messages from the cameras. Does your camera return any speed or direction information? Both of those are listed as features for the camera but I never get that data sent to me.

I've tested it with a ITC237 and ITC437 on the most recent firmware. The only information I get is the following. I've removed the DeviceID and base64 encoded pictures to shorten the .json.
It does not contain direction or speed. Where does it say it has these abilities?

JSON:
{
    "Picture": {
        "CutoutPic": {
            "Content": "removed",
            "PicName": "BDH121-20221026162018-plate.jpg"
        },
        "NormalPic": {
            "Content": "removed",
            "PicName": "BDH121-20221026162018.jpg"
        },
        "Plate": {
            "BoundingBox": [
                800,
                639,
                1051,
                698
            ],
            "Channel": 0,
            "Confidence": 214,
            "IsExist": true,
            "PlateColor": "White",
            "PlateNumber": "BDH121",
            "PlateType": "",
            "UploadNum": 0
        },
        "SnapInfo": {
            "AccurateTime": "2022-10-26 16:20:18.777",
            "AllowUser": false,
            "AllowUserEndTime": "",
            "BlockUser": false,
            "BlockUserEndTime": "",
            "DefenceCode": "jRrjROlbBsjbBsjf",
            "DeviceID": "removed",
            "Direction": "Unknow",
            "OpenStrobe": false,
            "SnapAddress": "",
            "SnapTime": "2022-10-26 16:20:18",
            "TriggerSource": "Video"
        },
        "Vehicle": {
            "VehicleColor": "White",
            "VehicleSeries": "Unknown",
            "VehicleSign": "LiFan",
            "VehicleType": "SaloonCar"
        },
        "VehiclePic": {
            "Content": "",
            "PicName": ""
        }
    }
}
 
I've tested it with a ITC237 and ITC437 on the most recent firmware. The only information I get is the following. I've removed the DeviceID and base64 encoded pictures to shorten the .json.
It does not contain direction or speed. Where does it say it has these abilities?

JSON:
{
    "Picture": {
        "CutoutPic": {
            "Content": "removed",
            "PicName": "BDH121-20221026162018-plate.jpg"
        },
        "NormalPic": {
            "Content": "removed",
            "PicName": "BDH121-20221026162018.jpg"
        },
        "Plate": {
            "BoundingBox": [
                800,
                639,
                1051,
                698
            ],
            "Channel": 0,
            "Confidence": 214,
            "IsExist": true,
            "PlateColor": "White",
            "PlateNumber": "BDH121",
            "PlateType": "",
            "UploadNum": 0
        },
        "SnapInfo": {
            "AccurateTime": "2022-10-26 16:20:18.777",
            "AllowUser": false,
            "AllowUserEndTime": "",
            "BlockUser": false,
            "BlockUserEndTime": "",
            "DefenceCode": "jRrjROlbBsjbBsjf",
            "DeviceID": "removed",
            "Direction": "Unknow",
            "OpenStrobe": false,
            "SnapAddress": "",
            "SnapTime": "2022-10-26 16:20:18",
            "TriggerSource": "Video"
        },
        "Vehicle": {
            "VehicleColor": "White",
            "VehicleSeries": "Unknown",
            "VehicleSign": "LiFan",
            "VehicleType": "SaloonCar"
        },
        "VehiclePic": {
            "Content": "",
            "PicName": ""
        }
    }
}


I found it here: ITC237-PW6M-IRLZF1050-B

It says the camera supports overlay of time, address (position of channel), lane (number/direction), plate (number and color), vehicle (speed, color, type) .

I see in your JSON (and mine) it has a field for direction but it always says Unknown. I know the camera can tell if the vehicle is coming towards or away the camera, it could at least give us that data but it seems not to provide anything. Speed of the vehicle would be interesting as well if available.

The vehicle type/make/color are all useless, you can almost use the data to tell what type of vehicle it is not :-(
 
I found it here: ITC237-PW6M-IRLZF1050-B

It says the camera supports overlay of time, address (position of channel), lane (number/direction), plate (number and color), vehicle (speed, color, type) .

I see in your JSON (and mine) it has a field for direction but it always says Unknown. I know the camera can tell if the vehicle is coming towards or away the camera, it could at least give us that data but it seems not to provide anything. Speed of the vehicle would be interesting as well if available.

The vehicle type/make/color are all useless, you can almost use the data to tell what type of vehicle it is not :-(

I imagine that this information is only for the actual onscreen overlay (OSD). The direction/speed is not listed under the "Intelligence" Tab and might just not be sent along with the POST-Request. I'll get in touch with Dahua to see if I can get more information for you.
 
It looks like the ITC-237 and ITC-437 rely on digital alarm outputs for events such as the "Blocklist" abnormality. Is there a way to have the blocklist alarm trigger over the video feed similar to IVS? I didn't fully realize the limitation of not having Motion or IVS detection built into the camera. Just trying to figure out how to get alerted when a blocklist vehicle is identified. I also don't want to connect the cam to the internet for email notifications due to security concerns.

I currently run Synology Surveillance Station (and have been very satisfied with it) but curious if a blocklist alarm would work with Blue Iris without any additional hardware or wiring. For Surveillance Station (SS), sounds like I may need to purchase an I/O module (Like ADAM-6060) and wire the cam's alarm output wire to the ADAM, then CAT6 connect the ADAM to my switch and load it in SS. Then in SS I can create an action rule to detect an "Active Signal from the ADAM I/O module during a blocklist alarm, and have SS trigger / record a motion event on the cam's video feed. Maybe I'm overthinking this?
 
Not much info out on the ITC437. How does it compare to the ITC237? Are you able to widen FOV to get both license plate and vehicle info consistently?
The 437 is basically the same as the 237, difference being 4 Megapixel instead of 2 MP. I did however get better ANPR Results with the 437 due to the increased resolution. As with all ANPR cameras. Finding the right installation spot and finetuning the settings on the web-interface is key to achieving stellar performance.
The camera does output the driving direction as "Obverse" and "Reverse" in the ITC Post Request.
 
  • Like
Reactions: bigredfish
The minimal mandatory response to HTTP request must be
{
"Result": true
}
Hello,
I have a similar problem, I made a logic in python but I can't solve the problem of receiving the same plate number repeatedly.
I used your tip but it didn't work.

Can you help me?
Thank you very much.
 

Attachments

  • WhatsApp Image 2022-12-13 at 09.30.33.jpeg
    WhatsApp Image 2022-12-13 at 09.30.33.jpeg
    96.8 KB · Views: 39
Hello,
I have a similar problem, I made a logic in python but I can't solve the problem of receiving the same plate number repeatedly.
I used your tip but it didn't work.

Can you help me?
Thank you very much.

If I'm seeing correctly, you're only returning
JSON:
"Result":True


You must however return the DeviceID too.
e.g.

JSON:
{
    "Result": true,
    "DeviceID": "Parking#1"
}

Keep in mind that both the keepAlive and TollgateInfo must be replied to timely and correctly. Otherwise the camera will keep sending the same information over and over because it believes that the receiving party is offline.

I'm replying to the camera by using a simple json.dumps where "deviceid" is a variable containing the DeviceID which I read from the incoming post request.

Python:
json.dumps({"Active": True, "DeviceID": deviceid}).encode("utf-8")
 
If I'm seeing correctly, you're only returning
JSON:
"Result":True


You must however return the DeviceID too.
e.g.

JSON:
{
    "Result": true,
    "DeviceID": "Parking#1"
}

Keep in mind that both the keepAlive and TollgateInfo must be replied to timely and correctly. Otherwise the camera will keep sending the same information over and over because it believes that the receiving party is offline.

I'm replying to the camera by using a simple json.dumps where "deviceid" is a variable containing the DeviceID which I read from the incoming post request.

Python:
json.dumps({"Active": True, "DeviceID": deviceid}).encode("utf-8")


Hello, thank you very much for replying.
It is very fast.
It's good people like you that make me sure I chose the right profession.

I did the two ways I understood and unfortunately it did not work.

I returned the device id that comes with the JSON.

WhatsApp Image 2022-12-13 at 10.14.03.jpeg


Sem Título-2.png

WhatsApp Image 2022-12-13 at 10.15.11.jpeg
 
Hello, thank you very much for replying.
It is very fast.
It's good people like you that make me sure I chose the right profession.

I did the two ways I understood and unfortunately it did not work.

I returned the device id that comes with the JSON.

Are you replying to both the KeepAlive and the TollgateInfo?

My two replies are as follows. If you want I can upload my source code. I'm returning these to the camera as Content-type application/json and with the correct Content-length.

I first create a variable, e.g. "tollgatereply" and set it to "json.dumps({"Result": True, "DeviceID": deviceid}).encode("utf-8")". I then take the length of the UTF-8 encoded string by creating a variable "tollgatereply_length" = len(tollgatereply).

Then just send_response (200, "OK"),
send_header "Content-type", "application/json",
send_header "Content-length" , str(tollgatereply_length),
end_headers()

KeepAlive
Python:
self.wfile.write(json.dumps({"Active": True, "DeviceID": deviceid}).encode("utf-8"))
TollgateInfo
Python:
self.wfile.write(json.dumps({"Result": True, "DeviceID": deviceid}).encode("utf-8")

1671177202986.png
 
  • Like
Reactions: EMPIRETECANDY
I am considering buying this camera. Does anyone know if it sends an ONVIF event for detected plates? (I'd prefer that over having to use the ITCPUSH protocol).
 
Right now only support the video stream, not support event.