Home Assistant App for Garmin

The App settings are in the Connect IQ application on your phone. They are not accesses via the watch, so the watch app crash is inconsequential here. The option to cache the menu is near the top, first checkbox. Clear that and set the clear cache option below it for belt and braces.

Ohhh good catch man!!
Now I have the black screen with the “nothing.json” ! “Empty_menu.json” also works!

This is telling. Also the simplicity of the menu that is causing the crash. I’m wondering if the menu HTTP GET request is failing with an error message in plain text, rather than some JSON.

Does that resolve the general App crash?

Yes, I was testing, now it works with my menu:

{
  "$schema": "https://raw.githubusercontent.com/house-of-abbey/GarminHomeAssistant/main/config.schema.json",
  "title": "Home",
  "items": [
      {
          "entity": "switch.luz_despacho_enchufe_1",
          "name": "Luz Despacho",
          "type": "toggle"
      }
  ]
}

And it also works turning on/off the light. I guess it was the cache that screwed it all?

Thanks for the help guys… I’ll start to work in my menu now…all that I wanted was to have multiple toggles in a screen in order not to scroll has I have to do with HAAS Control :slight_smile:

Now I’m curious how you got a bad cache copy. Maybe there’s a test missing before storing the cache copy.

Well done @JosephAbbey!

Thank you both! This app looks awesome. I’ll work on my menu now :smiley:

One question,
what about curtains that have ability to open/stop/close ? it’s not a toggle or a tap so how do you implement it in the menu?

You can make use of two taps and a template with a tap, that gives you 3 actions and a state.

If you can’t squeeze entities into a toggle, then you improvise with multiple taps. There are limits in a watch menu! :wink:

Please can you share you chosen solution to assist others. It might be good if we can add it to our examples page too if you don’t mind.

It doesn´t work for me.


Configuration
image

Did you restart HomeAssistant after you changed it?

Yes, and in watch also aplication work.
I´ve founded that problem is maybe that I am trying connect from work and computer is connected from slovakia via germany . When I try from phone then it works.
What i don´t understand is that I can connect to home assistant normaly.

If you can get the editor to work on one device such as your phone, then Cross-origin resource sharing is solved. So you have to assume there is something peculiar with your work device setup.

Read up on CORS by the link above, its an web page thing.

Cross-origin resource sharing (CORS ) is a mechanism that allows restricted resources on a web page to be accessed from another domain outside the domain from which the first resource was served.

Needless to say we are not surprised at your observation, its just a setting to allow our web-based editor to talk to your Home Assistant. You are giving your Home Assistant API permission to serve information to our editor. If you don’t make that settings change, then we are denied access to your HA-based data and cannot perform entity name completion etc.

  1. The server at service.example.com sends one of these three responses:
    :
    An error page if the server does not allow a cross-origin request

uhm…
But I can’t call an “entity_id + type” to make the curtain open right?

like:

entity_id: fexxxxxxxxxxxxxx
type: open

I need to create a scene or a script for every curtain and every action I want for this curtain and introduce that in the “tap” action as a “service”. That sounds like a lot of work. Am I missing something easier?

That type relates to the item object used in the Garmin App menu. There is no menu item type open, just tap, toggle, template and group.

For the simple binary “on/off” things in life there’s toggle type. For everything else there’s a tap type.

{
      "entity": "fexxxxxxxxxxxxxx",
      "name": "Curtain action",
      "type": "tap",
      "tap_action": {
        "service": "XXX.YYY"
      }

What service XXX.YYY is required to open your curtains?

More generally the service might be a (“XXX” = ) script, might be an automation, might be a scene, or light or switch, might be some other form of service of the format XXX/turn_on, XXX/turn_off, XXX/do_something.

We’re trying not to specialise too closely to entity types, e.g. cover, curtain, gate etc, as we won’t keep up with changes.

Ok, so this is what I did:

  1. Created a group for Curtain A
  2. Created a script for curtain A open
  3. Created a script for curtain A Close
  4. Created a script for curtain A Stop

It looks like this:

Question: Can we customize the icons somehow?

Also, @JosephAbbey mentionned templates possibility. I didn’t get it, is it a better approach?

Looks like you are having fun!

No. At the end of the day, this is just a watch app. The platform is not a PC or a phone, and does not use a web page to display stuff, and is limited by what you can specify in a JSON object so I’m not sure where you would stuff the icon file! If you want to get complicated, use your Home Assistant app on your phone?

A template menu item will allow you to display a state as a text string you define (using Home Assistant templates). It creates a second row of text in the menu item. The template menu item will also allow you to specify a tap_action too, identical to the ones you have already worked out. So now you can add some status text to each of your three tap actions. But since you have three separate items, you might only want to add the status test to one of them.

The toggle menu item adds the service calls XXX/turn_on and XXX/turn_off to the API string. This might limit you for things like covers, gates and doors.

I know it is not fair to compare but I had this before on my wearos and it was kind of cool and useful :smiley:
It’s just a comment, very happy with your dev.

I can only get the updated position in Homeassistant when I start/stop an activity. I have tried all gps-settings under system on the watch. Should it be possible to get the position every time the batterystatus updates? The batterystatus updates at 5 minutes interval very consistently.
Besides the missing updates it looks very nice