Helmsman - a new semi-native Home-Assistant companion app

I’m more interested in the peformance gains of going fully native than the looks, but yup, it would probably be possible to make it look sailfishy using css. I’ll check that patch as well, thanks for the tip.

Anyway, I’ve been working on the native dashboard, and at least with the components and configuration I use it’s already pretty close to the webview but much smoother.

It’s off by default but can be enabled in the native setting page:

1 Like

Looks promising! I need to check my dashboards and some suggestions, but seems at least that badges and icons aren’t shown correctly.

It’s work in progress still :slight_smile: And yeah it took me a pretty long time to get the mdi: icons to work at all, so not surprised if they don’t work 100% correctly still. I don’t really use badges myself so I haven’t checked if they work.

But yeah suggestions and feature request are welcome - I use a pretty narrow subset of features after all so I don’t necessarily know what’s important to others :slight_smile:

Regarding custom cards, I just made support for the ones I use myself, but supporting everything would be pretty much impossible. I’d basically have to write a js/lit to qml compiler for that. Might be a cool project though…

1 Like

New version again: Release Helmsman 0.3.1 · Pauligrinder/HomeAssistant · GitHub

Maybe I’ll try to put the next version on openrepos or chum…

Anyway, this one has native dashboard icon loading improvements (the previous version rendered them into png’s, new one directly uses the font). Also, when running scripts from the native dashboard it now asks for confirmation if defined (previously it just ran right away). The confirmation isn’t very sailfishy, but anyway.

And I added support for the next-153 browser. The app detects if it’s installed, and if so, it shows an option to use it. I guess it’s a bit faster, but it also flashes a lot.

[Update 10.9]

Here’s another new version: Release Helmsman 0.3.2 · Pauligrinder/HomeAssistant · GitHub

This one now also supports the Atlantic browser (which uses the WebKit engine). It’s not very good tbh, but maybe some feature works better on it. There’s a picker for it in the settings when multiple browsers are installed.

Native updates:

  • Badges should now show up properly. Previously they were just text, now they’re little pills with icon+text.
  • Opening the details of something that has coordinates now shows an OSM map with the entity presented on it.
  • Generally map components in dashboards should now show up.
  • Cameras can now be opened to show the video feed. This works surprisingly well, for me at least the cameras open a lot faster than the official companion apps (which are borderline useless sometimes in regards to camera functionality).

I might’ve forgotten something but you can check the changelog on github if you’re interested. Grok writes those for me automatically so it doesn’t forget or miss anything :slight_smile:

Oh yeah and in other news, I just signed up as a developer on OpenRepos, so as soon as they accept my request, I’ll start putting new versions there.

2 Likes

Ok, found out something interesting regarding the icons. The default icons set in the integrations do not show up - or they do randomly, for example for calendar entries/cards. If I set the icons manually in the dashboard for each card/entity, then they are displayed correctly.

Probably a limitation on the native UI, but when lamps have properties like favourite colours set in the card, it only shows a text, no selection. Not sure if this is even doable for the native UI.

Also, the size of the cards are a bit wonky. In the web and Android dashboards they respect the set height and width of the cards, but in the native UI they’re forced to some other size, which leaves empty spaces between cards. Again, not sure if this can be easily fixed since it probably requires the size to be fetched from the dashboard and then forwarded to the native UI elements.

Now that I have set the icons, and done some rearranging for the cards in my dashboards, it looks really nice with the native UI, so kudos!

One feature request that I’d like to see are the side panel entries and add-ons that are available in the web/Android UI. I have 10+ entries, but the mostly used are a few custom dashboards and to-do lists. This could probably be done either with a side swipe to another stack/window from the main dashboard or from the pull-down menu, with an “Add-on” entry or something similar.

After some time it stops respoding and I have to force-close and reopen it to be able to use it again.
Is there any way to provide the appropriate logging to discover why this happens?

@raketti yeah, the issue is mostly just that every little edge case (and even some main cases tbh) isn’t implemented because lovelace is just such a broad thing and I’ve implemented it the way I use it myself. But rest assured, I will improve it with time :slight_smile: And if the web interface can do something, it’s almost certainly doable in the native as well.

By sidebar, do you mean the hamburger menu? That’s basically implemented in the “Change dashboard” screen which can be found in the pulley menu. It doesn’t show addons yet though, I’ll have to see how those could be shown.

@MrHappy does that happen with the native or web dashboard? I haven’t come across anything like that and I’m basically running the app 24/7. But Home-Assistant is a super broad thing like I said before, so you could be using it way different than I am :slight_smile:

I’ll add some logging to to the next version and hopefully we can catch the problem!

