Skip to content

Commit

Permalink
Fix yandex_speaker event trigger
Browse files Browse the repository at this point in the history
  • Loading branch information
AlexxIT committed Jan 16, 2024
1 parent e18f534 commit f476ebf
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 9 deletions.
22 changes: 13 additions & 9 deletions custom_components/yandex_station/core/yandex_station.py
Original file line number Diff line number Diff line change
Expand Up @@ -230,18 +230,22 @@ def on_update(self, device: dict):
if not self.hass:
return

for item in device["capabilities"]:
if not (event_data := item["state"]):
continue

event_data["entity_id"] = self.entity_id
event_data["name"] = self.name

if "scenario_name" in device:
if "scenario_name" in device:
for item in device["capabilities"]:
event_data = item["state"]
event_data["entity_id"] = self.entity_id
event_data["name"] = self.name
event_data["scenario_name"] = device["scenario_name"]
self.debug(f"yandex_scenario: {event_data}")
self.hass.bus.async_fire("yandex_scenario", event_data)
else:
else:
for item in device["capabilities"]:
if item["type"] != "devices.capabilities.quasar.server_action" or not item["state"]:
continue

event_data = item["state"]
event_data["entity_id"] = self.entity_id
event_data["name"] = self.name
self.debug(f"yandex_speaker: {event_data}")
self.hass.bus.async_fire("yandex_speaker", event_data)

Expand Down
14 changes: 14 additions & 0 deletions tests/test_scenario.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
def test_update_states():
device = {
"id": "xxx",
"state": "online",
"capabilities": [
{
"reportable": False,
"retrievable": False,
"type": "devices.capabilities.quasar.server_action",
"state": {"instance": "text_action", "value": "Сделай громче на 0"},
"parameters": {"instance": "text_action"},
}
],
}

0 comments on commit f476ebf

Please sign in to comment.