piVCCU is a project to install the original Homematic CCU3 firmware inside a virtualized container (lxc) on ARM based single board computers.
Keeping this project running is very expensive, e.g. I have to buy a lot of different test devices. If you like to support this project, please consider sending me a donation via Ko-fi, PayPal or you can send me a gift from my Amazon wishlist.
Orange Pi One, 2, Lite, Plus, Plus 2, Plus 2E, PC, PC Plus running Armbian with Mainline kernel
:warning: WARNING: Some models of the Orange Pi have a rotated GPIO socket. Please ensure the correct position of Pin 1!
NanoPC T4 running Armbian with Mainline kernel
:warning: WARNING: Do not connect RPI-RF-MOD to a power source. Do connect the NanoPC to a power source only.
RockPro64 running Armbian with Mainline kernel
:warning: WARNING: Do not connect RPI-RF-MOD to a power source. Do connect the RockPro64 to a power source only.
You can find pre-prepared sd card images here. The images are configured to use the HM-MOD-RPI-PCB or RPI-RF-MOD. If you like to use an other radio mode, please see below how to switch it. They are identical to the original distribution lite or server images but have piVCCU already installed like it is described below. Login to Raspbian based images using user ‘pi’ and password ‘raspberry’. Login to Armbian based images using user ‘root’ and password ‘1234’.
Use the normal apt based update mechanism:
sudo apt update && sudo apt upgrade
sudo dpkg-reconfigure pivccu3
Starting with version 2.31.25-23 there is the tool pivccu-backup to create CCU2 compatible backups (inside the host). Be aware, that this is only a backup of the CCU, no settings of the host are saved.
To restore a backup file use the WebUI of the CCU.
sudo apt update
sudo apt remove pivccu
sudo apt install pivccu3
sudo apt purge pivccu
Original CCU2 Just restore a normal system backup using the CCU web interface. When changing to piVCCU3 you need to reinstall all Addons using the CCU3/RaspberryMatic versions. As the CCU3 firmware does a cherry picking of files beeing restored, you maybe need to restore some files by yourself (e.g. CUxD settings files).
Original CCU3 You can only migrate to piVCCU3. Just restore a normal system backup using the CCU web interface.
sudo lxc-stop -n yahm
sudo rm -f /etc/bash_completion.d/yahm_completion
sudo rm -f /etc/init.d/hm-mod-rpi-pcb
sudo rm -rf /opt/YAHM
sudo rm -rf /var/lib/lxc/yahm
sudo sed -i /boot/config.txt -e '/dtoverlay=pi3-miniuart-bt/d'
sudo sed -i /boot/config.txt -e '/dtoverlay=pi3-miniuart-bt-overlay/d'
sudo sed -i /boot/config.txt -e '/enable_uart=1/d'
sudo sed -i /boot/config.txt -e '/force_turbo=1/d'
sudo sed -i /etc/modules -e '/#*eq3_char_loop/d'
sudo sed -i /etc/modules -e '/#*bcm2835_raw_uart/d'
sudo systemctl stop pivccu.service
sudo rm -f /var/lib/piVCCU/userfs/etc/config/no-coprocessor-update
sudo sed -i /var/lib/piVCCU/userfs/etc/config/rfd.conf -e 's/Improved Coprocessor Initialization = false/Improved Coprocessor Initialization = true/'
if [ `grep -c '^Improved Coprocessor Initialization' /var/lib/piVCCU/userfs/etc/config/rfd.conf` -eq 0 ]; then sudo sed -i /var/lib/piVCCU/userfs/etc/config/rfd.conf -e 's/\(^Replacemap File.*\)/\1\nImproved Coprocessor Initialization = true\n/'; fi
if [ `grep -c '\^[Interface 0\]' /var/lib/piVCCU/userfs/etc/config/rfd.conf` -eq 0 ]; then sudo bash -c "echo -e \"\n[Interface 0]\nType = CCU2\nComPortFile = /dev/mmd_bidcos\n#AccessFile = /dev/null\n#ResetFile = /dev/ccu2-ic200\" >> /var/lib/piVCCU/userfs/etc/config/rfd.conf"; fi
sudo sed -i /var/lib/piVCCU/userfs/etc/config/multimacd.conf -e 's/bcm2835-raw-uart/mxs_auart_raw.0/'
if [ `grep -c '<name>HmIP-RF</name>' /var/lib/piVCCU/userfs/etc/config/InterfacesList.xml` -eq 0 ]; then sudo bash -c "sed -i /var/lib/piVCCU/userfs/etc/config/InterfacesList.xml -e 's/\(<\/interfaces>\)/\t<ipc>\n\t\t<name>HmIP-RF<\/name>\n\t\t<url>xmlrpc:\/\/127.0.0.1:2010<\/url>\n\t\t<info>HmIP-RF<\/info>\n\t<\/ipc>\n\1/'"; fi
sudo systemctl start pivccu.service
sudo systemctl stop pivccu.service
sudo rm -rf /var/lib/piVCCU/userfs/etc/config/crRFD/data/*
sudo systemctl start pivccu.service
sudo lxc-stop -n yahm
sudo rm -f /etc/bash_completion.d/yahm_completion
sudo rm -f /etc/init.d/hm-mod-rpi-pcb
sudo rm -rf /opt/YAHM
sudo rm -rf /var/lib/lxc/yahm
sudo sed -i /boot/config.txt -e '/dtoverlay=pi3-miniuart-bt/d'
sudo sed -i /boot/config.txt -e '/dtoverlay=pi3-miniuart-bt-overlay/d'
sudo sed -i /boot/config.txt -e '/enable_uart=1/d'
sudo sed -i /boot/config.txt -e '/force_turbo=1/d'
sudo sed -i /etc/modules -e '/#*eq3_char_loop/d'
sudo sed -i /etc/modules -e '/#*bcm2835_raw_uart/d'
sudo systemctl stop pivccu.service
sudo sed -i /var/lib/piVCCU3/userfs/etc/config/rfd.conf -e 's/Improved Coprocessor Initialization = false/Improved Coprocessor Initialization = true/'
if [ `grep -c '^Improved Coprocessor Initialization' /var/lib/piVCCU3/userfs/etc/config/rfd.conf` -eq 0 ]; then sudo sed -i /var/lib/piVCCU3/userfs/etc/config/rfd.conf -e 's/\(^Replacemap File.*\)/\1\nImproved Coprocessor Initialization = true\n/'; fi
if [ `grep -c '\^[Interface 0\]' /var/lib/piVCCU3/userfs/etc/config/rfd.conf` -eq 0 ]; then sudo bash -c "echo -e \"\n[Interface 0]\nType = CCU2\nComPortFile = /dev/mmd_bidcos\n#AccessFile = /dev/null\n#ResetFile = /dev/ccu2-ic200\" >> /var/lib/piVCCU3/userfs/etc/config/rfd.conf"; fi
if [ `grep -c '<name>HmIP-RF</name>' /var/lib/piVCCU3/userfs/etc/config/InterfacesList.xml` -eq 0 ]; then sudo bash -c "sed -i /var/lib/piVCCU3/userfs/etc/config/InterfacesList.xml -e 's/\(<\/interfaces>\)/\t<ipc>\n\t\t<name>HmIP-RF<\/name>\n\t\t<url>xmlrpc:\/\/127.0.0.1:2010<\/url>\n\t\t<info>HmIP-RF<\/info>\n\t<\/ipc>\n\1/'"; fi
sudo systemctl start pivccu.service
sudo systemctl stop pivccu.service
sudo rm -rf /var/lib/piVCCU3/userfs/etc/config/crRFD/data/*
sudo systemctl start pivccu.service
You can configure the USB devices using the installer. You can change it later using
sudo dpkg-reconfigure pivccu3
If you like to build the .deb package by yourself
piVCCU itself – the source files found in this git repository – are licensed under the conditions of the Apache License 2.0. The kernel module source files (folder kernel) and the generated kernel .deb files (raspberrypi-kernel-pivccu) licensed under the GPLv2 license instead. The generated CCU container .deb files (pivccu) are containing the original CCU3 firmware, containing multiple different licenses. Please refer to eQ-3 for more information.