OpenALPR Webhook Processor for IP Cameras

Working for me, you've got something messed up in your process
1609700703862.png
 
  • Like
Reactions: tech101
So I removed everything. Redownload windows file..

Edited appsettings.json.. to look like this now..


Code:
{
  "AllowedHosts": "*",
  "Cameras": {
    "Cameras": [
      {
        "Manufacturer": "Dahua",
        "OpenAlprCameraId": 0,
        "Password": "MyPassword",
        "UpdateOverlayTextUrl": "http://192.168.85.121/cgi-bin/configManager.cgi?action=setConfig&VideoWidget[0].CustomTitle[1].Text=",
        "Username": "admin"
      },
    "urls":
    "http://0.0.0.0:5000"
    ]
  },
  "WebRequestLoggingEnabled": false
}


Am I missing any other step ?
 
Insert that .json as a code (not inline) and then select .json from the dropdown so we can see how you have it formatted.
 
  • Like
Reactions: tech101
Here is the setting file.. attached as zip one more time as code..

Code:
{
  "AllowedHosts": "*",
  "Cameras": {
    "Cameras": [
      {
        "Manufacturer": "Dahua",
        "OpenAlprCameraId": 0,
        "Password": "MyPassword",
        "UpdateOverlayTextUrl": "http://192.168.85.121/cgi-bin/configManager.cgi?action=setConfig&VideoWidget[0].CustomTitle[1].Text=",
        "Username": "admin"
      },
    "urls":
    "http://0.0.0.0:5000"
    ]
  },
  "WebRequestLoggingEnabled": false
}

Thank you hopefully this is an error on my end.. Just dont know rite now what is missing... try several different combo already.
 

Attachments

Hmm... Try this:

JSON:
{
    "AllowedHosts": "*",
    "Cameras": {
        "Cameras": [{
                "Manufacturer": "Hikvision",
                "OpenAlprCameraId": 0,
                "Password": "ip_camera_password",
                "UpdateOverlayTextUrl": "http://ip_camera_ip/ISAPI/System/Video/inputs/channels/1/overlays",
                "Username": "ip_camera_username"
            }

        ],
        "urls": "http://0.0.0.0:5000"
    },
    "WebRequestLoggingEnabled": false
}

Not sure it will work but at least its valid .json.
 
  • Like
Reactions: tech101
Your Json works, however still seems like its not binding..

1609703851949.png
 
Well I'm not surprised it didn't work since I don't know what I'm doing with it. :)

Honestly, Docker was real easy to to. I'd give that a go. Pull the image, configure your appsettings.json, and start the container. I didn't need that "urls": "http://0.0.0.0:5000" line at all for docker on Linux.
 
  • Like
Reactions: tech101
I am gonna try with docker :) Now I have it downloaded on windows 10 I am gonna pull the image I just dont know how to edit the json in docker in windows 10 ..
 
You have to create that appsettings.json with the appropriate stuff you have been putting in the Windows one. When you do docker run with his command line, you make sure you have the location of appsettings.json in the command line so the container can find it. I actually put his whole command in a start .sh file so I can just run the file with a simple ./start command and that creates and starts the container in one go. You could do a similar thing thing with a Windows .bat (batch) file so you don't have to type out the long command. Just put it in the .bat file and run the .bat. Then you can use docker stop and docker start to start and stop his container after that. The run command line is only run once to install the container.
 
Last edited:
  • Like
Reactions: tech101
  • Like
Reactions: tech101
Ahh very cool!

Do you want me to still run with the logs turned on for tonight a bit when I'm no longer able to get color/make/model stuff and the overlay stops??
 
Working with logs!!

Now I'll wait till dark and see what happens when I can no longer get all those extra attributes.
 
  • Like
Reactions: tech101
Well it's dark so no more overlays :(. I turned logging on. Here is the output if it helps:

