Hunter Douglas powerrise, MQTT, ESP8266

This is just save the next guy/gal who might have Hunter Douglas powerrise blinds that they might want to automate with OpenHab a half day. I used a sparkfun ESP8266Thing to create an IR remote that I can control with Openhab over wifi. The challenging part was all of the hex codes I could find on the internet were wrong and the arduino decoder library I tried got it wrong (same as published one as far as I could tell). I got out my oscilloscope and brute forced it. Here is the raw data in decimal (ESP8266 via Arduino IDE). It basically repeats the same sequence of 5 pairs for 300ms.

uint16_t rawDataUp[] = {2677, 2677,  1000, 1000, 1000, 2677, 1000, 1000, 1000, 2677, 2677, 2677, 1000, 1000, 1000, 2677,
1000, 1000, 1000, 2677, 2677, 2677, 1000, 1000, 1000, 2677, 1000, 1000, 1000, 2677, 2677, 2677, 1000, 1000, 1000,
2677, 1000, 1000, 1000, 2677, 2677, 2677, 1000, 1000, 1000, 2677, 1000, 1000, 1000, 2677, 2677, 2677, 1000, 1000, 
1000, 2677, 1000, 1000, 1000, 2677, 2677, 2677, 1000, 1000, 1000, 2677, 1000, 1000, 1000, 2677, 2677, 2677, 1000,
1000, 1000, 2677, 1000, 1000, 1000, 2677, 2677, 2677, 1000, 1000, 1000, 2677, 1000, 1000, 1000, 2677, 2677, 2677,
1000, 1000, 1000, 2677, 1000, 1000, 1000, 2677, 2677, 2677, 1000, 1000, 1000, 2677, 1000, 1000, 1000, 2677, 2677, 
2677, 1000, 1000, 1000, 2677, 1000, 1000, 1000, 2677, 2677, 2677, 1000, 1000, 1000, 2677, 1000, 1000, 1000, 2677,
2677, 2677, 1000, 1000, 1000, 2677, 1000, 1000, 1000, 2677, 2677, 2677, 1000, 1000, 1000, 2677, 1000, 1000, 1000,
2677, 2677, 2677, 1000, 1000, 1000, 2677, 1000, 1000, 1000, 2677, 2677, 2677, 1000, 1000, 1000, 2677, 1000, 1000,
1000, 2677, 2677, 2677, 1000, 1000, 1000, 2677, 1000, 1000, 1000};

uint16_t rawDataDn[] = {2667,  2667, 1000, 1000, 1000, 2667, 1000, 2667, 1000, 1000, 2667, 2667, 1000, 1000, 1000,
2667, 1000, 2667, 1000, 1000, 2667, 2667, 1000, 1000, 1000, 2667, 1000, 2667, 1000, 1000, 2667, 2667, 1000, 1000, 
1000, 2667, 1000, 2667, 1000, 1000, 2667, 2667, 1000, 1000, 1000, 2667, 1000, 2667, 1000, 1000, 2667, 2667, 1000,
1000, 1000, 2667, 1000, 2667, 1000, 1000, 2667, 2667, 1000, 1000, 1000, 2667, 1000, 2667, 1000, 1000, 2667, 2667,
1000, 1000, 1000, 2667, 1000, 2667, 1000, 1000, 2667, 2667, 1000, 1000, 1000, 2667, 1000, 2667, 1000, 1000, 2667, 
2667, 1000, 1000, 1000, 2667, 1000, 2667, 1000, 1000, 2667, 2667, 1000, 1000, 1000, 2667, 1000, 2667, 1000, 1000,
2667, 2667, 1000, 1000, 1000, 2667, 1000, 2667, 1000, 1000, 2667, 2667, 1000, 1000, 1000, 2667, 1000, 2667, 1000,
1000, 2667, 2667, 1000, 1000, 1000, 2667, 1000, 2667, 1000, 1000, 2667, 2667, 1000, 1000, 1000, 2667, 1000, 2667
, 1000, 1000, 2667, 2667, 1000, 1000, 1000, 2667, 1000, 2667, 1000, 1000, 2667, 2667, 1000, 1000, 1000, 2667, 1000,
2667, 1000, 1000, 2667, 2667, 1000, 1000, 1000, 2667, 1000, 2667, 1000, 1000, 2667, 2667};

...
 irsend.sendRaw(rawDataDn, sizeof(rawDataDn), 40);
1 Like