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