def get_newest_version(huuid):
"""Get the newest Home Assistant version."""
info_object = {
'arch': platform.machine(),
'dev': ('dev' in CURRENT_VERSION),
'docker': False,
'os_name': platform.system(),
'python_version': platform.python_version(),
'timezone': dt_util.DEFAULT_TIME_ZONE.zone,
'uuid': huuid,
'version': CURRENT_VERSION,
'virtualenv': (os.environ.get('VIRTUAL_ENV') is not None),
}
if platform.system() == 'Windows':
info_object['os_version'] = platform.win32_ver()[0]
elif platform.system() == 'Darwin':
info_object['os_version'] = platform.mac_ver()[0]
elif platform.system() == 'FreeBSD':
info_object['os_version'] = platform.release()
elif platform.system() == 'Linux':
import distro
linux_dist = distro.linux_distribution(full_distribution_name=False)
info_object['distribution'] = linux_dist[0]
info_object['os_version'] = linux_dist[1]
info_object['docker'] = os.path.isfile('/.dockerenv')
if not huuid:
info_object = {}
res = None
try:
req = requests.post(UPDATER_URL, json=info_object, timeout=5)
res = req.json()
res = RESPONSE_SCHEMA(res)
_LOGGER.info(("Submitted analytics to Home Assistant servers. "
"Information submitted includes %s"), info_object)
return (res['version'], res['release-notes'])
except requests.RequestException:
_LOGGER.error("Could not contact Home Assistant Update to check "
"for updates")
return None
except ValueError:
_LOGGER.error("Received invalid response from Home Assistant Update")
return None
except vol.Invalid:
_LOGGER.error('Got unexpected response: %s', res)
return None
评论列表
文章目录