Interacting with LIFX devices
To interact with a LIFX device, you send it packets and potentially receive
replies that you can look at. To do this you need a
target object, some
packets, or message objects
to send; and a
reference that says what devices on your network to send to.
Photons comes with one
target type, which is the
LanTarget. This knows
how to send packets using UDP over the LAN. You can see how to get access to
one of these in the scripts section.
Once you have a
target, you create a
sender object, which is essentially
a session. This does discovery for you and holds onto the results of that so
you can send packets multiple times in your program and only have to do
discovery once. If your script only sends one message, then you can send it
directly from the target and it’ll create and cleanup a sender for you.
For example, to tell devices to turn off you can say:
from photons_messages import DeviceMessages async def my_action(target, reference): async with target.session() as sender: await sender(DeviceMessages.SetPower(level=0), reference) # Or if you don't want to create a sender await target.send(DeviceMessages.SetPower(level=0), reference)
And a reference can be a single serial (i.e. the string
list of those serials or a special reference.