Merge pull request #42724 from home-assistant/rc

This commit is contained in:
Paulus Schoutsen 2020-11-01 21:29:21 +01:00 committed by GitHub
commit 6c51ff63ad
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
18 changed files with 59 additions and 51 deletions

View File

@ -78,6 +78,7 @@ class CanaryCamera(CoordinatorEntity, Camera):
def __init__(self, hass, coordinator, location_id, device, timeout, ffmpeg_args):
"""Initialize a Canary security camera."""
super().__init__(coordinator)
Camera.__init__(self)
self._ffmpeg = hass.data[DATA_FFMPEG]
self._ffmpeg_arguments = ffmpeg_args
self._location_id = location_id

View File

@ -2,7 +2,7 @@
"domain": "cloudflare",
"name": "Cloudflare",
"documentation": "https://www.home-assistant.io/integrations/cloudflare",
"requirements": ["pycfdns==1.1.1"],
"requirements": ["pycfdns==1.2.1"],
"codeowners": ["@ludeeus", "@ctalkington"],
"config_flow": true
}

View File

@ -321,7 +321,7 @@ class FibaroThermostat(FibaroDevice, ClimateEntity):
"""Return the current temperature."""
if self._temp_sensor_device:
device = self._temp_sensor_device.fibaro_device
if device.properties.heatingThermostatSetpoint:
if "heatingThermostatSetpoint" in device.properties:
return float(device.properties.heatingThermostatSetpoint)
return float(device.properties.value)
return None
@ -331,7 +331,7 @@ class FibaroThermostat(FibaroDevice, ClimateEntity):
"""Return the temperature we try to reach."""
if self._target_temp_device:
device = self._target_temp_device.fibaro_device
if device.properties.heatingThermostatSetpointFuture:
if "heatingThermostatSetpointFuture" in device.properties:
return float(device.properties.heatingThermostatSetpointFuture)
return float(device.properties.targetLevel)
return None

View File

@ -2,6 +2,6 @@
"domain": "geo_rss_events",
"name": "GeoRSS",
"documentation": "https://www.home-assistant.io/integrations/geo_rss_events",
"requirements": ["georss_generic_client==0.3"],
"requirements": ["georss_generic_client==0.4"],
"codeowners": ["@exxamalte"]
}

View File

@ -9,7 +9,7 @@ from datetime import timedelta
import logging
from georss_client import UPDATE_OK, UPDATE_OK_NO_DATA
from georss_client.generic_feed import GenericFeed
from georss_generic_client import GenericFeed
import voluptuous as vol
from homeassistant.components.sensor import PLATFORM_SCHEMA

View File

@ -3,7 +3,7 @@
"name": "Lutron Caséta",
"documentation": "https://www.home-assistant.io/integrations/lutron_caseta",
"requirements": [
"pylutron-caseta==0.7.0"
"pylutron-caseta==0.7.1"
],
"codeowners": [
"@swails"

View File

@ -74,6 +74,14 @@ class EventManager:
async def async_start(self) -> bool:
"""Start polling events."""
if await self.device.create_pullpoint_subscription():
# Create subscription manager
self._subscription = self.device.create_subscription_service(
"PullPointSubscription"
)
# Renew immediately
await self.async_renew()
# Initialize events
pullpoint = self.device.create_pullpoint_service()
try:
@ -87,11 +95,6 @@ class EventManager:
# Parse event initialization
await self.async_parse_messages(response.NotificationMessage)
# Create subscription manager
self._subscription = self.device.create_subscription_service(
"PullPointSubscription"
)
self.started = True
return True

View File

@ -2,6 +2,6 @@
"domain": "rpi_gpio_pwm",
"name": "pigpio Daemon PWM LED",
"documentation": "https://www.home-assistant.io/integrations/rpi_gpio_pwm",
"requirements": ["pwmled==1.5.3"],
"requirements": ["pwmled==1.6.6"],
"codeowners": []
}

View File

