Hello,
I’m not sure why those messages you mention would work because they aren’t valid.
EDIT: actually, sorry, I thought your strings were hex, but they were integers, your messages are valid ! except the target field should be the mac address of your device and when you do that tagged should be false.
SetTileEffect looks like this
68000014ffa77ebed073d533137a000000000000000002040000000000000000cf02000000000dabc2da0288130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070000ffffffffac0d711cffffffffac0daa2affffffffac0dc156ffffffffac0df3a9ffffffffac0db5c0ffffffffac0d10d1ffffffffac0d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
size : 104
protocol : 1024
addressable : True
tagged : False
reserved1 : bitarray('00')
source : 3195971583
target : bitarray('0000101111001110101010111100110011001000010111100000000000000000')
reserved2 : bitarray('000000000000000000000000000000000000000000000000')
res_required : False
ack_required : True
reserved3 : bitarray('000000')
sequence : 4
reserved4 : bitarray('0000000000000000000000000000000000000000000000000000000000000000')
pkt_type : 719
reserved5 : bitarray('0000000000000000')
reserved8 : bitarray('00000000')
reserved9 : bitarray('00000000')
instanceid : 3670190861
type : 2
speed : 5000
duration : 0
reserved6 : bitarray('00000000000000000000000000000000')
reserved7 : bitarray('00000000000000000000000000000000')
parameters : bitarray('0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')
palette_count: 7
palette : [{"brightness": 1.0, "hue": 0.0, "kelvin": 3500, "saturation": 1.0}, {"brightness": 1.0, "hue": 39.99633783474479, "kelvin": 3500, "saturation": 1.0}, {"brightness": 1.0, "hue": 59.997253376058595, "kelvin": 3500, "saturation": 1.0}, {"brightness": 1.0, "hue": 121.99954222934309, "kelvin": 3500, "saturation": 1.0}, {"brightness": 1.0, "hue": 238.99473563744564, "kelvin": 3500, "saturation": 1.0}, {"brightness": 1.0, "hue": 270.9983978027008, "kelvin": 3500, "saturation": 1.0}, {"brightness": 1.0, "hue": 293.9986266880293, "kelvin": 3500, "saturation": 1.0}, {"brightness": 0.0, "hue": 0.0, "kelvin": 0, "saturation": 0.0}, {"brightness": 0.0, "hue": 0.0, "kelvin": 0, "saturation": 0.0}, {"brightness": 0.0, "hue": 0.0, "kelvin": 0, "saturation": 0.0}, {"brightness": 0.0, "hue": 0.0, "kelvin": 0, "saturation": 0.0}, {"brightness": 0.0, "hue": 0.0, "kelvin": 0, "saturation": 0.0}, {"brightness": 0.0, "hue": 0.0, "kelvin": 0, "saturation": 0.0}, {"brightness": 0.0, "hue": 0.0, "kelvin": 0, "saturation": 0.0}, {"brightness": 0.0, "hue": 0.0, "kelvin": 0, "saturation": 0.0}, {"brightness": 0.0, "hue": 0.0, "kelvin": 0, "saturation": 0.0}]
You can work out what messages to send by using photons.
so if you have python3.6 or above, create a virtualenv and do pip install lifx-photons-core
in it and then say something like
lifx lan:tile_effect match:cap=matrix flame --debug
The --debug
mean it’ll print out the bytes it sends and receives.
Or you could create a script like
from photons_messages import DeviceMessages
import binascii
message = DeviceMessages.SetPower(level=0, source=123, sequence=0, target="d073d5001337")
print(binascii.hexlify(message.pack().tobytes()).decode())
messages are here https://github.com/delfick/photons-core/blob/master/photons_messages/messages.py
Don’t hesitate to ask more questions!