mirror of
https://github.com/home-assistant/core.git
synced 2025-07-17 02:07:09 +00:00
Remove deprecated restart service in modbus (#128059)
This commit is contained in:
parent
5b7bd6a52f
commit
2ab5e5d267
@ -34,7 +34,6 @@ import homeassistant.helpers.config_validation as cv
|
|||||||
from homeassistant.helpers.discovery import async_load_platform
|
from homeassistant.helpers.discovery import async_load_platform
|
||||||
from homeassistant.helpers.dispatcher import async_dispatcher_send
|
from homeassistant.helpers.dispatcher import async_dispatcher_send
|
||||||
from homeassistant.helpers.event import async_call_later
|
from homeassistant.helpers.event import async_call_later
|
||||||
from homeassistant.helpers.issue_registry import IssueSeverity, async_create_issue
|
|
||||||
from homeassistant.helpers.reload import async_setup_reload_service
|
from homeassistant.helpers.reload import async_setup_reload_service
|
||||||
from homeassistant.helpers.typing import ConfigType
|
from homeassistant.helpers.typing import ConfigType
|
||||||
|
|
||||||
@ -62,11 +61,9 @@ from .const import (
|
|||||||
PLATFORMS,
|
PLATFORMS,
|
||||||
RTUOVERTCP,
|
RTUOVERTCP,
|
||||||
SERIAL,
|
SERIAL,
|
||||||
SERVICE_RESTART,
|
|
||||||
SERVICE_STOP,
|
SERVICE_STOP,
|
||||||
SERVICE_WRITE_COIL,
|
SERVICE_WRITE_COIL,
|
||||||
SERVICE_WRITE_REGISTER,
|
SERVICE_WRITE_REGISTER,
|
||||||
SIGNAL_START_ENTITY,
|
|
||||||
SIGNAL_STOP_ENTITY,
|
SIGNAL_STOP_ENTITY,
|
||||||
TCP,
|
TCP,
|
||||||
UDP,
|
UDP,
|
||||||
@ -233,34 +230,12 @@ async def async_modbus_setup(
|
|||||||
hub = hub_collect[service.data[ATTR_HUB]]
|
hub = hub_collect[service.data[ATTR_HUB]]
|
||||||
await hub.async_close()
|
await hub.async_close()
|
||||||
|
|
||||||
async def async_restart_hub(service: ServiceCall) -> None:
|
hass.services.async_register(
|
||||||
"""Restart Modbus hub."""
|
DOMAIN,
|
||||||
async_create_issue(
|
SERVICE_STOP,
|
||||||
hass,
|
async_stop_hub,
|
||||||
DOMAIN,
|
schema=vol.Schema({vol.Required(ATTR_HUB): cv.string}),
|
||||||
"deprecated_restart",
|
)
|
||||||
breaks_in_ha_version="2024.11.0",
|
|
||||||
is_fixable=False,
|
|
||||||
severity=IssueSeverity.WARNING,
|
|
||||||
translation_key="deprecated_restart",
|
|
||||||
)
|
|
||||||
_LOGGER.warning(
|
|
||||||
"`modbus.restart` is deprecated and will be removed in version 2024.11"
|
|
||||||
)
|
|
||||||
async_dispatcher_send(hass, SIGNAL_START_ENTITY)
|
|
||||||
hub = hub_collect[service.data[ATTR_HUB]]
|
|
||||||
await hub.async_restart()
|
|
||||||
|
|
||||||
for x_service in (
|
|
||||||
(SERVICE_STOP, async_stop_hub),
|
|
||||||
(SERVICE_RESTART, async_restart_hub),
|
|
||||||
):
|
|
||||||
hass.services.async_register(
|
|
||||||
DOMAIN,
|
|
||||||
x_service[0],
|
|
||||||
x_service[1],
|
|
||||||
schema=vol.Schema({vol.Required(ATTR_HUB): cv.string}),
|
|
||||||
)
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
@ -97,10 +97,6 @@
|
|||||||
"no_entities": {
|
"no_entities": {
|
||||||
"title": "Modbus {sub_1} contain no entities, entry not loaded.",
|
"title": "Modbus {sub_1} contain no entities, entry not loaded.",
|
||||||
"description": "Please add at least one entity to Modbus {sub_1} in your configuration.yaml file and restart Home Assistant to fix this issue."
|
"description": "Please add at least one entity to Modbus {sub_1} in your configuration.yaml file and restart Home Assistant to fix this issue."
|
||||||
},
|
|
||||||
"deprecated_restart": {
|
|
||||||
"title": "modbus.restart is being removed",
|
|
||||||
"description": "Please use reload yaml via the developer tools in the UI instead of via the `modbus.restart` action."
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -68,7 +68,6 @@ from homeassistant.components.modbus.const import (
|
|||||||
MODBUS_DOMAIN as DOMAIN,
|
MODBUS_DOMAIN as DOMAIN,
|
||||||
RTUOVERTCP,
|
RTUOVERTCP,
|
||||||
SERIAL,
|
SERIAL,
|
||||||
SERVICE_RESTART,
|
|
||||||
SERVICE_STOP,
|
SERVICE_STOP,
|
||||||
SERVICE_WRITE_COIL,
|
SERVICE_WRITE_COIL,
|
||||||
SERVICE_WRITE_REGISTER,
|
SERVICE_WRITE_REGISTER,
|
||||||
@ -1149,61 +1148,6 @@ async def test_shutdown(
|
|||||||
assert caplog.text == ""
|
assert caplog.text == ""
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
|
||||||
"do_config",
|
|
||||||
[
|
|
||||||
{
|
|
||||||
CONF_SENSORS: [
|
|
||||||
{
|
|
||||||
CONF_NAME: TEST_ENTITY_NAME,
|
|
||||||
CONF_ADDRESS: 51,
|
|
||||||
CONF_SLAVE: 0,
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
],
|
|
||||||
)
|
|
||||||
async def test_stop_restart(
|
|
||||||
hass: HomeAssistant, caplog: pytest.LogCaptureFixture, mock_modbus
|
|
||||||
) -> None:
|
|
||||||
"""Run test for service stop."""
|
|
||||||
|
|
||||||
caplog.set_level(logging.WARNING)
|
|
||||||
entity_id = f"{SENSOR_DOMAIN}.{TEST_ENTITY_NAME}".replace(" ", "_")
|
|
||||||
assert hass.states.get(entity_id).state in (STATE_UNKNOWN, STATE_UNAVAILABLE)
|
|
||||||
hass.states.async_set(entity_id, 17)
|
|
||||||
await hass.async_block_till_done()
|
|
||||||
assert hass.states.get(entity_id).state == "17"
|
|
||||||
|
|
||||||
mock_modbus.reset_mock()
|
|
||||||
caplog.clear()
|
|
||||||
data = {
|
|
||||||
ATTR_HUB: TEST_MODBUS_NAME,
|
|
||||||
}
|
|
||||||
await hass.services.async_call(DOMAIN, SERVICE_STOP, data, blocking=True)
|
|
||||||
await hass.async_block_till_done()
|
|
||||||
assert hass.states.get(entity_id).state == STATE_UNAVAILABLE
|
|
||||||
assert mock_modbus.close.called
|
|
||||||
assert f"modbus {TEST_MODBUS_NAME} communication closed" in caplog.text
|
|
||||||
|
|
||||||
mock_modbus.reset_mock()
|
|
||||||
caplog.clear()
|
|
||||||
await hass.services.async_call(DOMAIN, SERVICE_RESTART, data, blocking=True)
|
|
||||||
await hass.async_block_till_done()
|
|
||||||
assert not mock_modbus.close.called
|
|
||||||
assert mock_modbus.connect.called
|
|
||||||
assert f"modbus {TEST_MODBUS_NAME} communication open" in caplog.text
|
|
||||||
|
|
||||||
mock_modbus.reset_mock()
|
|
||||||
caplog.clear()
|
|
||||||
await hass.services.async_call(DOMAIN, SERVICE_RESTART, data, blocking=True)
|
|
||||||
await hass.async_block_till_done()
|
|
||||||
assert mock_modbus.close.called
|
|
||||||
assert mock_modbus.connect.called
|
|
||||||
assert f"modbus {TEST_MODBUS_NAME} communication closed" in caplog.text
|
|
||||||
assert f"modbus {TEST_MODBUS_NAME} communication open" in caplog.text
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("do_config", [{}])
|
@pytest.mark.parametrize("do_config", [{}])
|
||||||
async def test_write_no_client(hass: HomeAssistant, mock_modbus) -> None:
|
async def test_write_no_client(hass: HomeAssistant, mock_modbus) -> None:
|
||||||
"""Run test for service stop and write without client."""
|
"""Run test for service stop and write without client."""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user