currently accessing the charge history is not planed to be implemented… [at least not in 2025]
well I was wrong - just implemented a ‘last charging session’ Sensor… See details here : Release Another day - another enhancement for EV's (all years) · marq24/ha-fordpass · GitHub
Thank you so much. That’s just what I was looking for!
Hey Matthias, absolutely love this integration and thank you for putting the work in to make it happen! I’m getting disconnected roughly every 24 hours and requiring re-authentication. Any chance you might have an idea what could be causing this? When the authentication key is valid the integration works beautifully! My wife loves having a warm car in the morning ![]()
to be honest - I am clueless what could cause the re-auth…
In the latest release 2026.1.4 I have included additional debugging log, that would help me (or you the users) to find a possible root cause… [I guess this is mainly cause of instable internet connection / firewall stuff] - but I don’t know…
So please if you want, you can enable the debug log and then provide me the details as it’s described in the main readme.TIA
2026-01-30 12:40:26.961 WARNING (MainThread) [custom_components.fordpass.fordpass_bridge] [Escape] _read_token_from_storage: 'ValueError' invalidate TOKEN FILE -> mark_re_auth_required()
2026-01-30 12:40:26.961 DEBUG (MainThread) [custom_components.fordpass.fordpass_bridge] [Escape] _read_token_from_storage: 'JSONDecodeError' details -> Extra data: line 1 column 3791 (char 3790) - file location /config/.storage/fordpass/<REDACTED_EMAIL>@[email protected]
2026-01-30 12:40:26.963 INFO (MainThread) [custom_components.fordpass.fordpass_bridge] [Escape] mark_re_auth_required() called
This is not an error/issue - it will just help me (marq24, the integration developer) to understand the method sequence - Please do not report this occurrence itself as issue - TIA - so here is the stack trace:
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "/usr/src/homeassistant/homeassistant/__main__.py", line 223, in <module>
sys.exit(main())
File "/usr/src/homeassistant/homeassistant/__main__.py", line 209, in main
exit_code = runner.run(runtime_conf)
File "/usr/src/homeassistant/homeassistant/runner.py", line 154, in run
return loop.run_until_complete(setup_and_run_hass(runtime_config))
File "/usr/local/lib/python3.13/asyncio/base_events.py", line 706, in run_until_complete
self.run_forever()
File "/usr/local/lib/python3.13/asyncio/base_events.py", line 677, in run_forever
self._run_once()
File "/usr/local/lib/python3.13/asyncio/base_events.py", line 2034, in _run_once
handle._run()
File "/usr/local/lib/python3.13/asyncio/events.py", line 89, in _run
self._context.run(self._callback, *self._args)
File "/config/custom_components/fordpass/fordpass_bridge.py", line 933, in ws_connect
await self.ws_check_for_message_update_required()
File "/config/custom_components/fordpass/fordpass_bridge.py", line 1203, in ws_check_for_message_update_required
msg_data = await self.req_messages()
File "/config/custom_components/fordpass/fordpass_bridge.py", line 1599, in req_messages
await self.__ensure_valid_tokens()
File "/config/custom_components/fordpass/fordpass_bridge.py", line 422, in __ensure_valid_tokens
prev_token_data = await self._read_token_from_storage()
File "/config/custom_components/fordpass/fordpass_bridge.py", line 776, in _read_token_from_storage
self.mark_re_auth_required()
2026-01-30 12:40:26.963 INFO (MainThread) [custom_components.fordpass.fordpass_bridge] [Escape] __ensure_valid_tokens: Tokens are INVALID!!! - mark_re_auth_required() should have occurred?
I think of note, we have 2 vehicles in our driveway. an f150 and an escape so there are 2 VINs that are being validated.
This is not an error/issue - it will just help me (marq24, the integration developer) to understand the method sequence - Please do not report this occurrence itself as issue - TIA
I noticed the latest package in hacs addresses an issue in 2026.2 - is it fully running in 2026.1 (it upgrade the integration, then Ha, or should we do the inverse, upgrade, then upgrade the package.
Also a question on the integration itself
I’m working on setting up a whack of template sensors to track charging status, and one thing I’m hoping to do is to split AC (home garage) from “on the go ac” and dc fast charging
I’m thinking the chargerType attribute in combination with location could work, but is there a list of possible values for this?
Thinking like:
name: “Mach-E Last Session Charger Type”
state: “{{ state_attr(‘sensor.fordpass_vin_energytransferlogentry’, ‘chargerType’) }}”
first update the integration - then update HA
You might can find it here? https://api.vehicle.ford.com/docs/v1/api-catalog/apis/fordconnect-query/specification
well here you go:
"enum": [
"UNKNOWN",
"AC_BASIC",
"AC_SMART",
"DC_FAST",
"WIRELESS",
"UNRECOGNIZED"
]
Thanks so much! Hoping to work out some nice stats and sensors that I can share here and on your GitHub to track stats about the vehicle. going to try to dump trip data and charging data for now to a database for parsing
I lost a bunch of sensors after upgrading HA this morning. Most of these I don’t care about but the tire pressure was useful.
Sensors
Acceleration -0.540
Accelerator Pedal Position Unavailable
Alarm Status DISARMED
Battery (12V) 57.0%
Belt Status UNBUCKLED
Brake Torque Unavailable
EV Last Charging Session Unavailable
Fuel 27%
GPS JSON {redacted}
Odometer 50,072.00 km
Oil Life 100.0%
Revolution Unavailable
Sleep Mode Unavailable
Speed 0.00 m/s
State Locks LOCKED
State of Charge 0.0%
Status Brake Pedal Unavailable
Status Door Unavailable
Status Ignition Unavailable
Status Parking Brake Unavailable
Status Wheel Torque Unavailable
Temperature Coolant Unavailable
Temperature Outdoors Unavailable
Tire Pressure Unavailable
Torque at Transmission Unavailable
Window Position Unavailable
Yaw Rate Unavailable
Any ideas how to get them back?
Update to the latest version of the integration
It says I’m up to date and the update button is greyed out.
edit - looks like its stuck on 2026.1.6. How can I “un-stick” it? Now I see that the latest version is 2026-2-3, but HACS is reporting the latest version as 2026-1-6 and won’t let me update.
I guess you fixed HACS because the update became available. Thanks for the quick turnaround! ![]()
Also, everything works. ![]()
Hi. I made a dashboard with useful information that is almost a simple drop in place kind of deal. If this is the wrong place to post this, then just let me know and I’ll delete it and repost it somewhere else.
Here is the dashboard viewed on mobile.
The reason its almost drop in place is that I’m using a variable to plug the VIN in using a trick I sorted out on AI. An example:
{{ states('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_doorlock') }}
The trick is to create an input_text helper and calling it “Ford VIN” (input_text.ford_vin) and putting the VIN into the text box. This allows the dashboard to repeatedly call the VIN for use without having to type/find/replace anything. It also makes updates a lot easier too.
The other requirement is the Mushroom cards from HACS.
Instructions:
- Create input_text.ford_vin helper and input your VIN
- Install Mushroom if you don’t already have it
- Create a new dashboard, go to edit in YAML, delete everything and paste in the code below.
views:
- title: FordPass
type: sections
max_columns: 4
sections:
- type: grid
cards:
- type: heading
heading_style: title
heading: Trouble Indicators
icon: mdi:alert-outline
- type: markdown
content: >
{%- set sensor ='sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_indicators' -%} {%- set faults = [] -%}
{%- if state_attr(sensor, 'adaptivecruisecontrol_600E14') == true -%}{%- set faults = faults + ['Adaptive Cruise Control'] -%}{%- endif -%}
{%- if state_attr(sensor, 'airfilterminder_600E02') == true -%}{%- set faults = faults + ['Air Filter Minder'] -%}{%- endif -%}
{%- if state_attr(sensor, 'airsuspensionridecontrolfault_600E22') == true -%}{%- set faults = faults + ['Air Suspension Control Fault'] -%}{%- endif -%}
{%- if state_attr(sensor, 'allwheeldrivedisabled_600E03') == true -%}{%- set faults = faults + ['All-Wheel Drive Disabled'] -%}{%- endif -%}
{%- if state_attr(sensor, 'antitheft_600E21') == true -%}{%- set faults = faults + ['Antitheft Device'] -%}{%- endif -%}
{%- if state_attr(sensor, 'antilockbrake_600E29') == true -%}{%- set faults = faults + ['Antilock Brakes'] -%}{%- endif -%}
{%- if state_attr(sensor, 'blindspotdetection_600F30') == true -%}{%- set faults = faults + ['Blind Spot Detection System'] -%}{%- endif -%}
{%- if state_attr(sensor, 'brakewarning_600E28') == true -%}{%- set faults = faults + ['Brake Warning'] -%}{%- endif -%}
{%- if state_attr(sensor, 'chargesystemfault_600E25') == true -%}{%- set faults = faults + ['Charge System Fault'] -%}{%- endif -%}
{%- if state_attr(sensor, 'checkfuelcap_600E13') == true -%}{%- set faults = faults + ['Check Fuel Cap'] -%}{%- endif -%}
{%- if state_attr(sensor, 'checkfuelfillinlet_600E12') == true -%}{%- set faults = faults + ['Check Fuel Inlet'] -%}{%- endif -%}
{%- if state_attr(sensor, 'dieselengineidleshutdown_600E05') == true -%}{%- set faults = faults + ['Diesel Engine Idle Shutdown'] -%}{%- endif -%}
{%- if state_attr(sensor, 'dieselenginewarning_600E06') == true -%}{%- set faults = faults + ['Diesel Engine Warning'] -%}{%- endif -%}
{%- if state_attr(sensor, 'dieselexhaustfluidlow_600F27') == true -%}{%- set faults = faults + ['Diesel Exhaust Fluid Low'] -%}{%- endif -%}
{%- if state_attr(sensor, 'dieselexhaustfluidsystemfault_600F26') == true -%}{%- set faults = faults + ['Diesel Exhaust Fluid System'] -%}{%- endif -%}
{%- if state_attr(sensor, 'dieselexhaustovertemp_600E08') == true -%}{%- set faults = faults + ['Diesel Exhaust Over Temperature'] -%}{%- endif -%}
{%- if state_attr(sensor, 'dieselparticulatefilter_600E07') == true -%}{%- set faults = faults + ['Diesel Particulate Filter'] -%}{%- endif -%}
{%- if state_attr(sensor, 'dieselpreheat_600E09') == true -%}{%- set faults = faults + ['Diesel Pre-Heat'] -%}{%- endif -%}
{%- if state_attr(sensor, 'electrictrailerbrakeconnection_600E18') == true -%}{%- set faults = faults + ['Electric Trailer Brake Connection'] -%}{%- endif -%}
{%- if state_attr(sensor, 'electronicparkingbrakewarning_600F15') == true -%}{%- set faults = faults + ['Electronic Parking Brake Warning'] -%}{%- endif -%}
{%- if state_attr(sensor, 'enginecoolantovertemp_600E16') == true -%}{%- set faults = faults + ['Engine Coolant Over Temperature'] -%}{%- endif -%}
{%- if state_attr(sensor, 'fastenseatbeltwarning_600E31') == true -%}{%- set faults = faults + ['Fasten Seat Belt Warning'] -%}{%- endif -%}
{%- if state_attr(sensor, 'forwardcollisionwarning_600E00') == true -%}{%- set faults = faults + ['Forward Collision Warning System'] -%}{%- endif -%}
{%- if state_attr(sensor, 'fueldooropen_600E11') == true -%}{%- set faults = faults + ['Fuel Door Open'] -%}{%- endif -%}
{%- if state_attr(sensor, 'gasparticulatefilterwarning_600F18') == true -%}{%- set faults = faults + ['Gas Particulate Filter Warning'] -%}{%- endif -%}
{%- if state_attr(sensor, 'genericabsfaultwarning_600F17') == true -%}{%- set faults = faults + ['Generic ABS Failure Warning'] -%}{%- endif -%}
{%- if state_attr(sensor, 'hevhazard_600F19') == true -%}{%- set faults = faults + ['HEV Hazard'] -%}{%- endif -%}
{%- if state_attr(sensor, 'hilldescentcontrolfault_600F25') == true -%}{%- set faults = faults + ['Hill Descent Control System'] -%}{%- endif -%}
{%- if state_attr(sensor, 'hillstartassistwarning_600F22') == true -%}{%- set faults = faults + ['Hill Start Assist Warning'] -%}{%- endif -%}
{%- if state_attr(sensor, 'lanekeepingaid_600F24') == true -%}{%- set faults = faults + ['Lane Keeping Aid'] -%}{%- endif -%}
{%- if state_attr(sensor, 'lightingsystemfailure_600F21') == true -%}{%- set faults = faults + ['Lighting System Failure'] -%}{%- endif -%}
{%- if state_attr(sensor, 'lowbrakefluid_600F16') == true -%}{%- set faults = faults + ['Low Brake Fluid'] -%}{%- endif -%}
{%- if state_attr(sensor, 'lowengineoilpressure_600E17') == true -%}{%- set faults = faults + ['Low Engine Oil Pressure'] -%}{%- endif -%}
{%- if state_attr(sensor, 'lowfuel_600E20') == true -%}{%- set faults = faults + ['Low Fuel'] -%}{%- endif -%}
{%- if state_attr(sensor, 'lowwasherfluid_600E19') == true -%}{%- set faults = faults + ['Low Washer Fluid'] -%}{%- endif -%}
{%- if state_attr(sensor, 'malfunctionindicator_600E26') == true -%}{%- set faults = faults + ['Malfunction Indicator'] -%}{%- endif -%}
{%- if state_attr(sensor, 'parkaidmalfunction_600E01') == true -%}{%- set faults = faults + ['Paring Aid Malfunction'] -%}{%- endif -%}
{%- if state_attr(sensor, 'passiveentrypassivestart_600E04') == true -%}{%- set faults = faults + ['Passive Entry Passive Start'] -%}{%- endif -%}
{%- if state_attr(sensor, 'powertrainmalfunction_600E15') == true -%}{%- set faults = faults + ['Powertrain Malfunction'] -%}{%- endif -%}
{%- if state_attr(sensor, 'restraintsindicatorwarning_600E30') == true -%}{%- set faults = faults + ['Restraint Indicator Warning']-%}{%- endif -%}
{%- if state_attr(sensor, 'servicesteering_600F29') == true -%}{%- set faults = faults + ['Service Steering'] -%}{%- endif -%}
{%- if state_attr(sensor, 'startstopenginewarning_600F20') == true -%}{%- set faults = faults + ['Start-Stop Engine Warning'] -%}{%- endif -%}
{%- if state_attr(sensor, 'tractioncontroldisabled_600E23') == true -%}{%- set faults = faults + ['Traction Control Disabled'] -%}{%- endif -%}
{%- if state_attr(sensor, 'tractioncontrolevent_600E24') == true -%}{%- set faults = faults + ['Traction Control Event'] -%}{%- endif -%}
{%- if state_attr(sensor, 'tirepressuremonistersystemwarning_600E27') == true -%}{%- set faults = faults + ['Tire Pressure Monitoring System'] -%}{%- endif -%}
{%- if state_attr(sensor, 'waterinfuel_600E10') == true -%}{%- set faults = faults + ['Water In Fuel'] -%}{%- endif -%}
{% if faults | length > 0 %}
{% for fault in faults %}
* <font color="red">**FAULT**</font> - {{ fault }}
{% endfor %}
{% else %}
**No faults indicated at this time**
{% endif %}
- type: heading
heading_style: title
heading: Sensor Data
icon: mdi:access-point
- type: custom:mushroom-template-card
primary: Doors Locked
secondary: >-
{{ states('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_doorlock') }}
icon: mdi:car-door-lock
color: >
{{ 'green' if states('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_doorlock') == 'LOCKED' else 'red' }}
- type: custom:mushroom-template-card
primary: Parking Brake
secondary: >-
{{ states('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_parkingbrakestatus') }}
icon: mdi:car-brake-parking
color: >
{{ 'green' if states('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_parkingbrakestatus') == 'ON' else 'red' }}
- type: custom:mushroom-template-card
primary: Battery Voltage
secondary: >-
{{ state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_battery', 'batteryVoltage') }} V
icon: mdi:lightning-bolt-circle
color: >
{{ 'green' if state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_battery', 'batteryVoltage') > 12 else 'orange' }}
- type: custom:mushroom-template-card
primary: Battery Percentage
secondary: >-
{{ states('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_battery') }} %
icon: mdi:car-battery
color: >
{%- if (states('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_battery') | int) > 70 -%}
green
{%- elif (states('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_battery') | int) <= 70 and (states('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_battery') | int) >= 30 -%}
orange
{%- else -%}
red
{%- endif -%}
- type: custom:mushroom-template-card
primary: Fuel Level
secondary: >-
{{ states('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_fuel') }}%
icon: mdi:gas-station
color: >
{%- if (states('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_fuel') | int) > 50 -%}
green
{%- elif (states('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_fuel') | int) <= 50 and (states('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_fuel') | int) >= 10 -%}
orange
{%- else -%}
red
{%- endif -%}
- type: custom:mushroom-template-card
primary: Fuel Range
secondary: >-
{{ "{:,.0f}".format(state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_fuel', 'fuelRange') | int) }} {{ state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_odometer', 'unit_of_measurement') }}
icon: mdi:flag-checkered
color: >
{%- if (states('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_fuel') | int) > 50 -%}
green
{%- elif (states('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_fuel') | int) <= 50 and (states('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_fuel') | int) >= 10 -%}
orange
{%- else -%}
red
{%- endif -%}
- type: custom:mushroom-template-card
primary: Odometer
secondary: >-
{{ "{:,.0f}".format(states('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_odometer') | int) }} {{ state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_odometer', 'unit_of_measurement') }}
icon: mdi:counter
- type: custom:mushroom-template-card
primary: Oil Life
secondary: >-
{{ states('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_oil') }} %
icon: mdi:oil
color: >
{%- if (states('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_oil') | int) > 50 -%}
green
{%- elif (states('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_oil') | int) <= 50 and (states('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_oil') | int) >= 10 -%}
orange
{%- else -%}
red
{%- endif -%}
- type: grid
cards:
- type: heading
heading: Tire Pressure
heading_style: title
icon: mdi:gauge
- type: custom:mushroom-template-card
primary: Front Left
secondary: >
{{ state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_tirepressure', 'frontLeft') }}
icon: mdi:car-tire-alert
color: >
{{ 'green' if state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_tirepressure', 'frontLeft_state') == 'NORMAL' else 'red' }}
- type: custom:mushroom-template-card
primary: Front Right
secondary: >
{{ state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_tirepressure', 'frontRight') }}
icon: mdi:car-tire-alert
icon_color: >
{{ 'green' if state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_tirepressure', 'frontRight_state') == 'NORMAL' else 'red' }}
- type: custom:mushroom-template-card
primary: Rear Left
secondary: >
{{ state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_tirepressure', 'rearLeft') }}
icon: mdi:car-tire-alert
icon_color: >
{{ 'green' if state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_tirepressure', 'rearLeft_state') == 'NORMAL' else 'red' }}
- type: custom:mushroom-template-card
primary: Rear Right
secondary: >
{{ state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_tirepressure', 'rearRight') }}
icon: mdi:car-tire-alert
icon_color: >
{{ 'green' if state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_tirepressure', 'rearRight_state') == 'NORMAL' else 'red' }}
- type: heading
heading: Door Status
heading_style: title
icon: mdi:car-door
- type: custom:mushroom-template-card
primary: Front Left
secondary: >
{{ state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_doorstatus', 'driverFront') }}
icon: mdi:car-door
color: >
{{ 'green' if state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_doorstatus', 'driverFront') == 'CLOSED' else 'red' }}
- type: custom:mushroom-template-card
primary: Front Right
secondary: >
{{ state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_doorstatus', 'passengerFront') }}
icon: mdi:car-door
color: >
{{ 'green' if state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_doorstatus', 'passengerFront') == 'CLOSED' else 'red' }}
- type: custom:mushroom-template-card
primary: Rear Left
secondary: >
{{ state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_doorstatus', 'rearLeft') }}
icon: mdi:car-door
color: >
{{ 'green' if state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_doorstatus', 'rearLeft') == 'CLOSED' else 'red' }}
- type: custom:mushroom-template-card
primary: Rear Right
secondary: >
{{ state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_doorstatus', 'rearRight') }}
icon: mdi:car-door
color: >
{{ 'green' if state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_doorstatus', 'rearRight') == 'CLOSED' else 'red' }}
- type: custom:mushroom-template-card
primary: Hood
secondary: >
{{ state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_doorstatus', 'hood') }}
icon: mdi:car
color: >
{{ 'green' if state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_doorstatus', 'hood') == 'CLOSED' else 'red' }}
- type: custom:mushroom-template-card
primary: Tailgate
secondary: >
{{ state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_doorstatus', 'tailgate') }}
icon: mdi:car-back
color: >
{{ 'green' if state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_doorstatus', 'tailgate') == 'CLOSED' else 'red' }}
- type: heading
heading: Window Status
heading_style: title
icon: mdi:car-door
- type: custom:mushroom-template-card
primary: Driver
secondary: >
{{ 'Open' if (state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_windowposition', 'driver').doubleRange.lowerBound != 0.0 or state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_windowposition', 'driver').doubleRange.lowerBound != 0.0) else 'Closed' }}
icon: mdi:car-door
icon_color: >
{{ 'orange' if (state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_windowposition', 'driver').doubleRange.lowerBound != 0.0 or state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_windowposition', 'driver').doubleRange.lowerBound != 0.0) else 'green' }}
- type: custom:mushroom-template-card
primary: Passenger
secondary: >
{{ 'Open' if (state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_windowposition', 'passenger').doubleRange.lowerBound != 0.0 or state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_windowposition', 'passenger').doubleRange.lowerBound != 0.0) else 'Closed' }}
icon: mdi:car-door
icon_color: >
{{ 'orange' if (state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_windowposition', 'passenger').doubleRange.lowerBound != 0.0 or state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_windowposition', 'passenger').doubleRange.lowerBound != 0.0) else 'green' }}
- type: custom:mushroom-template-card
primary: Rear Left
secondary: >
{{ 'Open' if (state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_windowposition', 'rearDriver').doubleRange.lowerBound != 0.0 or state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_windowposition', 'rearDriver').doubleRange.lowerBound != 0.0) else 'Closed' }}
icon: mdi:car-door
icon_color: >
{{ 'orange' if (state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_windowposition', 'rearDriver').doubleRange.lowerBound != 0.0 or state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_windowposition', 'rearDriver').doubleRange.lowerBound != 0.0) else 'green' }}
- type: custom:mushroom-template-card
primary: Rear Right
secondary: >
{{ 'Open' if (state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_windowposition', 'rearPassenger').doubleRange.lowerBound != 0.0 or state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_windowposition', 'rearPassenger').doubleRange.lowerBound != 0.0) else 'Closed' }}
icon: mdi:car-door
icon_color: >
{{ 'Orange' if (state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_windowposition', 'rearPassenger').doubleRange.lowerBound != 0.0 or state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_windowposition', 'rearPassenger').doubleRange.lowerBound != 0.0) else 'Green' }}
cards: []
header: {}
I hope this is useful. I think it is. Right now its geared toward gas cars because that’s what I have. Also, it only works with 1 car right now. I do plan to change the input_text.ford_vin to an array when I get a chance, which could allow any number of cars.
Hey there!
Thanks for all the effort put into this.
I’m trying to add a Ford on what I think is a .PT Ford account.
As I don’t have that country option on the addon, I’ve just selected other european countries. But, when I get to the point to collect the token, the code appears on network tab, but it says canceled in front. So If I try to copy it to the integration it doesn’t works.
Am I doing anything wrong?
Thanks in advance,
Just found the issue.
Our accounts here in Portugal are linked to Ford.com
Small update - added lock entity and washer fluid level, as well as a header.
To make the lock work, go to line 73 and change entity: lock.fordpass_YOURVINHERE_doorlock to your vin. Or you can change it in the visual editor where it will show as unavailable until you replace it. It displays the state perfectly fine without doing anything, but if you fix the entity, you can click on it to take action on the lock (Lock/Unlock).
The washer fluid does not report a percentage or anything meaningful. Its simply the inverse of the lowwasherfluid_600E19 indicator. False = OK, True = low fluid level. If true, it will also appear in the indicators card.
Instructions as before:
- create
input_text.ford_vinand input your VIN - install Mushroom cards
- create a new dashboard, go to YAML, delete everything and paste in the below code.
3a) if you already installed it, just delete the YAML and paste in the below.
views:
- title: FordPass
type: sections
max_columns: 4
sections:
- type: grid
cards:
- type: heading
heading_style: title
heading: Trouble Indicators
icon: mdi:alert-outline
- type: markdown
content: >
{%- set sensor ='sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_indicators' -%} {%- set faults = [] -%}
{%- if state_attr(sensor, 'adaptivecruisecontrol_600E14') == true -%}{%- set faults = faults + ['Adaptive Cruise Control'] -%}{%- endif -%}
{%- if state_attr(sensor, 'airfilterminder_600E02') == true -%}{%- set faults = faults + ['Air Filter Minder'] -%}{%- endif -%}
{%- if state_attr(sensor, 'airsuspensionridecontrolfault_600E22') == true -%}{%- set faults = faults + ['Air Suspension Control Fault'] -%}{%- endif -%}
{%- if state_attr(sensor, 'allwheeldrivedisabled_600E03') == true -%}{%- set faults = faults + ['All-Wheel Drive Disabled'] -%}{%- endif -%}
{%- if state_attr(sensor, 'antitheft_600E21') == true -%}{%- set faults = faults + ['Antitheft Device'] -%}{%- endif -%}
{%- if state_attr(sensor, 'antilockbrake_600E29') == true -%}{%- set faults = faults + ['Antilock Brakes'] -%}{%- endif -%}
{%- if state_attr(sensor, 'blindspotdetection_600F30') == true -%}{%- set faults = faults + ['Blind Spot Detection System'] -%}{%- endif -%}
{%- if state_attr(sensor, 'brakewarning_600E28') == true -%}{%- set faults = faults + ['Brake Warning'] -%}{%- endif -%}
{%- if state_attr(sensor, 'chargesystemfault_600E25') == true -%}{%- set faults = faults + ['Charge System Fault'] -%}{%- endif -%}
{%- if state_attr(sensor, 'checkfuelcap_600E13') == true -%}{%- set faults = faults + ['Check Fuel Cap'] -%}{%- endif -%}
{%- if state_attr(sensor, 'checkfuelfillinlet_600E12') == true -%}{%- set faults = faults + ['Check Fuel Inlet'] -%}{%- endif -%}
{%- if state_attr(sensor, 'dieselengineidleshutdown_600E05') == true -%}{%- set faults = faults + ['Diesel Engine Idle Shutdown'] -%}{%- endif -%}
{%- if state_attr(sensor, 'dieselenginewarning_600E06') == true -%}{%- set faults = faults + ['Diesel Engine Warning'] -%}{%- endif -%}
{%- if state_attr(sensor, 'dieselexhaustfluidlow_600F27') == true -%}{%- set faults = faults + ['Diesel Exhaust Fluid Low'] -%}{%- endif -%}
{%- if state_attr(sensor, 'dieselexhaustfluidsystemfault_600F26') == true -%}{%- set faults = faults + ['Diesel Exhaust Fluid System'] -%}{%- endif -%}
{%- if state_attr(sensor, 'dieselexhaustovertemp_600E08') == true -%}{%- set faults = faults + ['Diesel Exhaust Over Temperature'] -%}{%- endif -%}
{%- if state_attr(sensor, 'dieselparticulatefilter_600E07') == true -%}{%- set faults = faults + ['Diesel Particulate Filter'] -%}{%- endif -%}
{%- if state_attr(sensor, 'dieselpreheat_600E09') == true -%}{%- set faults = faults + ['Diesel Pre-Heat'] -%}{%- endif -%}
{%- if state_attr(sensor, 'electrictrailerbrakeconnection_600E18') == true -%}{%- set faults = faults + ['Electric Trailer Brake Connection'] -%}{%- endif -%}
{%- if state_attr(sensor, 'electronicparkingbrakewarning_600F15') == true -%}{%- set faults = faults + ['Electronic Parking Brake Warning'] -%}{%- endif -%}
{%- if state_attr(sensor, 'enginecoolantovertemp_600E16') == true -%}{%- set faults = faults + ['Engine Coolant Over Temperature'] -%}{%- endif -%}
{%- if state_attr(sensor, 'fastenseatbeltwarning_600E31') == true -%}{%- set faults = faults + ['Fasten Seat Belt Warning'] -%}{%- endif -%}
{%- if state_attr(sensor, 'forwardcollisionwarning_600E00') == true -%}{%- set faults = faults + ['Forward Collision Warning System'] -%}{%- endif -%}
{%- if state_attr(sensor, 'fueldooropen_600E11') == true -%}{%- set faults = faults + ['Fuel Door Open'] -%}{%- endif -%}
{%- if state_attr(sensor, 'gasparticulatefilterwarning_600F18') == true -%}{%- set faults = faults + ['Gas Particulate Filter Warning'] -%}{%- endif -%}
{%- if state_attr(sensor, 'genericabsfaultwarning_600F17') == true -%}{%- set faults = faults + ['Generic ABS Failure Warning'] -%}{%- endif -%}
{%- if state_attr(sensor, 'hevhazard_600F19') == true -%}{%- set faults = faults + ['HEV Hazard'] -%}{%- endif -%}
{%- if state_attr(sensor, 'hilldescentcontrolfault_600F25') == true -%}{%- set faults = faults + ['Hill Descent Control System'] -%}{%- endif -%}
{%- if state_attr(sensor, 'hillstartassistwarning_600F22') == true -%}{%- set faults = faults + ['Hill Start Assist Warning'] -%}{%- endif -%}
{%- if state_attr(sensor, 'lanekeepingaid_600F24') == true -%}{%- set faults = faults + ['Lane Keeping Aid'] -%}{%- endif -%}
{%- if state_attr(sensor, 'lightingsystemfailure_600F21') == true -%}{%- set faults = faults + ['Lighting System Failure'] -%}{%- endif -%}
{%- if state_attr(sensor, 'lowbrakefluid_600F16') == true -%}{%- set faults = faults + ['Low Brake Fluid'] -%}{%- endif -%}
{%- if state_attr(sensor, 'lowengineoilpressure_600E17') == true -%}{%- set faults = faults + ['Low Engine Oil Pressure'] -%}{%- endif -%}
{%- if state_attr(sensor, 'lowfuel_600E20') == true -%}{%- set faults = faults + ['Low Fuel'] -%}{%- endif -%}
{%- if state_attr(sensor, 'lowwasherfluid_600E19') == true -%}{%- set faults = faults + ['Low Washer Fluid'] -%}{%- endif -%}
{%- if state_attr(sensor, 'malfunctionindicator_600E26') == true -%}{%- set faults = faults + ['Malfunction Indicator'] -%}{%- endif -%}
{%- if state_attr(sensor, 'parkaidmalfunction_600E01') == true -%}{%- set faults = faults + ['Paring Aid Malfunction'] -%}{%- endif -%}
{%- if state_attr(sensor, 'passiveentrypassivestart_600E04') == true -%}{%- set faults = faults + ['Passive Entry Passive Start'] -%}{%- endif -%}
{%- if state_attr(sensor, 'powertrainmalfunction_600E15') == true -%}{%- set faults = faults + ['Powertrain Malfunction'] -%}{%- endif -%}
{%- if state_attr(sensor, 'restraintsindicatorwarning_600E30') == true -%}{%- set faults = faults + ['Restraint Indicator Warning']-%}{%- endif -%}
{%- if state_attr(sensor, 'servicesteering_600F29') == true -%}{%- set faults = faults + ['Service Steering'] -%}{%- endif -%}
{%- if state_attr(sensor, 'startstopenginewarning_600F20') == true -%}{%- set faults = faults + ['Start-Stop Engine Warning'] -%}{%- endif -%}
{%- if state_attr(sensor, 'tractioncontroldisabled_600E23') == true -%}{%- set faults = faults + ['Traction Control Disabled'] -%}{%- endif -%}
{%- if state_attr(sensor, 'tractioncontrolevent_600E24') == true -%}{%- set faults = faults + ['Traction Control Event'] -%}{%- endif -%}
{%- if state_attr(sensor, 'tirepressuremonistersystemwarning_600E27') == true -%}{%- set faults = faults + ['Tire Pressure Monitoring System'] -%}{%- endif -%}
{%- if state_attr(sensor, 'waterinfuel_600E10') == true -%}{%- set faults = faults + ['Water In Fuel'] -%}{%- endif -%}
{% if faults | length > 0 %}
{% for fault in faults %}
* <font color="red">**FAULT**</font> - {{ fault }}
{% endfor %}
{% else %}
<font color="green">**OK**</font> No faults indicated at this time
{% endif %}
- type: heading
heading_style: title
heading: Sensor Data
icon: mdi:access-point
- type: custom:mushroom-template-card
entity: lock.fordpass_YOURVINHERE_doorlock
primary: Door Locks
secondary: >-
{{ states('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_doorlock') }}
icon: mdi:car-door-lock
color: >
{{ 'green' if states('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_doorlock') == 'LOCKED' else 'red' }}
- type: custom:mushroom-template-card
primary: Parking Brake
secondary: >-
{{ states('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_parkingbrakestatus') }}
icon: mdi:car-brake-parking
color: >
{{ 'green' if states('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_parkingbrakestatus') == 'ON' else 'red' }}
- type: custom:mushroom-template-card
primary: Fuel Level
secondary: >-
{{ states('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_fuel') }}%
icon: mdi:gas-station
color: >
{%- if (states('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_fuel') | int) > 50 -%}
green
{%- elif (states('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_fuel') | int) <= 50 and (states('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_fuel') | int) >= 10 -%}
orange
{%- else -%}
red
{%- endif -%}
- type: custom:mushroom-template-card
primary: Fuel Range
secondary: >-
{{ "{:,.0f}".format(state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_fuel', 'fuelRange') | int) }} {{ state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_odometer', 'unit_of_measurement') }}
icon: mdi:flag-checkered
color: >
{%- if (states('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_fuel') | int) > 50 -%}
green
{%- elif (states('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_fuel') | int) <= 50 and (states('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_fuel') | int) >= 10 -%}
orange
{%- else -%}
red
{%- endif -%}
- type: custom:mushroom-template-card
primary: Battery Voltage
secondary: >-
{{ state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_battery', 'batteryVoltage') }} V
icon: mdi:lightning-bolt-circle
color: >
{{ 'green' if state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_battery', 'batteryVoltage') > 12 else 'orange' }}
- type: custom:mushroom-template-card
primary: Battery Percentage
secondary: >-
{{ states('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_battery') }} %
icon: mdi:car-battery
color: >
{%- if (states('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_battery') | int) > 70 -%}
green
{%- elif (states('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_battery') | int) <= 70 and (states('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_battery') | int) >= 30 -%}
orange
{%- else -%}
red
{%- endif -%}
- type: custom:mushroom-template-card
primary: Odometer
secondary: >-
{{ "{:,.0f}".format(states('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_odometer') | int) }} {{ state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_odometer', 'unit_of_measurement') }}
icon: mdi:counter
- type: custom:mushroom-template-card
primary: Oil Life
secondary: >-
{{ states('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_oil') }} %
icon: mdi:oil
color: >
{%- if (states('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_oil') | int) > 50 -%}
green
{%- elif (states('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_oil') | int) <= 50 and (states('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_oil') | int) >= 10 -%}
orange
{%- else -%}
red
{%- endif -%}
- type: custom:mushroom-template-card
primary: Washer Fluid
secondary: >-
{%- if state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_indicators', 'lowwasherfluid_600E19') == false -%}
Level OK
{%- else -%}
Low Fluid Level
{%- endif -%}
icon: mdi:spray-bottle
color: >
{%- if state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_indicators', 'lowwasherfluid_600E19') == false -%}
green
{%- else -%}
orange
{%- endif -%}
- type: grid
cards:
- type: heading
heading: Tire Pressure
heading_style: title
icon: mdi:gauge
- type: custom:mushroom-template-card
primary: Front Left
secondary: >
{{ state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_tirepressure', 'frontLeft') }}
icon: mdi:car-tire-alert
color: >
{{ 'green' if state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_tirepressure', 'frontLeft_state') == 'NORMAL' else 'red' }}
- type: custom:mushroom-template-card
primary: Front Right
secondary: >
{{ state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_tirepressure', 'frontRight') }}
icon: mdi:car-tire-alert
icon_color: >
{{ 'green' if state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_tirepressure', 'frontRight_state') == 'NORMAL' else 'red' }}
- type: custom:mushroom-template-card
primary: Rear Left
secondary: >
{{ state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_tirepressure', 'rearLeft') }}
icon: mdi:car-tire-alert
icon_color: >
{{ 'green' if state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_tirepressure', 'rearLeft_state') == 'NORMAL' else 'red' }}
- type: custom:mushroom-template-card
primary: Rear Right
secondary: >
{{ state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_tirepressure', 'rearRight') }}
icon: mdi:car-tire-alert
icon_color: >
{{ 'green' if state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_tirepressure', 'rearRight_state') == 'NORMAL' else 'red' }}
- type: heading
heading: Door Status
heading_style: title
icon: mdi:car-door
- type: custom:mushroom-template-card
primary: Front Left
secondary: >
{{ state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_doorstatus', 'driverFront') }}
icon: mdi:car-door
color: >
{{ 'green' if state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_doorstatus', 'driverFront') == 'CLOSED' else 'red' }}
- type: custom:mushroom-template-card
primary: Front Right
secondary: >
{{ state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_doorstatus', 'passengerFront') }}
icon: mdi:car-door
color: >
{{ 'green' if state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_doorstatus', 'passengerFront') == 'CLOSED' else 'red' }}
- type: custom:mushroom-template-card
primary: Rear Left
secondary: >
{{ state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_doorstatus', 'rearLeft') }}
icon: mdi:car-door
color: >
{{ 'green' if state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_doorstatus', 'rearLeft') == 'CLOSED' else 'red' }}
- type: custom:mushroom-template-card
primary: Rear Right
secondary: >
{{ state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_doorstatus', 'rearRight') }}
icon: mdi:car-door
color: >
{{ 'green' if state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_doorstatus', 'rearRight') == 'CLOSED' else 'red' }}
- type: custom:mushroom-template-card
primary: Hood
secondary: >
{{ state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_doorstatus', 'hood') }}
icon: mdi:car
color: >
{{ 'green' if state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_doorstatus', 'hood') == 'CLOSED' else 'red' }}
- type: custom:mushroom-template-card
primary: Tailgate
secondary: >
{{ state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_doorstatus', 'tailgate') }}
icon: mdi:car-back
color: >
{{ 'green' if state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_doorstatus', 'tailgate') == 'CLOSED' else 'red' }}
- type: heading
heading: Window Status
heading_style: title
icon: mdi:car-door
- type: custom:mushroom-template-card
primary: Driver
secondary: >
{{ 'Open' if (state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_windowposition', 'driver').doubleRange.lowerBound != 0.0 or state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_windowposition', 'driver').doubleRange.lowerBound != 0.0) else 'Closed' }}
icon: mdi:car-door
icon_color: >
{{ 'orange' if (state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_windowposition', 'driver').doubleRange.lowerBound != 0.0 or state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_windowposition', 'driver').doubleRange.lowerBound != 0.0) else 'green' }}
- type: custom:mushroom-template-card
primary: Passenger
secondary: >
{{ 'Open' if (state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_windowposition', 'passenger').doubleRange.lowerBound != 0.0 or state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_windowposition', 'passenger').doubleRange.lowerBound != 0.0) else 'Closed' }}
icon: mdi:car-door
icon_color: >
{{ 'orange' if (state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_windowposition', 'passenger').doubleRange.lowerBound != 0.0 or state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_windowposition', 'passenger').doubleRange.lowerBound != 0.0) else 'green' }}
- type: custom:mushroom-template-card
primary: Rear Left
secondary: >
{{ 'Open' if (state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_windowposition', 'rearDriver').doubleRange.lowerBound != 0.0 or state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_windowposition', 'rearDriver').doubleRange.lowerBound != 0.0) else 'Closed' }}
icon: mdi:car-door
icon_color: >
{{ 'orange' if (state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_windowposition', 'rearDriver').doubleRange.lowerBound != 0.0 or state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_windowposition', 'rearDriver').doubleRange.lowerBound != 0.0) else 'green' }}
- type: custom:mushroom-template-card
primary: Rear Right
secondary: >
{{ 'Open' if (state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_windowposition', 'rearPassenger').doubleRange.lowerBound != 0.0 or state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_windowposition', 'rearPassenger').doubleRange.lowerBound != 0.0) else 'Closed' }}
icon: mdi:car-door
icon_color: >
{{ 'Orange' if (state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_windowposition', 'rearPassenger').doubleRange.lowerBound != 0.0 or state_attr('sensor.fordpass_' ~ states('input_text.ford_vin') ~ '_windowposition', 'rearPassenger').doubleRange.lowerBound != 0.0) else 'Green' }}
cards: []
header:
card:
type: markdown
text_only: true
content: |
# Ford Car
VIN: {{ states('input_text.ford_vin') | upper }}
edit - There probably won’t be any further updates, but just in case, I put it here: GitHub - palinkas-jo-reggelt/FordPass-Dashboard: A Home Assistant dashboard for the marq24/ha-fordpass FordPass integration