JSON:
{"log":"[23:46:58 INF] Now listening on: http://[::]:80\n","stream":"stdout","time":"2021-01-03T23:46:58.976421773Z"}
{"log":"[23:46:58 INF] Application started. Press Ctrl+C to shut down.\n","stream":"stdout","time":"2021-01-03T23:46:58.977092127Z"}
{"log":"[23:46:58 INF] Hosting environment: Production\n","stream":"stdout","time":"2021-01-03T23:46:58.977182377Z"}
{"log":"[23:46:58 INF] Content root path: /app\n","stream":"stdout","time":"2021-01-03T23:46:58.977251097Z"}
{"log":"[23:47:05 INF] Application is shutting down...\n","stream":"stdout","time":"2021-01-03T23:47:05.809922721Z"}
{"log":"[23:47:28 INF] Now listening on: http://[::]:80\n","stream":"stdout","time":"2021-01-03T23:47:28.378825515Z"}
{"log":"[23:47:28 INF] Application started. Press Ctrl+C to shut down.\n","stream":"stdout","time":"2021-01-03T23:47:28.380059766Z"}
{"log":"[23:47:28 INF] Hosting environment: Production\n","stream":"stdout","time":"2021-01-03T23:47:28.380136957Z"}
{"log":"[23:47:28 INF] Content root path: /app\n","stream":"stdout","time":"2021-01-03T23:47:28.380456987Z"}
{"log":"[23:50:30 INF] Request starting HTTP/1.1 POST http://<redacted>:3859/webhook application/json 12406\n","stream":"stdout","time":"2021-01-03T23:50:30.485587012Z"}
{"log":"[23:50:30 INF] Executing endpoint 'OpenAlprWebhookProcessor.WebhookProcessor.WebhookController.Post (OpenAlprWebhookProcessor)'\n","stream":"stdout","time":"2021-01-03T23:50:30.533367216Z"}
{"log":"[23:50:30 INF] Route matched with {action = \"Post\", controller = \"Webhook\"}. Executing controller action with signature System.Threading.Tasks.Task Post() on controller OpenAlprWebhookProcessor.WebhookProcessor.WebhookController (OpenAlprWebhookProcessor).\n","stream":"stdout","time":"2021-01-03T23:50:30.686248791Z"}
{"log":"[23:50:30 INF] request received {\"epoch_start\": 1609717826646, \"agent_type\": \"alprd\", \"is_preview\": false, \"camera_id\": 254963574, \"frame_start\": 399712, \"agent_uid\": \"L5HG1OCHKCB2J2BG0WZCSS2AKAEZ3EO4JLLLADIA\", \"best_confidence\": 93.93472290039062, \"vehicle_crop_jpeg\": \"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AUUAFFABRQAUUAFFABRQAopKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAp4CKASdx9BQAO5bsAP7o6UygAooAKKACigAooAKKACigAooAKKACigAooAKKACnKjt91SaAFkUIdv8AEOG+tMoAKKACigAooAKKACigAooAKKACigAooAKKACigAooA3fDmgXGtXa21uo3NzubhVA65r01/h7pq2SxwSP5qoBubo7epoA8v8WaO+ia9c2jKRHvLxE90PI+vofcGsWgAooAKKACigAooAKKACigApVUswVQST6UAW4NOuJTym32bitK38L6jcD91azOcZwkZJxQBg0UAFFABRQAUq8sPrQB7J8LrOOPSJ7sYLs/l5xyAACf5iu3PAyelAHmHxPmsrmJPOmAlDk22FJOB8r856E4/75PrXmVABRQAUUAFFABRQAUUAX9L0m81WUR2kZb5sFsE4/AAk8c8A1q3HhdILWKVbuWcucEi2aOJf+BvjJ/CgCbTvDMErJ517b7nbasYDtITx0G0D9TXSaTpEVpcNDHoj3blNoM0bRLnPX5uPTpQB6Dp+nW9raoq28cTlQWEY4Bx2q6BgYoA+Y6KACigAooAKVPvjHrQB6r4L8S6Zovh6RL6ZhI0xcIo3HoAB+lbI8daDqNlLGJ5YJDlQkq4PseCcj6UAeX+NLhpvEDRlwywQxRjHQHYGb/x5mrAoAKKACigAooAKKACrenWUt7dLFFHvPU54AHqT2FAHofw+0QTzm8eRo4LVgw2jAZyOmT6D+deiX09lb24F66RxEgDdwMjn+lAHNWt14Ye/iaK3jjBYv5kvGGHAIy3HT0rXsZtLn1RmsmhZgOsbqQT7AGgDZqOWaKHHmyKmemTjNAHzNRQAUUAFFABT4mCPuIzgHH1xxQA4Tv5ezPA6VHk+poAGJYksSSepNJQAUUAFFABRQAUUAFXrLVbiwR47bYEf74ZASfxxkfgaAJx4h1KMFbebyUJJ2LkjJ6/eJ9B+Qqmt9dqX2TyKZMBtpxuwcj9aAJYr7UlI2Xk0eP+mpXH610WjeIdStZQ0/iVok6YkLTj/vk5oA7J/iHocEUQaS4upf4ntYiuD7hiv9azLz4lW0oMY0qeePOQZbgRnP8AwFf60AeYUUAFFABRQAVYtLK5vZDHaQSTOBnbGhY49cCgCAgjrSUAFFABRQAUUAFFABRQAUUAFFABRQA9Cd3FSFW2bhyP5UAQUUAFFABRQAV6v8I7IJa314Su59keAeRjJ/woA4zx1pUOk+JLm3thiHIdB/dBAOPzNc3QAUUAdM3h21l0K3ntHuX1CaHzVj4Kvg4YAAZzjnqehplx4VaC6S3+0uxdgiuIRtyc/wC1njB7dqAEi8LGZkWLUrdt+zblG/jBK544zj9RUP8Awi98LK5uy8Ijty+QS2WC9SvHPtQBh0UAFFABRQAUUAFbHh/Qm167W0gvbWGZs7UmZgW4J4456UAdBcfDPX7aIPELS6bONkUpB+vzAD9awNS0nUdNxHf2U9vuPy71IViPQ9D+FAGNRQAUUAFFABXoHw68QR6bfLZ3DosF0QM5xtbtz+n40AZ/xMvFuPFVzGgXEQVMgckhRn9a4+gAooA9C0SZ00G0KSQqYLV5QrjlifO6H1GwcdwTU8V3bzJMt6Yo7aWISuGXPlE+UV56YPmenXmgAiliigiX7NbSKt2sKMseSi7nXcT/AHvlB4x94U7Ur1zpksMyxGaeK4RzG2VXZCXPPrkhT7g0AeaUUAFFABRQAVYsreS5mKwsisiNJl2CjCgk9e/FAEeC5JOSSck00DnI6UAdn4X8e6lpLrDfPJe2XTa7ZdB/ssf5H9K9Zsryw13TBNAyXFtKMMrD8wQehoA+caKACigAooAKUMV6EigBZHeWRpJGLOxySTkk02gAooA9I0m2RNEtnkMhSS1VXRFzuGH6cdcSOPxp1taRQpLHK8k67fJ8tVzgYQbiQTwREp7Y5oARLW3JLZuDJ9o81f3Eg4BX5cDg9Op4/KkvbV57coZllux567kBRXZomQjHTOQCfxxQB5wQVJB6jikoAKKACigApyNtbJ6UAAYqSQcZ44pPpQBJFJtI9K7TwPrzaXdjD5hlwJU9R6j3HNAHDUUAFFABRQAUUAFFABRQA5ZHUYV2H0NTRX15D/qrudP92Qj+tAEv9ran0/tG7/7/ALf40o1nVBn/AImN3g+szH+tAFGigAooAKKACigAooAKsW1y0DZXg+tAFeigAooAKKACigBWYsxY9Sc0lABRQAUUAFFABRQAUUAFFABRQAUUAFWrHT7m/mWK2QMxOMkgAfUmgCrRQAUUAFFABRQAUUAFFABRQAUUAFFABRQAUUAFFABRQAUoOKAEooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigApaADJpKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAWigBKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigD/9k=\", \"company_id\": \"527007ba-7dac-4160-b6d7-8a120d9889fe\", \"version\": 2, \"candidates\": [{\"matches_template\": 1, \"plate\": \"GXB9434\", \"confidence\": 93.93472290039062}, {\"matches_template\": 0, \"plate\": \"GX9434\", \"confidence\": 73.13678741455078}, {\"matches_template\": 0, \"plate\": \"GX89434\", \"confidence\": 69.36080169677734}, {\"matches_template\": 1, \"plate\": \"GXB943\", \"confidence\": 67.86137390136719}, {\"matches_template\": 1, \"plate\": \"GXD9434\", \"confidence\": 67.69833374023438}, {\"matches_template\": 1, \"plate\": \"GYB9434\", \"confidence\": 67.63309478759766}, {\"matches_template\": 0, \"plate\": \"GB9434\", \"confidence\": 67.30360412597656}, {\"matches_template\": 1, \"plate\": \"GWB9434\", \"confidence\": 66.31126403808594}, {\"matches_template\": 1, \"plate\": \"GXH9434\", \"confidence\": 66.3097152709961}], \"best_plate\": {\"plate\": \"GXB9434\", \"confidence\": 93.93472290039062, \"region_confidence\": 99, \"vehicle_region\": {\"y\": 318, \"x\": 919, \"height\": 574, \"width\": 574}, \"region\": \"us-tx\", \"plate_index\": 0, \"processing_time_ms\": 46.77455139160156, \"candidates\": [{\"matches_template\": 1, \"plate\": \"GXB9434\", \"confidence\": 93.93472290039062}, {\"matches_template\": 1, \"plate\": \"GXB943\", \"confidence\": 80.5135726928711}, {\"matches_template\": 0, \"plate\": \"GX9434\", \"confidence\": 80.51174926757812}, {\"matches_template\": 1, \"plate\": \"GXD9434\", \"confidence\": 80.37187194824219}, {\"matches_template\": 0, \"plate\": \"GX943\", \"confidence\": 67.09059143066406}, {\"matches_template\": 1, \"plate\": \"GXD943\", \"confidence\": 66.95072174072266}], \"coordinates\": [{\"y\": 672, \"x\": 1163}, {\"y\": 673, \"x\": 1249}, {\"y\": 731, \"x\": 1248}, {\"y\": 729, \"x\": 1162}], \"matches_template\": 1, \"plate_crop_jpeg\": \"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\", \"requested_topn\": 10}, \"gps_latitude\": 30.202640533447266, \"best_uuid\": \"L5HG1OCHKCB2J2BG0WZCSS2AKAEZ3EO4JLLLADIA-254963574-1609717827348\", \"epoch_end\": 1609717827505, \"best_image_width\": 2688, \"data_type\": \"alpr_group\", \"best_image_height\": 1520, \"frame_end\": 399733, \"is_parked\": false, \"web_server_config\": {\"agent_label\": \"Home\", \"camera_label\": \"LPR Cam\"}, \"best_region\": \"us-tx\", \"uuids\": [\"L5HG1OCHKCB2J2BG0WZCSS2AKAEZ3EO4JLLLADIA-254963574-1609717826646\", \"L5HG1OCHKCB2J2BG0WZCSS2AKAEZ3EO4JLLLADIA-254963574-1609717826687\", \"L5HG1OCHKCB2J2BG0WZCSS2AKAEZ3EO4JLLLADIA-254963574-1609717826730\", \"L5HG1OCHKCB2J2BG0WZCSS2AKAEZ3EO4JLLLADIA-254963574-1609717826773\", \"L5HG1OCHKCB2J2BG0WZCSS2AKAEZ3EO4JLLLADIA-254963574-1609717826816\", \"L5HG1OCHKCB2J2BG0WZCSS2AKAEZ3EO4JLLLADIA-254963574-1609717826847\", \"L5HG1OCHKCB2J2BG0WZCSS2AKAEZ3EO4JLLLADIA-254963574-1609717826933\", \"L5HG1OCHKCB2J2BG0WZCSS2AKAEZ3EO4JLLLADIA-254963574-1609717827011\", \"L5HG1OCHKCB2J2BG0WZCSS2AKAEZ3EO4JLLLADIA-254963574-1609717827089\", \"L5HG1OCHKCB2J2BG0WZCSS2AKAEZ3EO4JLLLADIA-254963574-1609717827166\", \"L5HG1OCHKCB2J2BG0WZCSS2AKAEZ3EO4JLLLADIA-254963574-1609717827348\", \"L5HG1OCHKCB2J2BG0WZCSS2AKAEZ3EO4JLLLADIA-254963574-1609717827376\", \"L5HG1OCHKCB2J2BG0WZCSS2AKAEZ3EO4JLLLADIA-254963574-1609717827461\", \"L5HG1OCHKCB2J2BG0WZCSS2AKAEZ3EO4JLLLADIA-254963574-1609717827420\", \"L5HG1OCHKCB2J2BG0WZCSS2AKAEZ3EO4JLLLADIA-254963574-1609717827505\"], \"plate_indexes\": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], \"travel_direction\": 262.3179931640625, \"country\": \"us\", \"best_plate_number\": \"GXB9434\", \"best_region_confidence\": 99, \"matches_template\": true, \"gps_longitude\": -85.80451965332031, \"agent_version\": \"2.7.102\"}\n","stream":"stdout","time":"2021-01-03T23:50:30.823566835Z"}
{"log":"[23:50:30 INF] request received from: ::ffff:35.170.81.143\n","stream":"stdout","time":"2021-01-03T23:50:30.877696126Z"}
{"log":"[23:50:30 INF] Executed action OpenAlprWebhookProcessor.WebhookProcessor.WebhookController.Post (OpenAlprWebhookProcessor) in 208.7251ms\n","stream":"stdout","time":"2021-01-03T23:50:30.906500671Z"}
{"log":"[23:50:30 INF] Executed endpoint 'OpenAlprWebhookProcessor.WebhookProcessor.WebhookController.Post (OpenAlprWebhookProcessor)'\n","stream":"stdout","time":"2021-01-03T23:50:30.909379603Z"}
{"log":"[23:50:30 ERR] HTTP POST /webhook responded 500 in 461.3059 ms\n","stream":"stdout","time":"2021-01-03T23:50:30.960545644Z"}
{"log":"System.NullReferenceException: Object reference not set to an instance of an object.\n","stream":"stdout","time":"2021-01-03T23:50:30.960684238Z"}
{"log":"   at OpenAlprWebhookProcessor.WebhookProcessor.WebhookHandler.HandleWebhook(Webhook webhook) in /src/OpenAlprWebhookProcessor/WebhookProcessor/WebhookHandler.cs:line 33\n","stream":"stdout","time":"2021-01-03T23:50:30.961687163Z"}
{"log":"   at OpenAlprWebhookProcessor.WebhookProcessor.WebhookController.Post() in /src/OpenAlprWebhookProcessor/WebhookProcessor/WebhookController.cs:line 59\n","stream":"stdout","time":"2021-01-03T23:50:30.961720911Z"}
{"log":"   at lambda_method(Closure , Object )\n","stream":"stdout","time":"2021-01-03T23:50:30.961734172Z"}
{"log":"   at Microsoft.Extensions.Internal.ObjectMethodExecutorAwaitable.Awaiter.GetResult()\n","stream":"stdout","time":"2021-01-03T23:50:30.961746448Z"}
{"log":"   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)\n","stream":"stdout","time":"2021-01-03T23:50:30.961755012Z"}
{"log":"   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.\u003cInvokeActionMethodAsync\u003eg__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)\n","stream":"stdout","time":"2021-01-03T23:50:30.961800799Z"}
{"log":"   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.\u003cInvokeNextActionFilterAsync\u003eg__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\n","stream":"stdout","time":"2021-01-03T23:50:30.96181706Z"}
{"log":"   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)\n","stream":"stdout","time":"2021-01-03T23:50:30.961828593Z"}
{"log":"   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State\u0026 next, Scope\u0026 scope, Object\u0026 state, Boolean\u0026 isCompleted)\n","stream":"stdout","time":"2021-01-03T23:50:30.961840275Z"}
{"log":"   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.\u003cInvokeInnerFilterAsync\u003eg__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\n","stream":"stdout","time":"2021-01-03T23:50:30.961851155Z"}
{"log":"   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.\u003cInvokeFilterPipelineAsync\u003eg__Awaited|19_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\n","stream":"stdout","time":"2021-01-03T23:50:30.961860562Z"}
{"log":"   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.\u003cInvokeAsync\u003eg__Logged|17_1(ResourceInvoker invoker)\n","stream":"stdout","time":"2021-01-03T23:50:30.961872512Z"}
{"log":"   at Microsoft.AspNetCore.Routing.EndpointMiddleware.\u003cInvoke\u003eg__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)\n","stream":"stdout","time":"2021-01-03T23:50:30.962034452Z"}
{"log":"   at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)\n","stream":"stdout","time":"2021-01-03T23:50:30.96205613Z"}
{"log":"   at Serilog.AspNetCore.RequestLoggingMiddleware.Invoke(HttpContext httpContext)\n","stream":"stdout","time":"2021-01-03T23:50:30.962066706Z"}
{"log":"[23:50:30 ERR] Connection id \"0HM5G89D5NVNH\", Request id \"0HM5G89D5NVNH:00000001\": An unhandled exception was thrown by the application.\n","stream":"stdout","time":"2021-01-03T23:50:30.97718568Z"}
{"log":"System.NullReferenceException: Object reference not set to an instance of an object.\n","stream":"stdout","time":"2021-01-03T23:50:30.977266712Z"}
{"log":"   at OpenAlprWebhookProcessor.WebhookProcessor.WebhookHandler.HandleWebhook(Webhook webhook) in /src/OpenAlprWebhookProcessor/WebhookProcessor/WebhookHandler.cs:line 33\n","stream":"stdout","time":"2021-01-03T23:50:30.977289433Z"}
{"log":"   at OpenAlprWebhookProcessor.WebhookProcessor.WebhookController.Post() in /src/OpenAlprWebhookProcessor/WebhookProcessor/WebhookController.cs:line 59\n","stream":"stdout","time":"2021-01-03T23:50:30.977305506Z"}
{"log":"   at lambda_method(Closure , Object )\n","stream":"stdout","time":"2021-01-03T23:50:30.977316206Z"}
{"log":"   at Microsoft.Extensions.Internal.ObjectMethodExecutorAwaitable.Awaiter.GetResult()\n","stream":"stdout","time":"2021-01-03T23:50:30.977326759Z"}
{"log":"   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)\n","stream":"stdout","time":"2021-01-03T23:50:30.977338973Z"}
{"log":"   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.\u003cInvokeActionMethodAsync\u003eg__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)\n","stream":"stdout","time":"2021-01-03T23:50:30.977349661Z"}
{"log":"   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.\u003cInvokeNextActionFilterAsync\u003eg__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\n","stream":"stdout","time":"2021-01-03T23:50:30.977363611Z"}
{"log":"   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)\n","stream":"stdout","time":"2021-01-03T23:50:30.977400444Z"}
{"log":"   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State\u0026 next, Scope\u0026 scope, Object\u0026 state, Boolean\u0026 isCompleted)\n","stream":"stdout","time":"2021-01-03T23:50:30.977411343Z"}
{"log":"   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.\u003cInvokeInnerFilterAsync\u003eg__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\n","stream":"stdout","time":"2021-01-03T23:50:30.977422821Z"}
{"log":"   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.\u003cInvokeFilterPipelineAsync\u003eg__Awaited|19_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\n","stream":"stdout","time":"2021-01-03T23:50:30.977432117Z"}
{"log":"   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.\u003cInvokeAsync\u003eg__Logged|17_1(ResourceInvoker invoker)\n","stream":"stdout","time":"2021-01-03T23:50:30.977444307Z"}
{"log":"   at Microsoft.AspNetCore.Routing.EndpointMiddleware.\u003cInvoke\u003eg__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)\n","stream":"stdout","time":"2021-01-03T23:50:30.977456318Z"}
{"log":"   at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)\n","stream":"stdout","time":"2021-01-03T23:50:30.977465457Z"}
{"log":"   at Serilog.AspNetCore.RequestLoggingMiddleware.Invoke(HttpContext httpContext)\n","stream":"stdout","time":"2021-01-03T23:50:30.977472872Z"}
{"log":"   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequests[TContext](IHttpApplication`1 application)\n","stream":"stdout","time":"2021-01-03T23:50:30.977482015Z"}
{"log":"[23:50:30 INF] Request finished in 560.023ms 500 \n","stream":"stdout","time":"2021-01-03T23:50:30.983380405Z"}
{"log":"[23:50:50 INF] Application is shutting down...\n","stream":"stdout","time":"2021-01-03T23:50:50.086626648Z"}
 
Yup that did it. Now getting the overlay with just the plate, processing time, and confidence at night when the other parameters aren't present. Excellent work!
 
  • Like
Reactions: tech101
I have added a simple sqlite database that will record all webhooks. check out the updated docker commands to map the new volume. you don't have to map it, but the db will be erased whenever you start a new container without it.
 
Last edited:
I think I got finally my Docker version of windows working .. At-least I like to hope so.. Waiting for the next car to show up ..

1609780837666.png



1609780869515.png