Iâve decided to revive the topic and say that Home Assistant OS canât be configured with multiple network interfaces in mind, so those who want to use multiple interfaces such as myself must go with standard Home Assistant Core and forget about addons for good.
I would simply go with a standard Home Assistant Core as you get a lot more flexibility than running Home Assistant OS. The only problem is you have to have a hands-on experience with Linux command line, so Iâd recommend going with Debian and modify /etc/network/interfaces
as follows (using your favorite text editor such as vi, vim, emacs, or nano):
auto eth0
iface eth0 inet static
address 172.20.5.4
netmask 255.255.255.0
gateway 172.20.5.1
auto eth1
iface eth1 inet static
address 172.20.10.3
netmask 255.255.255.0
Youâll only need one gateway for Home Assistant to access the Internet.
Or if you want to go with Arch Linux or CentOS with systemd-networkd, you can configure as follows:
/etc/systemd/network/eth0.network
[Match]
Name=eth0
[Network]
Address=172.20.5.4/24
DNS=172.20.16.16
Gateway=172.20.5.1
/etc/systemd/network/eth1.network
[Match]
Name=eth1
[Network]
Address=172.20.10.3/24
Or if you want to use Network Manager, you can use an ncurse-based nmtui
, which is easy for most people as itâs menu-driven. As root, simply type nmtui
in the terminal and you can configure your interfaces from there.
From there, I recommend installing Home Assistant Core in virtual environment. Upgrading Home Assistant Core is easy to do inside a Python virtual environment.
Do note that you wonât have access to add-ons in Home Assistant Core. Home Assistant IO and Home Assistant OS is very restrictive for Linux power users anyway. But itâs nice that add-ons such as UniFi Controller and Samba are just a click away. Would be nice to get the best of both words, though.
And why multiple network interfaces? Those of you (including myself) who setup multiple networks would benefit from having multiple interfaces that do not need to go through a router to get to another internal isolated network. For instance:
-
172.20.0.0/27
: pfSense, UniFi Controller, wireless APs, switches, etc.
-
172.20.1.0/26
: Computers, smartphones, tablets, laptops, printer, HDHomeRun, etc.
- '172.20.5.0/30`: Home Assistant for itâs own subnet
-
172.20.7.0/30
: ISY-994i
-
172.20.7.16/29
: Konnected Alarm Panel Pro
-
172.20.7.96/28
: Other wired home automation devices
-
172.20.23.0/24
: Isolated Wireless IoT devices
-
172.20.40.0/23
: Virtual machines
Home Assistant can have itâs own IP address for each subnet. For some devices that require Internet access, you could let Home Assistant be a default gateway for the subnets and have your VM block access to other subnets as well. In this case:
- 172.20.5.2: Home Assistantâs own subnet for allowing 172.20.1.0/26 access to the web interface; 172.20.5.1 will be a default gateway for communicating with the Internet.
- 172.20.7.1: Home Assistant for communicating with ISY-994i
- 172.20.7.17: Home Assistant for communicating with Konnected Alarm Panel Pro
- 172.20.7.97: Home Assistant for other wired home automation devices
- 172.20.20.0/24: Home Assistant for isolated IoT devices â some may need Internet access; some may not.
Does this all make sense? I made it sound a lot more complex than it actually is; however, network segmentation can be a very handy tool for keeping devices from talking to each other if one gets infected with malware. If I have a Konnected Alarm Panel Pro, I can connect them via PoE and block them from accessing the Internet. So this is something that canât be done using Home Assistant OS.
And yes, I do keep mentioning Home Assistant because I can be a bit too lazy to type âCore.â Honestly I would rather want to call âHome Assistantâ as âHome Assistantâ from now on instead of mention âHome Assistant Core.â Because I can sometimes forget to type âcore!â Iâve been a Home Assistant user for so many years since 0.18.
Anyway, I hope I can be of help.