mirror of https://github.com/home-assistant/core
Bump greeneye_monitor to v3.0.1 (#63531)
This commit is contained in:
parent
60b6871b46
commit
41625f7410
|
@ -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]:
|
||||
|
|
|
@ -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"
|
||||
}
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)]
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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")
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue