async def gen(reference, sender, **kwargs): plans = sender.make_plans("capability") async for serial, _, info in sender.gatherer.gather(plans, reference): print(f"Turning off effects for {serial}") yield LightMessages.SetWaveformOptional(res_required=False, target=serial) if info["cap"].has_multizone: yield SetZonesEffect("OFF", power_on=False) elif info["cap"].has_matrix: yield SetTileEffect("OFF", power_on=False)
self.assertEqual(msg.payload.actual("transient"), 0) self.assertEqual(msg.payload.actual("hue"), 18204) self.assertEqual(msg.payload.actual("saturation"), 0) self.assertEqual(msg.payload.actual("brightness"), 32767) self.assertEqual(msg.payload.actual("kelvin"), 2500) self.assertEqual(msg.payload.actual("period"), 2000) self.assertEqual(msg.payload.actual("cycles"), 5) self.assertEqual(msg.payload.actual("skew_ratio"), 3276) self.assertEqual(msg.payload.actual("waveform"), 1) self.assertEqual(msg.payload.actual("set_hue"), 1) self.assertEqual(msg.payload.actual("set_saturation"), 0) self.assertEqual(msg.payload.actual("set_brightness"), 1) self.assertEqual(msg.payload.actual("set_kelvin"), 1) it "SetWaveformOptional does not require all hsbk values": msg = LightMessages.SetWaveformOptional(hue=100, source=1, sequence=0, target=None) self.assertIs(msg.actual("brightness"), sb.NotSpecified) self.assertEqual(msg.set_hue, 1) self.assertEqual(msg.set_saturation, 0) self.assertEqual(msg.set_brightness, 0) self.assertEqual(msg.set_kelvin, 0) unpackd = Messages.unpack(msg.pack(), protocol_register=protocol_register) self.assertAlmostEqual(unpackd.hue, 100, places=2) self.assertEqual(unpackd.set_hue, 1) self.assertEqual(unpackd.set_saturation, 0) self.assertEqual(unpackd.saturation, 0) self.assertEqual(unpackd.set_brightness, 0) self.assertEqual(unpackd.brightness, 0) self.assertEqual(unpackd.set_kelvin, 0)
await device.assertResponse( LightMessages.GetColor(), [light_state("bob", 300, 100, 0.5, 0.5, 4500)] ) await device.assertResponse( LightMessages.SetWaveform( hue=200, saturation=0.6, brightness=0.4, kelvin=9000, waveform=Waveform.SAW ), [light_state("bob", 300, 100, 0.5, 0.5, 4500)], ) await device.assertResponse( LightMessages.GetColor(), [light_state("bob", 300, 200, 0.6, 0.4, 9000)] ) await device.assertResponse( LightMessages.SetWaveformOptional(hue=333), [light_state("bob", 300, 200, 0.6, 0.4, 9000)], ) await device.assertResponse( LightMessages.GetColor(), [light_state("bob", 300, 333, 0.6, 0.4, 9000)] ) await device.assertResponse( LightMessages.SetWaveformOptional(saturation=0), [light_state("bob", 300, 333, 0.6, 0.4, 9000)], ) await device.assertResponse( LightMessages.GetColor(), [light_state("bob", 300, 333, 0, 0.4, 9000)] ) await device.assertResponse(