From 1a0ee19230dc3d56485fd27d14bc4c027df63405 Mon Sep 17 00:00:00 2001 From: Jacob Tomlinson Date: Fri, 14 Aug 2020 10:28:53 +0100 Subject: [PATCH] Add old state entity to events (#19) --- opsdroid_homeassistant/connector/__init__.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/opsdroid_homeassistant/connector/__init__.py b/opsdroid_homeassistant/connector/__init__.py index 1054b99..8d8e580 100644 --- a/opsdroid_homeassistant/connector/__init__.py +++ b/opsdroid_homeassistant/connector/__init__.py @@ -147,15 +147,16 @@ async def _handle_message(self, msg): if msg_type == "event": try: + new_state = msg["event"]["data"]["new_state"] + old_state = msg["event"]["data"]["old_state"] event = HassEvent(raw_event=msg) event.update_entity("event_type", msg["event"]["event_type"]) event.update_entity("entity_id", msg["event"]["data"]["entity_id"]) - event.update_entity("state", msg["event"]["data"]["new_state"]["state"]) - changed = ( - msg["event"]["data"]["old_state"] is None - or msg["event"]["data"]["new_state"]["state"] - != msg["event"]["data"]["old_state"]["state"] + event.update_entity("state", new_state["state"]) + event.update_entity( + "old_state", old_state["state"] if old_state is not None else None ) + changed = old_state is None or new_state["state"] != old_state["state"] event.update_entity("changed", changed) await self.opsdroid.parse(event) except (TypeError, KeyError):