示例#1
0
        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)
示例#2
0
        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)
示例#3
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(