@ -1,6 +1,7 @@
"""Support for Tasmota sensors."""
from typing import Optional
from hatasmota import status_sensor
from hatasmota.const import (
SENSOR_AMBIENT,
SENSOR_APPARENT_POWERUSAGE,
@ -162,7 +163,7 @@ class TasmotaSensor(TasmotaAvailability, TasmotaDiscoveryUpdate, Entity):
def entity_registry_enabled_default(self) -> bool:
"""Return if the entity should be enabled when first added to the entity registry."""
# Hide status sensors to not overwhelm users
if self._tasmota_entity.quantity == SENSOR_STATUS_SIGNAL:
if self._tasmota_entity.quantity in status_sensor.SENSORS:
return False
return True

View File

@ -637,7 +637,7 @@ class ZHAGateway:
_LOGGER.debug("Shutting down ZHA ControllerApplication")
for unsubscribe in self._unsubs:
unsubscribe()
await self.application_controller.shutdown()
await self.application_controller.pre_shutdown()
@callback

View File

@ -9,7 +9,7 @@
"zha-quirks==0.0.45",
"zigpy-cc==0.5.2",
"zigpy-deconz==0.11.0",
"zigpy==0.26.0",
"zigpy==0.27.0",
"zigpy-xbee==0.13.0",
"zigpy-zigate==0.6.2",
"zigpy-znp==0.2.2"

View File

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

View File

@ -638,7 +638,7 @@ geojson_client==0.4
geopy==1.21.0
# homeassistant.components.geo_rss_events
georss_generic_client==0.3
georss_generic_client==0.4
# homeassistant.components.ign_sismologia
georss_ign_sismologia_client==0.2
@ -1182,7 +1182,7 @@ pushbullet.py==0.11.0
pushover_complete==1.1.1
# homeassistant.components.rpi_gpio_pwm
pwmled==1.5.3
pwmled==1.6.6
# homeassistant.components.august
py-august==0.25.0
@ -1288,7 +1288,7 @@ pybotvac==0.0.17
pycarwings2==2.9
# homeassistant.components.cloudflare
pycfdns==1.1.1
pycfdns==1.2.1
# homeassistant.components.channels
pychannels==1.0.0
@ -1487,7 +1487,7 @@ pylitejet==0.1
pyloopenergy==0.2.1
# homeassistant.components.lutron_caseta
pylutron-caseta==0.7.0
pylutron-caseta==0.7.1
# homeassistant.components.lutron
pylutron==0.2.5
@ -2355,7 +2355,7 @@ zigpy-zigate==0.6.2
zigpy-znp==0.2.2
# homeassistant.components.zha
zigpy==0.26.0
zigpy==0.27.0
# homeassistant.components.zoneminder
zm-py==0.4.0

View File

@ -315,7 +315,7 @@ geojson_client==0.4
geopy==1.21.0
# homeassistant.components.geo_rss_events
georss_generic_client==0.3
georss_generic_client==0.4
# homeassistant.components.ign_sismologia
georss_ign_sismologia_client==0.2
@ -636,7 +636,7 @@ pyblackbird==0.5
pybotvac==0.0.17
# homeassistant.components.cloudflare
pycfdns==1.1.1
pycfdns==1.2.1
# homeassistant.components.cast
pychromecast==7.5.1
@ -730,7 +730,7 @@ pylibrespot-java==0.1.0
pylitejet==0.1
# homeassistant.components.lutron_caseta
pylutron-caseta==0.7.0
pylutron-caseta==0.7.1
# homeassistant.components.mailgun
pymailgunner==1.4
@ -1124,4 +1124,4 @@ zigpy-zigate==0.6.2
zigpy-znp==0.2.2
# homeassistant.components.zha
zigpy==0.26.0
zigpy==0.27.0

View File

@ -32,7 +32,7 @@ from .common import (
send_attributes_report,
)
from tests.async_mock import AsyncMock, MagicMock, call, patch
from tests.async_mock import AsyncMock, MagicMock, patch
from tests.common import async_capture_events, mock_coro, mock_restore_cache
@ -144,9 +144,10 @@ async def test_cover(m1, hass, zha_device_joined_restored, zigpy_cover_device):
DOMAIN, SERVICE_CLOSE_COVER, {"entity_id": entity_id}, blocking=True
)
assert cluster.request.call_count == 1
assert cluster.request.call_args == call(
False, 0x1, (), expect_reply=True, manufacturer=None, tsn=None
)
assert cluster.request.call_args[0][0] is False
assert cluster.request.call_args[0][1] == 0x01
assert cluster.request.call_args[0][2] == ()
assert cluster.request.call_args[1]["expect_reply"] is True
# open from UI
with patch(
@ -156,9 +157,10 @@ async def test_cover(m1, hass, zha_device_joined_restored, zigpy_cover_device):
DOMAIN, SERVICE_OPEN_COVER, {"entity_id": entity_id}, blocking=True
)
assert cluster.request.call_count == 1
assert cluster.request.call_args == call(
False, 0x0, (), expect_reply=True, manufacturer=None, tsn=None
)
assert cluster.request.call_args[0][0] is False
assert cluster.request.call_args[0][1] == 0x00
assert cluster.request.call_args[0][2] == ()
assert cluster.request.call_args[1]["expect_reply"] is True
# set position UI
with patch(
@ -171,15 +173,11 @@ async def test_cover(m1, hass, zha_device_joined_restored, zigpy_cover_device):
blocking=True,
)
assert cluster.request.call_count == 1
assert cluster.request.call_args == call(
False,
0x5,
(zigpy.types.uint8_t,),
53,
expect_reply=True,
manufacturer=None,
tsn=None,
)
assert cluster.request.call_args[0][0] is False
assert cluster.request.call_args[0][1] == 0x05
assert cluster.request.call_args[0][2] == (zigpy.types.uint8_t,)
assert cluster.request.call_args[0][3] == 53
assert cluster.request.call_args[1]["expect_reply"] is True
# stop from UI
with patch(
@ -189,9 +187,10 @@ async def test_cover(m1, hass, zha_device_joined_restored, zigpy_cover_device):
DOMAIN, SERVICE_STOP_COVER, {"entity_id": entity_id}, blocking=True
)
assert cluster.request.call_count == 1
assert cluster.request.call_args == call(
False, 0x2, (), expect_reply=True, manufacturer=None, tsn=None
)
assert cluster.request.call_args[0][0] is False
assert cluster.request.call_args[0][1] == 0x02
assert cluster.request.call_args[0][2] == ()
assert cluster.request.call_args[1]["expect_reply"] is True
# test rejoin
await async_test_rejoin(hass, zigpy_cover_device, [cluster], (1,))

