CONTROL-001: add safe HA automation handoff
Some checks failed
quality / test (3.11) (push) Has been cancelled
quality / test (3.13) (push) Has been cancelled

This commit is contained in:
2026-06-14 16:21:57 +02:00
parent 77f328c4a8
commit b3cf68eade
25 changed files with 1083 additions and 69 deletions

View File

@@ -125,3 +125,28 @@ def test_ha_reader_normalizes_state_history_and_logbook() -> None:
assert history[0].points[0].state == "21.5"
assert logbook[0].context_user_id == "user-1"
def test_ha_reader_finds_automation_that_targets_entity() -> None:
client = FakeHaClient()
client.list_entities = lambda: [ # type: ignore[method-assign]
{
"entity_id": "automation.storage_light",
"state": "on",
"attributes": {
"id": "123",
"friendly_name": "Storage light",
},
}
]
client.get_automation_config = lambda automation_id: { # type: ignore[method-assign]
"id": automation_id,
"target": {"entity_id": "light.storage"},
}
reader = HaReader(client)
matches = reader.find_automations_for_entity("light.storage")
assert len(matches) == 1
assert matches[0].entity_id == "automation.storage_light"
assert matches[0].enabled is True