H801 RGBBWW LED Controller Firmware for OpenHab
Clone or download
Pull request Compare This branch is 27 commits ahead, 1 commit behind 4ndreas:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
H801_MQTT_firmware
OpenHAB-configurations
.gitattributes
.gitignore
README.md

README.md

H801 Firmware for OpenHAB

Some time ago, the ESP8266-based H801 module appeared on AliExpress and became a nice IoT hacker playground.

This project is an ESP8266 firmware for the H801 module, compiled with the Arduino IDE. It provides the following features:

  • Real-time control via MQTT
  • Easy WiFi setup with WiFiManager
  • Smooth fading between colors
  • Colorwheel fading with (almost) constant brightness and variable speed, brightness and saturation
  • Direct OpenHAB HSV support
  • PWM of HSV, RGB, W1 and W2 channels based on MQTT topics
  • Exposes on-board LEDs and reboot as MQTT topics
  • Use of the more-robust SDK PWM (see below compilation instructions!)
  • WiFi OTA update (http://IP/update)
  • Supports a physical switch connected to the reset pin (GPIO0)
  • Correct CIE-1931 brightness mapping

Open tasks / known issues:

  • Rewrite OpenHAB configuration files
  • Add support for infrared remotes

This is a heavily-modified fork of 4ndreas' sketch.

Compilation

You will need to check out the following libraries into ~/Arduino/libraries/ to build the code:

Due to some issues, this sketch is using the SDK PWM instead of the built-in Arduino analogWrite() PWM. To enable the SDK PWM, you need to download the git version of the ESP8266 Arduino code and edit the platform.txt as follows:

Find the compiler.c.elf.libs=... line, and append to its end: -lpwm

Alternatively, you can remove the #define ESPRESSIF_PWM 1 line in the sketch. However, this variant isn't well tested.

MQTT Topics

After connecting to the WiFi network, the H801 will subscribe to all topics under /openHAB/hostname/channel where the hostname is the hostname of the H801 module, e.g. ESP_F000BA, and the following channels are supported:

  • Build - this will be published when the ESP boots, so you can see the new device without serial
  • Reset - publishing this will perform a reboot of the ESP
  • Config - publishing this will perform a reboot of the ESP
  • RGB - semicolon-separated triple for the RGB channels with range 0..100, i.e. 100;100;100 for white
  • HSV - comma-separated H,S,V values as used by OpenHAB (H: 0..360, S/V: 0..100)
  • Fader - color cycling with varying speed, range 0..100. Will be turned off (and re-published) when HSV or RGB are written to
  • SW1 - W1 output, range 0..100
  • SW2 - W2 output, range 0..100
  • LED1 - green on-board LED, 0 / 100
  • LED2 - red on-board LED, 0 / 100

License

The CIE-9131 table generator is MIT-licensed code from http://jared.geek.nz/2013/feb/linear-led-pwm