View File

@ -113,6 +113,7 @@ async def test_devices(
0,
expect_reply=True,
manufacturer=None,
tries=1,
tsn=None,
)

View File

@ -323,7 +323,7 @@ async def async_test_on_off_from_hass(hass, cluster, entity_id):
assert cluster.request.call_count == 1
assert cluster.request.await_count == 1
assert cluster.request.call_args == call(
False, ON, (), expect_reply=True, manufacturer=None, tsn=None
False, ON, (), expect_reply=True, manufacturer=None, tries=1, tsn=None
)
await async_test_off_from_hass(hass, cluster, entity_id)
@ -340,7 +340,7 @@ async def async_test_off_from_hass(hass, cluster, entity_id):
assert cluster.request.call_count == 1
assert cluster.request.await_count == 1
assert cluster.request.call_args == call(
False, OFF, (), expect_reply=True, manufacturer=None, tsn=None
False, OFF, (), expect_reply=True, manufacturer=None, tries=1, tsn=None
)
@ -360,7 +360,7 @@ async def async_test_level_on_off_from_hass(
assert level_cluster.request.call_count == 0
assert level_cluster.request.await_count == 0
assert on_off_cluster.request.call_args == call(
False, ON, (), expect_reply=True, manufacturer=None, tsn=None
False, ON, (), expect_reply=True, manufacturer=None, tries=1, tsn=None
)
on_off_cluster.request.reset_mock()
level_cluster.request.reset_mock()
@ -373,7 +373,7 @@ async def async_test_level_on_off_from_hass(
assert level_cluster.request.call_count == 1
assert level_cluster.request.await_count == 1
assert on_off_cluster.request.call_args == call(
False, ON, (), expect_reply=True, manufacturer=None, tsn=None
False, ON, (), expect_reply=True, manufacturer=None, tries=1, tsn=None
)
assert level_cluster.request.call_args == call(
False,
@ -383,6 +383,7 @@ async def async_test_level_on_off_from_hass(
100.0,
expect_reply=True,
manufacturer=None,
tries=1,
tsn=None,
)
on_off_cluster.request.reset_mock()
@ -396,7 +397,7 @@ async def async_test_level_on_off_from_hass(
assert level_cluster.request.call_count == 1
assert level_cluster.request.await_count == 1
assert on_off_cluster.request.call_args == call(
False, ON, (), expect_reply=True, manufacturer=None, tsn=None
False, ON, (), expect_reply=True, manufacturer=None, tries=1, tsn=None
)
assert level_cluster.request.call_args == call(
False,
@ -406,6 +407,7 @@ async def async_test_level_on_off_from_hass(
1,
expect_reply=True,
manufacturer=None,
tries=1,
tsn=None,
)
on_off_cluster.request.reset_mock()
@ -445,6 +447,7 @@ async def async_test_flash_from_hass(hass, cluster, entity_id, flash):
0,
expect_reply=True,
manufacturer=None,
tries=1,
tsn=None,
)

View File

@ -136,7 +136,7 @@ async def test_switch(hass, zha_device_joined_restored, zigpy_device):
)
assert len(cluster.request.mock_calls) == 1
assert cluster.request.call_args == call(
False, ON, (), expect_reply=True, manufacturer=None, tsn=None
False, ON, (), expect_reply=True, manufacturer=None, tries=1, tsn=None
)
# turn off from HA
@ -150,7 +150,7 @@ async def test_switch(hass, zha_device_joined_restored, zigpy_device):
)
assert len(cluster.request.mock_calls) == 1
assert cluster.request.call_args == call(
False, OFF, (), expect_reply=True, manufacturer=None, tsn=None
False, OFF, (), expect_reply=True, manufacturer=None, tries=1, tsn=None
)
# test joining a new switch to the network and HA