Fix ghost events for Hue remotes (#113047)
* Use report values for events * adjust tests
This commit is contained in:
parent
4e600b7b19
commit
5af8041c57
3 changed files with 28 additions and 9 deletions
|
@ -95,7 +95,9 @@ class HueButtonEventEntity(HueBaseEntity, EventEntity):
|
|||
def _handle_event(self, event_type: EventType, resource: Button) -> None:
|
||||
"""Handle status event for this resource (or it's parent)."""
|
||||
if event_type == EventType.RESOURCE_UPDATED and resource.id == self.resource.id:
|
||||
self._trigger_event(resource.button.last_event.value)
|
||||
if resource.button is None or resource.button.button_report is None:
|
||||
return
|
||||
self._trigger_event(resource.button.button_report.event.value)
|
||||
self.async_write_ha_state()
|
||||
return
|
||||
super()._handle_event(event_type, resource)
|
||||
|
@ -119,11 +121,16 @@ class HueRotaryEventEntity(HueBaseEntity, EventEntity):
|
|||
def _handle_event(self, event_type: EventType, resource: RelativeRotary) -> None:
|
||||
"""Handle status event for this resource (or it's parent)."""
|
||||
if event_type == EventType.RESOURCE_UPDATED and resource.id == self.resource.id:
|
||||
event_key = resource.relative_rotary.last_event.rotation.direction.value
|
||||
if (
|
||||
resource.relative_rotary is None
|
||||
or resource.relative_rotary.rotary_report is None
|
||||
):
|
||||
return
|
||||
event_key = resource.relative_rotary.rotary_report.rotation.direction.value
|
||||
event_data = {
|
||||
"duration": resource.relative_rotary.last_event.rotation.duration,
|
||||
"steps": resource.relative_rotary.last_event.rotation.steps,
|
||||
"action": resource.relative_rotary.last_event.action.value,
|
||||
"duration": resource.relative_rotary.rotary_report.rotation.duration,
|
||||
"steps": resource.relative_rotary.rotary_report.rotation.steps,
|
||||
"action": resource.relative_rotary.rotary_report.action.value,
|
||||
}
|
||||
self._trigger_event(event_key, event_data)
|
||||
self.async_write_ha_state()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue