From Fedora Project Wiki

Line 38: Line 38:
== User interface ==
== User interface ==


Web interface is in '''port 8123''' by default.
Web interface is in '''port 8123''' by default which is blocked by the firewalld service.


== Security ==
== Security ==

Revision as of 22:14, 27 March 2023

Home Assistant (HASS) is a localized home automation server system that doesn't relay on any external cloud service nor network connections. It has a web as well mobile device (iPhone, Android, tablets) user interfaces for different use cases. It's written with Python and it has wide home automation hardware support, called integrations.

By its nature home automation installations are used for long periods which conflicts with the fast pace of Linux operating system life cycles. HASS is also written with the latest Python features which are not available in enterprise type of Linux variants. There are no premade packages for any Fedora camp distribution. These combined it's hard to install and get running on enterprise Linux and Fedora itself would have to be constantly upgraded.

Project itself provides a lot of pre-made installation images where Rasperry Pi native hardware is the reference target. That's very easy if a RasPi is available and the intended platform. HASS has CCTV-features that are CPU-intensive and the more powerful Raspi's help with those features.

In non-RasPi installations, provided virtual machine images do not run on enterprise Linux (2023) KVM. There is also a manual installation method. At the moment looks like the Fedora Server releases (bare metal or virtual installation) provide the both requirements, the somewhat recent Python versions and slower release cycle where it can be manually installed with Python package installer pip tool. Python package-method is also easy to update with HASS monthly updates. Manual Python package installation has some limitations, some third-party web-installation methods don't work for example.


Manual installation with Python package installer

Package dependencies. Manual installation with pip also compiles some Python-modules and hence development packages are needed for runtime environment.

# dnf install -y python3 python3-devel python3-pip openssl

Python package name is homeassistant. Should be noted, that it's available in different Python version repositories, but older Python versions have very old HASS versions which don't get updated anymore. They install but are years old and should not be used as all the documentation, discussions and integrations have moved on. The correct way to solve this is to change Python, that is a distribution version with newer Python.

In python venv environment:

$ pip3 install homeassistant

Systemd

Systemd file /etc/systemd/system/hass@hass.service. It assumes the manual installation directory.

[Unit]
Description=Home Assistant
After=network-online.target

[Service]
Type=simple
User=%i
WorkingDirectory=/home/%i/.homeassistant
ExecStart=/srv/hass/bin/hass -c "/home/%i/.homeassistant"
RestartForceExitStatus=100

[Install]
WantedBy=multi-user.target

User interface

Web interface is in port 8123 by default which is blocked by the firewalld service.

Security

If the system is connected to the Internet, it should be secured properly to prevent unauthorized use.

See also

External links