Set modbus entity to non-available unless scan_interval=0 (#53155)

pull/53265/head
jan iversen 2021-07-21 07:48:02 +02:00 committed by GitHub
parent 8a72e8df79
commit 2e2b340b1e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 21 additions and 0 deletions

View File

@ -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

View File

@ -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,
}
]
},

View File

@ -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,
}
],
},

View File

@ -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,
},
]
}

View File

@ -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: {},
},
],

View File

@ -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: {},
},
],

View File

@ -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,
}
]
},

View File

@ -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: {},
},
],