From 8acc3f0b03a260b7957ce058053a78963705115d Mon Sep 17 00:00:00 2001 From: jan iversen Date: Mon, 19 Apr 2021 19:35:32 +0200 Subject: [PATCH] Fix modbus switch "old style" config problem (#49352) Fix that using CONF_HUB in switch, changed the hub for all subsequent switches. --- homeassistant/components/modbus/binary_sensor.py | 5 +++-- homeassistant/components/modbus/sensor.py | 5 +++-- homeassistant/components/modbus/switch.py | 5 +++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/homeassistant/components/modbus/binary_sensor.py b/homeassistant/components/modbus/binary_sensor.py index 0a76baf1fda..c9f551e3d34 100644 --- a/homeassistant/components/modbus/binary_sensor.py +++ b/homeassistant/components/modbus/binary_sensor.py @@ -89,10 +89,11 @@ async def async_setup_platform( for entry in discovery_info[CONF_BINARY_SENSORS]: if CONF_HUB in entry: # from old config! - discovery_info[CONF_NAME] = entry[CONF_HUB] + hub: ModbusHub = hass.data[MODBUS_DOMAIN][entry[CONF_HUB]] + else: + hub: ModbusHub = hass.data[MODBUS_DOMAIN][discovery_info[CONF_NAME]] if CONF_SCAN_INTERVAL not in entry: entry[CONF_SCAN_INTERVAL] = DEFAULT_SCAN_INTERVAL - hub: ModbusHub = hass.data[MODBUS_DOMAIN][discovery_info[CONF_NAME]] sensors.append( ModbusBinarySensor( hub, diff --git a/homeassistant/components/modbus/sensor.py b/homeassistant/components/modbus/sensor.py index b8cca30be60..cb76bedd18f 100644 --- a/homeassistant/components/modbus/sensor.py +++ b/homeassistant/components/modbus/sensor.py @@ -167,10 +167,11 @@ async def async_setup_platform( if CONF_HUB in entry: # from old config! - discovery_info[CONF_NAME] = entry[CONF_HUB] + hub: ModbusHub = hass.data[MODBUS_DOMAIN][entry[CONF_HUB]] + else: + hub: ModbusHub = hass.data[MODBUS_DOMAIN][discovery_info[CONF_NAME]] if CONF_SCAN_INTERVAL not in entry: entry[CONF_SCAN_INTERVAL] = DEFAULT_SCAN_INTERVAL - hub: ModbusHub = hass.data[MODBUS_DOMAIN][discovery_info[CONF_NAME]] sensors.append( ModbusRegisterSensor( hub, diff --git a/homeassistant/components/modbus/switch.py b/homeassistant/components/modbus/switch.py index 1c0b64462cb..c3fe567d9b5 100644 --- a/homeassistant/components/modbus/switch.py +++ b/homeassistant/components/modbus/switch.py @@ -123,8 +123,9 @@ async def async_setup_platform( for entry in discovery_info[CONF_SWITCHES]: if CONF_HUB in entry: # from old config! - discovery_info[CONF_NAME] = entry[CONF_HUB] - hub: ModbusHub = hass.data[MODBUS_DOMAIN][discovery_info[CONF_NAME]] + hub: ModbusHub = hass.data[MODBUS_DOMAIN][entry[CONF_HUB]] + else: + hub: ModbusHub = hass.data[MODBUS_DOMAIN][discovery_info[CONF_NAME]] if entry[CONF_INPUT_TYPE] == CALL_TYPE_COIL: switches.append(ModbusCoilSwitch(hub, entry)) else: