Wled Random effects

Hi,

I have been trying to create an automation to select a random Wled effect each time it is called.

This is my current automation (non-random)

- id: '1575326339804'
  alias: CarPresence_ON
  description: ''
  trigger:
  - entity_id: binary_sensor.carpresence
    from: 'off'
    platform: state
    to: 'on'
  condition: []
  action:
   - data:
       effect: '[FX=44] Merry Christmas'
       entity_id: light.wled_lights
     service: light.turn_on

To generate the random number effect I used this code

sensor:
  - platform: random
    name: Random Effect
    minimum: 0
    maximum: 82

Then I updated my automation to add the random effect

- id: '1575326339804'
  alias: CarPresence_ON
  description: ''
  trigger:
  - entity_id: binary_sensor.carpresence
    from: 'off'
    platform: state
    to: 'on'
  condition: []
 action:
  - service: mqtt.publish
    data_template:
      topic: wled/all/api
      payload: FX={{ states("sensor.random_effect") }}

But it doesn’t work! From what I can work out Wled likes the effect formatted like this effect: ‘[FX=00] Solid’ instead of FX=00
I have googled but I cannot find an example of this, can anyone help?

Regards
James

Try this:

 action:
  - service: mqtt.publish
    data_template:
      topic: wled/all/api
      payload: "{{ ['[FX=00] Solid','[FX=01] Blink','[FX=02] Breathe','[FX=03] Wipe','[FX=04] Wipe Random','[FX=05] Random Colors','[FX=06] Sweep','[FX=07] Dynamic','[FX=08] Colorloop','[FX=09] Rainbow','[FX=10] Scan','[FX=11] Dual Scan','[FX=12] Fade','[FX=13] Chase','[FX=14] Chase Rainbow','[FX=15] Running','[FX=16] Saw','[FX=17] Twinkle','[FX=18] Dissolve','[FX=19] Dissolve Rnd','[FX=20] Sparkle','[FX=21] Dark Sparkle','[FX=22] Sparkle+','[FX=23] Strobe','[FX=24] Strobe Rainbow','[FX=25] Mega Strobe','[FX=26] Blink Rainbow','[FX=27] Android','[FX=28] Chase','[FX=29] Chase Random','[FX=30] Chase Rainbow','[FX=31] Chase Flash','[FX=32] Chase Flash Rnd','[FX=33] Rainbow Runner','[FX=34] Colorful','[FX=35] Traffic Light','[FX=36] Sweep Random','[FX=37] Running 2','[FX=38] Red & Blue','[FX=39] Stream','[FX=40] Scanner','[FX=41] Lighthouse','[FX=42] Fireworks','[FX=43] Rain','[FX=44] Merry Christmas','[FX=45] Fire Flicker','[FX=46] Gradient','[FX=47] Loading','[FX=48] In Out','[FX=49] In In','[FX=50] Out Out','[FX=51] Out In','[FX=52] Circus','[FX=53] Halloween','[FX=54] Tri Chase','[FX=55] Tri Wipe','[FX=56] Tri Fade','[FX=57] Lightning','[FX=58] ICU','[FX=59] Multi Comet','[FX=60] Dual Scanner','[FX=61] Stream 2','[FX=62] Oscillate','[FX=63] Pride 2015','[FX=64] Juggle','[FX=65] Palette','[FX=66] Fire 2012','[FX=67] Colorwaves','[FX=68] BPM','[FX=69] Fill Noise','[FX=70] Noise 1','[FX=71] Noise 2','[FX=72] Noise 3','[FX=73] Noise 4','[FX=74] Colortwinkle','[FX=75] Lake','[FX=76] Meteor','[FX=77] Smooth Meteor','[FX=78] Railway','[FX=79] Ripple','[FX=80] Twinklefox','[FX=81] Twinklecat','[FX=82] Halloween Eyes']|random }}"

If it works you can delete your random sensor.

This is my random effect script, it randomises the effect, pallet and speed:

