From af87168ca3289f60577bd2dcb9a6102287c1e1a1 Mon Sep 17 00:00:00 2001 From: Sava Tshontikidis <45082385+stshontikidis@users.noreply.github.com> Date: Wed, 8 Jul 2020 17:25:21 -0400 Subject: [PATCH 01/10] Add kwargs to send_magic_packet() service individually (#37387) --- .../components/wake_on_lan/__init__.py | 22 ++--- .../components/wake_on_lan/switch.py | 22 +++-- tests/components/wake_on_lan/test_init.py | 26 +++++- tests/components/wake_on_lan/test_switch.py | 86 ++++++++++++++++--- 4 files changed, 124 insertions(+), 32 deletions(-) diff --git a/homeassistant/components/wake_on_lan/__init__.py b/homeassistant/components/wake_on_lan/__init__.py index 1600f70a15f..8262c461ec5 100644 --- a/homeassistant/components/wake_on_lan/__init__.py +++ b/homeassistant/components/wake_on_lan/__init__.py @@ -31,23 +31,23 @@ async def async_setup(hass, config): mac_address = call.data.get(CONF_MAC) broadcast_address = call.data.get(CONF_BROADCAST_ADDRESS) broadcast_port = call.data.get(CONF_BROADCAST_PORT) + + service_kwargs = {} + if broadcast_address is not None: + service_kwargs["ip_address"] = broadcast_address + if broadcast_port is not None: + service_kwargs["port"] = broadcast_port + _LOGGER.info( "Send magic packet to mac %s (broadcast: %s, port: %s)", mac_address, broadcast_address, broadcast_port, ) - if broadcast_address is not None: - await hass.async_add_job( - partial( - wakeonlan.send_magic_packet, - mac_address, - ip_address=broadcast_address, - port=broadcast_port, - ) - ) - else: - await hass.async_add_job(partial(wakeonlan.send_magic_packet, mac_address)) + + await hass.async_add_job( + partial(wakeonlan.send_magic_packet, mac_address, **service_kwargs) + ) hass.services.async_register( DOMAIN, diff --git a/homeassistant/components/wake_on_lan/switch.py b/homeassistant/components/wake_on_lan/switch.py index 8f26e19d2e0..dc6ea358acd 100644 --- a/homeassistant/components/wake_on_lan/switch.py +++ b/homeassistant/components/wake_on_lan/switch.py @@ -96,14 +96,20 @@ class WolSwitch(SwitchEntity): def turn_on(self, **kwargs): """Turn the device on.""" - if self._broadcast_address: - wakeonlan.send_magic_packet( - self._mac_address, - ip_address=self._broadcast_address, - port=self._broadcast_port, - ) - else: - wakeonlan.send_magic_packet(self._mac_address) + service_kwargs = {} + if self._broadcast_address is not None: + service_kwargs["ip_address"] = self._broadcast_address + if self._broadcast_port is not None: + service_kwargs["port"] = self._broadcast_port + + _LOGGER.info( + "Send magic packet to mac %s (broadcast: %s, port: %s)", + self._mac_address, + self._broadcast_address, + self._broadcast_port, + ) + + wakeonlan.send_magic_packet(self._mac_address, **service_kwargs) def turn_off(self, **kwargs): """Turn the device off if an off action is present.""" diff --git a/tests/components/wake_on_lan/test_init.py b/tests/components/wake_on_lan/test_init.py index 331f66b03d8..60a725a7f9e 100644 --- a/tests/components/wake_on_lan/test_init.py +++ b/tests/components/wake_on_lan/test_init.py @@ -28,6 +28,28 @@ async def test_send_magic_packet(hass): assert mocked_wakeonlan.mock_calls[-1][2]["ip_address"] == bc_ip assert mocked_wakeonlan.mock_calls[-1][2]["port"] == bc_port + await hass.services.async_call( + DOMAIN, + SERVICE_SEND_MAGIC_PACKET, + {"mac": mac, "broadcast_address": bc_ip}, + blocking=True, + ) + assert len(mocked_wakeonlan.mock_calls) == 2 + assert mocked_wakeonlan.mock_calls[-1][1][0] == mac + assert mocked_wakeonlan.mock_calls[-1][2]["ip_address"] == bc_ip + assert "port" not in mocked_wakeonlan.mock_calls[-1][2] + + await hass.services.async_call( + DOMAIN, + SERVICE_SEND_MAGIC_PACKET, + {"mac": mac, "broadcast_port": bc_port}, + blocking=True, + ) + assert len(mocked_wakeonlan.mock_calls) == 3 + assert mocked_wakeonlan.mock_calls[-1][1][0] == mac + assert mocked_wakeonlan.mock_calls[-1][2]["port"] == bc_port + assert "ip_address" not in mocked_wakeonlan.mock_calls[-1][2] + with pytest.raises(vol.Invalid): await hass.services.async_call( DOMAIN, @@ -35,11 +57,11 @@ async def test_send_magic_packet(hass): {"broadcast_address": bc_ip}, blocking=True, ) - assert len(mocked_wakeonlan.mock_calls) == 1 + assert len(mocked_wakeonlan.mock_calls) == 3 await hass.services.async_call( DOMAIN, SERVICE_SEND_MAGIC_PACKET, {"mac": mac}, blocking=True ) - assert len(mocked_wakeonlan.mock_calls) == 2 + assert len(mocked_wakeonlan.mock_calls) == 4 assert mocked_wakeonlan.mock_calls[-1][1][0] == mac assert not mocked_wakeonlan.mock_calls[-1][2] diff --git a/tests/components/wake_on_lan/test_switch.py b/tests/components/wake_on_lan/test_switch.py index ce5dbca9585..b6747062ce5 100644 --- a/tests/components/wake_on_lan/test_switch.py +++ b/tests/components/wake_on_lan/test_switch.py @@ -5,18 +5,13 @@ import homeassistant.components.switch as switch from homeassistant.const import STATE_OFF, STATE_ON from homeassistant.setup import setup_component -from tests.async_mock import patch +from tests.async_mock import Mock, patch from tests.common import get_test_home_assistant, mock_service from tests.components.switch import common TEST_STATE = None -def send_magic_packet(*macs, **kwargs): - """Fake call for sending magic packets.""" - return - - def call(cmd, stdout, stderr): """Return fake subprocess return codes.""" if cmd[5] == "validhostname" and TEST_STATE: @@ -32,6 +27,8 @@ def system(): class TestWolSwitch(unittest.TestCase): """Test the wol switch.""" + send_magic_packet = Mock(return_value=None) + def setUp(self): """Set up things to be run when tests are started.""" self.hass = get_test_home_assistant() @@ -116,17 +113,22 @@ class TestWolSwitch(unittest.TestCase): @patch("wakeonlan.send_magic_packet", new=send_magic_packet) @patch("subprocess.call", new=call) - def test_broadcast_config(self): - """Test with broadcast address config.""" + def test_broadcast_config_ip_and_port(self): + """Test with broadcast address and broadcast port config.""" + + mac = "00-01-02-03-04-05" + broadcast_address = "255.255.255.255" + port = 999 + assert setup_component( self.hass, switch.DOMAIN, { "switch": { "platform": "wake_on_lan", - "mac": "00-01-02-03-04-05", - "broadcast_address": "255.255.255.255", - "broadcast_port": 999, + "mac": mac, + "broadcast_address": broadcast_address, + "broadcast_port": port, } }, ) @@ -138,6 +140,68 @@ class TestWolSwitch(unittest.TestCase): common.turn_on(self.hass, "switch.wake_on_lan") self.hass.block_till_done() + self.send_magic_packet.assert_called_with( + mac, ip_address=broadcast_address, port=port + ) + + @patch("wakeonlan.send_magic_packet", new=send_magic_packet) + @patch("subprocess.call", new=call) + def test_broadcast_config_ip(self): + """Test with only broadcast address.""" + + mac = "00-01-02-03-04-05" + broadcast_address = "255.255.255.255" + + assert setup_component( + self.hass, + switch.DOMAIN, + { + "switch": { + "platform": "wake_on_lan", + "mac": mac, + "broadcast_address": broadcast_address, + } + }, + ) + self.hass.block_till_done() + + state = self.hass.states.get("switch.wake_on_lan") + assert STATE_OFF == state.state + + common.turn_on(self.hass, "switch.wake_on_lan") + self.hass.block_till_done() + + self.send_magic_packet.assert_called_with(mac, ip_address=broadcast_address) + + @patch("wakeonlan.send_magic_packet", new=send_magic_packet) + @patch("subprocess.call", new=call) + def test_broadcast_config_port(self): + """Test with only broadcast port config.""" + + mac = "00-01-02-03-04-05" + port = 999 + + assert setup_component( + self.hass, + switch.DOMAIN, + { + "switch": { + "platform": "wake_on_lan", + "mac": mac, + "broadcast_port": port, + } + }, + ) + self.hass.block_till_done() + + state = self.hass.states.get("switch.wake_on_lan") + assert STATE_OFF == state.state + + common.turn_on(self.hass, "switch.wake_on_lan") + self.hass.block_till_done() + + self.send_magic_packet.assert_called_with(mac, port=port) + @patch("wakeonlan.send_magic_packet", new=send_magic_packet) @patch("subprocess.call", new=call) def test_off_script(self): From aac65416ffa2aa4e7e7b38dc08919f18f3ce04a7 Mon Sep 17 00:00:00 2001 From: therealryanbonham <33603723+therealryanbonham@users.noreply.github.com> Date: Fri, 3 Jul 2020 07:59:30 -0400 Subject: [PATCH 02/10] Upgrade sonar to 0.2.3 (#37392) Co-authored-by: Ryan Bonham --- homeassistant/components/sonarr/manifest.json | 2 +- requirements_all.txt | 2 +- requirements_test_all.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/sonarr/manifest.json b/homeassistant/components/sonarr/manifest.json index c1edb8ec521..3cd6e88913b 100644 --- a/homeassistant/components/sonarr/manifest.json +++ b/homeassistant/components/sonarr/manifest.json @@ -3,7 +3,7 @@ "name": "Sonarr", "documentation": "https://www.home-assistant.io/integrations/sonarr", "codeowners": ["@ctalkington"], - "requirements": ["sonarr==0.2.2"], + "requirements": ["sonarr==0.2.3"], "config_flow": true, "quality_scale": "silver" } diff --git a/requirements_all.txt b/requirements_all.txt index 4ad1c559626..48519dd44c9 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -2003,7 +2003,7 @@ somecomfort==0.5.2 somfy-mylink-synergy==1.0.6 # homeassistant.components.sonarr -sonarr==0.2.2 +sonarr==0.2.3 # homeassistant.components.marytts speak2mary==1.4.0 diff --git a/requirements_test_all.txt b/requirements_test_all.txt index b564c9369e1..629d48acad0 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -853,7 +853,7 @@ solaredge==0.0.2 somecomfort==0.5.2 # homeassistant.components.sonarr -sonarr==0.2.2 +sonarr==0.2.3 # homeassistant.components.marytts speak2mary==1.4.0 From a30b5690f84fad6154f07f3ccf6f454ee17e3053 Mon Sep 17 00:00:00 2001 From: bsmappee <58250533+bsmappee@users.noreply.github.com> Date: Tue, 7 Jul 2020 16:15:52 +0200 Subject: [PATCH 03/10] Place smappee supported configurations after device class (#37595) --- homeassistant/components/smappee/sensor.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/homeassistant/components/smappee/sensor.py b/homeassistant/components/smappee/sensor.py index 77578533749..61f7af05690 100644 --- a/homeassistant/components/smappee/sensor.py +++ b/homeassistant/components/smappee/sensor.py @@ -88,48 +88,48 @@ VOLTAGE_SENSORS = { "mdi:flash", VOLT, "phase_voltage_a", - ["ONE", "TWO", "THREE_STAR", "THREE_DELTA"], None, + ["ONE", "TWO", "THREE_STAR", "THREE_DELTA"], ], "phase_voltages_b": [ "Phase voltages - B", "mdi:flash", VOLT, "phase_voltage_b", - ["TWO", "THREE_STAR", "THREE_DELTA"], None, + ["TWO", "THREE_STAR", "THREE_DELTA"], ], "phase_voltages_c": [ "Phase voltages - C", "mdi:flash", VOLT, "phase_voltage_c", - ["THREE_STAR"], None, + ["THREE_STAR"], ], "line_voltages_a": [ "Line voltages - A", "mdi:flash", VOLT, "line_voltage_a", - ["ONE", "TWO", "THREE_STAR", "THREE_DELTA"], None, + ["ONE", "TWO", "THREE_STAR", "THREE_DELTA"], ], "line_voltages_b": [ "Line voltages - B", "mdi:flash", VOLT, "line_voltage_b", - ["TWO", "THREE_STAR", "THREE_DELTA"], None, + ["TWO", "THREE_STAR", "THREE_DELTA"], ], "line_voltages_c": [ "Line voltages - C", "mdi:flash", VOLT, "line_voltage_c", - ["THREE_STAR", "THREE_DELTA"], None, + ["THREE_STAR", "THREE_DELTA"], ], } @@ -182,7 +182,7 @@ async def async_setup_entry(hass, config_entry, async_add_entities): # Add phase- and line voltages for sensor_name, sensor in VOLTAGE_SENSORS.items(): - if service_location.phase_type in sensor[4]: + if service_location.phase_type in sensor[5]: entities.append( SmappeeSensor( smappee_base=smappee_base, From cdb283319df4c6f3c275bd84664db83aabe73fcc Mon Sep 17 00:00:00 2001 From: bsmappee <58250533+bsmappee@users.noreply.github.com> Date: Wed, 8 Jul 2020 22:45:01 +0200 Subject: [PATCH 04/10] Update Smappee integration with proper solar, voltage and reactive entities (#37407) --- .../components/smappee/manifest.json | 2 +- homeassistant/components/smappee/sensor.py | 48 ++++++++++++------- requirements_all.txt | 2 +- requirements_test_all.txt | 2 +- 4 files changed, 34 insertions(+), 20 deletions(-) diff --git a/homeassistant/components/smappee/manifest.json b/homeassistant/components/smappee/manifest.json index 3ca8dc4b1b6..1c760376e04 100644 --- a/homeassistant/components/smappee/manifest.json +++ b/homeassistant/components/smappee/manifest.json @@ -5,7 +5,7 @@ "documentation": "https://www.home-assistant.io/integrations/smappee", "dependencies": ["http"], "requirements": [ - "pysmappee==0.1.2" + "pysmappee==0.1.4" ], "codeowners": [ "@bsmappee" diff --git a/homeassistant/components/smappee/sensor.py b/homeassistant/components/smappee/sensor.py index 61f7af05690..1b0b5af8564 100644 --- a/homeassistant/components/smappee/sensor.py +++ b/homeassistant/components/smappee/sensor.py @@ -16,13 +16,6 @@ TREND_SENSORS = { "total_power", DEVICE_CLASS_POWER, ], - "total_reactive_power": [ - "Total consumption - Reactive power", - None, - POWER_WATT, - "total_reactive_power", - DEVICE_CLASS_POWER, - ], "alwayson": [ "Always on - Active power", None, @@ -59,6 +52,15 @@ TREND_SENSORS = { None, ], } +REACTIVE_SENSORS = { + "total_reactive_power": [ + "Total consumption - Reactive power", + None, + POWER_WATT, + "total_reactive_power", + DEVICE_CLASS_POWER, + ] +} SOLAR_SENSORS = { "solar_power": [ "Total production - Active power", @@ -151,6 +153,17 @@ async def async_setup_entry(hass, config_entry, async_add_entities): ) ) + if service_location.has_reactive_value: + for reactive_sensor in REACTIVE_SENSORS: + entities.append( + SmappeeSensor( + smappee_base=smappee_base, + service_location=service_location, + sensor=reactive_sensor, + attributes=REACTIVE_SENSORS[reactive_sensor], + ) + ) + # Add solar sensors if service_location.has_solar_production: for sensor in SOLAR_SENSORS: @@ -180,17 +193,18 @@ async def async_setup_entry(hass, config_entry, async_add_entities): ) ) - # Add phase- and line voltages - for sensor_name, sensor in VOLTAGE_SENSORS.items(): - if service_location.phase_type in sensor[5]: - entities.append( - SmappeeSensor( - smappee_base=smappee_base, - service_location=service_location, - sensor=sensor_name, - attributes=sensor, + # Add phase- and line voltages if available + if service_location.has_voltage_values: + for sensor_name, sensor in VOLTAGE_SENSORS.items(): + if service_location.phase_type in sensor[5]: + entities.append( + SmappeeSensor( + smappee_base=smappee_base, + service_location=service_location, + sensor=sensor_name, + attributes=sensor, + ) ) - ) # Add Gas and Water sensors for sensor_id, sensor in service_location.sensors.items(): diff --git a/requirements_all.txt b/requirements_all.txt index 48519dd44c9..efb3e95819c 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -1610,7 +1610,7 @@ pysignalclirestapi==0.3.4 pysma==0.3.5 # homeassistant.components.smappee -pysmappee==0.1.2 +pysmappee==0.1.4 # homeassistant.components.smartthings pysmartapp==0.3.2 diff --git a/requirements_test_all.txt b/requirements_test_all.txt index 629d48acad0..ad1da1a1fc2 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -715,7 +715,7 @@ pysignalclirestapi==0.3.4 pysma==0.3.5 # homeassistant.components.smappee -pysmappee==0.1.2 +pysmappee==0.1.4 # homeassistant.components.smartthings pysmartapp==0.3.2 From 8f77cc2f7b0d17c0481554855a6b3ae23c070fc3 Mon Sep 17 00:00:00 2001 From: starkillerOG Date: Tue, 7 Jul 2020 16:28:20 +0200 Subject: [PATCH 05/10] Fix DenonAvr discovery of Denon DN-500AV (#37529) * fix discovery of Denon DN-500AV * fix discovery of Denon DN-500AV * fix discovery of Denon DN-500AV * fix typo * bump denonavr to 0.9.4 * add ignored model test * fix mistake in branch --- homeassistant/components/denonavr/config_flow.py | 2 +- homeassistant/components/denonavr/manifest.json | 14 +++++++++++++- homeassistant/generated/ssdp.py | 12 ++++++++++++ requirements_all.txt | 2 +- requirements_test_all.txt | 2 +- 5 files changed, 28 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/denonavr/config_flow.py b/homeassistant/components/denonavr/config_flow.py index 05ea21e7227..af2b7b03103 100644 --- a/homeassistant/components/denonavr/config_flow.py +++ b/homeassistant/components/denonavr/config_flow.py @@ -19,7 +19,7 @@ _LOGGER = logging.getLogger(__name__) DOMAIN = "denonavr" -SUPPORTED_MANUFACTURERS = ["Denon", "DENON", "Marantz"] +SUPPORTED_MANUFACTURERS = ["Denon", "DENON", "DENON PROFESSIONAL", "Marantz"] IGNORED_MODELS = ["HEOS 1", "HEOS 3", "HEOS 5", "HEOS 7"] CONF_SHOW_ALL_SOURCES = "show_all_sources" diff --git a/homeassistant/components/denonavr/manifest.json b/homeassistant/components/denonavr/manifest.json index 4ea844ef060..afc5a7ef72f 100644 --- a/homeassistant/components/denonavr/manifest.json +++ b/homeassistant/components/denonavr/manifest.json @@ -3,7 +3,7 @@ "name": "Denon AVR Network Receivers", "config_flow": true, "documentation": "https://www.home-assistant.io/integrations/denonavr", - "requirements": ["denonavr==0.9.3", "getmac==0.8.2"], + "requirements": ["denonavr==0.9.4", "getmac==0.8.2"], "codeowners": ["@scarface-4711", "@starkillerOG"], "ssdp": [ { @@ -14,6 +14,10 @@ "manufacturer": "DENON", "deviceType": "urn:schemas-upnp-org:device:MediaRenderer:1" }, + { + "manufacturer": "DENON PROFESSIONAL", + "deviceType": "urn:schemas-upnp-org:device:MediaRenderer:1" + }, { "manufacturer": "Marantz", "deviceType": "urn:schemas-upnp-org:device:MediaRenderer:1" @@ -26,6 +30,10 @@ "manufacturer": "DENON", "deviceType": "urn:schemas-upnp-org:device:MediaServer:1" }, + { + "manufacturer": "DENON PROFESSIONAL", + "deviceType": "urn:schemas-upnp-org:device:MediaServer:1" + }, { "manufacturer": "Marantz", "deviceType": "urn:schemas-upnp-org:device:MediaServer:1" @@ -38,6 +46,10 @@ "manufacturer": "DENON", "deviceType": "urn:schemas-denon-com:device:AiosDevice:1" }, + { + "manufacturer": "DENON PROFESSIONAL", + "deviceType": "urn:schemas-denon-com:device:AiosDevice:1" + }, { "manufacturer": "Marantz", "deviceType": "urn:schemas-denon-com:device:AiosDevice:1" diff --git a/homeassistant/generated/ssdp.py b/homeassistant/generated/ssdp.py index 1cbade276fe..0bffc716aea 100644 --- a/homeassistant/generated/ssdp.py +++ b/homeassistant/generated/ssdp.py @@ -26,6 +26,10 @@ SSDP = { "deviceType": "urn:schemas-upnp-org:device:MediaRenderer:1", "manufacturer": "DENON" }, + { + "deviceType": "urn:schemas-upnp-org:device:MediaRenderer:1", + "manufacturer": "DENON PROFESSIONAL" + }, { "deviceType": "urn:schemas-upnp-org:device:MediaRenderer:1", "manufacturer": "Marantz" @@ -38,6 +42,10 @@ SSDP = { "deviceType": "urn:schemas-upnp-org:device:MediaServer:1", "manufacturer": "DENON" }, + { + "deviceType": "urn:schemas-upnp-org:device:MediaServer:1", + "manufacturer": "DENON PROFESSIONAL" + }, { "deviceType": "urn:schemas-upnp-org:device:MediaServer:1", "manufacturer": "Marantz" @@ -50,6 +58,10 @@ SSDP = { "deviceType": "urn:schemas-denon-com:device:AiosDevice:1", "manufacturer": "DENON" }, + { + "deviceType": "urn:schemas-denon-com:device:AiosDevice:1", + "manufacturer": "DENON PROFESSIONAL" + }, { "deviceType": "urn:schemas-denon-com:device:AiosDevice:1", "manufacturer": "Marantz" diff --git a/requirements_all.txt b/requirements_all.txt index efb3e95819c..16db1c09ac4 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -475,7 +475,7 @@ defusedxml==0.6.0 deluge-client==1.7.1 # homeassistant.components.denonavr -denonavr==0.9.3 +denonavr==0.9.4 # homeassistant.components.devolo_home_control devolo-home-control-api==0.11.0 diff --git a/requirements_test_all.txt b/requirements_test_all.txt index ad1da1a1fc2..58d74766d19 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -227,7 +227,7 @@ debugpy==1.0.0b11 defusedxml==0.6.0 # homeassistant.components.denonavr -denonavr==0.9.3 +denonavr==0.9.4 # homeassistant.components.devolo_home_control devolo-home-control-api==0.11.0 From 3b56e75e1da734a8bdafaa5694a5cc70c29803a1 Mon Sep 17 00:00:00 2001 From: Maciej Bieniek Date: Tue, 7 Jul 2020 09:09:13 +0200 Subject: [PATCH 06/10] Bump backend library for Dune HD integration (#37594) --- homeassistant/components/dunehd/manifest.json | 2 +- requirements_all.txt | 2 +- requirements_test_all.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/dunehd/manifest.json b/homeassistant/components/dunehd/manifest.json index 61972b1b4d5..96a497f1f96 100644 --- a/homeassistant/components/dunehd/manifest.json +++ b/homeassistant/components/dunehd/manifest.json @@ -2,7 +2,7 @@ "domain": "dunehd", "name": "Dune HD", "documentation": "https://www.home-assistant.io/integrations/dunehd", - "requirements": ["pdunehd==1.3.1"], + "requirements": ["pdunehd==1.3.2"], "codeowners": ["@bieniu"], "config_flow": true } diff --git a/requirements_all.txt b/requirements_all.txt index 16db1c09ac4..10f28c19c99 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -1050,7 +1050,7 @@ panasonic_viera==0.3.5 pcal9535a==0.7 # homeassistant.components.dunehd -pdunehd==1.3.1 +pdunehd==1.3.2 # homeassistant.components.pencom pencompy==0.0.3 diff --git a/requirements_test_all.txt b/requirements_test_all.txt index 58d74766d19..e12244eac93 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -461,7 +461,7 @@ paho-mqtt==1.5.0 panasonic_viera==0.3.5 # homeassistant.components.dunehd -pdunehd==1.3.1 +pdunehd==1.3.2 # homeassistant.components.aruba # homeassistant.components.cisco_ios From 3ede54def9827a01abfe5bcaaf3eac699d8d0591 Mon Sep 17 00:00:00 2001 From: Bas Nijholt Date: Tue, 7 Jul 2020 16:30:20 +0200 Subject: [PATCH 07/10] Bump aiokef to v0.2.13 which fixes the device from becoming "Unavailable" (#37607) --- homeassistant/components/kef/manifest.json | 2 +- requirements_all.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/kef/manifest.json b/homeassistant/components/kef/manifest.json index 586629765f6..496d7bae0f2 100644 --- a/homeassistant/components/kef/manifest.json +++ b/homeassistant/components/kef/manifest.json @@ -3,5 +3,5 @@ "name": "KEF", "documentation": "https://www.home-assistant.io/integrations/kef", "codeowners": ["@basnijholt"], - "requirements": ["aiokef==0.2.12", "getmac==0.8.2"] + "requirements": ["aiokef==0.2.13", "getmac==0.8.2"] } diff --git a/requirements_all.txt b/requirements_all.txt index 10f28c19c99..37d159549be 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -200,7 +200,7 @@ aioimaplib==0.7.15 aiokafka==0.5.1 # homeassistant.components.kef -aiokef==0.2.12 +aiokef==0.2.13 # homeassistant.components.lifx aiolifx==0.6.7 From 2da64b03f3e8435592aefb31f3c21ddd485a0d97 Mon Sep 17 00:00:00 2001 From: Robert Van Gorkom Date: Tue, 7 Jul 2020 10:17:04 -0700 Subject: [PATCH 08/10] Remove withings use of deprecated classes (#37611) Adjusting in bed device class to occupancy. --- homeassistant/components/withings/binary_sensor.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/withings/binary_sensor.py b/homeassistant/components/withings/binary_sensor.py index 0fb8d8411fd..136a12a0e1d 100644 --- a/homeassistant/components/withings/binary_sensor.py +++ b/homeassistant/components/withings/binary_sensor.py @@ -2,9 +2,9 @@ from typing import Callable, List from homeassistant.components.binary_sensor import ( - DEVICE_CLASS_PRESENCE, + DEVICE_CLASS_OCCUPANCY, DOMAIN as BINARY_SENSOR_DOMAIN, - BinarySensorDevice, + BinarySensorEntity, ) from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant @@ -26,7 +26,7 @@ async def async_setup_entry( async_add_entities(entities, True) -class WithingsHealthBinarySensor(BaseWithingsSensor, BinarySensorDevice): +class WithingsHealthBinarySensor(BaseWithingsSensor, BinarySensorEntity): """Implementation of a Withings sensor.""" @property @@ -37,4 +37,4 @@ class WithingsHealthBinarySensor(BaseWithingsSensor, BinarySensorDevice): @property def device_class(self) -> str: """Provide the device class.""" - return DEVICE_CLASS_PRESENCE + return DEVICE_CLASS_OCCUPANCY From 9be06d8be4999d7d504282d8c39a797315bf3204 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Wed, 8 Jul 2020 08:57:07 -0500 Subject: [PATCH 09/10] Increase slow setup logging to warning level (#37635) When I fixed verbose logging in #36444, I did not realize this would mean almost nobody would see this now. --- homeassistant/bootstrap.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/homeassistant/bootstrap.py b/homeassistant/bootstrap.py index 94ec33f4e1a..952991228c9 100644 --- a/homeassistant/bootstrap.py +++ b/homeassistant/bootstrap.py @@ -351,7 +351,7 @@ async def _async_log_pending_setups( remaining = [domain for domain in domains if domain in setup_started] if remaining: - _LOGGER.info( + _LOGGER.warning( "Waiting on integrations to complete setup: %s", ", ".join(remaining), ) From 81af0e2adac75120d50fdb7d8aa87fc31a952def Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Thu, 9 Jul 2020 00:18:38 +0000 Subject: [PATCH 10/10] Bumped version to 0.112.4 --- homeassistant/const.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/homeassistant/const.py b/homeassistant/const.py index 13cf3b14a14..47f271789e2 100644 --- a/homeassistant/const.py +++ b/homeassistant/const.py @@ -1,7 +1,7 @@ """Constants used by Home Assistant components.""" MAJOR_VERSION = 0 MINOR_VERSION = 112 -PATCH_VERSION = "3" +PATCH_VERSION = "4" __short_version__ = f"{MAJOR_VERSION}.{MINOR_VERSION}" __version__ = f"{__short_version__}.{PATCH_VERSION}" REQUIRED_PYTHON_VER = (3, 7, 0)