Installing and running Domoticz on a Raspberry PI
There are two ways of installing Domoticz on your Raspbery Pi. The easy way, and the hard way. Both are described on this page.
- 1 Preparation (for both methods)
- 2 Domoticz - The easy way
- 3 Domoticz - the hard way (Compile your own version)
- 4 Make Domoticz startup at boot time (Also needed for Web Update)
- 5 Updating Domoticz
Preparation (for both methods)
If you have bought a 'fresh' Pi, you'll need to get your version of Linux to run smoothly.
Log in to your Raspberry with the "pi" user, open the terminal window, and install the required packages by typing this command, followed by enter:
Using Raspi-config you should expand the root filesystem, set your timezone, finish (reboot) and login again. You can find various tutorials on how to do this elsewhere on the internet, or you can check out the tutorial on this wiki: Initial Raspberry Pi Setup
Domoticz - The easy way
If you are running Debian-based flavours of Linux on your Pi, like Raspbian and Ubuntu, installing Domoticz is easy. Just open a terminal window and execute this command.
sudo curl -L install.domoticz.com | sudo bash
Congratulations, you're done!
Just point your browser to the IP address of your Raspberry Pi, and use port 8080. From your Pi's browser you could surf to
[Note: If you receive certificate error messages, you could also try executing
sudo curl -L -k install.domoticz.com | sudo bash. This will download Domoticz through an unsecure (http instead of https) connection.
Domoticz - the hard way (Compile your own version)
You can also install Domoticz by compiling the source code yourself. The advantage of this is that it should work on most versions of Linux (Debian/Ubuntu tested).
For a manual install see:
Build times reported are when using a Raspberry Pi 3, using "make -j 3"
(Older revisions of the raspberry pi could take up to 10x longer to compile)
You also might need to install GCC 4.6 and compile with this version as 4.9 takes to much memory
Creating a large swap file does not solve the problem, and build with 'make -j 3'
If you are using an old version of the Raspberry Pi, remove the "-j 4" from the make commands!
This will also work for Debian systems, but one these the wiringpi library does not exist, and does not have to be installed.
sudo apt-get install cmake make gcc g++ libssl-dev git libcurl4-openssl-dev libusb-dev python3-dev
Change to your source folder (could be your home folder)
Build & Install Boost Libraries
If this is a clean system, continue at Now build and install the Boost library.
Its recommended that you use the latest Boost libraries - as of August 2017 that is version 1.65.0.
For this we need to compile/install them by issuing the following commands:
These instructions can also be used on a Linux system.
[This first step is necessary because you will get linking errors if you don't remove the old Boost library]
Instructions here are for removing boost 1.55, on your system this might be another version, so adopt these commands to your need. It could also be you never installed boost on your system, do not worry, just execute the commands
sudo apt-get remove libboost-dev libboost-thread-dev libboost-system-dev libboost-atomic-dev libboost-regex-dev sudo apt-get remove libboost-date-time1.55-dev libboost-date-time1.55.0 libboost-atomic1.55.0 libboost-regex1.55.0 libboost-iostreams1.55.1 sudo apt-get remove libboost-iostreams1.55.0 libboost-iostreams1.55.0 libboost-iostreams1.55.0 sudo apt-get remove libboost-serialization1.55-dev libboost-serialization1.55.0 libboost-system1.55-dev sudo apt-get remove libboost-system1.55.0 libboost-thread1.55-dev libboost-thread1.55.0 libboost1.55-dev sudo apt-get autoremove
Now build and install the Boost library.
mkdir boost cd boost wget https://sourceforge.net/projects/boost/files/boost/1.65.0/boost_1_65_0.tar.gz/download tar xvfz download rm download cd boost_1_65_0/ ./bootstrap.sh ./b2 stage threading=multi link=static --with-thread --with-date_time --with-system --with-atomic --with-regex sudo ./b2 install threading=multi link=static --with-thread --with-date_time --with-system --with-atomic --with-regex cd ../../ rm -Rf boost/
Build Support for OpenZWave
If you need support for ZWave, you need to compile open-zwave before compiling domoticz
Make sure to follow the below steps, you will end up with a folder layout like:
sudo apt-get install libudev-dev
For the first time, you need to clone the code (copy) from GitHub into your system:
git clone https://github.com/OpenZWave/open-zwave open-zwave-read-only
Refresh the source and build OpenZWave(1m23.057s for initial build (rpi2 3 minutes))
cd open-zwave-read-only git pull make -j 3
go back to the top folder (your Home directory) with:
cd .. or
For the first time, you need to checkout the source from GitHub onto your system:
git clone https://github.com/domoticz/domoticz.git dev-domoticz
Note building on pi 3 with image september jessy with gcc 4.9, you need bigger swapspace 512 instead of 100 (see https://www.raspberrypi.org/forums/viewtopic.php?f=26&t=46472) or else it will take ages...
Build Domoticz (21m15.899s on a raspberry pi 3 , 35m0.646s on a raspberry pi 2 for initial build)
If you have updated dev-domoticz, the make step will only re-build those files that have been changed - although if a header-file common to a lot of source files has been changed, this will still take a long time
Change to the Domoticz directory, refresh the source and and start building
cd dev-domoticz git pull cmake -DCMAKE_BUILD_TYPE=Release CMakeLists.txt make -j 3
On a raspberry PI3 it takes very, very long there you can better change: make -j 3 into
Make Domoticz startup at boot time (Also needed for Web Update)
sudo cp domoticz.sh /etc/init.d sudo chmod +x /etc/init.d/domoticz.sh sudo update-rc.d domoticz.sh defaults
Edit the startup script and change the USERNAME, DAEMON and DAEMON_ARGS parameters to reflect your current settings
sudo vi /etc/init.d/domoticz.shUSERNAME=pi DAEMON=/home/$USERNAME/domoticz/$NAME DAEMON_ARGS="-daemon -www 8080"
If you want to use another web interface port change:
DAEMON_ARGS="-daemon -www 8080"
Test Domoticz (Important to get the file ownerships right!)
cd domoticz sudo ./domoticz
sudo service domoticz.sh start
Now connect with a browser to see if it is up and running.
Binary install update
Use the Web Interface to update Domoticz (Setup->Check for Updates)
If this fails for any reason (e.g. partial download giving segmentation fault) then you should manually update by:
cd domoticz ./updaterelease
cd domoticz ./updatebeta
Login to your Raspberry Pi with the 'pi' user and issue:
cd domoticz git pull make -j 4