In this article you will learn how to install hkknx on a Raspberry Pi running Raspberry Pi OS from the command line.
First you have to connect to your Raspberry Pi via SSH.
Raspbian has the default password for SSH set to
1ssh firstname.lastname@example.org 2# email@example.com's password: raspberry
Then you download the latest version of hkknx from the releases page. For the Raspberry Pi we download and unarchive the file with suffix
1wget https://github.com/brutella/hkknx-public/releases/download/2.6.0/hkknx-2.6.0_linux_arm.tar.gz 2tar -xzf hkknx-2.6.0_linux_arm.tar.gz 3ls 4# INSTALLATION.md hkknx hkknx-2.6.0_linux_arm.tar.gz
Once you have downloaded and unpacked the archive, you execute the file
hkknx with the option
-db ./database. The option
db is mandatory and set the folder in which data is stored.
1./hkknx -db ./database
More useful commands are
-portis the port of the web ui (defaults to 8080)
–verboseenables debug log outputs in the system log
Configure as daemon
If you want to run hkknx continuously in the background, you have to create an service/daemon.
On a Raspberry Pi you can configure a systemd service.
The service will execute the command
/home/pi/hkknx -db /home/pi/database automatically when the operating system is started.
1. Create service file with
1$ vim /etc/systemd/system/hkknxd.service
2. Insert content
You can use the following content for the
1[Unit] 2Description=HomeKit Bridge for KNX 3After=network.target 4 5[Service] 6ExecStart=/home/pi/hkknx -db /home/pi/database 7WorkingDirectory=/home/pi 8StandardOutput=inherit 9StandardError=inherit 10Restart=always 11User=pi 12 13[Install] 14WantedBy=multi-user.target
It’s important to use the correct path to the
hkknx executable file and the database folder.
In the example above the executable file is expected to be at
/home/pi/hkknx and the database folder at
3. Starting and stopping a service
You can start and stop a service by executing the following commands.
1$ systemctl start hkknxd.service 2$ systemctl stop hkknxd.service
The log outputs are shown when executing the
1$ systemctl status hkknxd.service