From 6d5a911cb5bc1146784c340b06df3818c5bf44a4 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Thu, 11 May 2017 20:30:17 -0700 Subject: [PATCH] Keep trying to refresh data after successful API call --- panels/hassio/ha-panel-hassio.html | 11 ++++++++++- panels/hassio/hassio-data.html | 14 ++++++++------ 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/panels/hassio/ha-panel-hassio.html b/panels/hassio/ha-panel-hassio.html index ee03a303ee..2054396754 100644 --- a/panels/hassio/ha-panel-hassio.html +++ b/panels/hassio/ha-panel-hassio.html @@ -127,7 +127,16 @@ Polymer({ apiCalled: function (ev) { if (ev.detail.success) { - this.$.data.refresh(); + var tries = 1; + + var tryUpdate = function () { + this.$.data.refresh().catch(function () { + tries += 1; + setTimeout(tryUpdate, Math.min(tries, 5) * 1000); + }) + }.bind(this); + + tryUpdate(); } }, diff --git a/panels/hassio/hassio-data.html b/panels/hassio/hassio-data.html index 4e07d35f45..eac78a7fb5 100644 --- a/panels/hassio/hassio-data.html +++ b/panels/hassio/hassio-data.html @@ -29,27 +29,29 @@ Polymer({ }, refresh: function () { - this.fetchSupervisorInfo(); - this.fetchHostInfo(); - this.fetchHassInfo(); + return Promise.all([ + this.fetchSupervisorInfo(), + this.fetchHostInfo(), + this.fetchHassInfo(), + ]) }, fetchSupervisorInfo: function () { - this.hass.callApi('get', 'hassio/supervisor/info') + return this.hass.callApi('get', 'hassio/supervisor/info') .then(function (info) { this.supervisor = info.data; }.bind(this)); }, fetchHostInfo: function () { - this.hass.callApi('get', 'hassio/host/info') + return this.hass.callApi('get', 'hassio/host/info') .then(function (info) { this.host = info.data; }.bind(this)); }, fetchHassInfo: function () { - this.hass.callApi('get', 'hassio/homeassistant/info') + return this.hass.callApi('get', 'hassio/homeassistant/info') .then(function (info) { this.homeassistant = info.data; }.bind(this));