Auto garage door open when getting home

I’m wanting to have my garage door open automatically when I drive home. Currently, I have it on home assistant so I can either use the app to open it or I can ask Google to “open the pod bay door”. I like to have the door open before I get to the driveway since I have a sitck shift and my driveway is an incline. However, I live in an area that as crappy cell coverage, so this is not that reliable and works about 75% of the time.

I’ve been investigating many methods for having this more reliable. I thought about having a geofence defined such that it will open the door if the car is not in the garage and just entered that fence (maybe 0.25 miles or something). The issue here is that my cell phone would need to go into frequent GPS polling to get an accurate position to send through the Android HA app to my home instance. That will have a negative effect on my battery life.

Another idea was to have a bluetooth LE beacon hard wired to my car. Something that has a “long range” and transmit every 0.5 seconds or so.I could mount a bluetooth LE proximity sensor to the wall of my garage to have the best chance of detecting the car early. I’m not sure how much range I can get from that to see if it’s enough to get the door open early enough. I see Bluetooth LE range is “100m outside”, but I’m somehow doubting that. Adafruit has a FAQ saying 2 -10m is general expected range. I suspect range will be on the lower end due to high count of 2.5Ghz wifi routers around me.

Anyone have some suggestions or real life case studies?

What I did

with a wemos d1 mini plug into the car

have this ESPHome Script

# Insert your SSID and Your PWD after inital setup
    ssid: "BlaBla"
    password: "blablabla"

  devicename: mr2
  friendly_name: MR2

  name: $devicename
  platform: ESP8266
  board: d1_mini


  level: VERBOSE
    mqtt.component: DEBUG
    mqtt.client: ERROR

  broker: blabla
  port: 1883
  username: mqttuser
  password: blabla

  - platform: wifi_info
      name: ${friendly_name} Ipaddress 

  - platform: status
    name: ${friendly_name}

dont add the AP: mode it take to long to join the network

then have this automation

id: Cars Here Open Door
alias: Cars Here Open Door
initial_state: true
  - entity_id: 'binary_sensor.mr2 , binary_sensor.hrv'
    platform: state
    to: 'on'
  - condition: state
    entity_id: input_boolean.ok_open_g_door
    state: 'on'
  - condition: state
    entity_id: binary_sensor.garage_door
    state: 'off'
  - service: cover.open_cover
    entity_id: cover.garage_door