wled_random:
  alias: 'Randomise'
  sequence:
  - service: mqtt.publish
    data_template:
      topic: wled/bar_led/api
      payload: "{{ ['[FX=00] Solid','[FX=01] Blink','[FX=02] Breathe','[FX=03] Wipe','[FX=04] Wipe Random','[FX=05] Random Colors','[FX=06] Sweep','[FX=07] Dynamic','[FX=08] Colorloop','[FX=09] Rainbow','[FX=10] Scan','[FX=11] Dual Scan','[FX=12] Fade','[FX=13] Chase','[FX=14] Chase Rainbow','[FX=15] Running','[FX=16] Saw','[FX=17] Twinkle','[FX=18] Dissolve','[FX=19] Dissolve Rnd','[FX=20] Sparkle','[FX=21] Dark Sparkle','[FX=22] Sparkle+','[FX=23] Strobe','[FX=24] Strobe Rainbow','[FX=25] Mega Strobe','[FX=26] Blink Rainbow','[FX=27] Android','[FX=28] Chase','[FX=29] Chase Random','[FX=30] Chase Rainbow','[FX=31] Chase Flash','[FX=32] Chase Flash Rnd','[FX=33] Rainbow Runner','[FX=34] Colorful','[FX=35] Traffic Light','[FX=36] Sweep Random','[FX=37] Running 2','[FX=38] Red & Blue','[FX=39] Stream','[FX=40] Scanner','[FX=41] Lighthouse','[FX=42] Fireworks','[FX=43] Rain','[FX=44] Merry Christmas','[FX=45] Fire Flicker','[FX=46] Gradient','[FX=47] Loading','[FX=48] In Out','[FX=49] In In','[FX=50] Out Out','[FX=51] Out In','[FX=52] Circus','[FX=53] Halloween','[FX=54] Tri Chase','[FX=55] Tri Wipe','[FX=56] Tri Fade','[FX=57] Lightning','[FX=58] ICU','[FX=59] Multi Comet','[FX=60] Dual Scanner','[FX=61] Stream 2','[FX=62] Oscillate','[FX=63] Pride 2015','[FX=64] Juggle','[FX=65] Palette','[FX=66] Fire 2012','[FX=67] Colorwaves','[FX=68] BPM','[FX=69] Fill Noise','[FX=70] Noise 1','[FX=71] Noise 2','[FX=72] Noise 3','[FX=73] Noise 4','[FX=74] Colortwinkle','[FX=75] Lake','[FX=76] Meteor','[FX=77] Smooth Meteor','[FX=78] Railway','[FX=79] Ripple','[FX=80] Twinklefox','[FX=81] Twinklecat','[FX=82] Halloween Eyes']|random }}"
  - service: mqtt.publish
    data_template:
      topic: wled/bar_led/api
      payload: "{{ ['[FP=00] Default','[FP=01] Random Cycle','[FP=02] Primary color','[FP=03] Based on primary','[FP=04] Set colors','[FP=05] Based on set','[FP=06] Party','[FP=07] Cloud','[FP=08] Lava','[FP=09] Ocean','[FP=10] Forest','[FP=11] Rainbow','[FP=12] Rainbow bands','[FP=13] Sunset','[FP=14] Rivendell','[FP=15] Breeze','[FP=16] Red & Blue','[FP=17] Yellowout','[FP=18] Analoguous','[FP=19] Splash','[FP=20] Pastel','[FP=21] Sunset 2','[FP=22] Beech','[FP=23] Vintage','[FP=24] Departure','[FP=25] Landscape','[FP=26] Beach','[FP=27] Sherbet','[FP=28] Hult','[FP=29] Hult 64','[FP=30] Drywet','[FP=31] Jul','[FP=32] Grintage','[FP=33] Rewhi','[FP=34] Tertiary','[FP=35] Fire','[FP=36] Icefire','[FP=37] Cyane','[FP=38] Light Pink','[FP=39] Autumn','[FP=40] Magenta']|random }}"
  - service: mqtt.publish
    data_template:
      topic: wled/bar_led/api
      payload: "SX={{ (range(0, 255)|random) }}"
2 Likes

Thanks for the code, I tried it but it didn’t work I don’t know if I have some incorrect syntax

