This repository contains utilities to use the HM-CFG-USB(2) (HomeMatic USB
Konfigurations-Adapter, seems to be discontinued) from ELV on Linux/Unix
by using libusb 1.0.
The HM-CFG-USB can be used to send and receive BidCoS-Packets to control
HomeMatic home automation devices (like remote controllable sockets,
switches, sensors, ...).
This repository contains, amongst others, an application, which emulates the
HomeMatic LAN configuration adapter-protocol to make it possible to use the
HM-CFG-USB in Fhem or as a lan configuration tool for the CCU or the
HomeMatic windows configuration software, also supporting devices using
AES-signing like KeyMatic.
Short hmland HowTo:
- Install prerequisites:
apt-get install libusb-1.0-0-dev build-essential git
- Get the current version of this software (choose one option):
- Get the current release-version as a .tar.gz:
- Download the latest version from the releases-directory.
Version 0.100 is used as an example for the following commands.
- Extract the archive:
tar xzf hmcfgusb-0.100.tar.gz
- Change into the new directory:
cd hmcfgusb-0.100
- Get the current development-version via git (can be easily updated with
git pull ):
git clone https://git.zerfleddert.de/git/hmcfgusb
- Change into the new directory:
cd hmcfgusb
- Get the current development-version as an archive:
- hmcfgusb-HEAD-xxxxxxx.tar.gz (xxxxxxx is part of the commit-id.
xxxxxxx is just a placeholder for this HowTo, use your value)
- Extract the archive:
tar xzf hmcfgusb-HEAD-xxxxxxx.tar.gz
- Change into the new directory:
cd hmcfgusb-HEAD-xxxxxxx
- Build the code:
make
- Optional: Install udev-rules so normal users can access the device:
sudo cp hmcfgusb.rules /etc/udev/rules.d/
- Plug in the HM-CFG-USB
- Run hmland (with debugging the first time, see
-h switch):
./hmland -p 1234 -D
- Configure Fhem to use your new HMLAN device:
define hmusb HMLAN 127.0.0.1:1234
attr hmusb hmId <hmId>
Important compatibility information:
If older Fhem-versions (before 2015-06-19) or Homegear before 2015-07-01
is used to connect to hmland, the -I switch might be needed to
impersonate a LAN-interface (this replaces the identity string HM-USB-IF with
HM-LAN-IF). eQ-3 rfd (CCU and configuration software) works without this switch.
Software which needs this will not keep a stable connection open to
hmland without this switch. It was the hardcoded default in versions
< 0.100.
This incompatibility is needed so connecting software is able to
differentiate between HM-CFG-LAN and HM-CFG-USB.
Important security information:
Versions before 0.101 do not correctly transmit the AES channel-mask
to the HM-CFG-USB, which results in signature-requests not being generated
by the device in most cases. This can lead to processing of unsigned messages
by the host-software. If you are relying on authenticated messages
(with e.g. aesCommReq in Fhem) from devices like door-sensors and remotes,
you should upgrade to at least version 0.101.
Updating the HM-CFG-USB firmware to version 0.967:
- Compile the hmcfgusb utilities like in the hmland HowTo above
(steps 1 to 5) and stay in the directory
- Download the new firmware: hmusbif.03c7.enc (extracted from the
Firmware update tool):
wget https://git.zerfleddert.de/hmcfgusb/firmware/hmusbif.03c7.enc
- Make sure that hmland is not running
- Flash the update to the USB-stick:
./flash-hmcfgusb hmusbif.03c7.enc (You might need to use sudo for this)
Updating HomemMatic devices over the air (OTA) (also for CUL- and HM-MOD-UART-devices):
- Compile the hmcfgusb utilities like in the hmland HowTo above
(steps 1 to 5) and stay in the directory
- Download the new firmware from eQ-3, in this example the HM-CC-RT-DN
firmware version 1.4
- Extract the tgz-file:
tar xvzf hm_cc_rt_dn_update_V1_4_001_141020.tgz
- Make sure that hmland is not running
- When using the HM-CFG-USB(2), flash the new firmware to the device
with serial KEQ0123456:
./flash-ota -f hm_cc_rt_dn_update_V1_4_001_141020.eq3 -s KEQ0123456
- When using a culfw-, a-culfw- or tsculfw-based
device (CUL/COC/...), flash the new firmware to the device
with serial KEQ0123456:
./flash-ota -f hm_cc_rt_dn_update_V1_4_001_141020.eq3 -s KEQ0123456 -c /dev/ttyACM0
- When using the HM-MOD-UART, flash the new firmware to the device
with serial KEQ0123456:
./flash-ota -f hm_cc_rt_dn_update_V1_4_001_141020.eq3 -s KEQ0123456 -U /dev/ttyAMA0
Automatic firmware-updates:
The options -C (HMID of central), -D (HMID of device) and -K (AES key w/
index) can be used to send a device to the bootloader automatically without
manually rebooting the device while pressing buttons:
./flash-ota -f hm_cc_rt_dn_update_V1_4_001_141020.eq3 -C ABCDEF -D 012345 -K 01:00112233445566778899AABBCCDDEEFF
-K is only needed, when AES signing is active on the device.
Acknowledgments:
flash-ota uses the public domain AES implementation by Brad Conte to answer
signing-requests with culfw-devices.
|