Bugfixes
This commit is contained in:
BPoH_Voodoo
2019-02-03 14:07:23 +01:00
parent 832aa123d3
commit 6596ce34fa
3 changed files with 20 additions and 14 deletions
+8 -9
View File
@@ -1071,7 +1071,7 @@ void loop() {
if (mode == SET_MODE) { if (mode == SET_MODE) {
DBG_OUTPUT_PORT.printf("SET_MODE: %d %d\n", ws2812fx_mode, mode); DBG_OUTPUT_PORT.printf("SET_MODE: %d %d\n", ws2812fx_mode, mode);
strip.setMode(ws2812fx_mode); strip.setMode(ws2812fx_mode);
strip.trigger(); //strip.trigger(); // is done later anyway, why do it more than once?
prevmode = SET_MODE; prevmode = SET_MODE;
mode = SETCOLOR; mode = SETCOLOR;
} }
@@ -1081,23 +1081,22 @@ void loop() {
} }
if (mode == SETCOLOR) { if (mode == SETCOLOR) {
strip.setColor(main_color.red, main_color.green, main_color.blue, main_color.white); strip.setColor(main_color.red, main_color.green, main_color.blue, main_color.white);
strip.trigger();
mode = (prevmode == SET_MODE) ? SETSPEED : prevmode; mode = (prevmode == SET_MODE) ? SETSPEED : prevmode;
if (mode == HOLD) strip.trigger();
} }
if (mode == SETSPEED) { if (mode == SETSPEED) {
strip.setSpeed(convertSpeed(ws2812fx_speed)); strip.setSpeed(convertSpeed(ws2812fx_speed));
strip.trigger();
mode = (prevmode == SET_MODE) ? BRIGHTNESS : prevmode; mode = (prevmode == SET_MODE) ? BRIGHTNESS : prevmode;
if (mode == HOLD) strip.trigger();
} }
if (mode == BRIGHTNESS) { if (mode == BRIGHTNESS) {
strip.setBrightness(brightness); strip.setBrightness(brightness);
strip.trigger(); mode = (prevmode == SET_MODE) ? HOLD : prevmode;
if (prevmode == SET_MODE) prevmode = HOLD; if (mode == HOLD) strip.trigger();
mode = prevmode;
} }
#ifdef ENABLE_LEGACY_ANIMATIONS #ifdef ENABLE_LEGACY_ANIMATIONS
if (mode == WIPE) { if (mode == WIPE) {
strip.setColor(main_color.red, main_color.green, main_color.blue, main_color.white); //strip.setColor(main_color.red, main_color.green, main_color.blue, main_color.white);
strip.setMode(FX_MODE_COLOR_WIPE); strip.setMode(FX_MODE_COLOR_WIPE);
strip.trigger(); strip.trigger();
mode = HOLD; mode = HOLD;
@@ -1113,13 +1112,13 @@ void loop() {
mode = HOLD; mode = HOLD;
} }
if (mode == THEATERCHASE) { if (mode == THEATERCHASE) {
strip.setColor(main_color.red, main_color.green, main_color.blue, main_color.white); //strip.setColor(main_color.red, main_color.green, main_color.blue, main_color.white);
strip.setMode(FX_MODE_THEATER_CHASE); strip.setMode(FX_MODE_THEATER_CHASE);
strip.trigger(); strip.trigger();
mode = HOLD; mode = HOLD;
} }
if (mode == TWINKLERANDOM) { if (mode == TWINKLERANDOM) {
strip.setColor(main_color.red, main_color.green, main_color.blue, main_color.white); //strip.setColor(main_color.red, main_color.green, main_color.blue, main_color.white);
strip.setMode(FX_MODE_TWINKLE_RANDOM); strip.setMode(FX_MODE_TWINKLE_RANDOM);
strip.trigger(); strip.trigger();
mode = HOLD; mode = HOLD;
+1 -1
View File
@@ -16,7 +16,7 @@ const char HOSTNAME[] = "McLightingRGBW"; // Friedly hostname
//#define ENABLE_OTA // If defined, enable Arduino OTA code. //#define ENABLE_OTA // If defined, enable Arduino OTA code.
#define ENABLE_AMQTT // If defined, enable Async MQTT code, see: https://github.com/marvinroger/async-mqtt-client #define ENABLE_AMQTT // If defined, enable Async MQTT code, see: https://github.com/marvinroger/async-mqtt-client
//#define ENABLE_MQTT // If defined, enable MQTT client code, see: https://github.com/toblum/McLighting/wiki/MQTT-API //#define ENABLE_MQTT // If defined, enable MQTT client code, see: https://github.com/toblum/McLighting/wiki/MQTT-API
#define ENABLE_HOMEASSISTANT // If defined, enable Homeassistant integration, ENABLE_MQTT or ENABLE_AMQTT must be active //#define ENABLE_HOMEASSISTANT // If defined, enable Homeassistant integration, ENABLE_MQTT or ENABLE_AMQTT must be active
#define ENABLE_BUTTON // If defined, enable button handling code, see: https://github.com/toblum/McLighting/wiki/Button-control #define ENABLE_BUTTON // If defined, enable button handling code, see: https://github.com/toblum/McLighting/wiki/Button-control
//#define ENABLE_BUTTON_GY33 // If defined, enable button handling code for GY-33 color sensor to scan color //#define ENABLE_BUTTON_GY33 // If defined, enable button handling code for GY-33 color sensor to scan color
//#define MQTT_HOME_ASSISTANT_SUPPORT // If defined, use AMQTT and select Tools -> IwIP Variant -> Higher Bandwidth //#define MQTT_HOME_ASSISTANT_SUPPORT // If defined, use AMQTT and select Tools -> IwIP Variant -> Higher Bandwidth
+9 -2
View File
@@ -894,6 +894,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t lenght
main_color.red = (uint8_t) color["r"]; main_color.red = (uint8_t) color["r"];
main_color.green = (uint8_t) color["g"]; main_color.green = (uint8_t) color["g"];
main_color.blue = (uint8_t) color["b"]; main_color.blue = (uint8_t) color["b"];
prevmode = mode;
mode = SETCOLOR; mode = SETCOLOR;
} }
@@ -901,7 +902,9 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t lenght
uint8_t json_speed = constrain((uint8_t) root["speed"], 0, 255); uint8_t json_speed = constrain((uint8_t) root["speed"], 0, 255);
if (json_speed != ws2812fx_speed) { if (json_speed != ws2812fx_speed) {
ws2812fx_speed = json_speed; ws2812fx_speed = json_speed;
if(stateOn) mode = SETSPEED; //if(stateOn) mode = SETSPEED;
prevmode = mode;
mode = SETSPEED;
} }
} }
@@ -910,13 +913,17 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t lenght
color_temp = (uint16_t) root["color_temp"]; color_temp = (uint16_t) root["color_temp"];
unsigned int kelvin = 1000000 / color_temp; unsigned int kelvin = 1000000 / color_temp;
main_color = temp2rgb(kelvin); main_color = temp2rgb(kelvin);
prevmode = mode;
mode = SETCOLOR; mode = SETCOLOR;
} }
if (root.containsKey("brightness")) { if (root.containsKey("brightness")) {
brightness = constrain((uint8_t) root["brightness"], 0, 255); //fix #224 uint8_t json_brightness = constrain((uint8_t) root["brightness"], 0, 255); //fix #224
if (json_brightness != brightness) {
prevmode = mode;
mode = BRIGHTNESS; mode = BRIGHTNESS;
} }
}
if (root.containsKey("effect")) { if (root.containsKey("effect")) {
animation_on = true; animation_on = true;