diff --git a/lib/home_assistant.class.dart b/lib/home_assistant.class.dart index 7f2a81e..2776c1c 100644 --- a/lib/home_assistant.class.dart +++ b/lib/home_assistant.class.dart @@ -106,10 +106,20 @@ class HomeAssistant { }); } - Future _getLovelace() async { - await ConnectionManager().sendSocketMessage(type: "lovelace/config").then((data) => _rawLovelaceData = data).catchError((e) { - throw HAError("Error getting lovelace config: $e"); + Future _getLovelace() { + Completer completer = Completer(); + 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 { @@ -125,7 +135,6 @@ class HomeAssistant { Future _getServices() async { await ConnectionManager().sendSocketMessage(type: "get_services").then((data) { Logger.d("Got ${data.length} services"); - Logger.d("Media extractor: ${data["media_extractor"]}"); services = data; }).catchError((e) { Logger.w("Can't get services: $e"); diff --git a/lib/managers/connection_manager.class.dart b/lib/managers/connection_manager.class.dart index df72960..b13d02f 100644 --- a/lib/managers/connection_manager.class.dart +++ b/lib/managers/connection_manager.class.dart @@ -189,8 +189,8 @@ class ConnectionManager { //Logger.d("[Received] <== Request id ${data['id']} was successful"); _messageResolver["${data["id"]}"]?.complete(data["result"]); } else if (data["id"] != null) { - //Logger.e("[Received] <== Error received on request id ${data['id']}: ${data['error']}"); - _messageResolver["${data["id"]}"]?.completeError("${data['error']["message"]}"); + Logger.e("[Received] <== Error received on request id ${data['id']}: ${data['error']}"); + _messageResolver["${data["id"]}"]?.completeError("${data["error"]["code"]}"); } _messageResolver.remove("${data["id"]}"); } else if (data["type"] == "event") {