Request auto-connection of network-control for home-assistant-snap

Hi,

I’m requesting auto-connection for the interface network-observe for the package home-assistant-snap.

This is because a default integration dhcp, which watches network for supported devices and services.

It fails with:

2021-08-06 19:08:19 ERROR (MainThread) [homeassistant.components.dhcp] Cannot watch for dhcp packets: [Errno 13] Permission denied

As this integration is a part of the core intregrations and enabled by default, and we’re not able to control this and giving a descriptive error message from within the snap, it would be easier for users to get the connection automatically.

Network discovery is an essential part of Home Assistant as it’s made to collect services under one «umbrella», so the user will have one interface to talk to them all - and also let services that normally cant see or talk to each other - do that.

I’ve tried with network-observe without any success. Here’s the source-code for the component/integrations.

Let me know if you have any questions.

Hi @reviewers ,

How long will it normally take to get a response on such a request?

Let me know if you’re missing any details.

Regards,
Joachim

If I am reading the upstream code correctly, it looks like this puts a network interface into promiscuous mode and then captures all packets to look for DHCP packets - this is quite a privileged operation and so it is not surprising this is not covered by network-observe. I wonder if perhaps using Avahi would be a less invasive way to discover other devices but perhaps that is not in your control as a downstream packager.

Since network-control is privileged I am hesitant about auto-connecting this for home-assistant-snap but as this is a core part of the functionality of the snap I feel this is perhaps warranted in this case. As such, +1 from me to auto-connect network-control for home-assistant-snap (out of curiousity is there a reason why this is not just home-assistant in the store?)

Can other @reviewers please vote?

I’m +1 on this one, but I’d like to ask for a clearer description on the store page that explains explicitly the snap’s capabilities and what functionality is available out of the box/autoconnected.

On a separate note, I second alexmurray’s question on naming.

Hi guys,

Thanks for the replies :slight_smile:

Just quickly on the naming. If I remember correctly, the name «home-assistant» was a reserved name for the store. But I got to be honest, and I can not say that for certain.

This project was my first snap-project and didn’t know where it would lead to. At the time when I started, there were four other HA projects in the store, but they were outdated and not updated. Two of them hadn’t been updated since 2017, and the two others in 2018 and 2019. As HA is a monthly rolling release I found that unacceptable.

However I’ve though about it many times my self, about changing the name, but that doesn’t seem to be an option I have in any of the store-settings. And I don’t know if that is possible without breaking anything for already «subscribed» users. But their instance of snapd maybe track the snap-id rather than the package name?

@alexmurray: Would changing to Avahi make any difference in the permissions (plugs) that the app would need? If so, I might have a chance to affect this by putting up a change request for it on github.

@Igor: I will make a better description for the network-control interface. I haven’t mentioned it yet as it was not long ago (february release) since it was added to the Home Assistant Core and dependencies was finally resolve few days ago.

EDIT: Description updates. Hope it’s OK :slight_smile:

1 Like

Looks good, +1 from me for auto-connection of network-control.

1 Like

+2 votes for, 0 votes against. Granting auto-connect of network-control to home-assistant-snap. This is now live.

Hi,

Thank you very much. Just have one question; Do I have to request this for each revision released of the snap, such as with tracks, or is it live for every revision?

Snap declarations apply for every revision of a given snap - so there is no need to re-request this.

1 Like