diff --git a/platformio.ini b/platformio.ini index 017997570..08033581f 100644 --- a/platformio.ini +++ b/platformio.ini @@ -109,11 +109,11 @@ build_flags = -D PIO_FRAMEWORK_ARDUINO_LWIP_HIGHER_BANDWIDTH -Wl,-Teagle.flash.512k.ld ;;;; Compile with no SPIFFS -D WLED_DISABLE_OTA - ; -D WLED_DISABLE_ALEXA + -D WLED_DISABLE_ALEXA -D WLED_DISABLE_BLYNK -D WLED_DISABLE_CRONIXIE -D WLED_DISABLE_HUESYNC - ; -D WLED_DISABLE_INFRARED + -D WLED_DISABLE_INFRARED lib_ignore = ${common:esp8266.lib_ignore} [common:esp32] @@ -179,7 +179,6 @@ framework = ${common.framework} build_flags = ${common.build_flags} ${common:esp8266_512k.build_flags} - -D WLED_DISABLE_INFRARED lib_deps = ${common.lib_deps_external} lib_compat_mode = strict diff --git a/wled00/const.h b/wled00/const.h index 4d2875723..44065fec8 100644 --- a/wled00/const.h +++ b/wled00/const.h @@ -8,13 +8,13 @@ #define AP_BEHAVIOR_BUTTON_ONLY 3 //Only when button pressed for 6 sec //Notifier callMode -#define NOTIFIER_CALL_MODE_INIT 0 // no updates on init, can be used to disable updates +#define NOTIFIER_CALL_MODE_INIT 0 //no updates on init, can be used to disable updates #define NOTIFIER_CALL_MODE_DIRECT_CHANGE 1 #define NOTIFIER_CALL_MODE_BUTTON 2 #define NOTIFIER_CALL_MODE_NOTIFICATION 3 #define NOTIFIER_CALL_MODE_NIGHTLIGHT 4 #define NOTIFIER_CALL_MODE_NO_NOTIFY 5 -#define NOTIFIER_CALL_MODE_FX_CHANGED 6 +#define NOTIFIER_CALL_MODE_FX_CHANGED 6 //no longer used #define NOTIFIER_CALL_MODE_HUE 7 #define NOTIFIER_CALL_MODE_PRESET_CYCLE 8 #define NOTIFIER_CALL_MODE_BLYNK 9 @@ -36,11 +36,24 @@ #define REALTIME_MODE_ADALIGHT 5 //E1.31 DMX modes -#define DMX_MODE_DISABLED 0 //not used -#define DMX_MODE_SINGLE_RGB 1 //all LEDs same RGB color (3 channels) -#define DMX_MODE_SINGLE_DRGB 2 //all LEDs same RGB color and master dimmer (4 channels) -#define DMX_MODE_EFFECT 3 //trigger standalone effects of WLED (11 channels) -#define DMX_MODE_MULTIPLE_RGB 4 //every LED is addressed with its own RGB (ledCount * 3 channels) -#define DMX_MODE_MULTIPLE_DRGB 5 //every LED is addressed with its own RGB and share a master dimmer (ledCount * 3 + 1 channels) +#define DMX_MODE_DISABLED 0 //not used +#define DMX_MODE_SINGLE_RGB 1 //all LEDs same RGB color (3 channels) +#define DMX_MODE_SINGLE_DRGB 2 //all LEDs same RGB color and master dimmer (4 channels) +#define DMX_MODE_EFFECT 3 //trigger standalone effects of WLED (11 channels) +#define DMX_MODE_MULTIPLE_RGB 4 //every LED is addressed with its own RGB (ledCount * 3 channels) +#define DMX_MODE_MULTIPLE_DRGB 5 //every LED is addressed with its own RGB and share a master dimmer (ledCount * 3 + 1 channels) + +//Light capability byte (unused) +#define TYPE_WS2812_RGB 0 +#define TYPE_SK6812_RGBW 1 +#define TYPE_WS2812_WWA 2 //amber + warm + cold white +#define TYPE_APA102 3 +#define TYPE_LPD8806 4 +#define TYPE_WS2801 5 +#define TYPE_ANALOG_1CH 6 //single channel PWM. Uses value of brightest RGBW channel +#define TYPE_ANALOG_2CH 7 //analog WW + CW +#define TYPE_ANALOG_3CH 8 //analog RGB +#define TYPE_ANALOG_4CH 9 //analog RGBW +#define TYPE_ANALOG_5CH 10 //analog RGB + WW + CW #endif diff --git a/wled00/wled00.ino b/wled00/wled00.ino index 606439756..9b5a92ee6 100644 --- a/wled00/wled00.ino +++ b/wled00/wled00.ino @@ -111,7 +111,7 @@ DMXESPSerial dmx; #endif //version code in format yymmddb (b = daily build) -#define VERSION 2002241 +#define VERSION 2002242 char versionString[] = "0.9.1"; diff --git a/wled00/wled07_notify.ino b/wled00/wled07_notify.ino index fd83f1f81..7f691dd0f 100644 --- a/wled00/wled07_notify.ino +++ b/wled00/wled07_notify.ino @@ -15,7 +15,6 @@ void notify(byte callMode, bool followUp=false) case NOTIFIER_CALL_MODE_DIRECT_CHANGE: if (!notifyDirect) return; break; case NOTIFIER_CALL_MODE_BUTTON: if (!notifyButton) return; break; case NOTIFIER_CALL_MODE_NIGHTLIGHT: if (!notifyDirect) return; break; - case NOTIFIER_CALL_MODE_FX_CHANGED: if (!notifyDirect) return; break; //fx change case NOTIFIER_CALL_MODE_HUE: if (!notifyHue) return; break; case NOTIFIER_CALL_MODE_PRESET_CYCLE: if (!notifyDirect) return; break; case NOTIFIER_CALL_MODE_BLYNK: if (!notifyDirect) return; break; diff --git a/wled00/wled08_led.ino b/wled00/wled08_led.ino index d1ccc0d66..e3afcda55 100644 --- a/wled00/wled08_led.ino +++ b/wled00/wled08_led.ino @@ -95,28 +95,30 @@ void colorUpdated(int callMode) callMode != NOTIFIER_CALL_MODE_NO_NOTIFY) strip.applyToAllSelected = true; //if not from JSON api, which directly sets segments bool fxChanged = strip.setEffectConfig(effectCurrent, effectSpeed, effectIntensity, effectPalette); - if (!colorChanged()) + bool colChanged = colorChanged(); + + if (fxChanged || colChanged) { + if (realtimeTimeout == UINT32_MAX) realtimeTimeout = 0; + if (isPreset) {isPreset = false;} + else {currentPreset = -1;} + + notify(callMode); + + //set flag to update blynk and mqtt + if (callMode != NOTIFIER_CALL_MODE_PRESET_CYCLE) interfaceUpdateCallMode = callMode; + } else { if (nightlightActive && !nightlightActiveOld && callMode != NOTIFIER_CALL_MODE_NOTIFICATION && callMode != NOTIFIER_CALL_MODE_NO_NOTIFY) { notify(NOTIFIER_CALL_MODE_NIGHTLIGHT); interfaceUpdateCallMode = NOTIFIER_CALL_MODE_NIGHTLIGHT; - return; } - else if (fxChanged) { - notify(NOTIFIER_CALL_MODE_FX_CHANGED); - if (callMode != NOTIFIER_CALL_MODE_PRESET_CYCLE) interfaceUpdateCallMode = NOTIFIER_CALL_MODE_FX_CHANGED; - if (realtimeTimeout == UINT32_MAX) realtimeTimeout = 0; - if (isPreset) {isPreset = false;} - else {currentPreset = -1;} - } - return; //no change } - if (realtimeTimeout == UINT32_MAX) realtimeTimeout = 0; - if (isPreset) {isPreset = false;} - else {currentPreset = -1;} + + if (!colChanged) return; //following code is for e.g. initiating transitions + if (callMode != NOTIFIER_CALL_MODE_NO_NOTIFY && nightlightActive && nightlightFade) { briNlT = bri; @@ -137,8 +139,6 @@ void colorUpdated(int callMode) briIT = bri; if (bri > 0) briLast = bri; - notify(callMode); - if (fadeTransition) { //set correct delay if not using notification delay @@ -164,10 +164,6 @@ void colorUpdated(int callMode) setLedsStandard(); strip.trigger(); } - - if (callMode == NOTIFIER_CALL_MODE_PRESET_CYCLE) return; - //set flag to update blynk and mqtt - interfaceUpdateCallMode = callMode; }