Set modbus entity to non-available unless scan_interval=0 (#53155)
parent
8a72e8df79
commit
2e2b340b1e
|
@ -68,6 +68,7 @@ class BasePlatform(Entity):
|
|||
self._value = None
|
||||
self._available = True
|
||||
self._scan_interval = int(entry[CONF_SCAN_INTERVAL])
|
||||
self._available = self._scan_interval == 0
|
||||
self._call_active = False
|
||||
|
||||
@abstractmethod
|
||||
|
|
|
@ -12,6 +12,7 @@ from homeassistant.const import (
|
|||
CONF_BINARY_SENSORS,
|
||||
CONF_DEVICE_CLASS,
|
||||
CONF_NAME,
|
||||
CONF_SCAN_INTERVAL,
|
||||
CONF_SLAVE,
|
||||
STATE_OFF,
|
||||
STATE_ON,
|
||||
|
@ -144,6 +145,7 @@ async def test_service_binary_sensor_update(hass, mock_pymodbus):
|
|||
{
|
||||
CONF_NAME: SENSOR_NAME,
|
||||
CONF_ADDRESS: 51,
|
||||
CONF_SCAN_INTERVAL: 0,
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
@ -104,6 +104,7 @@ async def test_service_climate_update(hass, mock_pymodbus):
|
|||
CONF_TARGET_TEMP: 117,
|
||||
CONF_ADDRESS: 117,
|
||||
CONF_SLAVE: 10,
|
||||
CONF_SCAN_INTERVAL: 0,
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -176,6 +177,7 @@ test_value.attributes = {ATTR_TEMPERATURE: 37}
|
|||
CONF_NAME: CLIMATE_NAME,
|
||||
CONF_TARGET_TEMP: 117,
|
||||
CONF_ADDRESS: 117,
|
||||
CONF_SCAN_INTERVAL: 0,
|
||||
}
|
||||
],
|
||||
},
|
||||
|
|
|
@ -211,6 +211,7 @@ async def test_service_cover_update(hass, mock_pymodbus):
|
|||
CONF_STATE_CLOSING: 3,
|
||||
CONF_STATUS_REGISTER: 1234,
|
||||
CONF_STATUS_REGISTER_TYPE: CALL_TYPE_REGISTER_HOLDING,
|
||||
CONF_SCAN_INTERVAL: 0,
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -232,11 +233,13 @@ async def test_service_cover_move(hass, mock_pymodbus):
|
|||
CONF_NAME: COVER_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_STATUS_REGISTER_TYPE: CALL_TYPE_REGISTER_HOLDING,
|
||||
CONF_SCAN_INTERVAL: 0,
|
||||
},
|
||||
{
|
||||
CONF_NAME: f"{COVER_NAME}2",
|
||||
CONF_INPUT_TYPE: CALL_TYPE_COIL,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_SCAN_INTERVAL: 0,
|
||||
},
|
||||
]
|
||||
}
|
||||
|
|
|
@ -23,6 +23,7 @@ from homeassistant.const import (
|
|||
CONF_HOST,
|
||||
CONF_NAME,
|
||||
CONF_PORT,
|
||||
CONF_SCAN_INTERVAL,
|
||||
CONF_SLAVE,
|
||||
CONF_TYPE,
|
||||
STATE_OFF,
|
||||
|
@ -195,6 +196,7 @@ async def test_all_fan(hass, call_type, regs, verify, expected):
|
|||
{
|
||||
CONF_NAME: FAN_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_SCAN_INTERVAL: 0,
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -219,11 +221,13 @@ async def test_fan_service_turn(hass, caplog, mock_pymodbus):
|
|||
CONF_NAME: FAN_NAME,
|
||||
CONF_ADDRESS: 17,
|
||||
CONF_WRITE_TYPE: CALL_TYPE_REGISTER_HOLDING,
|
||||
CONF_SCAN_INTERVAL: 0,
|
||||
},
|
||||
{
|
||||
CONF_NAME: f"{FAN_NAME}2",
|
||||
CONF_ADDRESS: 17,
|
||||
CONF_WRITE_TYPE: CALL_TYPE_REGISTER_HOLDING,
|
||||
CONF_SCAN_INTERVAL: 0,
|
||||
CONF_VERIFY: {},
|
||||
},
|
||||
],
|
||||
|
|
|
@ -23,6 +23,7 @@ from homeassistant.const import (
|
|||
CONF_LIGHTS,
|
||||
CONF_NAME,
|
||||
CONF_PORT,
|
||||
CONF_SCAN_INTERVAL,
|
||||
CONF_SLAVE,
|
||||
CONF_TYPE,
|
||||
STATE_OFF,
|
||||
|
@ -195,6 +196,7 @@ async def test_all_light(hass, call_type, regs, verify, expected):
|
|||
{
|
||||
CONF_NAME: LIGHT_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_SCAN_INTERVAL: 0,
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -219,11 +221,13 @@ async def test_light_service_turn(hass, caplog, mock_pymodbus):
|
|||
CONF_NAME: LIGHT_NAME,
|
||||
CONF_ADDRESS: 17,
|
||||
CONF_WRITE_TYPE: CALL_TYPE_REGISTER_HOLDING,
|
||||
CONF_SCAN_INTERVAL: 0,
|
||||
},
|
||||
{
|
||||
CONF_NAME: f"{LIGHT_NAME}2",
|
||||
CONF_ADDRESS: 17,
|
||||
CONF_WRITE_TYPE: CALL_TYPE_REGISTER_HOLDING,
|
||||
CONF_SCAN_INTERVAL: 0,
|
||||
CONF_VERIFY: {},
|
||||
},
|
||||
],
|
||||
|
|
|
@ -29,6 +29,7 @@ from homeassistant.const import (
|
|||
CONF_DEVICE_CLASS,
|
||||
CONF_NAME,
|
||||
CONF_OFFSET,
|
||||
CONF_SCAN_INTERVAL,
|
||||
CONF_SENSORS,
|
||||
CONF_SLAVE,
|
||||
CONF_STRUCTURE,
|
||||
|
@ -578,6 +579,7 @@ async def test_struct_sensor(hass, cfg, regs, expected):
|
|||
{
|
||||
CONF_NAME: SENSOR_NAME,
|
||||
CONF_ADDRESS: 51,
|
||||
CONF_SCAN_INTERVAL: 0,
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
@ -210,6 +210,7 @@ async def test_all_switch(hass, call_type, regs, verify, expected):
|
|||
{
|
||||
CONF_NAME: SWITCH_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_SCAN_INTERVAL: 0,
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -234,11 +235,13 @@ async def test_switch_service_turn(hass, caplog, mock_pymodbus):
|
|||
CONF_NAME: SWITCH_NAME,
|
||||
CONF_ADDRESS: 17,
|
||||
CONF_WRITE_TYPE: CALL_TYPE_REGISTER_HOLDING,
|
||||
CONF_SCAN_INTERVAL: 0,
|
||||
},
|
||||
{
|
||||
CONF_NAME: f"{SWITCH_NAME}2",
|
||||
CONF_ADDRESS: 17,
|
||||
CONF_WRITE_TYPE: CALL_TYPE_REGISTER_HOLDING,
|
||||
CONF_SCAN_INTERVAL: 0,
|
||||
CONF_VERIFY: {},
|
||||
},
|
||||
],
|
||||
|
|
Loading…
Reference in New Issue