Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Discovery + Use Appears to Fail on LIFX Firmware 3.70 #168

Open
ne0ndrag0n opened this issue Nov 3, 2021 · 4 comments
Open

Discovery + Use Appears to Fail on LIFX Firmware 3.70 #168

ne0ndrag0n opened this issue Nov 3, 2021 · 4 comments

Comments

@ne0ndrag0n
Copy link

Problem Description

Using lifxlan library in a support script to power a custom home automation server. I have two LIFX bulbs that were recently upgraded to firmware version 3.70. Following the firmware update the library appears to be unable to communicate with the bulbs in any fashion. Version 3.70 appears to have been released after the last update to the repository and I suspect the lifxlan library may require changes to be compatible with firmware 3.70.

Applicable Version

$ pip3 show lifxlan
Name: lifxlan
Version: 1.2.7
Summary: API for local communication with LIFX devices over a LAN.
Home-page: http://github.com/mclarkk/lifxlan
Author: Meghan Clark
Author-email: mclarkk@berkeley.edu
License: MIT
Location: /home/ashley/.local/lib/python3.6/site-packages
Requires: ifaddr, bitstring

Reproduction Steps

The following script will fail to discover any devices:

Python 3.6.9 (default, Jan 26 2021, 15:33:00) 
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from lifxlan import LifxLAN
>>> lifxlan = LifxLAN()
>>> lifxlan.get_lights()
[]

The device appears on network in router settings and is fully controllable via LIFX android app. Using MAC address and ip address reported in router settings, I run this script but to no effect:

Python 3.6.9 (default, Jan 26 2021, 15:33:00) 
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from lifxlan import Light
>>> light = Light( "<reported mac address>", "10.0.0.9" )
>>> light.set_power( 0 )
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/ashley/.local/lib/python3.6/site-packages/lifxlan/light.py", line 56, in set_power
    self.req_with_ack(LightSetPower, {"power_level": 0, "duration": duration})
  File "/home/ashley/.local/lib/python3.6/site-packages/lifxlan/device.py", line 501, in req_with_ack
    self.req_with_resp(msg_type, Acknowledgement, payload, timeout_secs, max_attempts)
  File "/home/ashley/.local/lib/python3.6/site-packages/lifxlan/device.py", line 550, in req_with_resp
    raise WorkflowException("WorkflowException: Did not receive {} from {} (Name: {}) in response to {}".format(str(response_type), str(self.mac_addr), str(self.label), str(msg_type)))
lifxlan.errors.WorkflowException: WorkflowException: Did not receive [<class 'lifxlan.msgtypes.Acknowledgement'>] from d0:73:d5:68:e1:42 (Name: None) in response to <class 'lifxlan.msgtypes.LightSetPower'>
@ne0ndrag0n
Copy link
Author

Update: Without any changes it appears discovery and lighting have spontaneously resolved and the library is now working properly again.

However while this was occurring, a lack of discovery results was a fairly reliable bug and I would get the same result running the above scripts many times. This may still be a bug, or it may have been a malfunction in the bulbs.

@bobbobbio
Copy link

I just updated my lights and I'm having the exact same issue. Do you know what you might have done which made it somehow resolve itself?

@bobbobbio
Copy link

My issue stemmed from the fact that the mac-address changed for the lights after I updated them, so I was getting the same error but might be a slightly different reason. Discovery seemed to work for me, although the mac-address the light has ins't the same one it uses to connect to the network.

@bobbobbio
Copy link

relevant link about the mac-address change https://lan.developer.lifx.com/page/beta-firmware-updates

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants