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

Latest LIFX Smart Downlight (AU store, SKU: MTDCWAU) not discoverable on local network #193

Open
thatandrewguy opened this issue Nov 5, 2024 · 1 comment

Comments

@thatandrewguy
Copy link

thatandrewguy commented Nov 5, 2024

LIFX has refreshed their downlights on the AU store. The SKU for these new models are 'MTDCWAU', they boast a CRI of 90 and are being marketed as 'Super Colour'. These new model lights are not found by the lifxlan library.

I have six of the previous models and these are all discoverable by lifxlan.

Last week I bought two of the latest Smart Downlight model from Clever House and installed them as Wifi lights. These two new downlights are not discoverable by lifxlan so therefore they are not able to be controlled via lifxlan.

Running the below python code does not return the two new model downlights that are installed.

# Import the necessary modules from lifxlan
from lifxlan import LifxLAN
import ipaddress
import json
from datetime import datetime
import time

# Initialize the LifxLAN object to interact with LIFX lights
lan = LifxLAN()

# Discover all LIFX lights on the network with a delay to ensure all lights are found
print("Discovering LIFX lights. Please wait...")
time.sleep(10)  # Wait for 10 seconds to ensure all lights are discovered
lights = lan.get_lights()

# Prepare a list to hold light information
lights_info = []

# Loop through each light and gather detailed information
for light in lights:
    # Get the IP address, label, MAC address, and product name of the light
    ip_address = light.get_ip_addr()
    label = light.get_label()
    mac_address = light.get_mac_addr()
    product_name = light.get_product_name()
    
    # Convert the IP address to an ipaddress object for sorting
    ip_obj = ipaddress.ip_address(ip_address)
    
    # Append the light information to the list
    lights_info.append({"IP Address": str(ip_obj), "Label": label, "MAC Address": mac_address, "Light Name": product_name})

# Sort the lights by IP address in ascending order
lights_info.sort(key=lambda x: ipaddress.ip_address(x["IP Address"]))

# If no lights are found, inform the user
if not lights:
    print("No LIFX lights found on the network.")
else:
    # Generate the filename with current date and time
    now = datetime.now()
    filename = now.strftime("lifx_lights_%Y%m%d_%H%M%S.json")
    
    # Write the sorted data to a JSON file with pretty printing
    with open(filename, 'w') as file:
        json.dump(lights_info, file, indent=4)
    
    print(f"Data has been saved to {filename}")

# Print the sorted list of lights to console for immediate viewing
print("LIFX Lights Information (Sorted by IP Address):")
for light in lights_info:
    print(f"- Label: {light['Label']}, MAC Address: {light['MAC Address']}, IP Address: {light['IP Address']}, Light Name: {light['Light Name']}")

The two new models are discoverable and found when using the HTTP API.

@deseipel
Copy link

I suspect the issue I'm having is related to this. I have two LIFX Mini bulbs and they are not discovered on the LAN. I can ping it and the mobile app sees it no problem. windows 10, python 3.8.8

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