Bump greeneye_monitor to v3.0.1 (#63531)

This commit is contained in:
Jonathan Keljo 2022-01-06 05:59:56 -08:00 committed by GitHub
parent 60b6871b46
commit 41625f7410
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 37 additions and 26 deletions

View File

@ -127,13 +127,13 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
hass.data[DATA_GREENEYE_MONITOR] = monitors
server_config = config[DOMAIN]
server = await monitors.start_server(server_config[CONF_PORT])
await monitors.start_server(server_config[CONF_PORT])
async def close_server(event: Event) -> None:
"""Close the monitoring server."""
await server.close()
async def close_monitors(event: Event) -> None:
"""Close the Monitors object."""
await monitors.close()
hass.bus.async_listen_once(EVENT_HOMEASSISTANT_STOP, close_server)
hass.bus.async_listen_once(EVENT_HOMEASSISTANT_STOP, close_monitors)
all_sensors = []
for monitor_config in server_config[CONF_MONITORS]:

View File

@ -2,7 +2,11 @@
"domain": "greeneye_monitor",
"name": "GreenEye Monitor (GEM)",
"documentation": "https://www.home-assistant.io/integrations/greeneye_monitor",
"requirements": ["greeneye_monitor==2.1"],
"codeowners": ["@jkeljo"],
"requirements": [
"greeneye_monitor==3.0.1"
],
"codeowners": [
"@jkeljo"
],
"iot_class": "local_push"
}
}

View File

@ -1,7 +1,7 @@
"""Support for the sensors in a GreenEye Monitor."""
from __future__ import annotations
from typing import Any, Optional, Union, cast
from typing import Any, Union
import greeneye
@ -96,9 +96,9 @@ async def async_setup_platform(
UnderlyingSensorType = Union[
greeneye.monitor.Channel,
greeneye.monitor.Monitor,
greeneye.monitor.PulseCounter,
greeneye.monitor.TemperatureSensor,
greeneye.monitor.VoltageSensor,
]
@ -178,7 +178,7 @@ class CurrentSensor(GEMSensor):
if not self._sensor:
return None
return cast(Optional[float], self._sensor.watts)
return self._sensor.watts
@property
def extra_state_attributes(self) -> dict[str, Any] | None:
@ -229,7 +229,7 @@ class PulseCounter(GEMSensor):
* self._counted_quantity_per_pulse
* self._seconds_per_time_unit
)
return cast(float, result)
return result
@property
def _seconds_per_time_unit(self) -> int:
@ -281,7 +281,7 @@ class TemperatureSensor(GEMSensor):
if not self._sensor:
return None
return cast(Optional[float], self._sensor.temperature)
return self._sensor.temperature
class VoltageSensor(GEMSensor):
@ -295,9 +295,9 @@ class VoltageSensor(GEMSensor):
super().__init__(monitor_serial_number, name, "volts", number)
@property
def _sensor(self) -> greeneye.monitor.Monitor | None:
def _sensor(self) -> greeneye.monitor.VoltageSensor | None:
"""Wire the updates to the monitor itself, since there is no voltage element in the API."""
return self._monitor
return self._monitor.voltage_sensor if self._monitor else None
@property
def native_value(self) -> float | None:
@ -305,4 +305,4 @@ class VoltageSensor(GEMSensor):
if not self._sensor:
return None
return cast(Optional[float], self._sensor.voltage)
return self._sensor.voltage

View File

@ -773,7 +773,7 @@ gps3==0.33.3
greeclimate==1.0.1
# homeassistant.components.greeneye_monitor
greeneye_monitor==2.1
greeneye_monitor==3.0.1
# homeassistant.components.greenwave
greenwavereality==0.5.1

View File

@ -489,7 +489,7 @@ googlemaps==2.5.1
greeclimate==1.0.1
# homeassistant.components.greeneye_monitor
greeneye_monitor==2.1
greeneye_monitor==3.0.1
# homeassistant.components.growatt_server
growattServer==1.1.0

View File

@ -185,6 +185,13 @@ def mock_temperature_sensor() -> MagicMock:
return temperature_sensor
def mock_voltage_sensor() -> MagicMock:
"""Create a mock GreenEye Monitor voltage sensor."""
voltage_sensor = mock_with_listeners()
voltage_sensor.voltage = 120.0
return voltage_sensor
def mock_channel() -> MagicMock:
"""Create a mock GreenEye Monitor CT channel."""
channel = mock_with_listeners()
@ -198,7 +205,7 @@ def mock_monitor(serial_number: int) -> MagicMock:
"""Create a mock GreenEye Monitor."""
monitor = mock_with_listeners()
monitor.serial_number = serial_number
monitor.voltage = 120.0
monitor.voltage_sensor = mock_voltage_sensor()
monitor.pulse_counters = [mock_pulse_counter() for i in range(0, 4)]
monitor.temperature_sensors = [mock_temperature_sensor() for i in range(0, 8)]
monitor.channels = [mock_channel() for i in range(0, 32)]

View File

@ -188,12 +188,12 @@ async def test_multi_monitor_config(hass: HomeAssistant, monitors: AsyncMock) ->
async def test_setup_and_shutdown(hass: HomeAssistant, monitors: AsyncMock) -> None:
"""Test that the component can set up and shut down cleanly, closing the underlying server on shutdown."""
server = AsyncMock()
monitors.start_server = AsyncMock(return_value=server)
monitors.start_server = AsyncMock(return_value=None)
monitors.close = AsyncMock(return_value=None)
assert await setup_greeneye_monitor_component_with_config(
hass, SINGLE_MONITOR_CONFIG_POWER_SENSORS
)
await hass.async_stop()
assert server.close.called
assert monitors.close.called

View File

@ -64,9 +64,9 @@ async def test_disable_sensor_after_monitor_connected(
)
monitor = connect_monitor(monitors, SINGLE_MONITOR_SERIAL_NUMBER)
assert len(monitor.listeners) == 1
assert len(monitor.voltage_sensor.listeners) == 1
await disable_entity(hass, "sensor.voltage_1")
assert len(monitor.listeners) == 0
assert len(monitor.voltage_sensor.listeners) == 0
async def test_updates_state_when_sensor_pushes(
@ -80,8 +80,8 @@ async def test_updates_state_when_sensor_pushes(
monitor = connect_monitor(monitors, SINGLE_MONITOR_SERIAL_NUMBER)
assert_sensor_state(hass, "sensor.voltage_1", "120.0")
monitor.voltage = 119.8
monitor.notify_all_listeners()
monitor.voltage_sensor.voltage = 119.8
monitor.voltage_sensor.notify_all_listeners()
assert_sensor_state(hass, "sensor.voltage_1", "119.8")