Garage öffnen anhand des Nummernschildes

 Was ist der Use-Case?

Wäre es nicht cool, wenn man nach Hause kommt, mit dem Auto vor die Garage fährt und die wie von Zauberhand automatisch öffnet? Klar kennen wir alle Geofencing, aber ganz so zuverlässig funktioniert das leider nicht. Wenn man von einem Spaziergang nach Haus kommt, sollte das Garagentor natürlich nicht aufgehen.

In diese Artikel will ich kurz und knapp erklären, wie ihr euer Auto-Nummernschild mit Home Assistant erkennen könnt und daraus Automatisierungen erstellen könnt.  









Was wird benötigt?

Benötigen tut ihr dafür eigentlich recht wenig, sofern ihr bereits euer Garagentor in Home Assistant integriert habt und damit steuern könnt. Wie das z.B. mit einem Maveo System geht, habe ich bereits hier erklärt: Erste Versuche mit Maveo und Home Assistant

Ansonsten benötigt ihr eigentlich nur eine IP-Kamera, am besten von Reolink, oder auch eine "normale" IP Kamera in Verbindung mit einem Bewegungsmelder. Warum am besten eine Reolink? Weil ihr damit auch Fahrzeuge erkennen könnt und in Home Assistant darauf reagieren könnt.

Ich nutze das Model RLC-510WA, welches es bei Amazon recht häufig mit einem 5-15% Coupon zu erwerben gibt.

Dann benötigt ihr nur noch einen kostenlosen Account bei https://platerecognizer.com. Hierbei handelt es sich um eine Cloud-Lösung zum erkennen von Nummernschilder aus allen möglichen Ländern.

Einmal eingeloggt, benötigt den API Token für die "Snapshot Cloud". Es gibt auch eine Snapshot SDK Variante, die man komplett lokal installieren kann, jedoch ist diese dann nicht mehr kostenlos. 







Als letztes wird noch eine Custom Component benötigt, die ihr auf GitHub findet. Der Link dazu ist https://github.com/robmarkcole/HASS-plate-recognizer 

Installieren der Custom Component

Wie bei fast allen Custom Components, müsst ihr sie runterladen und in euer custom_components Verzeichnis kopieren. Dann Home Assistant einmal neustarten und es sollte eingebunden sein.

Konfiguration in der configuration.yaml

Zuerst muss die Komponente allgemein eurem Home Assistant bekannt gemacht werden. Dies macht ihr mit dieser Code-Schnippsel:

image_processing:
  - platform: platerecognizer
    api_token: API-TOKEN
    regions:
      - de
    watched_plates:
      - xxxx123
      - xxxx456
    save_file_folder: /config/www/plates
    save_timestamped_file: True
    always_save_latest_file: True
    detection_rule: strict
    region: strict
    source:
      - entity_id: camera.ipc_einfahrt_main

Hier müsst ihr lediglich den API Token durch euren ersetzen und euer Nummerschild hinterlegen. Bei sind zwei Konfiguriert. Achtet darauf, dass ihr nur die Buchstaben und Zahlen eures Nummernschildes einträgt und nicht noch Bindestriche oder Leerzeichen.

Dann müssen wir uns noch einen (in meinem Fall zwei) Sensoren anlegen:

  - platform: template
    sensors:
      plate_recognizer1:
        friendly_name: "xxxx123"
        value_template: "{{ state_attr('image_processing.platerecognizer_ipc_einfahrt_main', 'watched_plates')['
xxxx123']  }}"
        unique_id: 'sensor.car_
xxxx123'
      plate_recognizer2:
        friendly_name: "
xxxx456"
        value_template: "{{ state_attr('image_processing.platerecognizer_ipc_einfahrt_main', 'watched_plates')['
xxxx456']  }}"
        unique_id: 'sensor.car_
xxxx456'

Auch hier müsst ihr die Fett markierten Einträge durch euer Nummernschild ersetzen. Diese Sensoren dienen dann als Statusabfrage, ob das korrekte Nummerschild erkannt wurde und wir werden die Automation damit antriggern.

Wie sieht die Automation aus?

Zum automatischen öffnen des Garagentores werden zwei Automations benötigt. Mit der ersten wird das Nummernschild bei Erkennung eines Autos (oder Bewegung) ermittelt. Diese sieht wie folgt aus:

alias: Garage - Car detected
description: ""
trigger:
  - platform: state
    entity_id:
      - binary_sensor.ipc_einfahrt_vehicle
    from: "off"
    to: "on"
action:
  - service: image_processing.scan
    target:
      entity_id: image_processing.platerecognizer_ipc_einfahrt_main
    data: {}
mode: single

Mit dem Service image_processing.platerecognizer_ipc_einfahrt_main wird das aktuelle Kamera-Bild an den Cloud-Service von platerecognizer.com geschickt und direkt ermittelt. Das geht sehr schnell und in der Regel in weniger als 2 Sekunden.

Die ermittelten Daten können dann in der Entität image_processing.platerecognizer_ipc_einfahrt_main eingesehen werden:


Nun kommt die zweite Automation, mit der wir das Garagentor steuern:

alias: Garage - Open Garage Door, own car detected
description: ""
trigger:
  - platform: state
    entity_id:
      - sensor.plate_recognizer1
    from: "False"
    to: "True"
condition:
  - condition: state
    entity_id: binary_sensor.garagentor_geschlossen
    state: "off"
    for:
      hours: 0
      minutes: 2
      seconds: 0
action:
  - service: switch.turn_on
    data: {}
    target:
      entity_id: switch.garagentor_switch
    enabled: true
  - service: notify.mobile_app
    metadata: {}
    data:
      message: "Auto: xx-xx-123"
      title: Auto erkannt - Garagentor wird geöffnet
mode: single

In dieser Automation nutzen wir als Trigger den Statuswechsel unseres Sensors von False auf True. Prüfen dann noch, ob das Garagentor schon mindestens 2 Minuten geschlossen ist (um evtl. unerwünschtes Öffnen zu vermeiden) und lassen dann das Tor öffnen. Zusätzlich wird noch eine Push-Nachricht an das Smartphone geschickt.

Ich nutze dieses Konstruk zwar erst seit einigen Tagen, aber bis jetzt funktioniert es sehr zuverlässig und ich musste nie vor geschlossenem Tor stehen bleiben.


Kommentare