Uber Eats Integration: V1.4.6 Now Available!

Major Update

1.4.3


Requires you to re add your account for full functionality after updating, secondly i need your help as i added plenty of new features im gonna need your help in reporting any bugs you may find as soon as possible, to further quicken development. In a nutshell implemented multi order tracking (multiple user with multiple orders per user), order history and statistics, integration based tts updates configurable and managed by the integration so the blueprint created with this integration is no longer working must create your own automation or use integration tts (easier), and also a cool new feature to run a home assistant automation when the driver is within “x” amount of feet.


New Features

New Features:

Card & UI

  • Implemented 3-column card layout: account picture (left), info (center), map (right)
  • Updated account profile picture to a larger rounded-square on the left, with full account name overlaid
  • Updated driver picture to a square (not circle) with driver name overlaid below
  • Moved map to the right side of the card
  • Removed “newer data” field from the main card
  • Removed “NO ORDER” badge
  • Improved no-order state: “Waiting for orders” text is centered and enlarged when there is no order
  • Loaded all account and driver profile pictures from API (getUserV1) and order pictureUrl data
  • Documented card layout in Agent-Files/card.md

Multi-order tracking

  • Added per-order cards: one full card per active order when multiple orders exist

  • Added no-order view: single “no order” card when account has no active orders

  • Added per-order sensor attributes (for example: order1_driver_name, order2_driver_name, etc.)

  • Updated sensor main value to comma-separated values when multiple orders exist

  • Updated sensor state behavior:

    • State shows No active order or the order count (1, 2, 
)
    • Detailed order data stored in attributes
  • Updated coordinator:

    • Parses orders array
    • Added _parse_single_order helper
    • Preserves backward-compatible flat fields from the first order
  • Updated WebSocket payload to include orders array and orders_count for the frontend

Media players & TTS

  • Refactored media player dropdown: cache, language, and options moved into each media player sub-card

  • Moved TTS engine selector into each media player card

  • Added per-player test button in each media player card

    • Default message: uber eats
    • Removed text field
  • Added per-player TTS settings via tts_media_player_settings:

    • tts_entity_id, cache, language, options
  • Added multi-order TTS support using per-player settings

  • Fixed toggle overflow issue (toggle knob appearing outside track when active)

Account details & data

  • Added statistics and past orders loading via getPastOrders API (Python used for calculations)

  • Added per-account stats and past orders caching:

    • Instant load from cache
    • Background refresh
  • Removed rating field from past order cards

Config & user profile

  • Updated config flow to use firstName + lastName from getUserV1 instead of nickname
  • Improved auth error handling: shows Error wrong credentials when getUserV1 fails
  • Added user profile polling: getUserV1 polled on each update to refresh account name and profile picture when changed

Addresses

  • Cleaned restaurant address formatting by removing empty fields (prevents double commas)

    • Example: 2592 Atlantic Ave, , NY 11207 → 2592 Atlantic Ave, NY 11207

Device tracker & sensors

  • Renamed device tracker:

    • {account} Uber Eats Driver → {account} Uber Eats Order Tracker
  • Added sensor mock data documentation: Agent-Files/sensor-mock-data.md with mock states and attributes for all sensors


Since initial post i have done several updates and testing it with one order as we speak on version 1.4.6

Built in tts and all is working, in a nutshell i deepdived into uber eats api and took a good look at what data different endpoint return and upgraded ui to pull in pictures as well as manage tts alerts as well as trigger an automation of your choice when driver is within distance of your choice these features are tested and working

What’s not tested :

-multiple orders

Once someone or myself does place two order on a single account place let us know oh also forgot to mention the little character you see on left of card is just my uber account profile picture your will load their too, i just asked chat gpt to make me a profile chubby Simpson themed character picture to match the app background color to rgba(26, 26, 26)

1 Like

This is fantastic! Great work @zodyking Do you have any links for donations? :slight_smile:

2 Likes

I don’t lol I’ll make one

1 Like

Update


Changelog

v1.4.7 (2026-03-01)

Added

  • Currency Symbol Support: Currency symbols are now dynamically determined based on the user’s country from the geoIpCountryCode field in the Uber Eats API. Supports 40+ countries including USD ($), GBP (ÂŁ), EUR (€), JPY („), and many more.

  • “Other Fees” Row: Past order breakdowns now display an “Other Fees” line when the sum of subtotal, delivery fee, tax, and promotions doesn’t equal the total. This accounts for service fees, small order fees, or other charges not explicitly itemized.

  • Statistics Sensors: Three new Home Assistant sensors per account:

  • sensor.<account>_uber_eats_total_deliveries - Total number of orders for the current year

  • sensor.<account>_uber_eats_total_spent - Total amount spent for the current year (USD)

  • sensor.<account>_uber_eats_total_delivery_fees - Total delivery fees paid for the current year (USD)

  • All sensors have state_class: total for HA long-term statistics support.

Changed

  • TTS First Name Only: Text-to-speech announcements now use only the user’s first name instead of the full name (e.g., “Tom” instead of “Tom Jerry”). Sensor names remain unchanged and still use the full account name.

Fixed

  • Driver Lat/Lon Sensors (Issue #10, #6): The sensor.<account>_uber_eats_driver_latitude and sensor.<account>_uber_eats_driver_longitude sensors now return numeric float values (Home Assistant’s configured home coordinates) when there is no active order, instead of returning the string “No active order” which caused HA to fail parsing them as numeric sensors.

Technical Changes

  • Added country_code field to fetch_user_profile() response in coordinator

  • Added currency symbol lookup table with 40+ country codes in frontend

  • Added _getCurrencySymbol() and _formatCurrency() helper methods in frontend

  • Modified all TTS build_message() calls to use first name from cached user profile

  • Changed native_value return type for driver lat/lon sensors from str to float

1 Like

Dude. I just wanted to say thank you. And this has become an incredible development in such a short time. You’re awesome. That is all.

1 Like

In coming updates, the Uber Eats integration may be refactored into a home assistant app & not an integration for advance things like auto cookie extraction via headless browser and all user needs to do is supply login credentials stored locally. All other functionality will remain intact.

copied the full string of header-cookie and its not working, not finding the SID.

I recently had to update my cookie as well and confirm it does work as i did place an order yesterday open a ticket on git hub with needed screenshots.


  • Also note cookies typically needs to be updated monthly, hence why i will be moving this from an integration to an app (addon) in the near future so user no longer have to fuss with cookies simply login and it will handle fetching cookies and maintaining it via headless browser.
  • A key sign your cookie is out of date: you go to the intergration dashboard and you don’t see your profile picture or name.