]>
Commit | Line | Data |
---|---|---|
1 | This repository contains utilities to use the [HM-CFG-USB(2)][] (HomeMatic USB | |
2 | Konfigurations-Adapter) from [ELV][] on Linux/Unix by using [libusb 1.0][]. | |
3 | ||
4 | The HM-CFG-USB can be used to send and receive [BidCoS-Packets][] to control | |
5 | [HomeMatic][] home automation devices (like remote controllable sockets, | |
6 | switches, sensors, ...). | |
7 | ||
8 | This repository contains, amongst others, an application, which emulates the | |
9 | HomeMatic LAN configuration adapter-protocol to make it possible to use the | |
10 | HM-CFG-USB in [Fhem][] or as a lan configuration tool for the [CCU][] or the | |
11 | HomeMatic windows configuration software, also supporting devices using | |
12 | AES-signing like [KeyMatic][]. | |
13 | ||
14 | [HM-CFG-USB(2)]: http://www.elv.de/homematic-usb-konfigurations-adapter-1.html | |
15 | [ELV]: http://www.elv.de/ | |
16 | [libusb 1.0]: http://www.libusb.org/ | |
17 | [BidCoS-Packets]: http://homegear.eu/index.php/BidCoS%C2%AE_Packets | |
18 | [HomeMatic]: http://www.homematic.com/ | |
19 | [Fhem]: http://fhem.de/ | |
20 | [KeyMatic]: http://www.elv.de/homematic-funk-tuerschlossantrieb-keymatic-silber-inkl-funk-handsender.html | |
21 | [CCU]: http://www.elv.de/homematic-zentrale-ccu-2.html | |
22 | ||
23 | ### Short hmland HowTo: ### | |
24 | ||
25 | 1. Install prerequisites: | |
26 | `apt-get install libusb-1.0-0-dev build-essential git` | |
27 | 2. Get the current version of this software (choose **one** option): | |
28 | * Get the current *release*-version as a .tar.gz: | |
29 | 1. Download the latest version from the [releases-directory][]. | |
30 | Version 0.100 is used as an example for the following commands. | |
31 | 2. Extract the archive: `tar xzf hmcfgusb-0.100.tar.gz` | |
32 | 3. Change into the new directory: `cd hmcfgusb-0.100` | |
33 | * Get the current *development*-version via git (can be easily updated with `git pull`): | |
34 | 1. `git clone git://git.zerfleddert.de/hmcfgusb` | |
35 | 2. Change into the new directory: `cd hmcfgusb` | |
36 | * Get the current *development*-version as an archive: | |
37 | 1. [hmcfgusb-HEAD-xxxxxxx.tar.gz][] (xxxxxxx is part of the commit-id. | |
38 | xxxxxxx is just a placeholder for this HowTo, use your value) | |
39 | 2. Extract the archive: `tar xzf hmcfgusb-HEAD-xxxxxxx.tar.gz` | |
40 | 3. Change into the new directory: `cd hmcfgusb-HEAD-xxxxxxx` | |
41 | 3. Build the code: `make` | |
42 | 4. Optional: Install udev-rules so normal users can access the device: | |
43 | `sudo cp hmcfgusb.rules /etc/udev/rules.d/` | |
44 | 5. Plug in the HM-CFG-USB | |
45 | 6. Run hmland (with debugging the first time, see `-h` switch): | |
46 | `./hmland -p 1234 -D` | |
47 | 7. Configure Fhem to use your new HMLAN device: | |
48 | ``define hmusb HMLAN 127.0.0.1:1234`` | |
49 | ``attr hmusb hmId <hmId>`` | |
50 | ||
51 | **Important compatibility information:** | |
52 | If older Fhem-versions (before 2015-06-19) or [Homegear][] before 2015-07-01 | |
53 | is used to connect to hmland, the `-I` switch might be needed to | |
54 | impersonate a LAN-interface (this replaces the identity string HM-USB-IF with | |
55 | HM-LAN-IF). eQ-3 rfd (CCU and configuration software) works without this switch. | |
56 | Software which needs this will not keep a stable connection open to | |
57 | hmland without this switch. It was the hardcoded default in versions | |
58 | < 0.100. | |
59 | ||
60 | This incompatibility is needed so connecting software is able to | |
61 | differentiate between HM-CFG-LAN and HM-CFG-USB. | |
62 | ||
63 | **Important security information:** | |
64 | Versions before 0.101 do not correctly transmit the AES channel-mask | |
65 | to the HM-CFG-USB, which results in signature-requests not being generated | |
66 | by the device in most cases. This can lead to processing of unsigned messages | |
67 | by the host-software. If you are relying on authenticated messages | |
68 | (with e.g. aesCommReq in Fhem) from devices like door-sensors and remotes, | |
69 | you should upgrade to at least version 0.101. | |
70 | ||
71 | [releases-directory]: https://git.zerfleddert.de/hmcfgusb/releases/ | |
72 | [hmcfgusb-HEAD-xxxxxxx.tar.gz]: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/hmcfgusb/snapshot/HEAD.tar.gz | |
73 | [Homegear]: https://www.homegear.eu/ | |
74 | ||
75 | ### Updating the HM-CFG-USB firmware to version 0.967: ### | |
76 | ||
77 | 1. Compile the hmcfgusb utilities like in the hmland HowTo above | |
78 | (steps 1 to 5) and stay in the directory | |
79 | 2. Download the new firmware: [hmusbif.03c7.enc][] (extracted from the | |
80 | [Firmware update tool][]): | |
81 | `wget https://git.zerfleddert.de/hmcfgusb/firmware/hmusbif.03c7.enc` | |
82 | 3. Make sure that hmland is not running | |
83 | 4. Flash the update to the USB-stick: | |
84 | `./flash-hmcfgusb hmusbif.03c7.enc` (You might need to use `sudo` for this) | |
85 | ||
86 | [hmusbif.03c7.enc]: https://git.zerfleddert.de/hmcfgusb/firmware/hmusbif.03c7.enc | |
87 | [Firmware update tool]: http://www.eq-3.de/Downloads/Software/Firmware%20Update%20Tool/HM-CFG-USB-2_FW-UpdateTool-Usersoftware_V1_1_eQ-3_140619.zip | |
88 | ||
89 | ### Updating HomemMatic devices over the air (OTA) (also for CUL devices): ### | |
90 | ||
91 | 1. Compile the hmcfgusb utilities like in the hmland HowTo above | |
92 | (steps 1 to 5) and stay in the directory | |
93 | 2. Download the new firmware from [eQ-3][], in this example the HM-CC-RT-DN | |
94 | firmware version 1.4 | |
95 | 3. Extract the tgz-file: `tar xvzf hm_cc_rt_dn_update_V1_4_001_141020.tgz` | |
96 | 4. Make sure that hmland is not running | |
97 | * When using the **[HM-CFG-USB(2)][]**, flash the new firmware to the device | |
98 | with serial *KEQ0123456*: | |
99 | `./flash-ota -f hm_cc_rt_dn_update_V1_4_001_141020.eq3 -s KEQ0123456` | |
100 | * When using a **[culfw][]**-based device (**[CUL][]/[COC][]/...**), flash | |
101 | the new firmware to the device with serial *KEQ0123456*: | |
102 | `./flash-ota -f hm_cc_rt_dn_update_V1_4_001_141020.eq3 -s KEQ0123456 -c /dev/ttyACM0` | |
103 | ||
104 | **Automatic firmware-updates:** | |
105 | The options `-C` (HMID of central), `-D` (HMID of device) and `-K` (AES key w/ | |
106 | index) can be used to send a device to the bootloader automatically without | |
107 | manually rebooting the device while pressing buttons: | |
108 | ||
109 | `./flash-ota -f hm_cc_rt_dn_update_V1_4_001_141020.eq3 -C ABCDEF -D 012345 -K 01:00112233445566778899AABBCCDDEEFF` | |
110 | ||
111 | `-K` is only needed, when AES signing is active on the device. | |
112 | ||
113 | **Acknowledgments:** | |
114 | flash-ota uses the public domain [AES implementation by Brad Conte][] to answer | |
115 | signing-requests with culfw-devices. | |
116 | ||
117 | [eQ-3]: http://www.eq-3.de/downloads.html | |
118 | [culfw]: http://culfw.de/culfw.html | |
119 | [CUL]: http://busware.de/tiki-index.php?page=CUL | |
120 | [COC]: http://busware.de/tiki-index.php?page=COC | |
121 | [AES implementation by Brad Conte]: https://github.com/B-Con/crypto-algorithms |