Homematic Controller - vpjuslin/openhab GitHub Wiki
Hardware
Controller
The controller "speaks" with the HomeMatic devices through the properiatry wireless protocol of HomeMatic.
CCU 1
The best supported hardware so far for HomeMatic is the CCU 1.
CCU 2
The second version (beginning with mid 2013) should work in most circumstances, but is not as widely used as the first version. We need testers here: If you own a CCU2, please try out the latest 1.4.0 nightly releases!
LAN Adapter
One of the cheaper alternatives is to use the HomeMatic LAN Adapter. The LAN Adapter requires the BidCos-Service running and listening on a specific port in your LAN. As of this writing the BidCos-Service is only available for Microsoft Windows. If you want to run the BidCos-Service 'natively' (through Qemu) on Linux without messing around with Wine follow these step by step instructions.
-
Install QEMU (If you are running OpenHAB on i386/amd64)
In order to run the BidCos-Service daemon 'rfd' under linux you need to install the QEMU arm emulation. If you are using Debian you have to install at least the package qemu-system-arm.
apt-get install qemu
-
Download the latest CCU 2 firmware from eQ-3 homepage
-
Extract the downloaded firmware e.g. HM-CCU2-2.7.8.tar.gz
mkdir /tmp/firmware tar xvzf HM-CCU2-2.7.8.tar.gz -C /tmp/firmware
You should now have three files under the directory /tmp/firmware
rootfs.ubi (<-- this is the firmware inside a UBIFS iamge) uImage update_script
-
Create an 256 MiB emulated NAND flash with 2KiB NAND page size
modprobe nandsim first_id_byte=0x20 second_id_byte=0xaa third_id_byte=0x00 fourth_id_byte=0x15
You should see a newly created MTD device /dev/mtd0 (assume that you do not have other MTD devices)
-
Copy the contents of the UBIFS image rootfs.ubi to the emulated MTD device
dd if=rootfs.ubi of=/dev/mtd0 bs=2048
-
Load UBI kernel module and attach the MTD device mtd0
modprobe ubi mtd=0,2048
-
Mount the UBIFS image
mkdir /mnt/ubifs mount -t ubifs /dev/ubi0_0 /mnt/ubifs
-
Copy the required files to run the BidCos-Service from the UBIFS image
mkdir -p /etc/eq3-rfd /opt/eq3-rfd/bin /opt/eq3-rfd/firmware cd /mnt/ubifs cp /mnt/ubifs/bin/rfd /opt/eq3-rfd/bin cp /mnt/ubifs/etc/config_templates/rfd.conf /etc/eq3-rfd/bidcos.conf cp -r /mnt/ubifs/firmware/* /opt/eq3-rfd/firmware/
List the dependencies for rfd binary
qemu-arm -L /mnt/ubifs /mnt/ubifs/lib/ld-linux.so.3 --list /mnt/ubifs/bin/rfd
You should see an output like this
libpthread.so.0 => /lib/libpthread.so.0 (0xf67a7000) libelvutils.so => /lib/libelvutils.so (0xf6786000) libhsscomm.so => /lib/libhsscomm.so (0xf6733000) libxmlparser.so => /lib/libxmlparser.so (0xf6725000) libXmlRpc.so => /lib/libXmlRpc.so (0xf66fc000) libLanDeviceUtils.so => /lib/libLanDeviceUtils.so (0xf66d2000) libUnifiedLanComm.so => /lib/libUnifiedLanComm.so (0xf66bf000) libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xf65e8000) libm.so.6 => /lib/libm.so.6 (0xf6542000) libc.so.6 => /lib/libc.so.6 (0xf63f7000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xf63ce000) /lib/ld-linux.so.3 => /mnt/ubifs/lib/ld-linux.so.3 (0xf6fd7000)
Copy all the listed libs from /mnt/ubifs to there respective folder at /opt/eq3-rfd
-
Create a system user and adjust permissions
adduser --system --home /opt/eq3-rfd --shell /bin/false --no-create-home --group bidcos chown -R bidcos:bidcos /opt/eq3-rfd
-
Edit and adjust the BidCos-Service configuration bidcos.conf
# TCP Port for XmlRpc connections Listen Port = 2001 # Log Level: 1=DEBUG, 2=WARNING, 3=INFO, 4=NOTICE, 5=WARNING, 6=ERROR Log Level = 3 # If set to 1 the AES keys are stored in a file. Highly recommended. Persist Keys = 1 Address File = /etc/eq3-rfd/ids Key File = /etc/eq3-rfd/keys Device Files Dir = /etc/eq3-rfd/devices # These path are relative to QEMU_LD_PREFIX Device Description Dir = /firmware/rftypes Firmware Dir = /firmware Replacemap File = /firmware/rftypes/replaceMap/rfReplaceMap.xml # Logging Log Destination = File Log Filename = /var/log/eq3-rfd/bidcos.log [Interface 0] Type = Lan Interface Serial Number = <HomeMatic ID e.g. JEQ0707164> Encryption Key = <your encryption key>
-
Start the BidCos-Service daemon 'rfd'
The BidCos-Service daemon 'rfd' can now be started with the following command
qemu-arm -L /opt/eq3-rfd /opt/eq3-rfd/bin/rfd -f /etc/eq3-rfd/bidcos.conf
CUL
The other cheaper alternative is the CUL stick. The CUL is an USB stick that can be used as a wireless transceiver. It ca be programmed to be used with a hughe amount of wireless protocols, under which you can find the homemtic protocol as well. Since the CUL is not natively supported by the binding, you need a program to translate the CUL data to the CCU XML RPC interface: Homegear
We have reports from users that succesfully use both for their homemtic devices. Apparently security is still not supported.