Fix Panasonic Viera config flow and state update (#39303)

This commit is contained in:
João Gabriel 2020-08-27 08:51:18 -03:00 committed by GitHub
parent b0a2c8d430
commit 0d7eec710c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 6 deletions

View File

@ -178,9 +178,6 @@ class Remote:
self.muted = self._control.get_mute() self.muted = self._control.get_mute()
self.volume = self._control.get_volume() / 100 self.volume = self._control.get_volume() / 100
self.state = STATE_ON
self.available = True
async def async_send_key(self, key): async def async_send_key(self, key):
"""Send a key to the TV and handle exceptions.""" """Send a key to the TV and handle exceptions."""
try: try:
@ -231,7 +228,6 @@ class Remote:
except (TimeoutError, URLError, SOAPError, OSError): except (TimeoutError, URLError, SOAPError, OSError):
self.state = STATE_OFF self.state = STATE_OFF
self.available = self._on_action is not None self.available = self._on_action is not None
await self.async_create_remote_control()
except Exception as err: # pylint: disable=broad-except except Exception as err: # pylint: disable=broad-except
_LOGGER.exception("An unknown error occurred: %s", err) _LOGGER.exception("An unknown error occurred: %s", err)
self.state = STATE_OFF self.state = STATE_OFF

View File

@ -95,7 +95,9 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
if user_input is not None: if user_input is not None:
pin = user_input[CONF_PIN] pin = user_input[CONF_PIN]
try: try:
self._remote.authorize_pin_code(pincode=pin) await self.hass.async_add_executor_job(
partial(self._remote.authorize_pin_code, pincode=pin)
)
except SOAPError as err: except SOAPError as err:
_LOGGER.error("Invalid PIN code: %s", err) _LOGGER.error("Invalid PIN code: %s", err)
errors["base"] = ERROR_INVALID_PIN_CODE errors["base"] = ERROR_INVALID_PIN_CODE
@ -119,7 +121,9 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
) )
try: try:
self._remote.request_pin_code(name="Home Assistant") await self.hass.async_add_executor_job(
partial(self._remote.request_pin_code, name="Home Assistant")
)
except (TimeoutError, URLError, SOAPError, OSError) as err: except (TimeoutError, URLError, SOAPError, OSError) as err:
_LOGGER.error("The remote connection was lost: %s", err) _LOGGER.error("The remote connection was lost: %s", err)
return self.async_abort(reason=REASON_NOT_CONNECTED) return self.async_abort(reason=REASON_NOT_CONNECTED)