Full ALPR Database System for Blue Iris!

@algertc the Insight Most active time does not show the correct Most active time.

1736097989926.png
 
  • Like
Reactions: algertc
I will be adding a page to view the logs from inside the app soon. You can check by attaching to the container. Try reducing your JPEG size/quality in blue Iris and checking the rest of the settings. I encountered that error a few times too when setting up a new cam. That’s fully a BI thing.
Most of the time I have no issue, but every so often it shows BI retrying 5 times, then not updating the record count. The image size is only 1920 x 1080 and that size is working usually. The BI settings were for a 10 second timeout and 5 retries. I notice that the calls from BI seem to be immediate, so I'm not sure the timeout means anything. I've tried changing it to a 60 second timeout and 3 retries. I'll see if that matters.

Is there any other log that shows what is happening in the database when the API is processing the record and failing?

Code:
2025-01-05 08:09:00 Current plate_reads count: 6876, threshold: 33000
2025-01-05 08:09:01 Received plate read data: {
2025-01-05 08:09:01   plate_number: '6TST589',
2025-01-05 08:09:01   Image: '/9j/4AAQSkZJ'... 456772 more characters,
2025-01-05 08:09:01   camera: 'LPR-rear',
2025-01-05 08:09:01   timestamp: '2025-01-05T16:08:51.074Z'
2025-01-05 08:09:01 }
2025-01-05 08:09:01 Database connection established
2025-01-05 08:09:01 Current plate_reads count: 6876, threshold: 33000
 
Most of the time I have no issue, but every so often it shows BI retrying 5 times, then not updating the record count. The image size is only 1920 x 1080 and that size is working usually. The BI settings were for a 10 second timeout and 5 retries. I notice that the calls from BI seem to be immediate, so I'm not sure the timeout means anything. I've tried changing it to a 60 second timeout and 3 retries. I'll see if that matters.

Is there any other log that shows what is happening in the database when the API is processing the record and failing?

Code:
2025-01-05 08:09:00 Current plate_reads count: 6876, threshold: 33000
2025-01-05 08:09:01 Received plate read data: {
2025-01-05 08:09:01   plate_number: '6TST589',
2025-01-05 08:09:01   Image: '/9j/4AAQSkZJ'... 456772 more characters,
2025-01-05 08:09:01   camera: 'LPR-rear',
2025-01-05 08:09:01   timestamp: '2025-01-05T16:08:51.074Z'
2025-01-05 08:09:01 }
2025-01-05 08:09:01 Database connection established
2025-01-05 08:09:01 Current plate_reads count: 6876, threshold: 33000

That looks like was successful? Can you confirm that you are seeing that in the logs, and the data doesn't actually end up in the database?

That would be really strange. Does it still say no stream when it fails?
 
I went a little overboard and decided to make a half-wave 3' dipole antenna for the TPMS. This is probably pretty unnecessary for most cases, but I'm very curious to see how much better the signal is than the little 2 inch antenna I was using before. Pretty happy with how it came out honestly. Going to mount it hidden inside of a bush.

tpms_dipole.jpg
 
I'll check again tonight and get more details of both the BI log and the API log, but the record count did not change, even after the 5 retries from BI (or maybe it was 3 now that I reduced it).
 
I'll check again tonight and get more details of both the BI log and the API log, but the record count did not change, even after the 5 retries from BI (or maybe it was 3 now that I reduced it).
I think there’s a setting I can change to avoid this issue in the first place for people. It has to do with the size of the payload for communication between the frontend and backend of the app. I think this might be the reason because it wouldn’t cause it to send an error response, but just never send anything at all, causing the timeout and retries from BI.

In the meantime, I would try to reduce the size even more and see if it persists. I have mine at like 740 or something. I find it’s plenty if you have 24/7 recording.

I’d be curious to ask the BI people to check the code around the “no stream” error to see what exactly that means.