Home Assistant Core -- TrueNAS CORE Community Plugin

My configurator page is inaccessible from the menu icon in HA - its pointing to the wrong IP address. Any idea how I change the IP that this menu item points to? Can’t seem to find it in any of the config files.

Just need to change the url to your new ip address

Brilliant. Thanks Troy!

1 Like

Hmm. My plugin update from 0.109.6 to latest (112?) failed. I went into the jail, checked the home assistant log and found:

2020-07-21 17:32:22 ERROR (MainThread) [homeassistant.auth.providers] Unable to load auth provider homeassistant: Shared object “libffi.so.6” not found, required by “_cffi_backend.so”

I reverted the snapshot, ensured it was working and just for fun did a python update as follows:

root@home-assistant:/ # pkg install python37

The following 3 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
libffi321: 3.2.1

Installed packages to be UPGRADED:
libffi: 3.2.1_3 → 3.3
python37: 3.7.7 → 3.7.8_1

Number of packages to be installed: 1
Number of packages to be upgraded: 2

and this resulted in the exact same libffi library issue in the log after starting the homeassistant service. I tried the update from the 109.6 snapshot multiple times in case it was a transient upgrade bug and the failure is consistent. Thoughts?

Unable to load auth provider homeassistant: Shared object “libffi.so.6” not found, required by “_cffi_backend.so”

I’ve seen this error in a few plugins - I thought it was related to me trying to upgrade to the 12.1-RELEASE but seem you found this might be caused by a python update instead? – Good catch.

You don’t have to Plugin → UPDATE to get the latest Home Assistant - You can just use the console menu for that :wink: – In fact Plugin → UPDATE will never make any upgrades to the virtualenv themselves - That’s just to risky with breaking changes between Home Assistant releases.

Unfortunately, I’m still not sure why just updating python would break an existing install. I have tested a clean install it’s working just fine. If you want to Plugin → UPDATE in order to update the FreeBSD system, you will also get the updated service script – You can use this to try recreating the virtualenv after the plugin update. I’m sorry I can’t provide a better option at this time, I just assume this will work because a clean install does not have the same error.

With the updated service script, you can also try switching to python 3.8 in just a few steps as well

iocage console $jail
pkg install python38 py38-sqlite3
sysrc homeassistant_python=/usr/local/bin/python3.8
service homeassistant reinstall
service homeassistant config --check
service homeassistant start

Thanks Troy. With your help I got it working! Of the paths you offered me here’s what I did… performed the Plugin->UPDATE, installed and sysrc’d python3.8 with homeassistant. during the service reinstall it showed that I was ‘reinstalling’ 109.6 - showing the UPDATE did not actually update the homeassistant version. With these steps, it did successfully get my homeassistant 109.6 running but now with python3.8. next I followed your ‘recreating the virtualenv’ link and earlier on that page is a upgrading home assistant core section. I followed those instructions and am now successfully running home assistant 112.5 with python3.8.4.
Thanks again!

1 Like

Anyone know how i can use this?

https://hass-apps.readthedocs.io/en/latest/getting-started.html#getting-started-configuration

Thanks!

I’ve not used hass-apps before but I know a few others have. I can at least help you get it installed –

I have not included any shortcuts for this purpose but you can still install manually. You’ll want to install this to the appdaemon virtualenv.

The basic steps would be something like this – if you installed this plugin before 07/20/2020

iocage console $jail
su - hass
source /srv/appdaemon/bin/activate
pip install --upgrade hass-apps
deactivate && exit

If you installed this plugin after 07/20/2020

  • The username is now homeassistant
  • The appdaemon virtualenv is now /usr/local/share/appdaemon

It seems it could be possible to have this plugin create / manage its own nested datasets. This could potentially open up some interesting possibilities like taking snapshots of the virtualenv and / or configuration directory before an upgrade to Home Assistant. I think with a proper sudoers file in place, we could even trigger taking snapshots right from Home Assistant! and possibly use zfs send / receive to send these snapshots to another location. – So the question now is…

Should this community plugin create / use nested datasets

  • Yes, this is something I would be interested to have.
  • No, it’s easy enough to mount an external dataset and make backups already. Just keep it simple.

0 voters

I need to use port 80 but I understand this is not available as the plugin runs HA as a not-root user.

Basically, I want to run the emulated_hue integration and need to set the listen_port to 80 so that my Logitech Pop Hub can connect to it and therefore also my HA devices. On this page:


at the bottom, there is this command to overcome the problem (for Ubuntu not FreeBSD):

