scottyphillips / pychonet

A simple to use library for interfacing with the ECHONETlite protocol
GNU General Public License v3.0
19 stars 17 forks source link

pip3 install isn't suitable if homeassistant is running in a container. #42

Closed steven-ellis closed 2 years ago

steven-ellis commented 2 years ago

I'm running HA as a rootless container and it isn't easy to include additional packages.

Is there an alternative installation method so I can use echonetlite with HA

At present my work around is

podman exec -it hass pip3 install pychonet

scottyphillips commented 2 years ago

I also run home assistant in a standalone container as my preprod environment, so I find it very odd that it’s not auto installing the dependencies; that’s the purpose of the manifest.json file. Are you saying your home assistant container does not have root privileges and therefore pip doesn’t work unless you escalate?

scottyphillips commented 2 years ago

Pychonet is split from echonetlite_homeassistant because that is the design requirement for any integration that is intended to become offical - the home assistant developers will not approve integrations that perform the sort of low level API calls that Pychonet is responsible for. The expectation is middleware is used - this is the reason pychonet exists because I was (and still am) half tempted to put in a PR and make it an official integration. I’m not really willing to make a sweeping change to the architecture sorry to accomodate corner-case HA deployments, I will support HACS deployments and typical deployments where HA is installed in accordance with official installation instructions and works as intended - eg automatically deploy required dependencies via the manifest.

scottyphillips commented 2 years ago

As a suggestion, if deployment of dependancies via the manifest is not working when the container is running in a rootless mode (which is not unreasonable and totally understandable from a security point of view) I would suggest that you raise an issue on the Home Assistant Core repo and perhaps seek a solution there?

Another idea would be to modify the dockerfile from Home Assistant Core and build your own custom image where Pychonet is injected at image build time?