Improve log when connection to kodi media player cannot be created (#68458)
* Make clearer in log files that connection to media player cannot be created. * Only give connection error once. When connection is lost, only give an error message once. When connection is restored and lost again, give error message again.pull/68840/head
parent
112d232c2e
commit
8fc8778995
|
@ -306,6 +306,7 @@ class KodiEntity(MediaPlayerEntity):
|
||||||
self._app_properties = {}
|
self._app_properties = {}
|
||||||
self._media_position_updated_at = None
|
self._media_position_updated_at = None
|
||||||
self._media_position = None
|
self._media_position = None
|
||||||
|
self._connect_error = False
|
||||||
|
|
||||||
def _reset_state(self, players=None):
|
def _reset_state(self, players=None):
|
||||||
self._players = players
|
self._players = players
|
||||||
|
@ -314,6 +315,7 @@ class KodiEntity(MediaPlayerEntity):
|
||||||
self._app_properties = {}
|
self._app_properties = {}
|
||||||
self._media_position_updated_at = None
|
self._media_position_updated_at = None
|
||||||
self._media_position = None
|
self._media_position = None
|
||||||
|
self._connect_error = False
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def _kodi_is_off(self):
|
def _kodi_is_off(self):
|
||||||
|
@ -420,6 +422,7 @@ class KodiEntity(MediaPlayerEntity):
|
||||||
|
|
||||||
async def _on_ws_connected(self):
|
async def _on_ws_connected(self):
|
||||||
"""Call after ws is connected."""
|
"""Call after ws is connected."""
|
||||||
|
self._connect_error = False
|
||||||
self._register_ws_callbacks()
|
self._register_ws_callbacks()
|
||||||
|
|
||||||
version = (await self._kodi.get_application_properties(["version"]))["version"]
|
version = (await self._kodi.get_application_properties(["version"]))["version"]
|
||||||
|
@ -436,14 +439,18 @@ class KodiEntity(MediaPlayerEntity):
|
||||||
await self._connection.connect()
|
await self._connection.connect()
|
||||||
await self._on_ws_connected()
|
await self._on_ws_connected()
|
||||||
except (jsonrpc_base.jsonrpc.TransportError, CannotConnectError):
|
except (jsonrpc_base.jsonrpc.TransportError, CannotConnectError):
|
||||||
_LOGGER.debug("Unable to connect to Kodi via websocket", exc_info=True)
|
if not self._connect_error:
|
||||||
|
self._connect_error = True
|
||||||
|
_LOGGER.error("Unable to connect to Kodi via websocket", exc_info=True)
|
||||||
await self._clear_connection(False)
|
await self._clear_connection(False)
|
||||||
|
|
||||||
async def _ping(self):
|
async def _ping(self):
|
||||||
try:
|
try:
|
||||||
await self._kodi.ping()
|
await self._kodi.ping()
|
||||||
except (jsonrpc_base.jsonrpc.TransportError, CannotConnectError):
|
except (jsonrpc_base.jsonrpc.TransportError, CannotConnectError):
|
||||||
_LOGGER.debug("Unable to ping Kodi via websocket", exc_info=True)
|
if not self._connect_error:
|
||||||
|
self._connect_error = True
|
||||||
|
_LOGGER.error("Unable to ping Kodi via websocket", exc_info=True)
|
||||||
await self._clear_connection()
|
await self._clear_connection()
|
||||||
|
|
||||||
async def _async_connect_websocket_if_disconnected(self, *_):
|
async def _async_connect_websocket_if_disconnected(self, *_):
|
||||||
|
|
Loading…
Reference in New Issue