- id: '1575326339804'
  alias: CarPresence_ON
  description: ''
  trigger:
  - entity_id: binary_sensor.carpresence
    from: 'off'
    platform: state
    to: 'on'
  condition: []
  action:
  - data_template:
        payload: '{{ [''[FX=00] Solid'',''[FX=01] Blink'',''[FX=02] Breathe'',''[FX=03]
          Wipe'',''[FX=04] Wipe Random'',''[FX=05] Random Colors'',''[FX=06] Sweep'',''[FX=07]
          Dynamic'',''[FX=08] Colorloop'',''[FX=09] Rainbow'',''[FX=10] Scan'',''[FX=11]
          Dual Scan'',''[FX=12] Fade'',''[FX=13] Chase'',''[FX=14] Chase Rainbow'',''[FX=15]
          Running'',''[FX=16] Saw'',''[FX=17] Twinkle'',''[FX=18] Dissolve'',''[FX=19]
          Dissolve Rnd'',''[FX=20] Sparkle'',''[FX=21] Dark Sparkle'',''[FX=22] Sparkle+'',''[FX=23]
          Strobe'',''[FX=24] Strobe Rainbow'',''[FX=25] Mega Strobe'',''[FX=26] Blink
          Rainbow'',''[FX=27] Android'',''[FX=28] Chase'',''[FX=29] Chase Random'',''[FX=30]
          Chase Rainbow'',''[FX=31] Chase Flash'',''[FX=32] Chase Flash Rnd'',''[FX=33]
          Rainbow Runner'',''[FX=34] Colorful'',''[FX=35] Traffic Light'',''[FX=36]
          Sweep Random'',''[FX=37] Running 2'',''[FX=38] Red & Blue'',''[FX=39] Stream'',''[FX=40]
          Scanner'',''[FX=41] Lighthouse'',''[FX=42] Fireworks'',''[FX=43] Rain'',''[FX=44]
          Merry Christmas'',''[FX=45] Fire Flicker'',''[FX=46] Gradient'',''[FX=47]
          Loading'',''[FX=48] In Out'',''[FX=49] In In'',''[FX=50] Out Out'',''[FX=51]
          Out In'',''[FX=52] Circus'',''[FX=53] Halloween'',''[FX=54] Tri Chase'',''[FX=55]
          Tri Wipe'',''[FX=56] Tri Fade'',''[FX=57] Lightning'',''[FX=58] ICU'',''[FX=59]
          Multi Comet'',''[FX=60] Dual Scanner'',''[FX=61] Stream 2'',''[FX=62] Oscillate'',''[FX=63]
          Pride 2015'',''[FX=64] Juggle'',''[FX=65] Palette'',''[FX=66] Fire 2012'',''[FX=67]
          Colorwaves'',''[FX=68] BPM'',''[FX=69] Fill Noise'',''[FX=70] Noise 1'',''[FX=71]
          Noise 2'',''[FX=72] Noise 3'',''[FX=73] Noise 4'',''[FX=74] Colortwinkle'',''[FX=75]
          Lake'',''[FX=76] Meteor'',''[FX=77] Smooth Meteor'',''[FX=78] Railway'',''[FX=79]
          Ripple'',''[FX=80] Twinklefox'',''[FX=81] Twinklecat'',''[FX=82] Halloween
          Eyes'']|random }}'
        topic: wled/all/api
    service: mqtt.publish

Regards

Copy my payload template code. It has double quotes outside the template and single quotes inside. It is tested and works.

Yours has single quotes outside the template and escaped single quotes inside. Probably what is causing the issue.

Hay bro

I just ran @tom_l wled_random script work a great

question did you change his topic in the script.

 topic: wled/bar_led/api

to you topic

I had to change mine to

topic: wled/xtree/api

and it worked

Hi,

Thanks to everyone for helping.

The code did work when I retried it, the LEDs changed to a different pattern each time the trigger happened. Last night I had been looking at the wled card on Lovelace which doesn’t update when the pattern is chosen. I don’t know if this is my code or just how it works. :face_with_raised_eyebrow:

Thanks

Yes that is correct the random script just send the commands to mqtt not loveace

I added a looping script that changes every hour will post when I get home if you want it

this is some script I found just made to meat my needs

first we call the script script.wled_random_xtree

ramdom_xtree_lights:
  alias: Ramdom_Xtree_lights
  sequence:
    - service: script.turn_on
      data:
        entity_id: script.wled_random_xtree
    - delay: '01:00'
    - service: script.turn_off
      data:
        entity_id: script.wled_random_xtree
    - service: script.turn_on
      data:
        entity_id: script.flash_loop_xtree

then we call script.flash_loop_xtree this is the looping bit

flash_loop_xtree:
  alias: flash loop xtree
  sequence:
    - delay:
        # time for flash light off
        seconds: 1
    - service: script.turn_on
      data:
        entity_id: script.ramdom_xtree_lights

now to stop the script run this script

stop_flash_xtree_lights:
  alias: Stop Flash xtree Lights
  sequence:
  - service: script.turn_off
    data:
      entity_id: script.ramdom_xtree_lights
  - service: light.turn_off
    data:
      entity_id: light.wled_xtree_lights

by the way it turn off the wled lights also.

see what been pick

still getting head around the templateing

got node-red to look at the mqtt messages

my case wled/xtree/api

image

the switch uses the contains and put them into there own mqtt message

  - platform: mqtt
    name: "wled fx"
    state_topic: "wled/fx"
    qos: 1

  - platform: mqtt
    name: "wled fp"
    state_topic: "wled/fp"
    qos: 1

  - platform: mqtt
    name: "wled sx"
    state_topic: "wled/sx"
    qos: 1

this is about my templateing i understand

  - platform: template
    sensors:
      wled_ramdom_pick:
        value_template: >
         {{ states.sensor.wled_fx.state.split(' ')[1] + ' ' + states.sensor.wled_fp.state.split(' ')[1] }}

bit long in the tooth but it works for me.

someone in here mite rewrite and take out the node-red bit.

image