evcc-io / evcc

Sonne tanken ☀️🚘
https://evcc.io
MIT License
3.34k stars 612 forks source link

Ford (Mustang Mach-E): 403 forbidden #10961

Closed miniluma closed 9 months ago

miniluma commented 9 months ago

Describe the bug

The connection to the Ford API stopped working for a couple of days. No changes in my config, no changes in my login data. Ford App works as expected.

Syslog states: creating vehicle ev5 failed: cannot create vehicle 'template': cannot create vehicle 'ford': login failed: unexpected status: 403 (Forbidden)

I attached the trace output which shows "Service unavailable" HTML page as a response to the GET.

Steps to reproduce

1. 2. 3. ...

Configuration details

- name: ev5
  type: template
  template: ford
  title: Mustang Mach-E # Wird in der Benutzeroberfläche angezeigt (optional)
  user: email # Benutzerkonto (bspw. E-Mail Adresse, User Id, etc.)
  password: "password" # Passwort des Benutzerkontos (bei führenden Nullen bitte in einfache Hochkommata setzen)
  vin: myVIN # Erforderlich, wenn mehrere Fahrzeuge des Herstellers vorhanden sind (optional)
  capacity: 75.7 # Akkukapazität in kWh (optional)

Log details

ov 30 08:07:18 pi4 evcc[139796]: [ford  ] TRACE 2023/11/30 08:07:18 GET https://sso.ci.ford.com/v1.0/endpoint/default/authorize?...
Nov 30 08:07:18 pi4 evcc[139796]: [ford  ] TRACE 2023/11/30 08:07:18 <html>
Nov 30 08:07:18 pi4 evcc[139796]: <title>Service unavailable</title>
Nov 30 08:07:18 pi4 evcc[139796]: <head>
Nov 30 08:07:18 pi4 evcc[139796]: #011<link rel="stylesheet" type="text/css" href="https://unpkg.com/carbon-components/css/carbon-components.min.css">
Nov 30 08:07:18 pi4 evcc[139796]: #011<script src="https://unpkg.com/carbon-components/scripts/carbon-components.min.js"></script>
Nov 30 08:07:18 pi4 evcc[139796]: #011<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
Nov 30 08:07:18 pi4 evcc[139796]: #011<style>
...

What type of operating system are you running?

Linux

Version

0.122.1

andig commented 9 months ago

Ford hat mal wieder den Mechnismus geändert- leider in etwas sehr Kompliziertes... Workaround: Integration per ioBroker.

miniluma commented 9 months ago

Naja, in HA wurde es auch adaptiert. Wirkt jetzt auf mich nicht so sehr viel komplexer als vorher. https://github.com/itchannel/fordpass-ha/pull/449/files

andig commented 9 months ago

Thanks for the link. IoBroker looked more involved. Trace of the http session would be really great. Or of course a PR 👍🏻.

GrimmiMeloni commented 9 months ago

I have an old Ford Login - I will see if I can get this adjusted based on the changes they did in HA.

andig commented 9 months ago

Could someone please share login credentials with info@evcc.io?

appcoders commented 9 months ago

@andig Ich nutze die aktuelle Nightly und bekomme von Ford eine Seite zurück, wo ein Code bzgl. Verifizierung angefragt wird.

"[de-DE]Verification is necessary. Please click Send button."

Muss ich da irgendwie interagieren?


