How to "Strobe" a Aeotec RGBW LED Light (ZW098)?

I have an Aeotec Multi Colour Bulb identified as a ZW098. I’d would like to use it as a Notification Device by making it “Strobe” (or flash different colours) for say 10 sec… though I have no idea how to do that. Any suggestions?
Thanks
Nathan

Which part do you need help with?
Is it configured, can you send it commands from UI or rules?
Or writing a rule?

Thanks - I’ll have a look at that link. FYI - I have the ZW098 imported and have worked out how to control it with the following (in my “items”):

Dimmer Study_Light "Dimmer [%d%%]" <slider> { channel="zwave:device:ef2f8db9:node10:switch_dimmer" } 
Color Study_Light_RGB "RGB" <slider> { channel="zwave:device:ef2f8db9:node10:color_color" } 
Dimmer Study_Light_RGBW "RGBW" <slider> { channel="zwave:device:ef2f8db9:node10:color_temperature" }

but what I don’t know how to do is using a “notification” to make it “Strobe” for say 10 secs.

I also found this - https://next.openhab.org/addons/bindings/zwave/thing.html?manufacturer=aeotec&file=zwa002a_0_0.html

which may be for a different version of my bulb but it has a cmd for Strobe.

I’ve got this working as intended but I’m not sure it the most effective way to:

  • Turn ON the bulb
  • Change colour every 0.5sec for 10sec
  • Turn OFF the bulb (after 15sec)

It is also odd (to me at least) that I need to have a final “Thread::sleep” that is longer than the main timer loop (if I don’t the bulb turns off earlier).

I’m also not sure that using “Thread::sleep” is ideal.

Here is my rules code if anyone has suggestions.

var Timer timer = null

rule "Blink the light"
when
    Item zwave_device_ef2f8db9_node9_scene_number changed
then
	Study_Light.sendCommand(ON)  // turn on the light
	Thread::sleep(1000)  // allow the list to power up before blinking for 1 sec
    if(timer !== null) return; // if already blinking ignore this event
    // Create a timer to blink the light
    val timeStarted = now
    timer = createTimer(now, [ | 
		Study_Light_RGB.sendCommand("234,100,100")
		Thread::sleep(500)  // wait 0.5sec between colour change
		Study_Light_RGB.sendCommand("352,100,100")
		if(now.isBefore(timeStarted.plusSeconds(10))) timer.reschedule(now.plusSeconds(1))  //change plusseconds for the length of the loop
		else timer = null
    ])
	Thread::sleep(15000)  // This needs to be the same or more than the total length of the loop ?!?!?
	Study_Light.sendCommand(OFF)
end

Thanks
Nathan

1 Like