mirror of
https://github.com/home-assistant/core.git
synced 2025-07-19 03:07:37 +00:00
Fix knx expose feature not correctly falling back to default value (#53046)
This commit is contained in:
parent
519efd2723
commit
6fe38eadf2
@ -100,10 +100,8 @@ class KNXExposeSensor:
|
||||
def _init_expose_state(self) -> None:
|
||||
"""Initialize state of the exposure."""
|
||||
init_state = self.hass.states.get(self.entity_id)
|
||||
init_value = self._get_expose_value(init_state)
|
||||
self.device.sensor_value.value = (
|
||||
init_value if init_value is not None else self.expose_default
|
||||
)
|
||||
state_value = self._get_expose_value(init_state)
|
||||
self.device.sensor_value.value = state_value
|
||||
|
||||
@callback
|
||||
def shutdown(self) -> None:
|
||||
@ -116,11 +114,12 @@ class KNXExposeSensor:
|
||||
def _get_expose_value(self, state: State | None) -> StateType:
|
||||
"""Extract value from state."""
|
||||
if state is None or state.state in (STATE_UNKNOWN, STATE_UNAVAILABLE):
|
||||
return None
|
||||
value = self.expose_default
|
||||
else:
|
||||
value = (
|
||||
state.state
|
||||
if self.expose_attribute is None
|
||||
else state.attributes.get(self.expose_attribute)
|
||||
else state.attributes.get(self.expose_attribute, self.expose_default)
|
||||
)
|
||||
if self.type == "binary":
|
||||
if value in (1, STATE_ON, "True"):
|
||||
@ -150,9 +149,7 @@ class KNXExposeSensor:
|
||||
async def _async_set_knx_value(self, value: StateType) -> None:
|
||||
"""Set new value on xknx ExposeSensor."""
|
||||
if value is None:
|
||||
if self.expose_default is None:
|
||||
return
|
||||
value = self.expose_default
|
||||
await self.device.set(value)
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user