Resolves #526 Subscribe to Lovelace update events

This commit is contained in:
Yegor Vialov
2020-03-19 23:16:59 +00:00
parent a3548455eb
commit 5ced01463f
3 changed files with 26 additions and 1 deletions

View File

@ -28,6 +28,7 @@ class ConnectionManager {
bool isConnected = false;
var onStateChangeCallback;
var onLovelaceUpdatedCallback;
IOWebSocketChannel _socket;
@ -150,6 +151,10 @@ class ConnectionManager {
} else if (data["type"] == "auth_ok") {
Logger.d("[Received] <== ${data.toString()}");
Logger.d("[Connection] Subscribing to events");
sendSocketMessage(
type: "subscribe_events",
additionalData: {"event_type": "lovelace_updated"},
);
sendSocketMessage(
type: "subscribe_events",
additionalData: {"event_type": "state_changed"},
@ -212,6 +217,17 @@ class ConnectionManager {
}
_messageResolver.remove("${data["id"]}");
} else if (data["type"] == "event") {
if (data["event"] != null) {
if (data["event"]["event_type"] == "state_changed") {
Logger.d("[Received] <== ${data['type']}.${data["event"]["event_type"]}: ${data["event"]["data"]["entity_id"]}");
onStateChangeCallback(data["event"]["data"]);
} else if (data["event"]["event_type"] == "lovelace_updated") {
Logger.d("[Received] <== ${data['type']}.${data["event"]["event_type"]}: $data");
onLovelaceUpdatedCallback();
}
}
if ((data["event"] != null) && (data["event"]["event_type"] == "state_changed")) {
Logger.d("[Received] <== ${data['type']}.${data["event"]["event_type"]}: ${data["event"]["data"]["entity_id"]}");
onStateChangeCallback(data["event"]["data"]);