Merge pull request #37377 from home-assistant/rc

This commit is contained in:
Paulus Schoutsen 2020-07-02 14:46:19 -07:00 committed by GitHub
commit 460bd2b3bb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
18 changed files with 88 additions and 27 deletions

View File

@ -39,6 +39,13 @@ class ConnectDenonAVR:
or self._receiver.model_name is None or self._receiver.model_name is None
or self._receiver.receiver_type is None or self._receiver.receiver_type is None
): ):
_LOGGER.error(
"Missing receiver information: manufacturer '%s', name '%s', model '%s', type '%s'",
self._receiver.manufacturer,
self._receiver.name,
self._receiver.model_name,
self._receiver.receiver_type,
)
return False return False
_LOGGER.debug( _LOGGER.debug(

View File

@ -80,7 +80,7 @@ class DevoloMultiLevelDeviceEntity(DevoloDeviceEntity):
def _sync(self, message=None): def _sync(self, message=None):
"""Update the multi level sensor state.""" """Update the multi level sensor state."""
if message[0].startswith("devolo.MultiLevelSensor"): if message[0] == self._multi_level_sensor_property.element_uid:
self._state = self._device_instance.multi_level_sensor_property[ self._state = self._device_instance.multi_level_sensor_property[
message[0] message[0]
].value ].value

View File

@ -133,7 +133,7 @@ class ForkedDaapdFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
if user_input is not None: if user_input is not None:
# check for any entries with same host, abort if found # check for any entries with same host, abort if found
for entry in self._async_current_entries(): for entry in self._async_current_entries():
if entry.data[CONF_HOST] == user_input[CONF_HOST]: if entry.data.get(CONF_HOST) == user_input[CONF_HOST]:
return self.async_abort(reason="already_configured") return self.async_abort(reason="already_configured")
validate_result = await self.validate_input(user_input) validate_result = await self.validate_input(user_input)
if validate_result[0] == "ok": # success if validate_result[0] == "ok": # success

View File

@ -2,7 +2,7 @@
"domain": "frontend", "domain": "frontend",
"name": "Home Assistant Frontend", "name": "Home Assistant Frontend",
"documentation": "https://www.home-assistant.io/integrations/frontend", "documentation": "https://www.home-assistant.io/integrations/frontend",
"requirements": ["home-assistant-frontend==20200701.0"], "requirements": ["home-assistant-frontend==20200702.0"],
"dependencies": [ "dependencies": [
"api", "api",
"auth", "auth",

View File

@ -63,7 +63,7 @@ class Gogogate2FlowHandler(ConfigFlow, domain=DOMAIN):
CONF_IP_ADDRESS, default=user_input.get(CONF_IP_ADDRESS, "") CONF_IP_ADDRESS, default=user_input.get(CONF_IP_ADDRESS, "")
): str, ): str,
vol.Required( vol.Required(
CONF_USERNAME, default=user_input.get(CONF_USERNAME, "admin") CONF_USERNAME, default=user_input.get(CONF_USERNAME, "")
): str, ): str,
vol.Required( vol.Required(
CONF_PASSWORD, default=user_input.get(CONF_PASSWORD, "") CONF_PASSWORD, default=user_input.get(CONF_PASSWORD, "")

View File

@ -3,6 +3,6 @@
"name": "Gogogate2", "name": "Gogogate2",
"config_flow": true, "config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/gogogate2", "documentation": "https://www.home-assistant.io/integrations/gogogate2",
"requirements": ["gogogate2-api==1.0.3"], "requirements": ["gogogate2-api==1.0.4"],
"codeowners": ["@vangorra"] "codeowners": ["@vangorra"]
} }

View File

@ -10,7 +10,7 @@
"step": { "step": {
"user": { "user": {
"title": "Setup GogoGate2", "title": "Setup GogoGate2",
"description": "Provide requisite information below. Note: only the 'admin' user is known to work.", "description": "Provide requisite information below.",
"data": { "data": {
"ip_address": "IP Address", "ip_address": "IP Address",
"username": "[%key:common::config_flow::data::username%]", "username": "[%key:common::config_flow::data::username%]",

View File

@ -325,7 +325,7 @@ async def async_setup(hass, config):
if errors: if errors:
_LOGGER.error(errors) _LOGGER.error(errors)
hass.components.persistent_notification.async_create( hass.components.persistent_notification.async_create(
"Config error. See [the logs](/developer-tools/logs) for details.", "Config error. See [the logs](/config/logs) for details.",
"Config validating", "Config validating",
f"{HASS_DOMAIN}.check_config", f"{HASS_DOMAIN}.check_config",
) )

View File

@ -112,7 +112,7 @@ async def async_setup(hass: ha.HomeAssistant, config: dict) -> bool:
if errors: if errors:
_LOGGER.error(errors) _LOGGER.error(errors)
hass.components.persistent_notification.async_create( hass.components.persistent_notification.async_create(
"Config error. See [the logs](/developer-tools/logs) for details.", "Config error. See [the logs](/config/logs) for details.",
"Config validating", "Config validating",
f"{ha.DOMAIN}.check_config", f"{ha.DOMAIN}.check_config",
) )

View File

@ -3,5 +3,5 @@
"name": "Proxmox VE", "name": "Proxmox VE",
"documentation": "https://www.home-assistant.io/integrations/proxmoxve", "documentation": "https://www.home-assistant.io/integrations/proxmoxve",
"codeowners": ["@k4ds3", "@jhollowe"], "codeowners": ["@k4ds3", "@jhollowe"],
"requirements": ["proxmoxer==1.1.0"] "requirements": ["proxmoxer==1.1.1"]
} }

View File

@ -9,7 +9,7 @@ async def async_setup(hass: HomeAssistant, config: dict):
"""Set up the Safe Mode component.""" """Set up the Safe Mode component."""
persistent_notification.async_create( persistent_notification.async_create(
hass, hass,
"Home Assistant is running in safe mode. Check [the error log](/developer-tools/logs) to see what went wrong.", "Home Assistant is running in safe mode. Check [the error log](/config/logs) to see what went wrong.",
"Safe Mode", "Safe Mode",
) )
return True return True

View File

@ -5,7 +5,7 @@
"documentation": "https://www.home-assistant.io/integrations/smappee", "documentation": "https://www.home-assistant.io/integrations/smappee",
"dependencies": ["http"], "dependencies": ["http"],
"requirements": [ "requirements": [
"pysmappee==0.1.0" "pysmappee==0.1.2"
], ],
"codeowners": [ "codeowners": [
"@bsmappee" "@bsmappee"

View File

@ -770,8 +770,13 @@ class DataManager:
response = await self._hass.async_add_executor_job(self._api.measure_get_meas) response = await self._hass.async_add_executor_job(self._api.measure_get_meas)
groups = query_measure_groups( # Sort from oldest to newest.
groups = sorted(
query_measure_groups(
response, MeasureTypes.ANY, MeasureGroupAttribs.UNAMBIGUOUS response, MeasureTypes.ANY, MeasureGroupAttribs.UNAMBIGUOUS
),
key=lambda group: group.created.datetime,
reverse=False,
) )
return { return {

View File

@ -1,7 +1,7 @@
"""Constants used by Home Assistant components.""" """Constants used by Home Assistant components."""
MAJOR_VERSION = 0 MAJOR_VERSION = 0
MINOR_VERSION = 112 MINOR_VERSION = 112
PATCH_VERSION = "0" PATCH_VERSION = "1"
__short_version__ = f"{MAJOR_VERSION}.{MINOR_VERSION}" __short_version__ = f"{MAJOR_VERSION}.{MINOR_VERSION}"
__version__ = f"{__short_version__}.{PATCH_VERSION}" __version__ = f"{__short_version__}.{PATCH_VERSION}"
REQUIRED_PYTHON_VER = (3, 7, 0) REQUIRED_PYTHON_VER = (3, 7, 0)

View File

@ -13,7 +13,7 @@ defusedxml==0.6.0
distro==1.5.0 distro==1.5.0
emoji==0.5.4 emoji==0.5.4
hass-nabucasa==0.34.7 hass-nabucasa==0.34.7
home-assistant-frontend==20200701.0 home-assistant-frontend==20200702.0
importlib-metadata==1.6.0;python_version<'3.8' importlib-metadata==1.6.0;python_version<'3.8'
jinja2>=2.11.1 jinja2>=2.11.1
netdisco==2.7.1 netdisco==2.7.1

View File

@ -660,7 +660,7 @@ glances_api==0.2.0
gntp==1.0.3 gntp==1.0.3
# homeassistant.components.gogogate2 # homeassistant.components.gogogate2
gogogate2-api==1.0.3 gogogate2-api==1.0.4
# homeassistant.components.google # homeassistant.components.google
google-api-python-client==1.6.4 google-api-python-client==1.6.4
@ -738,7 +738,7 @@ hole==0.5.1
holidays==0.10.2 holidays==0.10.2
# homeassistant.components.frontend # homeassistant.components.frontend
home-assistant-frontend==20200701.0 home-assistant-frontend==20200702.0
# homeassistant.components.zwave # homeassistant.components.zwave
homeassistant-pyozw==0.1.10 homeassistant-pyozw==0.1.10
@ -1125,7 +1125,7 @@ prometheus_client==0.7.1
protobuf==3.6.1 protobuf==3.6.1
# homeassistant.components.proxmoxve # homeassistant.components.proxmoxve
proxmoxer==1.1.0 proxmoxer==1.1.1
# homeassistant.components.systemmonitor # homeassistant.components.systemmonitor
psutil==5.7.0 psutil==5.7.0
@ -1610,7 +1610,7 @@ pysignalclirestapi==0.3.4
pysma==0.3.5 pysma==0.3.5
# homeassistant.components.smappee # homeassistant.components.smappee
pysmappee==0.1.0 pysmappee==0.1.2
# homeassistant.components.smartthings # homeassistant.components.smartthings
pysmartapp==0.3.2 pysmartapp==0.3.2

View File

@ -310,7 +310,7 @@ gios==0.1.1
glances_api==0.2.0 glances_api==0.2.0
# homeassistant.components.gogogate2 # homeassistant.components.gogogate2
gogogate2-api==1.0.3 gogogate2-api==1.0.4
# homeassistant.components.google # homeassistant.components.google
google-api-python-client==1.6.4 google-api-python-client==1.6.4
@ -343,7 +343,7 @@ hole==0.5.1
holidays==0.10.2 holidays==0.10.2
# homeassistant.components.frontend # homeassistant.components.frontend
home-assistant-frontend==20200701.0 home-assistant-frontend==20200702.0
# homeassistant.components.zwave # homeassistant.components.zwave
homeassistant-pyozw==0.1.10 homeassistant-pyozw==0.1.10
@ -715,7 +715,7 @@ pysignalclirestapi==0.3.4
pysma==0.3.5 pysma==0.3.5
# homeassistant.components.smappee # homeassistant.components.smappee
pysmappee==0.1.0 pysmappee==0.1.2
# homeassistant.components.smartthings # homeassistant.components.smartthings
pysmartapp==0.3.2 pysmartapp==0.3.2

View File

@ -1,5 +1,4 @@
"""Tests for the Withings component.""" """Tests for the Withings component."""
import time
from typing import Any from typing import Any
from unittest.mock import patch from unittest.mock import patch
@ -40,8 +39,8 @@ PERSON0 = new_profile_config(
MeasureGetMeasGroup( MeasureGetMeasGroup(
attrib=MeasureGetMeasGroupAttrib.DEVICE_ENTRY_FOR_USER, attrib=MeasureGetMeasGroupAttrib.DEVICE_ENTRY_FOR_USER,
category=MeasureGetMeasGroupCategory.REAL, category=MeasureGetMeasGroupCategory.REAL,
created=time.time(), created=arrow.utcnow().shift(hours=-1),
date=time.time(), date=arrow.utcnow().shift(hours=-1),
deviceid="DEV_ID", deviceid="DEV_ID",
grpid=1, grpid=1,
measures=( measures=(
@ -87,11 +86,61 @@ PERSON0 = new_profile_config(
), ),
), ),
), ),
MeasureGetMeasGroup(
attrib=MeasureGetMeasGroupAttrib.DEVICE_ENTRY_FOR_USER,
category=MeasureGetMeasGroupCategory.REAL,
created=arrow.utcnow().shift(hours=-2),
date=arrow.utcnow().shift(hours=-2),
deviceid="DEV_ID",
grpid=1,
measures=(
MeasureGetMeasMeasure(type=MeasureType.WEIGHT, unit=0, value=71),
MeasureGetMeasMeasure(
type=MeasureType.FAT_MASS_WEIGHT, unit=0, value=51
),
MeasureGetMeasMeasure(
type=MeasureType.FAT_FREE_MASS, unit=0, value=61
),
MeasureGetMeasMeasure(
type=MeasureType.MUSCLE_MASS, unit=0, value=51
),
MeasureGetMeasMeasure(type=MeasureType.BONE_MASS, unit=0, value=11),
MeasureGetMeasMeasure(type=MeasureType.HEIGHT, unit=0, value=21),
MeasureGetMeasMeasure(
type=MeasureType.TEMPERATURE, unit=0, value=41
),
MeasureGetMeasMeasure(
type=MeasureType.BODY_TEMPERATURE, unit=0, value=41
),
MeasureGetMeasMeasure(
type=MeasureType.SKIN_TEMPERATURE, unit=0, value=21
),
MeasureGetMeasMeasure(
type=MeasureType.FAT_RATIO, unit=-3, value=71
),
MeasureGetMeasMeasure(
type=MeasureType.DIASTOLIC_BLOOD_PRESSURE, unit=0, value=71
),
MeasureGetMeasMeasure(
type=MeasureType.SYSTOLIC_BLOOD_PRESSURE, unit=0, value=101
),
MeasureGetMeasMeasure(
type=MeasureType.HEART_RATE, unit=0, value=61
),
MeasureGetMeasMeasure(type=MeasureType.SP02, unit=-2, value=96),
MeasureGetMeasMeasure(
type=MeasureType.HYDRATION, unit=-2, value=96
),
MeasureGetMeasMeasure(
type=MeasureType.PULSE_WAVE_VELOCITY, unit=0, value=101
),
),
),
MeasureGetMeasGroup( MeasureGetMeasGroup(
attrib=MeasureGetMeasGroupAttrib.DEVICE_ENTRY_FOR_USER_AMBIGUOUS, attrib=MeasureGetMeasGroupAttrib.DEVICE_ENTRY_FOR_USER_AMBIGUOUS,
category=MeasureGetMeasGroupCategory.REAL, category=MeasureGetMeasGroupCategory.REAL,
created=time.time(), created=arrow.utcnow(),
date=time.time(), date=arrow.utcnow(),
deviceid="DEV_ID", deviceid="DEV_ID",
grpid=1, grpid=1,
measures=( measures=(