Inspired by @dpinvidic and @gpduino in another thread on hacking HD blinds:
I successfully hacked my older style, HD 'Platinum' remote control.
The sketch (HD-Platinum-Remote-Hack.ino (15.0 KB) ) is derived from @gpduino's PacketDissector.ino work, but runs on a Node MCU board to enable WiFi connectivity for remote commanding. It emulates the HunterDouglas Platinum RF remote control (part no. 2984495100) using a NodeMCU (ESP-12E Module) controller and an nRF24l01+ radio module. The NodeMCU runs the code. Its integrated radio is configured as a WiFi server to receive text commanding strings from a home automation system over a wireless TCP/IP connection. The NodeMCU configures the nRF24l01 radio (RF24) and reformats the text commanding information into HD formatted data packets. These are sent to the nRF24 radio on the external SPI bus for RF transmission to the blinds.
When the device boots up, it attempts to connect on your WiFi and will report the DHCP IP address assigned to it by the router. The MAC address is also reported. You should configure your router to make the device's IP address static.
Commands for the blinds are sent from a TCP/IP client (e.g. a home automation system) or can be entered at the Arduino IDE Serial Monitor while connected via USB.
Commands include:
'listen' - puts the nRF24L01+ radio into a type of promiscuous mode for 5 seconds to 'sniff' and uncover the actual remote's unique ID parameters (at least I think they are unique). Put the device in 'listen' mode and press the up button on your remote while holding it close to the RF24 board. You will get the results in the serial monitor window.
1u = transmit a shade Group 1 up
2d = transmit a shade Group 2 down
allup = transmit Group 'All' up
etc
The sketch is thoroughly documented. There are three variables that need to be edited and tailored for your environment: WiFi SSID & password, and the HD remote control's ID.
I made a nice 3D printed, snap-together enclosure for it. You can download the STL files on ThingiVerse Snap-together Enclosure.