From 20b66faa6d2256d5a6a5f29cd26eb01f90c91de2 Mon Sep 17 00:00:00 2001 From: BreakingBread0 <49913490+BreakingBread0@users.noreply.github.com> Date: Tue, 27 Jul 2021 01:46:49 +0200 Subject: [PATCH] Add MFA Capability to Tesla Integration (#53245) * Adds MFA Capability to Tesla Integration * Add "(Optional)" to MFA Code * Update homeassistant/components/tesla/translations/de.json Co-authored-by: J. Nick Koston * Update en.json * Revert "Update en.json" This reverts commit 825685c3a230f54094c10c86d7b82f4c81979064. Co-authored-by: J. Nick Koston --- homeassistant/components/tesla/config_flow.py | 6 +++++- homeassistant/components/tesla/const.py | 1 + homeassistant/components/tesla/strings.json | 3 ++- homeassistant/components/tesla/translations/de.json | 2 +- homeassistant/components/tesla/translations/en.json | 3 ++- 5 files changed, 11 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/tesla/config_flow.py b/homeassistant/components/tesla/config_flow.py index af2fd7ae769..46bc49b126b 100644 --- a/homeassistant/components/tesla/config_flow.py +++ b/homeassistant/components/tesla/config_flow.py @@ -21,6 +21,7 @@ from homeassistant.helpers.httpx_client import SERVER_SOFTWARE, USER_AGENT from .const import ( CONF_EXPIRATION, + CONF_MFA, CONF_WAKE_ON_START, DEFAULT_SCAN_INTERVAL, DEFAULT_WAKE_ON_START, @@ -99,6 +100,7 @@ class TeslaConfigFlow(config_entries.ConfigFlow, domain=DOMAIN): { vol.Required(CONF_USERNAME, default=self.username): str, vol.Required(CONF_PASSWORD): str, + vol.Optional(CONF_MFA): str, } ) @@ -158,7 +160,9 @@ async def validate_input(hass: core.HomeAssistant, data): password=data[CONF_PASSWORD], update_interval=DEFAULT_SCAN_INTERVAL, ) - result = await controller.connect(test_login=True) + result = await controller.connect( + test_login=True, mfa_code=(data[CONF_MFA] if CONF_MFA in data else "") + ) config[CONF_TOKEN] = result["refresh_token"] config[CONF_ACCESS_TOKEN] = result["access_token"] config[CONF_EXPIRATION] = result[CONF_EXPIRATION] diff --git a/homeassistant/components/tesla/const.py b/homeassistant/components/tesla/const.py index 4155942c0ad..c288b3c1cda 100644 --- a/homeassistant/components/tesla/const.py +++ b/homeassistant/components/tesla/const.py @@ -1,6 +1,7 @@ """Const file for Tesla cars.""" CONF_EXPIRATION = "expiration" CONF_WAKE_ON_START = "enable_wake_on_start" +CONF_MFA = "mfa" DOMAIN = "tesla" DATA_LISTENER = "listener" DEFAULT_SCAN_INTERVAL = 660 diff --git a/homeassistant/components/tesla/strings.json b/homeassistant/components/tesla/strings.json index c75562528de..0f5a7666175 100644 --- a/homeassistant/components/tesla/strings.json +++ b/homeassistant/components/tesla/strings.json @@ -13,7 +13,8 @@ "user": { "data": { "username": "[%key:common::config_flow::data::email%]", - "password": "[%key:common::config_flow::data::password%]" + "password": "[%key:common::config_flow::data::password%]", + "mfa": "MFA Code (Optional)" }, "description": "Please enter your information.", "title": "Tesla - Configuration" diff --git a/homeassistant/components/tesla/translations/de.json b/homeassistant/components/tesla/translations/de.json index bdcd8237b3b..bb2a2a5f349 100644 --- a/homeassistant/components/tesla/translations/de.json +++ b/homeassistant/components/tesla/translations/de.json @@ -30,4 +30,4 @@ } } } -} \ No newline at end of file +} diff --git a/homeassistant/components/tesla/translations/en.json b/homeassistant/components/tesla/translations/en.json index 53b213ac19b..c8226a12347 100644 --- a/homeassistant/components/tesla/translations/en.json +++ b/homeassistant/components/tesla/translations/en.json @@ -13,7 +13,8 @@ "user": { "data": { "password": "Password", - "username": "Email" + "username": "Email", + "mfa": "MFA Code (Optional)" }, "description": "Please enter your information.", "title": "Tesla - Configuration"