{"id":15637072,"url":"https://github.com/robmarkcole/hass-plate-recognizer","last_synced_at":"2025-08-31T08:31:58.279Z","repository":{"id":45271019,"uuid":"338241742","full_name":"robmarkcole/HASS-plate-recognizer","owner":"robmarkcole","description":"Read number plates with https://platerecognizer.com/","archived":false,"fork":false,"pushed_at":"2023-09-18T08:01:58.000Z","size":4843,"stargazers_count":150,"open_issues_count":21,"forks_count":31,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-08-28T01:13:48.582Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/robmarkcole.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"robmarkcole"}},"created_at":"2021-02-12T06:32:24.000Z","updated_at":"2025-08-27T21:41:04.000Z","dependencies_parsed_at":"2024-10-23T04:06:03.310Z","dependency_job_id":null,"html_url":"https://github.com/robmarkcole/HASS-plate-recognizer","commit_stats":{"total_commits":43,"total_committers":8,"mean_commits":5.375,"dds":"0.18604651162790697","last_synced_commit":"4453d43d0bb0e67b0909d58b3841711808da2269"},"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/robmarkcole/HASS-plate-recognizer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robmarkcole%2FHASS-plate-recognizer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robmarkcole%2FHASS-plate-recognizer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robmarkcole%2FHASS-plate-recognizer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robmarkcole%2FHASS-plate-recognizer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/robmarkcole","download_url":"https://codeload.github.com/robmarkcole/HASS-plate-recognizer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robmarkcole%2FHASS-plate-recognizer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272958310,"owners_count":25022051,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-31T02:00:09.071Z","response_time":79,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-03T11:09:49.991Z","updated_at":"2025-08-31T08:31:57.764Z","avatar_url":"https://github.com/robmarkcole.png","language":"Python","funding_links":["https://github.com/sponsors/robmarkcole"],"categories":[],"sub_categories":[],"readme":"# HASS-plate-recognizer\nRead vehicle license plates with [Plate Recognizer ALPR](https://platerecognizer.com/) which offers free processing of 2500 images per month. You will need to create an account and get your API token.\n\nThis integration adds an image processing entity where the state of the entity is the number of license plates found in a processed image. Information about the vehicle which has the license plate is provided in the entity attributes, and includes the license plate number, [region/country](http://docs.platerecognizer.com/#countries), vehicle type, and confidence (in a scale 0 to 1) in this prediction. For each vehicle an `platerecognizer.vehicle_detected` event is fired, containing the same information just listed. Additionally, statistics about your account usage are given in the `Statistics` attribute, including the number of `calls_remaining` out of your 2500 monthly available.\n\nIf you have a paid plan that includes MMC (Make/Model/Colour) data you can received the orientation of the vehicle in the entity attributes.\n\nYou can also forward the LPR results straight to [ParkPow](https://parkpow.com), a parking management software and sister-company to Plate Recognizer.\n\nIf you have a local SDK licence, you can optionally specify the server address.\n\n**Note** this integration does NOT automatically process images, it is necessary to call the `image_processing.scan` service to trigger processing.\n\n## Home Assistant setup\nPlace the `custom_components` folder in your configuration directory (or add its contents to an existing `custom_components` folder). Then configure as below:\n\n```yaml\nimage_processing:\n  - platform: platerecognizer\n    api_token: your_token\n    regions:\n      - gb\n      - ie\n    watched_plates:\n      - kbw46ba\n      - kfab726\n    save_file_folder: /config/images/platerecognizer/\n    save_timestamped_file: True\n    always_save_latest_file: True\n    mmc: True\n    detection_rule: strict\n    region: strict\n    server: http://yoururl:8080/v1/plate-reader/\n\n    source:\n      - entity_id: camera.yours\n```\nThen, **restart** your Home Assistant\n\nConfiguration variables:\n- **api_key**: Your api key.\n- **regions**: (Optional) A list of [regions/countries](http://docs.platerecognizer.com/?python#countries) to filter by. Note this may return fewer, but more specific predictions.\n- **watched_plates**: (Optional) A list of number plates to watch for, which will identify a plate even if a couple of digits are incorrect in the prediction (fuzzy matching). If configured this adds an attribute to the entity with a boolean for each watched plate to indicate if it is detected.\n- **save_file_folder**: (Optional) The folder to save processed images to. Note that folder path should be added to [whitelist_external_dirs](https://www.home-assistant.io/docs/configuration/basic/)\n- **save_timestamped_file**: (Optional, default `False`, requires `save_file_folder` to be configured) Save the processed image with the time of detection in the filename.\n- **always_save_latest_file**: (Optional, default `False`, requires `save_file_folder` to be configured) Always save the last processed image, no matter there were detections or not.\n- **mmc**: (Optional, default `False`, requires a [paid plan](https://platerecognizer.com/pricing/) with the MMC (Make, Model, Colour) feature enabled.)  If enabled returns the orientation of the vehicle as a separate attribute containing Front/Rear/Unknown.\n- **detection_rule**: (Optional) If set to `strict`, the license plates that are detected outside a vehicle will be discarded.\n- **region**: (Optional) If set to `strict`, only accept the results that exactly match the templates of the specified region. For example, if the license plate of a region is 3 letters and 3 numbers, the value abc1234 will be discarded. For regions with vanity license plates (e.g. in us-ca), we do not recommend the use of Strict Mode. Otherwise, the engine will discard the vanity plates.\n- **server**: (Optional, requires a [paid plan](https://platerecognizer.com/pricing/) Provide a local server address to use [On-Premise SDK](https://docs.platerecognizer.com/#on-premise-sdk)\n\n\n- **source**: Must be a camera.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/robmarkcole/HASS-plate-recognizer/blob/main/docs/card.png\" width=\"400\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/robmarkcole/HASS-plate-recognizer/blob/main/docs/main.png\" width=\"800\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/robmarkcole/HASS-plate-recognizer/blob/main/docs/event.png\" width=\"800\"\u003e\n\u003c/p\u003e\n\n## Making a sensor for individual plates\nIf you have configured `watched_plates` you can create a binary sensor for each watched plate, using a [template sensor](https://www.home-assistant.io/integrations/template/) as below, which is an example for plate `kbw46ba`:\n\n```yaml\nsensor:\n  - platform: template\n    sensors:\n      plate_recognizer:\n        friendly_name: \"kbw46ba\"\n        value_template: \"{{ state_attr('image_processing.platerecognizer_1', 'watched_plates').kbw46ba }}\"\n```\n\nDepending on your license plate, you may recieve an template error due to variables not being able to start with a number. if so, here is another method to create the template sensor:\n```yaml\nsensor:\n  - platform: template\n    sensors:\n      plate_recognizer:\n        friendly_name: \"kbw46ba\"\n        value_template: \"{{ state_attr(\"image_processing.platerecognizer_1\", \"watched_plates\")[\"kbw46ba\"] }}\"\n```\n\n\n## Video of usage\nCheckout this excellent video of usage from [Everything Smart Home](https://www.youtube.com/channel/UCrVLgIniVg6jW38uVqDRIiQ)\n\n[![](http://img.youtube.com/vi/t-XxCrdj_94/0.jpg)](http://www.youtube.com/watch?v=t-XxCrdj_94 \"\")\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobmarkcole%2Fhass-plate-recognizer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobmarkcole%2Fhass-plate-recognizer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobmarkcole%2Fhass-plate-recognizer/lists"}