sudo setcap 'cap_net_bind_service=+ep' /srv/homeassistant/homeassistant_venv/bin/python3

I wondered if you had any suggestions for a workaround in a jail.

Thanks for all the hard work!

Hi @jony - IMHO, it’s musch easier to just use a different port for the Emulated Hue.

For example, here is how my configuration looks (and this works with my Harmony)

emulated_hue:
  listen_port: 8300
  upnp_bind_multicast: true
  expose_by_default: true
  exposed_domains:
  ## If exposed_by_default: true
    - light
    - switch

Hi Troy,

Thanks for repying so quickly. I would very much like to use it in the way you suggested. Unfortunately, the only way I have got the Logitech POP Hub to work in the past is to use port 80. Otherwise, when I try to pair the POP Hub with emulated_hue, I get stuck at a screen which says “To pair your Philips Hue, press the button in the center of the Hub”. Of course, I don’t have a button to press so I am stuck there.

I did try adding the line: upnp_bind_multicast: true which you have in your config but it did not make any difference for me. Do have any easy ideas about how I might expose port 80 for the emulated_hue component?

This is my current config:

emulated_hue:
  listen_port: 8300
  upnp_bind_multicast: true
  host_ip: 10.1.102.1
  expose_by_default: false
  entities:
    light.hallway_top_light:
      name: Hallway Top
      hidden: false

Thanks again

I had the same issue. It took me several tries before the connections was made. Have you confirmed the Emulated Hue has loaded and is running (using the alternate port)?

Also, give it a few tries without the host_ip: 10.1.102.1 line


No, not exactly. However, if running Home Assistant as root has allowed you to solve this in the past, you may be in luck. Assuming you have recently installed this plugin, it should fairly easy to switch users and run Home Assistant as root.

:warning: Just word of caution, I have not actually tested this. There are no guarantees this will work.

  • Commands assume you are using the new plugin defaults
  • Assuming the name of the jail is homeassistant

Consider some simple back up options - Just in case

## Snaphot the jail
iocage snapshot homeassistant -n $name_your_snapshot

## Create zip back-up of the configuration directory
iocage console homeassistant
# Press `0` to exit the menu
service homeassistant config --backup

Run as root user (still inside the jail)

# Stop the service
service homeassistant stop

# Add 'root' to the homeassistant group
pw usermod root -G homeassistant

# Tell the service to run-as 'root'
sysrc homeassistant_user=root

# Change ownership to 'root' user
chown -R root /home/homeassistant/homeassistant
chown -R root /usr/local/share/homeassistant

# Start the service
service homeassistant start

You should now be running Home Assistant as root

1 Like

Hey @troy in an earlier post you mentioned that you had switched to Open2Wave (Beta) - are you still using that for your Z-Wave devices? I just switched to it today from Zwave2MQTT and (to me) the setup was much easier. But the problem I’m having is that all of my Z-Wave devices only show as “entities” within HA and not “devices” so I’m heavily restricted on what I can do with them (can’t assign them to rooms and can’t do automations).
Were you able to find a way to “fix” this or are you using a different method now?
Thanks!

Hi @8three

I’m still using OpenZWave Beta

When you say devices only show as “entities” within HA, are you referring to how they show up in Lovelace? If yes, I think this is normal. I only have “entities” in my Lovelace as well.

There are a few ways to find the “devices”, but they may not be obvious at first.

  1. If you click the “entity” in Lovelace, then click the :gear: in the top corner and under → Related
    image

  2. From the HA side panel :gear: configuration → Integrations → OpenZwave Beta
    image

  3. From the HA side panel :gear: configuration → Devices and search openzwave

1 Like

You are the best, thanks so much for this. I can’t say I understand how this happened, but they all added themselves as “devices” overnight! Thanks again for taking the time for such a detailed and helpful reply, really appreciate it

1 Like

Can’t wait for 0.115 … is there anything I can do to help, or an update to let users know it’s ready?

Thanks

Hi @elyobelyob – You can update to any new releases pretty much as soon as it’s ready. There is no need to wait for a “plugin update”. Simply connect to the the jail’s console and update Home Assistant from there.

Thanks, I’ve tried that, but am not getting 115 when I do the same …

Interesting – :thinking: Lets try from the command line.

Just exit that menu ( either press 0 from the main menu or use 9 from the Home Assistant menu )

service homeassistant install homeassistant==0.115.0

If that works you can just restart homeassistant using

service homeassistant restart

You can restart the menu using the command menu

1 Like