mirror of
https://github.com/home-assistant/core.git
synced 2025-07-21 12:17:07 +00:00
Change the method of getting the mac address in the braviatv i… (#33567)
* Remove getmac library * Fix error handling * Change error handling method
This commit is contained in:
parent
c628c2cef2
commit
b60527c986
@ -2,7 +2,7 @@
|
||||
"domain": "braviatv",
|
||||
"name": "Sony Bravia TV",
|
||||
"documentation": "https://www.home-assistant.io/integrations/braviatv",
|
||||
"requirements": ["bravia-tv==1.0.1", "getmac==0.8.1"],
|
||||
"requirements": ["bravia-tv==1.0.1"],
|
||||
"dependencies": ["configurator"],
|
||||
"codeowners": ["@robbiet480"]
|
||||
}
|
||||
|
@ -1,9 +1,7 @@
|
||||
"""Support for interface with a Sony Bravia TV."""
|
||||
import ipaddress
|
||||
import logging
|
||||
|
||||
from bravia_tv import BraviaRC
|
||||
from getmac import get_mac_address
|
||||
import voluptuous as vol
|
||||
|
||||
from homeassistant.components.media_player import PLATFORM_SCHEMA, MediaPlayerDevice
|
||||
@ -21,7 +19,9 @@ from homeassistant.components.media_player.const import (
|
||||
SUPPORT_VOLUME_STEP,
|
||||
)
|
||||
from homeassistant.const import CONF_HOST, CONF_NAME, STATE_OFF, STATE_ON
|
||||
from homeassistant.exceptions import PlatformNotReady
|
||||
import homeassistant.helpers.config_validation as cv
|
||||
from homeassistant.helpers.device_registry import format_mac
|
||||
from homeassistant.util.json import load_json, save_json
|
||||
|
||||
BRAVIA_CONFIG_FILE = "bravia.conf"
|
||||
@ -76,8 +76,12 @@ def setup_platform(hass, config, add_entities, discovery_info=None):
|
||||
mac = host_config["mac"]
|
||||
name = config.get(CONF_NAME)
|
||||
braviarc = BraviaRC(host, mac)
|
||||
braviarc.connect(pin, CLIENTID_PREFIX, NICKNAME)
|
||||
unique_id = braviarc.get_system_info()["cid"].lower()
|
||||
if not braviarc.connect(pin, CLIENTID_PREFIX, NICKNAME):
|
||||
raise PlatformNotReady
|
||||
try:
|
||||
unique_id = braviarc.get_system_info()["cid"].lower()
|
||||
except TypeError:
|
||||
raise PlatformNotReady
|
||||
|
||||
add_entities([BraviaTVDevice(braviarc, name, pin, unique_id)])
|
||||
return
|
||||
@ -94,15 +98,6 @@ def setup_bravia(config, pin, hass, add_entities):
|
||||
request_configuration(config, hass, add_entities)
|
||||
return
|
||||
|
||||
try:
|
||||
if ipaddress.ip_address(host).version == 6:
|
||||
mode = "ip6"
|
||||
else:
|
||||
mode = "ip"
|
||||
except ValueError:
|
||||
mode = "hostname"
|
||||
mac = get_mac_address(**{mode: host})
|
||||
|
||||
# If we came here and configuring this host, mark as done
|
||||
if host in _CONFIGURING:
|
||||
request_id = _CONFIGURING.pop(host)
|
||||
@ -110,14 +105,23 @@ def setup_bravia(config, pin, hass, add_entities):
|
||||
configurator.request_done(request_id)
|
||||
_LOGGER.info("Discovery configuration done")
|
||||
|
||||
braviarc = BraviaRC(host)
|
||||
if not braviarc.connect(pin, CLIENTID_PREFIX, NICKNAME):
|
||||
_LOGGER.error("Cannot connect to %s", host)
|
||||
return
|
||||
try:
|
||||
system_info = braviarc.get_system_info()
|
||||
except TypeError:
|
||||
_LOGGER.error("Cannot retrieve system info from %s", host)
|
||||
return
|
||||
mac = format_mac(system_info["macAddr"])
|
||||
unique_id = system_info["cid"].lower()
|
||||
|
||||
# Save config
|
||||
save_json(
|
||||
hass.config.path(BRAVIA_CONFIG_FILE),
|
||||
{host: {"pin": pin, "host": host, "mac": mac}},
|
||||
)
|
||||
braviarc = BraviaRC(host, mac)
|
||||
braviarc.connect(pin, CLIENTID_PREFIX, NICKNAME)
|
||||
unique_id = braviarc.get_system_info()["cid"].lower()
|
||||
|
||||
add_entities([BraviaTVDevice(braviarc, name, pin, unique_id)])
|
||||
|
||||
|
@ -603,7 +603,6 @@ georss_ign_sismologia_client==0.2
|
||||
# homeassistant.components.qld_bushfire
|
||||
georss_qld_bushfire_alert_client==0.3
|
||||
|
||||
# homeassistant.components.braviatv
|
||||
# homeassistant.components.huawei_lte
|
||||
# homeassistant.components.kef
|
||||
# homeassistant.components.minecraft_server
|
||||
|
@ -235,7 +235,6 @@ georss_ign_sismologia_client==0.2
|
||||
# homeassistant.components.qld_bushfire
|
||||
georss_qld_bushfire_alert_client==0.3
|
||||
|
||||
# homeassistant.components.braviatv
|
||||
# homeassistant.components.huawei_lte
|
||||
# homeassistant.components.kef
|
||||
# homeassistant.components.minecraft_server
|
||||
|
Loading…
x
Reference in New Issue
Block a user