8000 0.115.3 (attempt 2) by frenck · Pull Request #40571 · home-assistant/core · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

0.115.3 (attempt 2) #40571

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 25 commits into from
Sep 25, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
a5f00d1
Use Cloud State as alternative state if condition unknown (#37121)
HarrisonPace Sep 22, 2020
3efda8d
Guard SolarEdge for inverters without batteries (#40295)
mhaack Sep 23, 2020
f1ee7fe
Ignore packets with missing dts in peek_first_pts (#40299)
uvjustin Sep 21, 2020
b3e2426
Axis - Fix list applications breaks if empty response (#40360)
Kane610 Sep 22, 2020
babaf48
Fix Met.no missing conditions in API forecasts (#40373)
thimic Sep 20, 2020
1901cc9
Bump pyinsteon to 1.0.8 (#40383)
teharris1 Sep 21, 2020
b1ac920
Fix OSError (#40393)
bieniu Sep 21, 2020
44be190
Fix handling of empty ws port (#40399)
OnFreund Sep 21, 2020
ed17a81
Validate Met.no forecast entries before passing them on to HA (#40400)
thimic Sep 21, 2020
532c624
Fix luci device_tracker incorrectly reporting devices status (#40409)
cagnulein Sep 22, 2020
6cccd87
Make modbus switch read_coil failure resistent (#40417)
janiversen Sep 23, 2020
297e530
Fix webostv supported features for "external_speaker" sound output (#…
pedrolamas Sep 22, 2020
95e6969
Fix regression in Nextcloud component (#40438)
meichthys Sep 22, 2020
34c0e0f
Fix proxy camera conversion with PNG Alpha(RGBA) (#40446)
square99 Sep 22, 2020
0168341
Bump accuweather library to version 0.0.11 (#40458)
bieniu Sep 22, 2020
f953454
Increase gogogate2 request timeout (#40461)
vangorra Sep 22, 2020
0ebeb16
Fix handling of quoted time_pattern values (#40470)
amelchio Sep 23, 2020
fe056f5
Ensure group state is recalculated when re-adding on reload (#40497)
bdraco Sep 23, 2020
ff39cd7
Disable audio in stream when audio stream profile is None (#40521)
uvjustin Sep 24, 2020
a404c51
Fix luci device_tracker when release is none (#40524)
cagnulein Sep 25, 2020
82c137d
Increase upnp timeout from 5 seconds to 10 seconds (#40540)
StevenLooman Sep 24, 2020
6bd72c3
Fix connection validation during import for dsmr integration (#40548)
RobBie1221 Sep 24, 2020
da7f206
Updated frontend to 20200918.2 (#40549)
bramkragten Sep 24, 2020
1c8e841
Fix bug in state trigger when using for: without to: (#40556)
KevinCathcart Sep 25, 2020
7be494f
Bumped version to 0.115.3
frenck Sep 25, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion homeassistant/components/accuweather/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"domain": "accuweather",
"name": "AccuWeather",
"documentation": "https://www.home-assistant.io/integrations/accuweather/",
"requirements": ["accuweather==0.0.10"],
"requirements": ["accuweather==0.0.11"],
"codeowners": ["@bieniu"],
"config_flow": true,
"quality_scale": "platinum"
Expand Down
8 changes: 4 additions & 4 deletions homeassistant/components/axis/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
"name": "Axis",
"config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/axis",
"requirements": ["axis==35"],
"requirements": ["axis==37"],
"zeroconf": [
{"type":"_axis-video._tcp.local.","macaddress":"00408C*"},
{"type":"_axis-video._tcp.local.","macaddress":"ACCC8E*"},
{"type":"_axis-video._tcp.local.","macaddress":"B8A44F*"}
{ "type": "_axis-video._tcp.local.", "macaddress": "00408C*" },
{ "type": "_axis-video._tcp.local.", "macaddress": "ACCC8E*" },
{ "type": "_axis-video._tcp.local.", "macaddress": "B8A44F*" }
],
"after_dependencies": ["mqtt"],
"codeowners": ["@Kane610"]
Expand Down
4 changes: 3 additions & 1 deletion homeassistant/components/bom/weather.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,9 @@ def name(self):
@property
def condition(self):
"""Return the current condition."""
return self.bom_data.get_reading("weather")
return self.bom_data.get_reading("weather") or self.bom_data.get_reading(
"cloud"
)

# Now implement the WeatherEntity interface

Expand Down
6 changes: 3 additions & 3 deletions homeassistant/components/dsmr/config_flow.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,9 @@ async def validate_connect(self, hass: core.HomeAssistant) -> bool:
"""Test if we can validate connection with the device."""

def update_telegram(telegram):
self._telegram = telegram

transport.close()
if obis_ref.EQUIPMENT_IDENTIFIER in telegram:
self._telegram = telegram
transport.close()

if self._host is None:
reader_factory = partial(
Expand Down
2 changes: 1 addition & 1 deletion homeassistant/components/frontend/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"domain": "frontend",
"name": "Home Assistant Frontend",
"documentation": "https://www.home-assistant.io/integrations/frontend",
"requirements": ["home-assistant-frontend==20200918.0"],
"requirements": ["home-assistant-frontend==20200918.2"],
"dependencies": [
"api",
"auth",
Expand Down
2 changes: 1 addition & 1 deletion homeassistant/components/gogogate2/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"name": "Gogogate2 and iSmartGate",
"config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/gogogate2",
"requirements": ["gogogate2-api==2.0.2"],
"requirements": ["gogogate2-api==2.0.3"],
"codeowne F438 rs": ["@vangorra"],
"homekit": {
"models": [
Expand Down
6 changes: 5 additions & 1 deletion homeassistant/components/group/cover.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
STATE_OPEN,
STATE_OPENING,
)
from homeassistant.core import State
from homeassistant.core import CoreState, State
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.event import async_track_state_change_event

Expand Down Expand Up @@ -162,6 +162,10 @@ async def async_added_to_hass(self):
self.hass, self._entities, self._update_supported_features_event
)
)

if self.hass.state == CoreState.running:
await self.async_update()
return
await super().async_added_to_hass()

@property
Expand Down
7 changes: 6 additions & 1 deletion homeassistant/components/group/light.py
10000
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
STATE_ON,
STATE_UNAVAILABLE,
)
from homeassistant.core import State
from homeassistant.core import CoreState, State
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.event import async_track_state_change_event
from homeassistant.helpers.typing import ConfigType, HomeAssistantType
Expand Down Expand Up @@ -111,6 +111,11 @@ async def async_state_changed_listener(event):
self.hass, self._entity_ids, async_state_changed_listener
)
)

if self.hass.state == CoreState.running:
await self.async_update()
return

await super().async_added_to_hass()

@property
Expand Down
2 changes: 1 addition & 1 deletion homeassistant/components/homeassistant/triggers/state.py
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ def _check_same_state(_, _2, new_st: State):
else:
cur_value = new_st.attributes.get(attribute)

if CONF_TO not in config:
if CONF_FROM in config and CONF_TO not in config:
return cur_value != old_value

return cur_value == new_value
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ def __call__(self, value):
if isinstance(value, str) and value.startswith("/"):
number = int(value[1:])
else:
number = int(value)
value = number = int(value)

if not (0 <= number <= self.maximum):
raise vol.Invalid(f"must be a value between 0 and {self.maximum}")
Expand Down
2 changes: 1 addition & 1 deletion homeassistant/components/insteon/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"domain": "insteon",
"name": "Insteon",
"documentation": "https://www.home-assistant.io/integrations/insteon",
"requirements": ["pyinsteon==1.0.7"],
"requirements": ["pyinsteon==1.0.8"],
"codeowners": ["@teharris1"],
"config_flow": true
}
4 changes: 4 additions & 0 deletions homeassistant/components/kodi/config_flow.py
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,10 @@ async def async_step_ws_port(self, user_input=None):
if user_input is not None:
self._ws_port = user_input.get(CONF_WS_PORT)

# optional ints return 0 rather than None when empty
if self._ws_port == 0:
self._ws_port = None

try:
await validate_ws(self.hass, self._get_data())
except WSCannotConnect:
Expand Down
7 changes: 6 additions & 1 deletion homeassistant/components/luci/device_tracker.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,12 @@ def _update_info(self):

last_results = []
for device in result:
if device.reachable:
if (
not hasattr(self.router.router.owrt_version, "release")
or not self.router.router.owrt_version.release
or self.router.router.owrt_version.release[0] < 19
or device.reachable
):
last_results.append(device)

self.last_results = last_results
12 changes: 9 additions & 3 deletions homeassistant/components/met/weather.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@

from homeassistant.components.weather import (
ATTR_FORECAST_CONDITION,
ATTR_FORECAST_TEMP,
ATTR_FORECAST_TIME,
ATTR_WEATHER_HUMIDITY,
ATTR_WEATHER_PRESSURE,
ATTR_WEATHER_TEMPERATURE,
Expand Down Expand Up @@ -209,13 +211,17 @@ def forecast(self):
met_forecast = self.coordinator.data.hourly_forecast
else:
met_forecast = self.coordinator.data.daily_forecast
required_keys = {ATTR_FORECAST_TEMP, ATTR_FORECAST_TIME}
ha_forecast = []
for met_item in met_forecast:
if not set(met_item).issuperset(required_keys):
continue
ha_item = {
k: met_item[v] for k, v in FORECAST_MAP.items() if met_item.get(v)
}
ha_item[ATTR_FORECAST_CONDITION] = format_condition(
ha_item[ATTR_FORECAST_CONDITION]
)
if ha_item.get(ATTR_FORECAST_CONDITION):
ha_item[ATTR_FORECAST_CONDITION] = format_condition(
ha_item[ATTR_FORECAST_CONDITION]
)
ha_forecast.append(ha_item)
return ha_forecast
11 changes: 7 additions & 4 deletions homeassistant/components/modbus/switch.py
Original file line number Diff line number Diff line change
Expand Up @@ -158,20 +158,23 @@ def update(self):
"""Update the state of the switch."""
self._is_on = self._read_coil(self._coil)

def _read_coil(self, coil) -> Optional[bool]:
def _read_coil(self, coil) -> bool:
"""Read coil using the Modbus hub slave."""
try:
result = self._hub.read_coils(self._slave, coil, 1)
except ConnectionException:
self._available = False
return
return False

if isinstance(result, (ModbusException, ExceptionResponse)):
self._available = False
return
return False

self._available = True
return bool(result.bits[coil])
# bits[0] select the lowest bit in result,
# is_on for a binary_sensor is true if the bit are 1
# The other bits are not considered.
return bool(result.bits[0])

def _write_coil(self, coil, value):
"""Write coil using the Modbus hub slave."""
Expand Down
1 change: 1 addition & 0 deletions homeassistant/components/nextcloud/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ def setup(hass, config):
_LOGGER.error("Nextcloud setup failed - Check configuration")

hass.data[DOMAIN] = get_data_points(ncm.data)
hass.data[DOMAIN]["instance"] = conf[CONF_URL]

def nextcloud_update(event_time):
"""Update data from nextcloud api."""
Expand Down
2 changes: 2 additions & 0 deletions homeassistant/components/proxy/camera.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,8 @@ def _precheck_image(image, opts):
if imgfmt not in ("PNG", "JPEG"):
_LOGGER.warning("Image is of unsupported type: %s", imgfmt)
raise ValueError()
if not img.mode == "RGB":
img = img.convert("RGB")
return img


Expand Down
2 changes: 1 addition & 1 deletion homeassistant/components/shelly/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ async def _async_update_data(self):
try:
async with async_timeout.timeout(5):
return await self.device.update()
except aiocoap_error.Error as err:
except (aiocoap_error.Error, OSError) as err:
raise update_coordinator.UpdateFailed("Error fetching data") from err

@property
Expand Down
3 changes: 2 additions & 1 deletion homeassistant/components/solaredge/sensor.py
Original file line number Diff line number Diff line change
Expand Up @@ -267,7 +267,8 @@ def update(self):
"""Get the latest inventory data and update state and attributes."""
self.data_service.update()
attr = self.data_service.attributes.get(self._json_key)
self._state = attr["soc"]
if attr and "soc" in attr:
self._state = attr["soc"]


class SolarEdgeDataService:
Expand Down
11 changes: 10 additions & 1 deletion homeassistant/components/stream/worker.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,9 @@ def _stream_worker_internal(hass, stream, quit_event):
# compatible with empty_moov and manual bitstream filters not in PyAV
if container.format.name in {"hls", "mpegts"}:
audio_stream = None
# Some audio streams do not have a profile and throw errors when remuxing
if audio_stream and audio_stream.profile is None:
audio_stream = None

# The presentation timestamps of the first packet in each stream we receive
# Use to adjust before muxing or outputting, but we don't adjust internally
Expand Down Expand Up @@ -113,14 +116,20 @@ def empty_stream_dict():
# Get to first video keyframe
while first_packet[video_stream] is None:
packet = next(container.demux())
if packet.stream == video_stream and packet.is_keyframe:
if (
packet.stream == video_stream
and packet.is_keyframe
and packet.dts is not None
):
first_packet[video_stream] = packet
initial_packets.append(packet)
# Get first_pts from subsequent frame to first keyframe
while any(
[pts is None for pts in {**first_packet, **first_pts}.values()]
) and (len(initial_packets) < PACKETS_TO_WAIT_FOR_AUDIO):
packet = next(container.demux((video_stream, audio_stream)))
if packet.dts is None:
continue # Discard packets with no dts
if (
first_packet[packet.stream] is None
): # actually video already found above so only for audio
Expand Down
2 changes: 1 addition & 1 deletion homeassistant/components/upnp/device.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ async def async_create_device(cls, hass: HomeAssistantType, ssdp_location: str):
"""Create UPnP/IGD device."""
# build async_upnp_client requester
session = async_get_clientsession(hass)
requester = AiohttpSessionRequester(session, True)
requester = AiohttpSessionRequester(session, True, 10)

# create async_upnp_client device
factory = UpnpFactory(requester, disable_state_variable_validation=True)
Expand Down
4 changes: 3 additions & 1 deletion homeassistant/components/webostv/media_player.py
Original file line number Diff line number Diff line change
Expand Up @@ -305,7 +305,9 @@ def supported_features(self):
"""Flag media player features that are supported."""
supported = SUPPORT_WEBOSTV

if self._client.sound_output == "external_arc":
if (self._client.sound_output == "external_arc") or (
self._client.sound_output == "external_speaker"
):
supported = supported | SUPPORT_WEBOSTV_VOLUME
elif self._client.sound_output != "lineout":
supported = supported | SUPPORT_WEBOSTV_VOLUME | SUPPORT_VOLUME_SET
Expand Down
2 changes: 1 addition & 1 deletion homeassistant/const.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"""Constants used by Home Assistant components."""
MAJOR_VERSION = 0
MINOR_VERSION = 115
PATCH_VERSION = "2"
PATCH_VERSION = "3"
__short_version__ = f"{MAJOR_VERSION}.{MINOR_VERSION}"
__version__ = f"{__short_version__}.{PATCH_VERSION}"
REQUIRED_PYTHON_VER = (3, 7, 1)
Expand Down
2 changes: 1 addition & 1 deletion homeassistant/package_constraints.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ defusedxml==0.6.0
distro==1.5.0
emoji==0.5.4
hass-nabucasa==0.37.0
home-assistant-frontend==20200918.0
home-assistant-frontend==20200918.2
importlib-metadata==1.6.0;python_version<'3.8'
jinja2>=2.11.2
netdisco==2.8.2
Expand Down
10 changes: 5 additions & 5 deletions requirements_all.txt
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ YesssSMS==0.4.1
abodepy==1.1.0

# homeassistant.components.accuweather
accuweather==0.0.10
accuweather==0.0.11

# homeassistant.components.mcp23017
adafruit-blinka==3.9.0
Expand Down Expand Up @@ -309,7 +309,7 @@ av==8.0.2
avri-api==0.1.7

# homeassistant.components.axis
axis==35
axis==37

# homeassistant.components.azure_event_hub
azure-eventhub==5.1.0
Expand Down Expand Up @@ -669,7 +669,7 @@ glances_api==0.2.0
gntp==1.0.3

# homeassistant.components.gogogate2
gogogate2-api==2.0.2
gogogate2-api==2.0.3

# homeassistant.components.google
google-api-python-client==1.6.4
Expand Down Expand Up @@ -747,7 +747,7 @@ hole==0.5.1
holidays==0.10.3

# homeassistant.components.frontend
home-assistant-frontend==20200918.0
home-assistant-frontend==20200918.2

# homeassistant.components.zwave
homeassistant-pyozw==0.1.10
Expand Down Expand Up @@ -1401,7 +1401,7 @@ pyialarm==0.3
pyicloud==0.9.7

# homeassistant.components.insteon
pyinsteon==1.0.7
pyinsteon==1.0.8

# homeassistant.components.intesishome
pyintesishome==1.7.5
Expand Down
Loading
0