Resolves #419 Fallback to states if no lovelace config found

This commit is contained in:
Yegor Vialov 2019-11-08 20:14:34 +00:00
parent 551a8dfa31
commit 85b0c4f814
2 changed files with 15 additions and 6 deletions

View File

@ -106,10 +106,20 @@ class HomeAssistant {
}); });
} }
Future _getLovelace() async { Future _getLovelace() {
await ConnectionManager().sendSocketMessage(type: "lovelace/config").then((data) => _rawLovelaceData = data).catchError((e) { Completer completer = Completer();
throw HAError("Error getting lovelace config: $e"); ConnectionManager().sendSocketMessage(type: "lovelace/config").then((data) {
_rawLovelaceData = data;
completer.complete();
}).catchError((e) {
if ("$e" == "config_not_found") {
ConnectionManager().useLovelace = false;
completer.complete();
} else {
completer.completeError(HAError("Error getting lovelace config: $e"));
}
}); });
return completer.future;
} }
Future _getUserInfo() async { Future _getUserInfo() async {
@ -125,7 +135,6 @@ class HomeAssistant {
Future _getServices() async { Future _getServices() async {
await ConnectionManager().sendSocketMessage(type: "get_services").then((data) { await ConnectionManager().sendSocketMessage(type: "get_services").then((data) {
Logger.d("Got ${data.length} services"); Logger.d("Got ${data.length} services");
Logger.d("Media extractor: ${data["media_extractor"]}");
services = data; services = data;
}).catchError((e) { }).catchError((e) {
Logger.w("Can't get services: $e"); Logger.w("Can't get services: $e");

View File

@ -189,8 +189,8 @@ class ConnectionManager {
//Logger.d("[Received] <== Request id ${data['id']} was successful"); //Logger.d("[Received] <== Request id ${data['id']} was successful");
_messageResolver["${data["id"]}"]?.complete(data["result"]); _messageResolver["${data["id"]}"]?.complete(data["result"]);
} else if (data["id"] != null) { } else if (data["id"] != null) {
//Logger.e("[Received] <== Error received on request id ${data['id']}: ${data['error']}"); Logger.e("[Received] <== Error received on request id ${data['id']}: ${data['error']}");
_messageResolver["${data["id"]}"]?.completeError("${data['error']["message"]}"); _messageResolver["${data["id"]}"]?.completeError("${data["error"]["code"]}");
} }
_messageResolver.remove("${data["id"]}"); _messageResolver.remove("${data["id"]}");
} else if (data["type"] == "event") { } else if (data["type"] == "event") {