Running Unify on Raspberry Pi
The Unify Host SDK targets our reference platform, a Raspberry Pi 4 (RPi4). It is therefore recommended to set up a RPi4 for evaluating the full set of functionalities.
For details on setting up a bare RPi4, follow the setup instructions in the Official Raspberry Pi User Guide, and ensure a supported radio module is attached to your RPi4.
For set up and running quickly to test out Unify on the Raspberry Pi refer Setting up Raspberry Pi for Unify
The rest of this guide focuses on how to set up all of the applications and services on a RPi4.
For running Unify Framework it is required to have a running MQTT broker to which the Unify Framework can connect. To get an MQTT broker installed on the RPi4:
pi@raspberrypi:~ $ sudo apt update
pi@raspberrypi:~ $ sudo apt install mosquitto
For more information regarding logging and configuration of eg. the Mosquitto broker, see the Unify Host SDK User Guide.
How to install packages
The Unify Host SDK distribution targets the reference platform Debian Bookworm platform. Binary Debian packages are provided with the SDK and they are available in a Zip file eg. unify_x.y.z_arm64.zip on Unify’s GitHub release page.
The simplest way to install the Unify components is to use the apt
tool.
Transfer the .deb
packages to the target via eg. SCP. Make sure to use either
a local relative path with ./
or absolute paths. Otherwise apt will look
for the package in the wrong place and fail.
Install a specific Unify package:
pi@raspberrypi:~ $ sudo apt install uic-sdk-dir/uic-<component>_<version>_arm64.deb
Install all packages:
pi@raspberrypi:~ $ sudo apt install uic-sdk-dir/*.deb
Update installed packages:
pi@raspberrypi:~ $ sudo apt reinstall uic-sdk-dir/*.deb
Verify the configuration
After installing the desired Unify Host SDK packages, make sure the configuration is set correctly.
pi@raspberrypi:~ $ cat /etc/uic/uic.cfg
zpc:
serial: /dev/ttyUSB0
rf_region: EU
datastore_file: /var/lib/uic/zpc.db
zigpc:
serial: /dev/ttyACM0
datastore_file: /var/lib/uic/zigpc.db
cpcd:
serial: /dev/ttyACM0
If your configuration is wrong, you can either edit the file directly or reconfigure a specific package. After making changes to the configuration make sure to either reboot or restart the service.
pi@raspberrypi:~ $ sudo dpkg-reconfigure uic-zpc
Verifying if an application is running
The Unify applications all install SystemD service files for handling the starting and stopping of the applications on a RPi4.
You can check if a Unify Host SDK application is running by using systemctl
.
For information on how to handle SystemD services using systemctl
, see the systemctl man pages.
Here we can see that the uic-zpc
service is loaded and active:
pi@raspberrypi:~ $ systemctl status uic-zpc.service
* uic-zpc.service - Unify Z-Wave protocol controller
Loaded: loaded (/lib/systemd/system/uic-zpc.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2022-08-02 14:14:58 CEST; 8s ago
Main PID: 9471 (zpc)
Tasks: 1 (limit: 4915)
CGroup: /system.slice/uic-zpc.service
-9471 /usr/bin/zpc
aug 02 14:15:02 raspberrypi zpc[9471]: 2022-Aug-02 14:15:02.158423 <W> [uic_stdin_process] stdin is not a tty, input will not be handled.
aug 02 14:15:02 raspberrypi zpc[9471]: 2022-Aug-02 14:15:02.166045 <i> [mqtt_client] Connection to MQTT broker localhost:1883 established.
aug 02 14:15:02 raspberrypi zpc[9471]: 2022-Aug-02 14:15:02.168337 <i> [mqtt_client_fsm_connecting] We are connected to the MQTT broker.
Unify Framework
If you are interested in building an IoT Gateway based on the Unify Framework refer to the Unify Framework Getting Started.
Multiprotocol Setup
If you are interested in setting up multiprotocol CPC-based applications see the Multiprotocol Setup page.