diff --git a/source/HomeAssistantApp.mc b/source/HomeAssistantApp.mc index 230d630..77e3df2 100644 --- a/source/HomeAssistantApp.mc +++ b/source/HomeAssistantApp.mc @@ -266,7 +266,6 @@ class HomeAssistantApp extends Application.AppBase { private function buildMenu(menu as Lang.Dictionary) { mHaMenu = new HomeAssistantView(menu, null); mQuitTimer.begin(); - startUpdates(); } function startUpdates() { diff --git a/source/HomeAssistantGroupMenuItem.mc b/source/HomeAssistantGroupMenuItem.mc index e53ea9c..049a49f 100644 --- a/source/HomeAssistantGroupMenuItem.mc +++ b/source/HomeAssistantGroupMenuItem.mc @@ -56,6 +56,12 @@ class HomeAssistantGroupMenuItem extends WatchUi.IconMenuItem { setSubLabel(null); } else if(data instanceof Lang.String) { setSubLabel(data); + } else if(data instanceof Lang.Number) { + var d = data as Lang.Number; + setSubLabel(d.format("%d")); + } else if(data instanceof Lang.Float) { + var f = data as Lang.Float; + setSubLabel(f.format("%f")); } else if(data instanceof Lang.Dictionary) { // System.println("HomeAsistantGroupMenuItem updateState() data = " + data); if (data.get("error") != null) { @@ -64,7 +70,7 @@ class HomeAssistantGroupMenuItem extends WatchUi.IconMenuItem { setSubLabel($.Rez.Strings.PotentialError); } } else { - // The template must return a Lang.String, a number can be either integer or float and hence cannot be formatted locally without error. + // The template must return a Lang.String, Number or Float, or the item cannot be formatted locally without error. setSubLabel(WatchUi.loadResource($.Rez.Strings.TemplateError) as Lang.String); } WatchUi.requestUpdate(); diff --git a/source/HomeAssistantTapMenuItem.mc b/source/HomeAssistantTapMenuItem.mc index 8d1915c..58a91aa 100644 --- a/source/HomeAssistantTapMenuItem.mc +++ b/source/HomeAssistantTapMenuItem.mc @@ -72,6 +72,12 @@ class HomeAssistantTapMenuItem extends WatchUi.IconMenuItem { setSubLabel($.Rez.Strings.Empty); } else if(data instanceof Lang.String) { setSubLabel(data); + } else if(data instanceof Lang.Number) { + var d = data as Lang.Number; + setSubLabel(d.format("%d")); + } else if(data instanceof Lang.Float) { + var f = data as Lang.Float; + setSubLabel(f.format("%f")); } else if(data instanceof Lang.Dictionary) { // System.println("HomeAsistantTemplateMenuItem updateState() data = " + data); if (data.get("error") != null) { @@ -80,7 +86,7 @@ class HomeAssistantTapMenuItem extends WatchUi.IconMenuItem { setSubLabel($.Rez.Strings.PotentialError); } } else { - // The template must return a Lang.String, a number can be either integer or float and hence cannot be formatted locally without error. + // The template must return a Lang.String, Number or Float, or the item cannot be formatted locally without error. setSubLabel(WatchUi.loadResource($.Rez.Strings.TemplateError) as Lang.String); } WatchUi.requestUpdate(); diff --git a/source/HomeAssistantToggleMenuItem.mc b/source/HomeAssistantToggleMenuItem.mc index 3548d5a..a8b7dcb 100644 --- a/source/HomeAssistantToggleMenuItem.mc +++ b/source/HomeAssistantToggleMenuItem.mc @@ -74,6 +74,12 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem { setSubLabel(null); } else if(data instanceof Lang.String) { setSubLabel(data); + } else if(data instanceof Lang.Number) { + var d = data as Lang.Number; + setSubLabel(d.format("%d")); + } else if(data instanceof Lang.Float) { + var f = data as Lang.Float; + setSubLabel(f.format("%f")); } else if(data instanceof Lang.Dictionary) { // System.println("HomeAsistantToggleMenuItem updateState() data = " + data); if (data.get("error") != null) { @@ -82,7 +88,7 @@ class HomeAssistantToggleMenuItem extends WatchUi.ToggleMenuItem { setSubLabel($.Rez.Strings.PotentialError); } } else { - // The template must return a Lang.String, a number can be either integer or float and hence cannot be formatted locally without error. + // The template must return a Lang.String, Number or Float, or the item cannot be formatted locally without error. setSubLabel(WatchUi.loadResource($.Rez.Strings.TemplateError) as Lang.String); } WatchUi.requestUpdate();