Jetson Nano powered House

Victor Benarbia
4 min readJul 1, 2021

--

Building an energy efficient fully connected

In my system, I have 2 Alexa + Philips Hue which acts as HUB.

Why Jetson nano over Raspberry PI ?
Well Jetson nano play at another level in the computing game. It integrate a full size GPU — Graphic Processing Unit. This allows real time AI — Artificial Intelligence on board at 10W.

Connectivity limitation
Jetson nano does not ship with Wifi onboard. I would advice to connect it directly on the router.

Power limitation
To get the most of the Jetson nano a power supply is required.

Step by step installation

Let’s dive though the steps assuming your have already install Nvidia Linux OS.

  • Connect Jetson nano to your router via ethernet cable.
  • Plug and boot-up your Jetson nano.
  • Connect the Aoetec in any of the USB port

First we need to install a ZWave bridge for Home Assistant.

Make sure you have a Snapd installed. It’s shipped with most Ubuntu Flavors and some other distributions.

sudo snap install zwavejs2mqtt

And give the package access to use USB-devices and observe hardware. The last one is needed for the program to list available devices in the UI.

sudo snap connect zwavejs2mqtt:raw-usb
sudo snap connect zwavejs2mqtt:hardware-observe

Wait a few second for the UI to load, then connect. Ignore the error message.

http://<jetson_ip>:8091

  • Login
  • Select setting > serial port /dev/ttyACM0

Next step is to bind the Zwave device.

  • Disconnect the Aoetec USB stick
  • Walk around the house and pair your Zwave device
  • Go back to the Jetson nano and connect Aoetec USB stick on the same USB port.
  • Double check that you can see the ZWave device in the UI http://<jetson_ip>:8091
a few Zwave device connected

Now you can install the home assistant baremetal for maximum performance. https://www.home-assistant.io/installation/linux

Install Home Assistant Core

INSTALL DEPENDENCIES

Before you start make sure your system is fully updated, all packages in this guide are installed with apt, if your OS does not have that, look for alternatives.

sudo apt-get update
sudo apt-get upgrade -y

Install the dependencies:

sudo apt-get install -y python3.8 python3.8-dev python3-venv python3-pip libffi-dev libssl-dev libjpeg-dev zlib1g-dev autoconf build-essential libopenjp2-7 libtiff5 tzdata

CREATE AN ACCOUNT

Add an account for Home Assistant Core called homeassistant. Since this account is only for running Home Assistant Core the extra arguments of -rm is added to create a system account and create a home directory.

sudo useradd -rm home-assistant

CREATE THE VIRTUAL ENVIRONMENT

First we will create a directory for the installation of Home Assistant Core and change the owner to the homeassistant account.

sudo mkdir /srv/homeassistant
sudo chown homeassistant:homeassistant /srv/homeassistant

Next up is to create and change to a virtual environment for Home Assistant Core. This will be done as the homeassistant account.

sudo -u homeassistant -H -s
cd /srv/homeassistant
python3.8 -m venv .
source bin/activate

Once you have activated the virtual environment (notice the prompt change to (homeassistant) homeassistant@raspberrypi:/srv/homeassistant $) you will need to run the following command to install a required Python package.

python3 -m pip install wheel

Once you have installed the required Python package it is now time to install Home Assistant Core!

pip3 install homeassistant

Start Home Assistant Core for the first time. This will complete the installation for you, automatically creating the .homeassistant configuration directory in the /home/homeassistant directory, and installing any basic dependencies.

hass

You can now reach your installation via the web interface on http://<jetson_ip>:8123.

When you run the hass command for the first time, it will download, install and cache the necessary libraries/dependencies. This procedure may take anywhere between 5 to 10 minutes. During that time, you may get “site cannot be reached” error when accessing the web interface. This will only happen for the first time, and subsequent restarts will be much faster.

Next add Z-Wave integration

  • Select Configuration
  • Add integration (bottom right )
  • Search Z-Wave JS
  • After installation the default WS url ws://localhost:3000 is fine

Now all your Z-Wave devices should appears in home assistant.

Happy automation.

--

--

Victor Benarbia

Living the American dream in Austin TX, where I'm design automation engineer at ARM.