Home Assistant App for Garmin

There is now an online editor for GarminHomeAssistant dashboard definitions available. It offers improved autocompletion and validation based on your own HomeAssistant instance. It is available here.

Hi , I have in configuration setup for lets encrypt
http:
ssl_certificate: /ssl/fullchain.pem
ssl_key: /ssl/privkey.pem
And when I try to add setup for cors to use web editor there is conflict with duplicate. So where to add setup?
http:
cors_allowed_origins:
- https://house-of-abbey.github.io

Referring to HTTP - Home Assistant, I just want to make sure you tried this?

http:
  ssl_certificate: /ssl/fullchain.pem
  ssl_key: /ssl/privkey.pem
  cors_allowed_origins:
    - https://house-of-abbey.github.io

We have all our options bundled together under a single http: section.

1 Like

Hi,

I am trying to make this work.

I have configured the API (long-live token), also the https domain that I already had (I used the HAAS Control app that requires this), plus de json and api url.
Note the HA https domain is resolved locally on my local DNS server with a private IP but the certificate is OK. HA is not exposed to the internet.

This is my json:

{
“$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”
}
]
}

When I go to the widget (before clicking to enter) it says:

API: Available:
Menú: in Cache

so I believe something is right…

but when entering in the widget or app, I have the “IQ blue symbol” with an exclamation mark at the top-right corner.

What am I missing?

Thank you.

The crash screen is symptomatic of being out of memory for the menu. Something we cannot anticipate, as you will read from the documentation. However your menu definition is really small, so that seems unlikely. Also we would only expect that to be a problem on the widget version running on an old device.

So can you confirm you have actually installed both versions, widget and application as separate Apps from the Connect IQ store? You say you have the problem with both but I just want to rule out lose use of terminology.

What device are you using please?

We are surprised you can get local HTTPS working, as Garmin’s API call requires a publicly signed certificate. Something only the simulator allows us to bypass, but perhaps you have been clever with DNS?

I’m worried you have found a bug :bug:. Is there a log file on your device giving a clue as to the cause?

Hi!

Nono, I may have provided short info.
I use let’s encrypt to generate the domain with certificate, it’s just I’ve setup my local DNS server to resolve the same domain locally with a private IP.
In this way, I don’t have to publish home assistant but able to use https at home. And it is a requirement of HAAD control.
I use a Garmin Venu 2 plus so shouldn’t be short on resources.
I’ve installed both widget and app from the official store and getting the same IQ icon, it’s just the widget before opening it is providing more info about the menu and API.

I hope this helps in order to help me?
Otherwise let me know what kind of info I can share.

I use a Venu 2, so the app absolutely should be working. The JSON is correct bybthe schema. I need to create a similar setup locally to see what is going on.

Ouch,

