diff --git a/wled00/e131.cpp b/wled00/e131.cpp index ba9e939e2..c9ad19a15 100644 --- a/wled00/e131.cpp +++ b/wled00/e131.cpp @@ -111,7 +111,7 @@ void handleE131Packet(e131_packet_t* p, IPAddress clientIP, byte protocol){ return; // nothing to do break; - case DMX_MODE_SINGLE_RGB: + case DMX_MODE_SINGLE_RGB: // RGB only if (uni != e131Universe) return; if (dmxChannels-DMXAddress+1 < 3) return; realtimeLock(realtimeTimeoutMs, mde); @@ -121,7 +121,7 @@ void handleE131Packet(e131_packet_t* p, IPAddress clientIP, byte protocol){ setRealtimePixel(i, e131_data[DMXAddress+0], e131_data[DMXAddress+1], e131_data[DMXAddress+2], wChannel); break; - case DMX_MODE_SINGLE_DRGB: + case DMX_MODE_SINGLE_DRGB: // Dimmer + RGB if (uni != e131Universe) return; if (dmxChannels-DMXAddress+1 < 4) return; realtimeLock(realtimeTimeoutMs, mde); @@ -136,9 +136,13 @@ void handleE131Packet(e131_packet_t* p, IPAddress clientIP, byte protocol){ setRealtimePixel(i, e131_data[DMXAddress+1], e131_data[DMXAddress+2], e131_data[DMXAddress+3], wChannel); break; - case DMX_MODE_EFFECT: + case DMX_MODE_EFFECT: // Length 1: Apply Preset ID, length 11-13: apply effect config if (uni != e131Universe) return; - if (dmxChannels-DMXAddress+1 < 11) return; + if (dmxChannels-DMXAddress+1 < 11) { + if (dmxChannels-DMXAddress+1 > 1) return; + applyPreset(e131_data[DMXAddress+0], CALL_MODE_NOTIFICATION); + return; + } if (DMXOldDimmer != e131_data[DMXAddress+0]) { DMXOldDimmer = e131_data[DMXAddress+0]; bri = e131_data[DMXAddress+0];