[ford  ] TRACE 2023/12/07 07:57:24 GET https://login.ford.com/4566605f-43a7-400a-946e-89cc9fdb0bd7/B2C_1A_SignInSignUp_de-DE/api/CombinedSigninAndSignup/confirmed?rememberMe=false&csrf_token=WS9HRlZTVm0vTlEyNzA0NXBJajNOcktSMFVhSVdNOEdidlNJY3dYUmcyeVJFdlF2Z0FGay9wR0xoRG9NVkNPK3MyT1pjaVZxVGtCSk5LL3hneGNqN1E9PTsyMDIzLTEyLTA3VDA2OjU3OjIzLjkzMTc2NDJaO1hEcHdsbTl4dEY2NWpXSmlMUUZ1eWc9PTt7Ik9yY2hlc3RyYXRpb25TdGVwIjoxfQ==&tx=StateProperties=eyJUSUQiOiIxMWU0YzkyNC0xYjlhLTRiODItOTdmMy1hMzIwMjRhNGE4Y2EifQ&p=B2C_1A_SignInSignUp_de-DE
[ford  ] TRACE 2023/12/07 07:57:26 <!DOCTYPE html>
<!-- Build: 1.1.14.0 -->
<!-- StateVersion: 2.1.1 -->
<!-- DeploymentMode: Production -->
<!-- CorrelationId: 11e4c924-1b9a-4b82-97f3-a32024a4a8ca -->
<!-- DataCenter: BY1 -->
<!-- Slice: 001-000 -->
<html lang="de-DE"><head><link rel="icon" href="data:;base64,iVBORw0KGgo="><script data-container="true" nonce="qP38wclbUl+8etLFEAstFQ==">var SA_FIELDS = {"AttributeFields":[{"UX_INPUT_TYPE":"VerificationControl","USER_INPUT_TYPE":"DisplayControl","DISPLAY_FIELDS":[{"UX_INPUT_TYPE":"Readonly","USER_INPUT_TYPE":"Readonly","CONTROL_CLAIM":"strongAuthenticationEmailAddressReadOnly","IS_TEXT":false,"IS_EMAIL":false,"IS_PASSWORD":false,"IS_DATE":false,"IS_RADIO":false,"IS_DROP":false,"IS_TEXT_IN_PARAGRAPH":false,"IS_CHECK_MULTI":false,"IS_LINK":false,"VERIFY":false,"DN":"strongAuthenticationEmailAddressReadOnly","ID":"strongAuthenticationEmailAddressReadOnly","U_HELP":"Email address that can be used to contact you.","PRE":"j*********l@gmx.de","DAY_PRE":"0","MONTH_PRE":"0","YEAR_PRE":"0","IS_REQ":true,"IS_RDO":true,"OPTIONS":[]},{"UX_INPUT_TYPE":"TextBox","USER_INPUT_TYPE":"TextBox","CONTROL_CLAIM":"VerificationCode","IS_TEXT":true,"IS_EMAIL":false,"IS_PASSWORD":false,"IS_DATE":false,"IS_RADIO":false,"IS_DROP":false,"IS_TEXT_IN_PARAGRAPH":false,"IS_CHECK_MULTI":false,"IS_LINK":false,"VERIFY":false,"DN":"Verifizierungscode","ID":"verificationCode","U_HELP":"Bitte geben Sie einen g&#252;ltigen Verifizierungscode ein.","DAY_PRE":"0","MONTH_PRE":"0","YEAR_PRE":"0","IS_REQ":true,"IS_RDO":false,"OPTIONS":[]}],"DISPLAY_CONTROL_CONTENT":{"intro_msg":"[de-DE]Verification is necessary. Please click Send button.","success_send_code_msg":"Verwenden Sie einen an Ihre verifizierte E-Mail-Adresse gesendeten Code.","failure_send_code_msg":"Fehlgeschlagen, bitte sp&#228;ter erneut versuchen.","success_verify_code_msg":"[de-DE]E-mail address verified. You can now continue.","failure_verify_code_msg":"Fehlgeschlagen, bitte sp&#228;ter erneut versuchen.","but_send_code":"Neuen Code senden","but_verify_code":"Senden","but_send_new_code":"Neuen Code senden","but_change_claims":"[de-DE]Change e-mail","disclaimer_msg_intro":"","disclaimer_link_1_text":"","disclaimer_link_1_url":"","disclaimer_link_2_text":"","disclaimer_link_2_url":""},"INPUT_FIELDS":{"SendCode":["strongAuthenticationEmailAddressReadOnly"],"VerifyCode":["strongAuthenticationEmailAddressReadOnly","verificationCode"]},"IS_TEXT":false,"IS_EMAIL":false,"IS_PASSWORD":false,"IS_DATE":false,"IS_RADIO":false,"IS_DROP":false,"IS_TEXT_IN_PARAGRAPH":false,"IS_CHECK_MULTI":false,"IS_LINK":false,"VERIFY":false,"DN":"","ID":"strongAuthenticationEmailVerificationControlReadOnly","DAY_PRE":"0","MONTH_PRE":"0","YEAR_PRE":"0","IS_REQ":false,"IS_RDO":false},{"UX_INPUT_TYPE":"Readonly","USER_INPUT_TYPE":"Readonly","IS_TEXT":false,"IS_EMAIL":false,"IS_PASSWORD":false,"IS_DATE":false,"IS_RADIO":false,"IS_DROP":false,"IS_TEXT_IN_PARAGRAPH":false,"IS_CHECK_MULTI":false,"IS_LINK":false,"VERIFY":false,"DN":"dfp_merchantRuleDecision","ID":"dfp_merchantRuleDecision","PRE":"Approve","DAY_PRE":"0","MONTH_PRE":"0","YEAR_PRE":"0","IS_REQ":false,"IS_RDO":true,"OPTIONS":[]},{"UX_INPUT_TYPE":"Readonly","USER_INPUT_TYPE":"Readonly","IS_TEXT":false,"IS_EMAIL":false,"IS_PASSWORD":false,"IS_DATE":false,"IS_RADIO":false,"IS_DROP":false,"IS_TEXT_IN_PARAGRAPH":false,"IS_CHECK_MULTI":false,"IS_LINK":false,"VERIFY":false,"DN":"Conditional Access claims comma delimited","ID":"conditionalAccessClaimCommaDelimited","DAY_PRE":"0","MONTH_PRE":"0","YEAR_PRE":"0","IS_REQ":false,"IS_RDO":true,"OPTIONS":[]},{"UX_INPUT_TYPE":"Readonly","USER_INPUT_TYPE":"Readonly","IS_TEXT":false,"IS_EMAIL":false,"IS_PASSWORD":false,"IS_DATE":false,"IS_RADIO":false,"IS_DROP":false,"IS_TEXT_IN_PARAGRAPH":false,"IS_CHECK_MULTI":false,"IS_LINK":false,"VERIFY":false,"DN":"Claim to capture app requiresMFA value from query string","ID":"appRequiresMFAString","PRE":"False","DAY_PRE":"0","MONTH_PRE":"0","YEAR_PRE":"0","IS_REQ":false,"IS_RDO":true,"OPTIONS":[]},{"UX_INPUT_TYPE":"Readonly","USER_INPUT_TYPE":"Readonly","IS_TEXT":false,"IS_EMAIL":false,"IS_PASSWORD":false,"IS_DATE":false,"IS_RADIO":false,"IS_DROP":false,"IS_TEXT_IN_PARAGRAPH":false,"IS_CHECK_MULTI":false,"IS_LINK":false,"VERIFY":false,"DN":"mfaDisplayPageType","ID":"mfaDisplayPageType","PRE":"verification","DAY_PRE":"0","MONTH_PRE":"0","YEAR_PRE":"0","IS_REQ":false,"IS_RDO":true,"OPTIONS":[]}]};
GrimmiMeloni commented 9 months ago

@appcoders mal im Browser komplett durchgespielt? Müssen da vielleicht neue TOS oder ähnliches akzeptiert werden?

appcoders commented 9 months ago

@GrimmiMeloni Nachdem ich mich auf der Webseite angemeldet habe, musste ich das Kennwort ändern und danach hat es funktioniert.