So I am stuck here…
Also at the beginning I was trying to make it work without the port (like in the guide? but noticed I had to put the port either in my API or Menu URL to have it recognized. Is that correct?

My URLs

https://xxxxx.duckdns.org:8123/api
https://xxxxx.duckdns.org:8123/local/garmin/ha.json

If you use the port to access HomeAssistant via your browser, you should use it here, if not then you shouldn’t (it will use 443 like any other HTTPS), we have a proxy setup that puts it on port 443 but by default it is 8123

Yep,

That’s what I noticed. Actually when getting the URL through the browser with the port I get the Json, otherwise I got nothing.
I’ll be waiting for your help guys…

Thanks!

Note that the venu 2 doesn’t actually support widgets, it uses glances, the app itself gives provides a glance and the widget is only for older devices that don’t use glances. You probably should just use the app, not the widget.

We’ve just tried to recreate your setup locally by adding DNS resolution for the external URL within the local network. We know that must be working a we can turn off the Internet and the external URL is now still working.

I’ve run up a simulation of the Venu 2+ with this configuration (still no Internet), and all works well. So I’m stuck unable to debug the problem as we can’t recreate it.

Oh…this means I am doing something wrong then…but what?
Once I get back home I’ll posting all the steps I’ve followed and parameters as I have no clue right now on what could be wrong.
Any advice is more than welcome to start troubleshooting

Hello again,

here below the different screenshots I gathered.
I hope it can help somehow…
it kind of reflects what I’ve been mentioning previously.

Not good, and I’m at a loss. Did you find anything resembling a crash report on your venu2+ device?

Where do I need to look for this report exactly?
Is it useful to reset the watch?

On my watch I browsed to This PC\Venu 2\Internal Storage\GARMIN\APPS\LOGS. Look for a file named something like CIQ_LOG.* (my watch has CIQ_LOG.BAK, so looks like an old renamed file). The file contents had entries like the following:

---
Error: Unexpected Type Error
Details: 'Failed invoking <symbol>'
Time: 2023-12-27T19:42:31Z
Part-Number: 006-B3703-00
Firmware-Version: '17.04'
Language-Code: eng
ConnectIQ-Version: 4.2.4
Store-Id: db1e9356-8e04-4d6b-ab43-5c70c49b2488
Store-Version: 45
Filename: DCDD4614
Appname: HomeAssistant
Stack: 
  - pc: 0x10000ec4
---

Of that the Store-Id should match the App URL of https://apps.garmin.com/en-US/apps/db1e9356-8e04-4d6b-ab43-5c70c49b2488 (that’s the beta prototype app you can’t browse to) and then the Error: provides the main piece of useful information, as the only glimpse of what might be wrong.

I would expect yours to contain:

Store-Id: 61c91d28-ec5e-438d-9f83-39e9f45b199d

For a URL of https://apps.garmin.com/en-US/apps/61c91d28-ec5e-438d-9f83-39e9f45b199d.

Thank you for your patience with this.

1 Like

I have two additional suggestions to make.

Please can you try each of the following as menu definitions?

  1. nothing.json
{
  "$schema": "https://raw.githubusercontent.com/house-of-abbey/GarminHomeAssistant/main/config.schema.json",
  "title": "Home",
  "items": []
}

The aim here is to see if you get just a black empty screen, no crash and then swipe right to exit the app.

  1. empty_menu.json
{
  "$schema": "https://raw.githubusercontent.com/house-of-abbey/GarminHomeAssistant/main/config.schema.json",
  "title": "Home",
  "items": [
    {
      "name": "Empty Sub Menu",
      "title": "Nothing",
      "type": "group",
      "items": []
    }
  ]
}

The aim here is to get a single menu item for a group that contain nothing,. Entering the group should give you a black empty screen. Then swipe right to return to the main menu with just one group item.

By using these menus that contain no entities I hope you can run without a crash as there are zero API interactions. That might tell us that there’s a problem updating the status of your toggle item(s) with your setup. The app should not crash, so I need to figure out how to catch the problem and provide a more useful error message for diagnosis and resolution.

Ok,

so…

  1. The “nothing.json” test. Same result
  2. The “empty_menu.json”. Same result.
    I restarted home assistant after both changes (quick restart and also complete restart).

Concerning the logs now…

I have two files: “CIQ_LOG” (Yaml Source File) and “CIQ_LOG”(BAK File).

Here you have:

“CIQ_LOG” (Yaml Source File)

---
Error: Unexpected Type Error
Details: 'Failed invoking <symbol>'
Time: 2024-02-03T18:48:06Z
Part-Number: 006-B3851-00
Firmware-Version: '17.04'
Language-Code: spa
ConnectIQ-Version: 4.2.4
Store-Id: 61c91d28-ec5e-438d-9f83-39e9f45b199d
Store-Version: 17
Filename: E16M1625
Appname: HomeAssistant
Stack: 
  - pc: 0x100023cd
  - pc: 0x100014a2
  - pc: 0x10000df3
  - pc: 0x10001146
---
Error: Unexpected Type Error
Details: 'Failed invoking <symbol>'
Time: 2024-02-03T18:48:55Z
Part-Number: 006-B3851-00
Firmware-Version: '17.04'
Language-Code: spa
ConnectIQ-Version: 4.2.4
Store-Id: 61c91d28-ec5e-438d-9f83-39e9f45b199d
Store-Version: 17
Filename: E16M1625
Appname: HomeAssistant
Stack: 
  - pc: 0x100023cd
  - pc: 0x100014a2
  - pc: 0x10000df3
  - pc: 0x10001146
---
Error: Unexpected Type Error
Details: 'Failed invoking <symbol>'
Time: 2024-02-03T18:49:56Z
Part-Number: 006-B3851-00
Firmware-Version: '17.04'
Language-Code: spa
ConnectIQ-Version: 4.2.4
Store-Id: 61c91d28-ec5e-438d-9f83-39e9f45b199d
Store-Version: 17
Filename: E16M1625
Appname: HomeAssistant
Stack: 
  - pc: 0x100023cd
  - pc: 0x100014a2
  - pc: 0x10000df3
  - pc: 0x10001146
---
Error: Unexpected Type Error
Details: 'Failed invoking <symbol>'
Time: 2024-02-03T18:50:05Z
Part-Number: 006-B3851-00
Firmware-Version: '17.04'
Language-Code: spa
ConnectIQ-Version: 4.2.4
Store-Id: 61c91d28-ec5e-438d-9f83-39e9f45b199d
Store-Version: 17
Filename: E16M1625
Appname: HomeAssistant
Stack: 
  - pc: 0x100023cd
  - pc: 0x100014a2
  - pc: 0x10000df3
  - pc: 0x10001146
---
Error: Unexpected Type Error
Details: 'Failed invoking <symbol>'
Time: 2024-02-03T18:50:46Z
Part-Number: 006-B3851-00
Firmware-Version: '17.04'
Language-Code: spa
ConnectIQ-Version: 4.2.4
Store-Id: 61c91d28-ec5e-438d-9f83-39e9f45b199d
Store-Version: 17
Filename: E16M1625
Appname: HomeAssistant
Stack: 
  - pc: 0x100023cd
  - pc: 0x100014a2
  - pc: 0x10000df3
  - pc: 0x10001146

CIQ_LOG"(BAK File)

---
Error: Unexpected Type Error
Details: 'Failed invoking <symbol>'
Time: 2024-02-03T16:51:10Z
Part-Number: 006-B3851-00
Firmware-Version: '17.04'
Language-Code: spa
ConnectIQ-Version: 4.2.4
Store-Id: 61c91d28-ec5e-438d-9f83-39e9f45b199d
Store-Version: 17
Filename: E16M1625
Appname: HomeAssistant
Stack: 
  - pc: 0x100023cd
  - pc: 0x100014a2
  - pc: 0x10000df3
  - pc: 0x10001146
---
Error: Unexpected Type Error
Details: 'Failed invoking <symbol>'
Time: 2024-02-03T16:54:33Z
Part-Number: 006-B3851-00
Firmware-Version: '17.04'
Language-Code: spa
ConnectIQ-Version: 4.2.4
Store-Id: 61c91d28-ec5e-438d-9f83-39e9f45b199d
Store-Version: 17
Filename: E16M1625
Appname: HomeAssistant
Stack: 
  - pc: 0x100023cd
  - pc: 0x100014a2
  - pc: 0x10000df3
  - pc: 0x10001146

Waiting for the next steps!

Did you ensure you cleared the watches cache between tests?