We have a house cleaner that comes every other Friday to clean the house. We don’t want to give her a key or garage code so we have been just having her call/text one of us so we can open the door for her. I decided “there had to be a better way!”
I setup HA to detect her license plate then, if the day and time match when she should be there, it will open the garage door and send me an actionable notification with an image of the driveway and buttons to close the door or trigger the alarm.
This is the sub stream, the regular video is much clearer
I’m using HASS-Plate-Recognizer to scan for license plates when Frigate detects a car entering my driveway.
This is my config.yaml entry. I found it helpful to enter a few variations of the plate to make sure it catches it. For example, If I want to catch the plate 123 8NJ I would also add 123 0NJ as a variation. I’m using sample plates in the code below so as to not give away the plate that opens my door
image_processing:
- platform: platerecognizer
api_token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
regions:
- us
watched_plates:
#house cleaner
- 1238NJ
- 1230NJ
save_file_folder: /config/www/plates
save_timestamped_file: true
always_save_latest_file: true
source:
- entity_id: camera.driveway_west
sensor:
- platform: template
sensors:
plate_recognizer_1238NJ:
friendly_name: "House Cleaner 1238NJ"
value_template: "{{ state_attr('image_processing.platerecognizer_driveway_west', 'watched_plates').1238NJ }}"
- platform: template
sensors:
plate_recognizer_1230NJ:
friendly_name: "House Cleaner 1230NJ"
value_template: "{{ state_attr('image_processing.platerecognizer_driveway_west', 'watched_plates').1230NJ }}"
Here is my automation to scan. I scan up to 3 times using the condition that a plate was not detected before scanning again
alias: License Plate Trigger
description: ""
trigger:
- platform: state
entity_id:
- binary_sensor.driveway_south_car_occupancy
to: "on"
condition: []
action:
- delay:
hours: 0
minutes: 0
seconds: 3
milliseconds: 0
- service: image_processing.scan
data: {}
target:
entity_id: image_processing.platerecognizer_driveway_west
- condition: state
entity_id: image_processing.platerecognizer_driveway_west
state: "0"
- service: image_processing.scan
data: {}
target:
entity_id: image_processing.platerecognizer_driveway_west
- condition: state
entity_id: image_processing.platerecognizer_driveway_west
state: "0"
- service: image_processing.scan
data: {}
target:
entity_id: image_processing.platerecognizer_driveway_west
mode: single
And the automation to open the door and send the notification. In order to prevent the garage from constantly opening while the cleaner’s car was sitting there I added a 5 hour timer. When she gets there the timer starts. As long as the timer is running the automation will not trigger again.
alias: License Plate Recognition - Housecleaner
description: ""
trigger:
- platform: state
entity_id:
- sensor.plate_recognizer_1238NJ
- sensor.plate_recognizer_1230NJ
to: "True"
condition:
- condition: time
before: "11:30:00"
after: "08:30:00"
weekday:
- fri
- condition: state
entity_id: timer.house_cleaner_timer
state: idle
action:
- service: timer.start
data: {}
target:
entity_id: timer.house_cleaner_timer
- service: alarm_control_panel.alarm_disarm
data:
code: "XXXX"
target:
entity_id: alarm_control_panel.home_alarm
- service: switch.turn_on
data: {}
target:
entity_id: switch.side_garage_door
- delay:
hours: 0
minutes: 0
seconds: 5
milliseconds: 0
- service: camera.snapshot
data:
filename: /config/www/housecleaner.jpg
target:
entity_id:
- camera.driveway_west
- delay:
hours: 0
minutes: 0
seconds: 1
milliseconds: 0
- service: notify.mobile_app_brad_s_s21_ultra
data:
message: Cleaner Is At The House
data:
ttl: 0
priority: high
image: >-
https://XXXXXXXXXXXXXXXXXX.ui.nabu.casa/local/housecleaner.jpg
actions:
- action: closesidedoor
title: Close Door
- action: trigger
title: Trigger Alarm
mode: single