How did I miss the dashboard entry in the pulley?! Most awesome! Thank you!

I wonder if I could do a little workaround for now and create a card with a link to on add-on. Anyway, Helmsman has already replaced the Android app for me for 95% of the usage, the to-do add-on would be the last missing thing.

I’m not sure what you mean by ‘native of web dashboard’?

I installed your app and connected to home assistant, that’s ‘bout it :slight_smile:

Then it’s the web dashboard. It’s the default still for now, but I think the native is getting pretty close to replace it (and then the webview will only be used as fallback for stuff that would be impossible to render natively).

Anyway, there’ll be a new version soon that will log errors etc into Documents/Helmsman/, so hopefully that stall will show up there.

Switched to the native, but it was empty?
So I switched back for now :wink:

Ok, tried adding a button with a navigation to the to-do list, and specified a certain list, but the native UI goes to the default Dashboard. So it seems that some work is sill needed to support the HA Apps/Addons.

Edit: It’s not an App. The To-do lists is an integration, Local To-do to be precise. So this could be challenging to support (no idea actually). I somehow thought that it’s an App.

Yeah looks like certain pages will have to be shown in a webview even when the native dashboard is used - those addons simply don’t have a layout like normal dashboards that can be rendered. But I think that’s an acceptable compromise. The annoying part is that we can’t just show the one dashboard/addon wrapped in the native shell, it forces rendering the whole thing with headers and sidebars and everything, though I guess it’s possible to hide those by injecting some css into the page…

Regarding the empty dashboard @MrHappy - is your dashboard by any chance some custom html/css thing? That of course the native renderer can’t render… So for such cases the webview renderer will be needed in the future as well.

A feature request/fix. :slightly_smiling_face: The glance card would need some finetuning. It’s expanded and aligned off to every direction.

Not sure how well the native UI supports the size parameters for the cards, or if this is too trivial to implement.

^ I think it’s expecting an image, which would need more space. Can you show me how that looks on the web and I’ll try to match that [never mind, I tested myself and will fix it]

Oh and I managed to reproduce the stalling issue and there’ll be a fix soon.

New version: Release Helmsman 0.3.7 · Pauligrinder/HomeAssistant · GitHub

Not much “new” but the two aforementioned things anyway. And addons should now open in the webview.

2 Likes

Thanks for the fix, much better now. :+1:

Next card issue. :sweat_smile: The to-do list card doesn’t show any content in the native UI.

Whereas the web UI renders the card as it should.

Updated version again: Release Helmsman 0.3.16 · Pauligrinder/HomeAssistant · GitHub

Todo-card is fixed - I didn’t even know HA had such a feature, I’m probably gonna start using it from now on!

I also changed navigation behaviour a bit in the native dashboard - if you open a dashboard that’s not your default, it has the back swipe thing so you can get back to the default quickly. I figured this is particularly usefull if you open a todo-dashboard (or calendar etc) through a button or similar.

And the main pulley settings now goes to the webview settings, because from there you can get to the native settings and now you can change home-assistant settings without turning the native dashboard off. Back navigation is a bit difficult here since the back swipe action covers the back button, but I’ll try to figure something out for it later. I guess I could just disable the back swipe, since I already added a “back to dashboard” button in the settings root.

And I made native dashboard toggles etc optimistic, aka it looks like the change happens immediately and then it reverts if it fails for some reason. Particularly climate controls were almost difficult to use because it always waited for a response before reacting, now it’s better.

Oh and I’m now registered as a developer on OpenRepos so the actual next version will go there. I was already putting this one there but then accidentally hit back and lost all the text and screenshots etc, so I’ll do it on my computer later.

3 Likes

Excellent update! Thank you very much! There has been some buzzing around different music streaming apps for Sailfish, so I was wondering if the Home Assistant Music Assist (yep, that’s a mouthful) could be rendered with a native UI? They have a python client that could probably be used as the backend. Only thing missing is the native UI - so no biggie. :smile:

My ultimate wish would have a native player for Deezer (sorry for off-topic) and I found out that HA has made their own side project for that too.

Probably need to add this to the apps wishlist..if I can find the topic. :slightly_smiling_face:

I use Spotify myself so I don’t know… The Android app for that works pretty well, but native would of course be better.

The coolest thing ever though would be a UI into which you could install any backend (Spotify/Apple Music/Youtube Music/Deezer/Tidal/etc) and it would work the same no matter which service you use. Or even mulltiple services at the same time.

That’s what the HAMA does. Here’s their list of current providers: server/music_assistant/providers at dev · music-assistant/server · GitHub

I know, not everyone uses Home Assistant - and I don’t use it to use Deezer, because there are solutions for Linux and others.