Letting my house cleaner in

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 :slight_smile:

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
3 Likes

I use a one time password and created a webpage that allows them to enter code and open for access

I get notified when code is used and code may only be used certain times of day. Since its OTP it technically cannot be given out